6

TCP/IP模型的简单解释

 2 years ago
source link: http://www.androidchina.net/6874.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

TCP/IP模型是互联网的基础。想要理解互联网,就必须理解这个模型。但是,它不好懂,我就从来没有搞懂过。

前几天,BetterExplained上有一篇文章,很通俗地解释了这个模型。我读后有一种恍然大悟的感觉,第一次感到自己理解了互联网的总体架构。

下面,我按照自己的理解,写一下互联网到底是怎么搭建起来的。说得不对的地方,欢迎指正。

什么是TCP/IP模型?

TCP/IP模型是一系列网络协议的总称,这些协议的目的,就是使计算机之间可以进行信息交换。

所谓”协议”可以理解成机器之间交谈的语言,每一种协议都有自己的目的。TCP/IP模型一共包括几百种协议,对互联网上交换信息的各个方面都做了规定。

TCP/IP模型的四层结构

这些协议可以大致分成四个层次,上一层的协议都以下一层的协议为基础。就像下面这张图:

从下到上的四层,分别为连接层(Link Layer)、网络层(Internet Layer)、传输层(Transport Layer)、应用层(Application Layer)。

可以这样理解它们的作用:

1)连接层负责建立电路连接,是整个网络的物理基础,典型的协议包括以太网、ADSL等等;

2)网络层负责分配地址和传送二进制数据,主要协议是IP协议;

3)传输层负责传送文本数据,主要协议是TCP协议;

4)应用层负责传送各种最终形态的数据,是直接与用户打交道的层,典型协议是HTTP、FTP等。

理解这个结构的关键,在于理解科学家在70年代设计互联网的原始目的,就是为了传输文本。所有协议最初都是为了这个目标而设计的,互联网架构的核心就是文本对话。

实例:用Telnet建立HTTP对话

为了观察文本在互联网上是如何传输的,我们做一个小实验。

第一步:在”开始”菜单中,点击”运行”命令,输入”telnet google.com 80″。

telnet命令本身就是一个应用层协议,它的作用是在两台主机间,建立一个TCP连接,也就是打开两台主机间文本传输的一个通道。

“telnet google.com 80″表示建立本机与google.com在80端口的一个文本传输通道。所谓”端口”其实是TCP协议的一个参数,用来帮助TCP协议判断对方主机传来的文本,到底使用的是哪一种应用层协议。80端口是HTTP协议的端口,就是我们平时浏览网页的端口。常见端口列表可以参考这里。

另外,与Windows 2000和Windows XP不同,Vista系统默认没有安装Telnet客户端,大家可以参考微软公司的安装说明自行安装。如果你使用的是Linux系统,那么可以直接在命令行窗口中,输入上面的命令。

第二步:打开本地显示。(非Windows系统跳过此步。)

请按以下步骤操作:在Telnet窗口中按下”Ctrl+]”;然后,输入”set localecho”命令,再连续按下两次回车键。

好了,这个时候你就可以直接同google.com主机进行对话了。

第三步:你可以试着同Google随便说句话,看看有什么反应。

我输入了”Hello World!”。

结果,Google的回答是这样的:

“400 Bad Request”说明Google看不懂你的发言。这是毫不奇怪的,因为这时你是在TCP文本通道中,进行HTTP对话。所以,你的发言必须遵守HTTP协议,这样Google才能看懂。

第四步:输入”GET / HTTP/1.1″,表示向google索要首页根文件,使用的协议是HTTP的1.1版本。

Google的回应如下:

“200 OK”表示要求数据成功。在头部信息的下面,就是google在浏览器中显示的首页文件的源代码。

上面这个例子用的是HTTP协议,如果要使用其他”应用层协议”与主机进行对话,你只要改变端口就行了。比如,”telnet ftp.website.com 21″,表示用ftp协议进行对话。

所有这些对话的底层协议,都是TCP协议,因为这是负责文本传输的协议;而TCP协议又必须依靠IP协议,进行二进制数据的传输;而二进制数据的传输,离不开最底层负责网络连接的物理协议。

所以,通过这样四层的网络架构,就实现了整个互联网的通信。

转载请注明:Android开发中文站 » TCP/IP模型的简单解释


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK