网络层掌管着网络中主机间的信息传输。 传输层上的主要协议是 TCP 和 UDP。正如网络层控制着主机之间的数据传递,传 输层控制着那些将要进入网络层的数据。 两个协议就是它管理这些数据的两种方 式:TCP 是一个基于连接的协议;UDP 则是面向无连接服务的管理方式的协议。 TCP/IP 模型的主要缺点有: 首先,该模型没有清楚地区分哪些是规范、哪些是实现;其次,TCP/IP 模型 的主机—网络层定义了网络层与数据链路层的接口,并不是常规意义上的一层, 和接口层的区别是非常重要的,TCP/IP 模型没有将它们区分开来。 数据格式 数据帧:帧头+IP 数据包+帧尾 (帧头包括源和目标主机 MAC 地址及类型,帧尾是 校验字) IP 数据包:IP 头部+TCP 数据信息(IP 头包括源和目标主机 IP 地址、类型、生存 期等) TCP 数据信息:TCP 头部+实际数据 (TCP 头包括源和目标主机端口号、顺序号、 确认号、校验字等) 产生背景 在阿帕网(ARPA)产生运作之初,通过接口信号处理机实现互联的电脑并不多, 大部分电脑相互之间不兼容,在一台电脑上完成的工作,很难拿到另一台电脑上 去用, 想让硬件和软件都不一样的电脑联网, 也有很多困难。 当时美国的状况是, 陆军用的电脑是 DEC 系列产品,海军用的电脑是 Honeywell 中标机器,空军用的 是 IBM 公司中标的电脑,每一个军种的电脑在各自的系里都运行良好,但却有一 个大弊病:不能共享资源。 当时科学家们提出这样一个理念: “所有电脑生来都是平等的。 ”为了让这些“生 来平等”的电脑能够实现“资源共享”就得在这些系统的标准之上,建立一种大 家共同都必须遵守的标准,这样才能让不同的电脑按照一定的规则进行“谈判” , 并且在谈判之后能“握手” 。 在确定今天因特网各个电脑之间“谈判规则”过程中,最重要的人物当数瑟夫 (Vinton G.Cerf) 。正是他的努力,才使今天各种不同的电脑能按照协议上网互 联。 瑟夫也因此获得了与克莱因罗克 “因特网之父” 一样的美称 ( ) “互联网之父” 。 瑟夫从小喜欢标新立异,坚强而又热情。中学读书时,就被允许使用加州大学洛 杉矶分校的电脑,他认为“为电脑编程序是个非常激动人心的事,…只要把程序 编好,就可以让电脑做任何事情。 ”1965 年,瑟夫从斯坦福大学毕业到 IBM 的一 家公司当系统工程师,工作没多久,瑟夫就觉得知识不够用,于是到加州大学洛 杉矶分校攻读博士,那时,正逢阿帕网的建立, “接口信号处理机” (IMP)的研 试及网络测评中心的建立,瑟夫也成了著名科学家克莱因罗克手下的一位学生。 瑟夫与另外三位年轻人(温菲尔德、克罗克、布雷登)参与了阿帕网的第一个节 点的联接。此后不久,BBN 公司对工作中各种情况发展有很强判断能力、被公认 阿帕网建成作出巨大贡献的鲍伯·卡恩(Bob Kahn)也来到了加州大学洛杉矶分 校。在那段日子里,往往是卡恩提出需要什么软件,而瑟夫则通宵达旦地把符合 要求的软件给编出来,然后他们一起测试这些软件,直至能正常运行。 当时的主要格局是这样的,罗伯茨提出网络思想设计网络布局,卡恩设计阿帕网 总体结构, 克莱因罗克负责网络测评系统, 还有众多的科学家、 研究生参与研究、 试验。69 年 9 月阿帕网诞生、运行后,才发现各个 IMP 连接的时候,需要考虑 用各种电脑都认可的信号来打开通信管道,数据通过后还要关闭通道。否则这些 IMP 不会知道什么时候应该接收信号,什么时候该结束,这就是我们现在所说的 通信“协议”的概念。70 年 12 月制定出来了最初的通信协议由卡恩开发、瑟夫 参与的“网络控制协议” (NCP) ,但要真正建立一个共同的标准很不容易,72 年 10 月国际电脑通信大会结束后,科学家们都在为此而努力。 “包切换”理论为网络之间的联接方式提供了理论基础。卡恩在自己研究的基础 上, 认识到只有深入理解各种操作系统的细节才能建立一种对各种操作系统普适 的协议,73 年卡恩请瑟夫一起考虑这个协议的各个细节,他们这次合作的结果 产生了目前在开放系统下的所有网民和网管人员都在使用的“传输控制协议” (TCP,Transmission-Control Protocol)和“因特网协议” (IP,Internet Protocol)即 TCP/IP 协议。 通俗而言:TCP 负责发现传输的问题,一有问题就发出信号,要求重新传输,直 到所有数据安全正确地传输到目的地。而 IP 是给因特网的每一台电脑规定一个 地址。1974 年 12 月,卡恩、瑟夫的第一份 TCP 协议详细说明正式发表。当时美 国国防部与三个科学家小组签定了完成 TCP/IP 的协议,结果由瑟夫领衔的小组 捷足先登,首先制定出了通过详细定义的 TCP/IP 协议标准。当时作了一个试验, 将信息包通过点对点的卫星网络,再通过陆地电缆,再通过卫星网络,再由地面 传输,贯串欧洲和美国,经过各种电脑系统,全程 9.4 万公里竟然没有丢失一个 数据位,远距离的可靠数据传输证明了 TCP/IP 协议的成功。 1983 年 1 月 1 日,运行较长时期曾被人们习惯了的 NCP 被停止使用,TCP/IP 协 议作为因特网上所有主机间的共同协议, 从此以后被作为一种必须遵守的规则被 肯定和应用。 开发过程 在构建了阿帕网先驱之后,DARPA 开始了其他数据传输技术的研究。NCP 诞生后 两年,1972 年,罗伯特·卡恩(Robert E. Kahn)被 DARPA 的信息技术处理办 公室雇佣,在那里他研究卫星数据包网络和地面无线数据包网络,并且意识到能 够在它们之间沟通的价值。 1973 年春天, 在 已有的 ARPANET 网络控制程序 (NCP) 协议的开发者文顿·瑟夫(Vinton Cerf)加入到卡恩为 ARPANET 设计下一代协 议而开发开放互连模型的工作中。 到了 1973 年夏天,卡恩和瑟夫很快就开发出了一个基本的改进形式,其中网络 协议之间的不同通过使用一个公用互联网络协议而隐藏起来, 并且可靠性由主机 保证而不是像 ARPANET 那样由网络保证。 (瑟夫称赞 Hubert Zimmerman 和 Louis Pouzin(CYCLADES 网络的设计者)在这个设计上发挥了重要影响。 ) 由于网络的作用减少到最小的程度,就有可能将任何网络连接到一起,而不用管 它们不同的特点,这样就解决了卡恩最初的问题。 (一个流行的说法提到瑟夫和 卡恩工作的最终产品 TCP/IP 将在运行“两个罐子和一根弦”上,实际上它已经 用在信鸽上。一个称为网关(后来改为路由器以免与网关混淆)的计算机为每个 网络提供一个接口并且在它们之间来回传输数据包。 这个设计思想更细的形式由瑟夫在斯坦福的网络研究组的 1973 年–1974 年期间 开发出来。 (处于同一时期的诞生了 PARC 通用包协议组的施乐 PARC 早期网络研 究工作也有重要的技术影响;人们在两者之间摇摆不定。 ) DARPA 于是与 BBN、斯坦福和伦敦大学签署了协议开发不同硬件平台上协议的运 行版本。