« MID和UMPC的区别 | 首页 | 经济学是无用的 »

TCP/IP模型的一个简单解释


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协议,进行二进制数据的传输;而二进制数据的传输,离不开最底层负责网络连接的物理协议。

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

(完)

相关内容

随机文章

  • 2007.10.24: 美国大报的社论版
    昨天,我写了新闻不是社论以后,发现还有不少东西可以说。今天,先整理一下美国主要大报的社论版的网址。
  • 2007.07.28: 美国电影《1408》(又名《幻影凶间》)
    海豚旅馆位于纽约市第六十七街,1408房间闹鬼。几十年来,共有56个人死在这个房间内,据说没有人能够单独呆在其中超过一个小时。这个房间已经被封闭了20年,可是有一个作家不信邪,偏偏就要住一个晚上。

功能链接

广告


 


评论

Nicky 说:

和OSI的标准模型对应着讲,对比会更加清楚

Daniel 说:

不懂的还是不懂····

花心开未 说:

请经济学博士讨论一下经济问题。
请简要的评论一下美国印1万亿美元票子来救市的行为。以及会对中国经济和中国股市造成的影响。
由于美元暴跌,美国股市狂涨,由于近期中美股市走势一直是相反的。所以美国股市暴涨,是不是会导致在中国股市投资的美国投资者的资产回流,流动性收紧,股市进入新一轮下跌。
另外,由于美元强势贬值,人民币可能再次扩大M2的供应量,也即人民币跟随美元贬值,避险的措施是买入大宗商品期货,黄金,还是把手头人民币换成日元?

chao 说:

我觉得您对TCP的理解有误,而且似乎跟Transport Layer 混淆了。

hehe 说:

难道阮老师的blog真的变成仅仅是技术一类的东西了。。。

不会吧。。

Ruan YiFeng 说:

引用Nicky的发言:

和OSI的标准模型对应着讲,对比会更加清楚

OSI的七层模型,我到现在还没有搞懂……

anonymous 说:

理解TCP/IP模型和OSI参考模型的关键在于理解封装和解包
同时首部中的类型字段指定了解包后的处理方式

Bourne 说:

理解了又能怎样?

kuber 说:

真佩服你, 学经济的能这样花精力去了解计算机方面的知识. 说的差不离.
OSI 就没有必要了, 那都是学究气的, 从来就没有实用过.

峰粉 说:


写得很简单,应该很多人可以因此读懂。

回一下楼上,Ruan始终是一个经济学人,他做了很多IT的东西,但很多专业的人一看,就觉得门外的。

Ruan更写了很多有趣的专业的事情,如果写在我专业头上的,更觉得幼稚。

可以说,我相信Ruan说的经济学,语言学的所有,因为我相信他是专家。但,此外的,我很赞赏他的表达能力,但并不认同所有。

就上面的贴,他说的没错,但不是全部。

杨丽永 说:

tcp协议负责文本传输,ip协议负责二进字传输?
老大不是这样简单的吧,ip协议是无连接,不保证传输安全性的协议,tcp是以它为基础,进行了封装,让它传输的数据不会丢失

任我行不行 说:

峰粉说得很对!不过,学习对有些人来说,有时候是一种乐趣,从未知到了解的过程是一个探索,学习的过程,很让人着迷。但是要想达到精通甚至顶尖的境界,之前是要付出太多的时间和精力,而且未必能达到。阮的心态其实很好,自娱自乐之余,还能给大家提供一个氛围,至少交了一些朋友,大家可以讨论一些问题。

fallwithme 说:

所谓的OSI标准模型,根本就是个笑话,出现以后一直就没有得到业界的认可,而TCP/IP早就成了事实的标准。有人认为OSI还应该再加上经济层和政治层,现在互联网系统协会(ISC.org)的网站上还在出售这个9层OSI模型的T恤衫:
https://www.isc.org/logoware/isc-9-layer-osi-model-cotton-t-shirt

我要发表看法