第5章 TCPIP协议基础

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章TCP/IP协议基础Internet无疑是今天使用最广泛的互联网络。Internet中的主要协议是TCP和IP,所以Internet协议也叫TCP/IP协议。5.1TCP/IP协议概述TCP/IP协议可划分为4个层次,它们与OSI/RM的对应关系表示在表5-1中。TCP/IP协议是一个协议簇,即是由很多协议构成。这些协议都是为了完成某一任务而提出的,任务能够完成则协议也就确定下来了。随着功能的完善,任务自然也就越来越多,相关的协议自然也越来越多,最后形成了一个协议簇。既然这个协议簇是发展而来的,自然还会继续发展下去。表5-1TCP/IP协议簇与OSI/RM的比较OSITCP/IP7应用层7应用层6表示层65会话层54传输层4传输层3网络层3互连网络层2数据链路层2网络接口层1物理层1TCP/IP协议簇允许同层的协议实体间互相调用,从而完成复杂的控制功能,也允许上层过程直接调用不相邻的下层过程,甚至在有些高层协议中,控制信息和数据分别传输,而不是共享同一协议数据单元。图5-1画出了因特网主要协议之间的调用关系。TCP/IP协议不包含具体的物理层和数据链路层协议,只定义了TCP/IP与各种物理网络之间的网络接口。这些物理网络可以是各种广域网,如FR、ISDN等,也可以是局域网,例如图5-1Internet的主要协议及调用关系114计算机网络Ethernet、TokenRing、FDDI等IEEE定义的各种标准局域网。网络接口层定义了一种接口规范,任何物理网络只要按照这个接口规范开发网络接口驱动程序,都能够与TCP/IP协议集成起来。互连网络层提供了专门的协议来解决IP地址与网络物理地址的转换问题。5.2互连网络层互连网络层包含有四个重要的协议,即IP、ICMP、ARP和IGMP。互连网络层的主要功能是由IP协议提供的。互连网络层的另一个重要服务是在不同的网络之间建立互连网络。在互连网络中,使用路由器(在TCP/IP中,有时也称为网关)来连接各个网络,网间的分组通过路由器传送到另一个网络,关于网络互连的详细内容见下一章。5.2.1IP协议IP(InternetProtocol)是TCP/IP协议簇的核心协议之一,它提供了无连接的数据报传输和互连网的路由服务。IP不保证传送的可靠性,在主机资源不足的情况下,它可能丢弃某些数据报,同时IP也不检查被数据链路层丢弃的数据报。在传送时,高层协议将数据传给IP,IP将数据封装为IP数据报后通过网络接口发送出去。如果目的主机直接连在本地网中,则IP直接将数据报传送给本地网中的目的主机;如果目的主机是在远程网络上,IP将数据报传送给本地路由器,由本地路由器将数据报传送给下一个路由器或目的主机。这样,一个IP数据报通过一组互连网络从一个IP实体传送到另一个IP实体,直至到达目的地。在互连网体系结构中,每台主机(在TCP/IP中,端节点一般称为主机Host)都要预先分配一个惟一的32位地址作为该主机的标识符,这个主机必须使用该地址进行所有通信活动,这个地址称为IP地址。IP地址通常由网络标识和主机标识两部分组成,可标识一个互连网络中任何一个网络中的任何一台主机。IP地址是一种在互连网络层用来标识主机的逻辑地址。当数据报在物理网络传输时,还必须把IP地址转换成物理地址,由互连网络层的地址解析协议ARP提供这种地址映射服务。1.IP地址的格式与分类IP地址有二进制格式和十进制格式两种表示。十进制格式是由二进制翻译过去的,用十进制表示是为了便于使用和掌握。二进制的IP地址共有32位。例如:10000011011010110000001100011000。每八位一组可用一个十进制数表示,并用“.”进行分隔,上例就变为131.107.3.24。即点分十进制表示的方法是把整个地址划分为4个字节,每个字节用一个十进制数表示,中间用圆点分隔。IP地址一般格式如图5-2所示,其中,M为地址类别号,net-id为网络号(网络地址),host-id为主机号(主机地址)。地址类别不同,这三个参数在32位中所占的位数也不同。需要注意的是,IP地址为两级结构,M只是用来区分IP地址的类别。IP地址分为5类,在图5-3中列出了A、B、C、D和E五类IP地址格式,其中A、B、C三类是常用地址(可以分配给主机的)。图5-2IP地址的一般格式第5章TCP/IP协议基础115在A类地址中,M字段占1位,即第0位为0,表示是A类地址,第1~7位表示网络地址,第8~31位表示主机地址。它所能表示的范围为0.0.0.0~127.255.255.255,即能表示27-2=126个网络地址,224-2=16777214个主机地址(减2的原因是网络号全1、全0的地址以及主机号全1、全0的地址有特殊用途,不能分配)。A类地址通常用于超大型网络的场合。在B类地址中,M字段占2位,即第0、1位为“10”,表示是B类地址,第2~15位表示网络地址,第16~31位表示主机地址。它所能表示的范围为128.0.0.0~191.255.255.255,即能表示16382(214-2)个网络地址,65534(216-2)个主机地址。B类地址通常用于大型网络的场合。在C类地址中,M字段占3位,即第0、1、2位为“110”,表示是C类地址,第3~23位表示网络地址,第24~31位表示主机地址。它所表示的范围为192.0.0.0~223.255.255.255,即能表示2097150(221-2)个网络地址,254(28-2)个主机地址。C类地址通常用于校园网或企业网。此外,还有D类和E类IP地址。前者是多播地址,后者是实验性地址。在使用IP地址时,还要知道下列地址是保留作为特殊用途的,一般不使用。(1)全0的网络号,这表示“本网络”或“我不知道号码的这个网络”。(2)全0的主机号,这表示该IP地址就是网络的地址。(3)全1的主机号,表示广播地址,即对该网络上的所有主机进行广播。(4)全0的IP地址,即0.0.0.0,表本网络上的本主机。(5)网络号码为127.X.X.X.,这里X为0到255之间的整数。这样的网络号码用于本地软件进行回送测试(LoopbackTest)。(6)全1地址255.255.255.255,这表示“向我的网络上的所有主机广播”。在Internet中,IP地址不是任意分配的,必须由国际组织统一分配。其组织机构是:(1)分配A类(最高一级)IP地址的国际组织是国际网络信息中心NIC(NetworkInformationCenter)。它负责分配A类IP地址,授权分配B类IP地址的组织,即自治区系统。它有权重新刷新IP地址。(2)分配B类IP地址的国际组织是InterNIC、APNIC和ENIC。这三个自治区系统组织的分工是:ENIC负责欧洲地址的分配工作;InterNIC负责北美地区;而APNIC负责亚太地区,设在日本东京大学。我国属于APNIC,由它来分配B类地址。例如,APNIC给中国CERNET分配了10个B类地址。(3)分配C类IP地址的组织是国家或地区网络的NIC。例如,CERNET的NIC设在清华图5-3IP地址的分类116计算机网络大学,CERNET各地区的网管中心需向CERNETNIC申请分配C类地址。如果不加入Internet,只是在局域网中使用TCP/IP协议,则可以自己设计4个字节的IP地址,只要网络内部不冲突就可以了。2.IP协议IPv4协议的数据报格式表示在图5-4中,图上的数字的单位是bit。前面5行为20字节的固定头部。其中的字段如下。(1)版本号(4bit):协议的版本号,固定为4,IPv4是现在的Internet所使用的IP协议。(2)IHL(4bit):IP头长度,以32位字计数,最小为5,即20个字节。(3)服务类型(8bit):用于区分不同的优先级(3bit),可靠性(1bit),延迟(1bit),吞吐率(1bit)和成本(1bit)的参数。还有1bit保留。(4)总长度(16bit):包含IP头在内的数据单元的总长度(字节数)。(5)标识符(16bit):惟一标识数据报的标识符。(6)标志(3bit):包括三个标志,一个是M标志,用于分段和重装配;另一个是禁止分段标志,如果认为目标站不具备重装配能力,则可使这个标志置位,这时如果数据报要经过一个最大分组长度较小的网络时,就会被丢弃;还有一个标志当前还没有启用。(7)段偏置值(13bit):指明该段处于原来数据报中的位置。(8)生存期(8bit):用经过的路由器个数表示。(9)协议(8bit):指明所封装数据属于的协议(TCP、UDP、ICMP、IGMP、OSPF等)。(10)头校验和(16bit):对IP头的校验序列。在数据报传输过程中IP头中的某些字段可能改变(例如生存期,以及与分段有关的字段),所以校验和要在每一个经过的路由器中进行校验和重新计算。校验和是对IP头中的所有16位字进行1的补码相加,然后再对相加后的和取补得到的,计算时假定校验和字段本身为0。048161718192431版本号IHL服务类型总长度标识符0DM段偏置值生存期协议头校验和源地址目的地址可选项+补丁用户数据图5-4IP数据报格式(11)源地址(32bit):源IP地址。(12)目的地址(32bit):目的IP地址。(13)可选项:用来提供多种选择性的服务。是头部的一部分,可变长。最大40个字节。(14)补丁:补齐至32位的边界,保证头部是4字节的整数倍。(15)用户数据:以字节为单位的用户数据,和IP头加在一起长度不超过65535字节。第5章TCP/IP协议基础117这些字段的值都是从服务原语的参数产生的。下面结合数据报格式讨论IP协议的两个主要操作。(1)数据报生存期如果使用了动态路由选择算法,或者允许在数据报传送期间改变路由决定,则有可能造成回路。最坏的情况是数据报在网际中无休止地巡回,不能到达目的地并浪费大量的通信资源。解决这个问题的简单办法是规定数据报有一定的生存期(TTL),生存期的长短以它经过的路由器的多少计数。每经过一个路由器,TTL减1,TTL为0,数据报就被丢弃。(2)分段和重装配每个网络可能规定了不同的最大分组长度。当分组在互联网中传送时可能要进入一个最大分组长度较小的网络,这时需要对它进行分段,这又引出了新的问题:在哪里对它重装配?一种办法是在目的地再行装配。但这样只会把数据报越分越小,即使后续子网允许较大的分组通过,但由于途中的短报文(指由分段后形成的较短数据报)无法装配,从而使效率下降。另外一种办法是允许中间的路由器进行组装,这种方法也有缺点。首先是路由器必须提供重装配缓冲区,并且要设法避免重装配死锁;其次是由一个数据报分出的小段都必须经过同一个出口路由器,才能再行组装,这就排除了使用动态路由选择算法的可能性。关于分段和重装配问题的讨论还在继续,已经提出了各种各样的方案。下面介绍在DOD(美国国防部)和ISOIP协议中使用的方法。这个方法有效地解决了以上提出的部分问题。IP协议使用了四个字段处理分段和重装配问题。一个是报文ID(标识符)字段;第二个字段是数据长度,即字节数;第三个字段是偏置值,即分段在原来数据报中的位置,以8个字节(64位)的倍数计数;最后是M标志,表示是否为最后一个分段。当一个站发出数据报时对长度字段的赋值等于整个数据字段的长度,偏置值为0,M标志置False(用0表示)。如果一个IP模块要对该报文分段,则按以下步骤进行:①对数据块的分段必须在64位的边界上划分,因而除最后一段外,其他段长都是64位的整数倍;②对得到的每一分段都加上原来数据报的IP头,组成短报文;③每一个短报文的长度字段置为它包含的字节数;④第一个短报文的偏置值置为0,其他短报文的偏置值为它前边所有报文的数据部分长度之和(字节数)除以8;⑤最后一个报文的M标志置为O(False),其他报文的M标志置为1(True)。下面表5-2给出一个分段的例子。表5-2数据报分段的例子项目长度偏置值M标志原来的数据部分47500第一个分段24001第二个分段235

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功