TCP/IP协议综述摘要:本文描述了综述TCP/IP协议的发展、主要协议内容以及TCP和IP传输过程,主要论述了TCP/IP协议体系结构、各层协议及TCP与HDLC传输的异同。重点说明IP网际协议的数据报格式、IP地址及地址转换,TCP传输控制协议的数据报格式、差错控制、流量控制和连接的建立等原理。关键词:TCP/IPIP地址子网掩码端口套接字1引言TransmissionControlProtocol/InternetProtocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet昀基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。TCP/IP协议族的基本结构如下图所示。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。TCP/IP协议族2TCP/IP协议的历史和发展过程TCP协议昀早由斯坦福大学的两名研究人员于1973年提出。1983年,TCP/IP被Unix4.2BSD系统采用。随着Unix的成功,TCP/IP逐步成为Unix机器的标准网络协议。Internet的前身ARPANET昀初使用NCP(NetworkControlProtocol)协议,由于TCP/IP协议具有跨平台特性,ARPANET的实验人员在经过对TCP/IP的改进以后,规定连入ARPANET的计算机都必须采用TCP/IP协议。随着ARPANET逐渐发展成为Internet,TCP/IP协议就成为Internet的标准连接协议。TCP/IP是Internet网络中的重要的技术基础。自从万维网()的出现,使Internet发生了根本的变化,使其从单纯的数据通信网络发展成为能够在世界范围内共享和发送信息的分布式文件系统,其利用价值飞速提高,TCP/IP协议也因此得到广泛应用。特别是1993年因特网商业化后,网络规模平均以半年翻一番的速度发展,使人们认识到应该在网络层用网络互联协议实现不同种类网络的互联,形成一个独立于网络基础设施的平台,这就是IP网。普通IP网传送实时业务不能保证服务质量,因此,宽带IP网应运而生。随着一些关键术如IPOverDWDM,MPLS流量工程等出现。它可以提供能够和ATM网相当的服务质量,可以实现无缝连接多种不同网络的综合业务网。宽带IP网为开拓新的宽带数据通信和宽带交互式媒体新业务提供了平台。IP网络对多媒体通信的需求也在日溢膨胀。为此,国际电联(ITU)制定了H.323标准,使得在现有通信网络上进行视频传输成为可能。以TCP/IP协议为基础的宽带IP网必将融合三大网络即:有线电视网、电信网、计算机网的先进技术和网络资源,成为现在和未来信息公路的主流。3TCP/IP协议的层次结构从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己。由于ARPNET的设计者注重的是网络互联,允许通信子网(网络接口层)采用已有的或是将来有的各种协议,所以这个层次中没有提供专门的协议。实际上,TCP/IP协议可以通过网络接口层连接到任何网络上,例如X.25交换网或IEEE802局域网。TCP/IP层次模型TCP/IP协议其实是一个协议集合,它包括了TCP协议(TransportControlProtocol,传输控制协议)、IP协议(InternetProtocolInternet协议)及其它一些协议。如图2,TCP/IP体系结构模型自下往上分别是:(1)网络接口层:严格来说它不是一个层次,而仅仅是一个接口,用以提供在下面的数据链路层和物理层的接口。网络接口层并没有什么具体的内容,这里就不再讨论了。图1(2)IP网络层:主要有网际协议IP,地址解析协议ARP,逆地址解析协议RARP。(3)TCP运输层:有运输控制协议TCP,用户数据报协议UDP。(4)应用层:有TELNET,FTP,SMTP等应用层协议。层与层之间的关系是,下层总是为上一层服务的,上层屏蔽下一层的服务细节。应用层与OSI关对应OSI的应用层、表示层。功能应用程序通过这一层访问网络。协议文件传输协议FTP、超文本传输协议HTTP、远程终端协议Telent、简单邮件传送协议SMTP、网络新闻传输协议NNTP、因特网中继会话IRC、Finger、Whois、Gopher传输层与OSI关对应OSI的传输层。功能传输协议在计算机之间提供提供两种端到端的通信服务,传输协议的选择根据数据传输方式而定。1、传输控制协议tcp:为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到响应的应用程序。2、用户数据报协议udp:提供无连接通信,且不对传送包进行可靠的保证。适合于一次传输小量数据,可靠性则由应用层来负责。协议传输控制协议tcp、用户数据报协议udp。互联层/网间层/网络层与OSI关对应OSI的网络层。功能互联协议将数据包封装成internet数据报,并运行必要的路由算法。这里有四个互联协议:1、网际协议ip:负责在主机和网络之间寻址和路由数据包。使用网络设备接口规范ndis向网络接口层提交帧,支持广域网和本地网接口技术。2、地址解析协议arp:获得同一物理网络中的硬件主机地址。3、网际控制消息协议icmp:发送消息,并报告有关数据包的传送错误。4、互联组管理协议igmp:被ip主机拿来向本地多路广播路由器报告主机组成员。协议路由信息协议RIP、网际协议IP、地址解析协议arp、网际控制消息协议Icmp、互联组管理协议igmp。网络接口层与OSI关对应OSI的物理层和数据链路层。功能负责数据帧的发送和接收,帧是独立的网络信息传输单元。ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。协议总结OSI中的层功能TCP/IP协议族应用层文件传输,电子邮件,文件服务,虚拟终端TFTP,HTTP,SNMP,FTP,SMTP,DNS,RIP,Telnet表示层数据格式化,代码转换,数据加密没有协议会话层解除或建立与别的接点的联系没有协议传输层提供端对端的接口TCP,UDP网络层为数据包选择路由IP,ICMP,OSPF,BGP,IGMP,ARP,RARP数据链路层传输有地址的帧以及错误检测功能SLIP,CSLIP,PPP,MTU,ARP,RARP物理层以二进制数据形式在物理媒体上传输数据ISO2110,IEEE802,IEEE802.2层与层之间的关系是,下层总是为上一层服务的,上层屏蔽下一层的服务细节。4TCP/IP协议主要内容4.1IP网际层的功能不同的物理网络技术有不同的编址方式;不同物理网络中的主机,有不同的物理网络地址。网间网技术是将不同物理网络技术统一起来的高层软件术。网间网技术采用一种全局通用的地址格式,为全网的每一网络和每一主机都分配一个网间网地址,以此屏蔽物理网络地址的差异。IP协议提供一种全网间网通用的地址格式,并在统一管理下进行地址分配,保证一个地址对应一台网间网主机(包括网关),这样物理地址的差异被IP层所屏蔽。IP提供的是无连接服务。4.2IP地址及其转换4.2.1IP地址每个Internet上的主机和路由器都有一个IP地址,包括网络号和主机号,其中网络号标识该网络,而主机号标识该网络中的主机。所有的IP地址都是32位,分成4个字段,每个字段8位。32位的IP地址可以有五种格式,如图2所示:IP地址通常用带点十进制记法来书写,即IP地址写成四个十进制数,相互之间用小数点隔开,每个十进制数(从0到255)表示IP地址的一个字节。值得指出的是0和1有特殊的意义,见表格1:表格14.2.2IP地址的转换IP地址是网络层的地址,而下传到链路层要转变为MAC帧后才能发送到网络。而MAC帧使用的是硬件地址。如何将32位的IP地址转变成48位的局域网地址,这就是地址解析协议ARP要解决的问题。Net-idHost-id源地址使用目的地用代表的意思00可以不可在本网络上的主机0Host-id可以不可在网络上的某个主机全1全1不可可以只在本网络上进行广播Net-id全1不可可以对net-id上的所以主机进行广播127任何数可以可以用作本地软件回送测试之用假设是在本局域网中,A主机向B主机发生数据报。首先A主机查看ARP高速缓存内的IP地址到物理地址的映射表,如果找到就写入MAC帧发送,否则进行以下步骤:(1)在本局域网上广播发送一个ARP请求分组,上面有主机B的IP地址;(2)在本局域网上的所以主机上运行的ARP进程都收到此ARP请求分组;(3)主机B在ARP请求分组中见到自己的IP地址,就向主机A发送一个ARP响应分组,上面写入自己的物理地址;(4)主机A收到主B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到物理地址的映射。有时还要用到逆地址解析协议RARP使只知道自己物理地址的主机能够知道其IP地址,如无盘工作站的引导就可以通过逆地址解析协议RARP来解决。4.2.3子网技术我们知道一个单位分配到的IP地址是IP地址中网络号net-id,而后面的主机号host-id则由本单位进行分配。若该单位的所有主机都使用同一个网络号,主机的数量很多,分布在很大的地理范围时,往往需要一些网桥将这些主机互连起来。网桥的缺点较多,例如,容易引起广播风暴,同时当网络出现故障时也不太容易隔离和管理。为了让本单位的主机便于管理,可以将本单位所属主机划分为若干个子网,用IP地址中的主机号字段中的前若干个比特作为“子网号字段”,后面剩下来的仍为主机号字段。这样便可以用路由器把本单位的各子网互连起来,使全单位的网络便于管理。从外部看,这个单位只有一个网络号。只有当外面的分组进入到本单位范围后,再由该单位的路由器根据子网号进行选路,昀后找到目的主机。这样一来该单位的网络管理就很方便得多了。同时IP地址的使用不至于造成很大的浪费,缓解了日益增加的局域网和网上主机对IP地址的需求。如图3所示,说明了子网掩码的意义。每一个路由器当收到一个分组时,首先检查该分组的IP地址中的网络号,若不是本网络号则发送到下一站路由器,若是本网络号则用子网掩码与IP地址按位相与运算,然后取出子网号进行判断,决定是发送到其他子网,或直接交付给本网络的主机端口。4.3IP数据报的格式IP数据报的格式能够说明IP协议都具有什么样的功能,图4就是数据报的格式。从图4中可以看出,一个数据报首部由和数据两部分组成。首部的前20字节是固定部分,后一部分则是可变部分。数据报首部的固定部分中的各字段。版本占4bit,指的版本。通信双方使用的协议的版本必须一致。。首部长度占4bit,可表示的昀大数值是15个单位(每个单位为4字节),因此IP的首部长度的昀大值是60字节。当IP分组的首部长度不是4字节的整数倍的时开始,这样在实现起来会比较方便。首部长度的限制为60个字节的缺点是有时(如采用源站选路的时)不够用。但这样的用意是要用户尽量减少额外开销。。服务类型占8bit用来获得更好的服务,其意义见图一的上面部分所示。服务类型字段的前三个比特表示优先级,它可使数据报具有8个有限级中的一个。第四个比特是D比特,表示要求有更低的时延。第五个比特是T比特,表示要求有更高的吞吐量。第六个比特是R比特,表示要求有更高的可靠性,即在数据报传送的过程中,被节点交换