第三章网际协议_第1页
第三章网际协议_第2页
第三章网际协议_第3页
第三章网际协议_第4页
第三章网际协议_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络协议网际协议

网际协议(IP)负责通过相互连接的一组网络传送数据块(数据报)。IP接受来自TCP或用户数据报(UDP)等更高层次协议的这些数据块,然后再转发给网络接口层,并通过Internet传送这些数据块。

IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP协议提出路由选择路由选择处理机路由选择协议路由表3输入端口3交换结构输入端口输出端口分组转发转发表分组处理输出端口……11133122223——网络层2——数据链路层1——物理层典型的路由器结构

输入端口对线路上收到的分组的处理IP协议提出数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。物理层处理数据链路层处理网络层处理分组排队

交换结构

输入端口的处理从线路接收分组查表和转发输出端口将交换结构传送来的分组发送到线路IP协议当交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。物理层处理数据链路层处理网络层处理分组排队向线路发送分组缓存管理交换结构IP模块结构网际协议IP及其配套协议IP协议各种应用层协议

网络接口层(TELNET,FTP,SMTP等)物理硬件运输层TCP,UDP应用层ICMPIPRARPARP与各种网络接口网际层IGMP网际协议概述

向网络接口层传输数据;

在端站之间提供无连接(数据报)传送服务。每个数据报携带一个完整的目的地址,并独立于其他数据报在系统内进行路由,此时不需要建立连接和逻辑链路。

为那些最大数据报长度小于数据包长度的网络进行数据传送提供一种数据报分段和重组机制。IP的功能IP特性无连接传递——数据报独立传输、IP不维护通信双方之间的连接细节。不能保证数据传输的可靠性——不提供确认功能,不提供对丢失或破坏数据的重传机制,不提供流量控制或数据包排序机制。“尽力而为”的传递机制——提供了一个16位报头校验和,用于接收节点验证数据包传送是否正确。IP数据报格式

目前,已经有2种IP版本成为标准,它们分别是IPv4和IPv6,后者是前者的升级。现在网络使用的较多的是IPv4。04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报

服务类型(typeofservice):告诉子网它需要什么类型的服务例如,对数字话音要求快速传递;而对文件传输无差错比快速更重要。该域中,左起3位为优先级(precedence)字段,从0(正常)到7(网络控制分组)。后跟4个标识(flag)位分别表示延迟、吞吐量和可靠性,它们允许主机指明在以上三项指标中它最关心什么。最后一位没有定义。采用数据包优先(优先级)和路由器优先(服务类型)的方法,但灵活性不够,选项过少,目前的路由器不再支持这种服务类型字段。

服务类型字段重定义:差分服务利用差分服务代码点标识符(

DSCP

)确定流量的优先等级,并依据这个等级值排队和转发流量实时应用就需要用到DSCP46对应的加速转发拥塞控制利用显式拥塞控制(ECN)来向设备提供一种在路由器开始丢弃数据包之前,链路发生拥塞时相互通知的方法01234567优先级ToS0ToS=1000—

最小延迟

0100—

最大吞吐量

0010—

最大可靠性0001—

最小成本0000—

正常业务CISCO提出的服务类型组件:04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报标识(identification):

由信源机产生,每次自动加1。用来让目的主机确定新到达的分段(fragment)属于哪一个数据报。同一数据报的所有分段包含相同的标识值。标志:

IP数据包分割控制标志,用于表示该IP数据包是否允许分片以及是否是最后一片。DF:

置“1”表示不要分段(don‘tfragment),它命令路由器不要将数据报分段。置“0”表示需要的话数据就会被分段。

MF:

表示当前分段后面是否还有更多的分段(morefragment)。除了最后一个分段外,所有同一数据报的各分段中该位都要置位“1”。分段偏移量(fragmentoffset):

告知本分段在当前数据报的位置。除了最后一个分段以外,一个数据报的所有分组必须是8字节的倍数,即8字节为一个基本分段单位。该域有13位,所以每个数据报最多有8192个分段,数据报长度最大可达到65536字节,比总长度域的最大值大1个字节。分片字段举例偏移=0/8=0偏移=0/8=0偏移=1400/8=175偏移=2800/8=350140028003799279913993799需分片的数据报数据报片1首部数据部分共3800字节首部1首部2首部3字节0数据报片2数据报片314002800字节0各字段值总长度标识MFDF片偏移原始数据报382012345000数据报片1142012345100数据报片214201234510175数据报片310201234500350

每一种硬件技术都规定了一帧所能携带的最大数据量。这一限制称为最大传输单元(MaximumTransmissionUnit,MTU)。网络硬件在设计上不能接受或传输数据量大于MTU的帧。因而一个数据报必须小于或等于一个网络的MTU。分段(fragmentation)

当一个数据报的尺寸大于将发往的网络的MTU值时,路由器会将数据报分成若干较小的段(fragment),然后再将每段独立的进行发送。每个段与原数据包具有同样的格式,只是头部的稍有不同。标志域中有一位标识了一个数据报是一个段还是一个完整的数据报。头部的段偏移(fragmentoffset)域指出该段在原始数据报中的位置。分段时机R1R2

网络2MTU=620

网络1MTU=1500

网络3MTU=1500主机A主机B实行分段无须分段从大到小从小到大路由器将原始数据包IP首部的标识符字段放到每个分段中路由器将TTL值减1,并把新的TTL值放到每个分段中路由器计算分段数据的相对位置,即分段偏移量,并将片偏移值及其他标志字段放入分段中路由器计算并放入校验和字段,并加入数据链路层首部发送每个分段分段方法分段的传输和控制传输每个分段独立选择传输路径,“尽力传递”控制(定义分段头参数)信源机赋予数据报的标识,识别此片所属分组,用于分组重组。“000”,片未完;“001”,不分片。提供分段顺序信息

在所有段的基础上重新产生原数据报的过程叫重组(reassembly)。由于每个段都以原数据报头部的一个副本作为开始,因此都有与原数据报同样的目的地址。含有最后一块数据的段在头部设置有一个特别的位(MF),因此,执行重组的接收方能报告是否所有的段都成功地到达。只有最终目的主机才会对段进行重组。重组发送方将一个惟一的标识放进每个输出数据报的标识(identification)域中。当一个路由器对一个数据报分段时,就会将这一标识数复制到每一段中,接收方就可利用收到的段的标识数和IP源地址来确定该段属于那个数据报。另外,段偏移(fragmentoffset)域可以告诉接收方各段的次序。IP软件怎样重组乱序的段只有一个数据报的所有的段都收到了,才能重组该数据报。一些段由于延迟或丢失会影响数据报的重组,接收方须保留所有已收到的段,以防未到的段可能只是被延迟。接收方不能将这些段保留任意长的时间,因为它们会占用大量的内存资源。当数据报的第一个分段到达时,接收方从该数据包的TTL值开始计数。如果数据报的所有段在定时器过期之前到达,接收方取消计时,重组数据报。否则,接收方丢弃已到达分段,并发送一个ICMP应答,表明数据包过期,要求重发。重组计时04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报生存时间TTL(timetolive):

是指数据包还能穿越的剩余距离,用来防止数据包陷入无限循环。

其最大值为255。推荐值为128。

该字段每被路由器转发一次,TTL值就减1。 TTL值为1的数据包到达路由器时,路由器会丢弃数据包04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报运输层网络层首部TCPUDPICMPIGMPOSPF数据部分IP数据报协议字段指出应将数据部分交给哪一个进程

协议(protocol):

告诉网络层把收到的数据报送给哪一个传输层进程,可能是TCP,也可能是UDP或其他。协议编号在整个Internet中是全局唯一的,定义参考RFC1700。ProtocolKeywordProtocol01234568917294155-608092101-254255ICMPIGMPGGPIPSTTCPEGPIGPUDPISO-TP4SIPISO-IPMTPReservedInternetControlMessageInternetGroupManagementGateway-to-GatewayIPinIP(encasulation)StreamTransmissionControlExteriorGatewayProtocolanyprivateinteriorgatewayUserDatagramISOTransportProtocolClass4SimpleInternetProtocolUnassignedISOInternetProtocolMulticastTransportProtocolUnassignedReserved04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报首部校验和(headerchecksum):只验证IP首部。每经过一个路由器该字段都必须重新计算,因为至少有一个字段(生存时间字段)的值是一直在变化的。校验和不计算被封装的数据,TCP、UDP和ICMP都有各自的校验和。按照IP校验和算法的定义,头部被分成16位的字进行1的补码相加求和,计算中要注意加上进位。发现校验和错时:数据报必须立即丢弃,不作进一步的处理。首部校验和发送端接收端16bit字116bit字216bit字n……取反码数据报首部IP数据报16bit字116bit字216bit字n……取反码数据部分数据部分不参与检验和的计算USHORTchecksum(USHORT*buffer,intsize){unsignedlongcksum=0;while(size>1){cksum+=*buffer++;size-=sizeof(USHORT);}if(size){cksum+=*(UCHAR*)buffer;}cksum=(cksum>>16)+(cksum&0xffff);cksum+=(cksum>>16);return(USHORT)(~cksum);&按位与

|按位或

^按位异或

~取反

<<左移

>>右移C语言实现网际校验和算法4500015601E640008006

0A0A8A9FCA77E60A0000????反码算术运算4D6C3⊕4D6FB290B290FFFF0000⊕=04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源站

IP

地址目地站

IP

地址长度可变的可选字段比特首部长度20个字节固定长度可变长度01234567DTRC未用优先级数据数据部分首部传送IP数据报

源地址和目的地址:

指明发送数据报的源和目的的网络号和主机号。

选项(options):

用来提供一种余地,使协议的后来版本可以包含原有设计中没有的信息,也可以使试验者能尝试他的新想法。主要是用于额外的路由控制。选项域的长度是可变的,每个选项都以一个字节表明内容。某些选项还跟有一个字节的选项长度字段,其后是一个或多个数据字节。选项类选项号选项长度字段00-选项结束01-空操作0211安全03可变松散源路由09可变严格源路由07可变记录路由24可变Internet时间戳目前定义了5种选项,列表如下:选项描述安全性(security)指明数据报的机密程度(IPSec)严格的源路由选择

(strictsourcerouting)指定一个IP地址列表,不能和指定的路径有任何背离松散的源路由选择

(loosesourcerouting)指定一个IP地址列表,指定的路径可以发生变化记录路由(recordroute)路由器执行数据报路径的跟踪任务,存储动态增长的路由列表时间戳(timestamp)是每个路由器都附上它的地址和时间标记IPv6数据包一般形式基本首部

扩展首部1

扩展首部N…数据部分选项IPv6数据报有效载荷041631版本比特目的地址源地址下一个首部流标号12流量类型(128bit)(128bit)有效载荷长度跳数限制24扩展首部/数据IPv6的基本首部(40B)IPv6的有效载荷(至64KB)流量类型--区分不同的IPv6数据报的类别和优先级。包括1bit的延时敏感字段、3bit的优先级字段和4bit的保留流标号--“流”是互联网络上从特定源点到特定终点的一系列数据报,“流”所经过的路径上的路由器都需要按照指明的服务质量进行特殊处理有效载荷字段(以8字节为单位)下一个首部字段—指明在该首部之后的下一个首部的类型跳限制字段—被网络节点每转发一次,该字段就减1IPv6数据包的基本首部扩展首部使IPv6数据包可以以较小的长度实现其他一些特殊功能每个扩展首部对应了一个特定的值一旦IPv6数据包被发送出去,网络路径上的任何节点都不会查看任何扩展首部,直到该数据包到达了目的地址。再由目的主机处理首部内容扩展首部的处理顺序有严格的要求除目的地选项扩展首部外,任何数据包中每个扩展首部只能出现一次IPv6扩展首部IPv6将原来IPv4首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。数据报途中经过的路由器不处理这些扩展首部(只有一个首部例外,即逐跳选项扩展首部)。提高了路由器的处理效率。IPv6扩展首部IPv6扩展首部下一头部描述下一头部描述0逐跳选项头44分片扩展首部1ICMP50封装安全协议扩展首部6TCP51认证扩展首部17UDP60目的选项扩展首部43路由扩展首部逐跳选项扩展首部目的地选项扩展首部路由扩展首部分段扩展首部认证扩展首部封装安全有效载荷扩展首部IPv6扩展首部处理顺序IPv6数据包扩展首部基本首部下一个首部=TCP/UDP基本首部下一个首部=路由选择路由选择首部下一个首部=分片分片首部下一个首部=TCP/UDPTCP/UDP首部和数据

(TCP/UDP报文段)有效载荷有效载荷TCP/UDP首部和数据

(TCP/UDP报文段)无扩展首部有扩展首部逐跳选项扩展首部首部格式见图3-10当源主机需要将某些信息传递给数据包所经过的所有路由器时,就要采用逐跳选项扩展首部,对传输路径中的路由器进行影响和控制路由警告超大包路由器警告IPv6首部删除了服务质量有关的字段,以更灵活的方式通过选项首部实现服务质量需求,提高了对默认服务质量的处理速度通过逐跳选项扩展首部,数据包只能被指定的所有或部分服务器处理,IPv6就可以创建各种使用服务质量协议的工具。路由器警告选项告诉中间路由器查看数据包以获得相关信息。如果没有这个选项,路由器就会直接转发资源预留协议(RSVP,主要是为了提高对Internet上的动态资源分配的方法)就必须在逐跳选项扩展首部中使用路由器警告选项选项格式见图3-18,可能值见表3-9超大包标准IPv6数据包的有效载荷字段长度为2字节,能携带的数据包可达216超大包采用逐跳选项扩展首部,增加了一个32字节的数据包长度字段,最大可到40亿字节。适合于主干网和高容量网络格式见图3-17超大包需满足的条件数据包首部的有效载荷字段设为0下一个首部字段设为0目的地选项扩展首部当信源需要将信息仅传给目的地址时,使用目的地选项扩展首部中间路由器不允许读取这些信息路由扩展首部用于严格或宽松的源路由。格式见图3-12由发送方提前计算好希望数据包在传输路径中要访问的所有路由器,并把它们的地址以有序列表的形式放在首部中,最终到达的目的地址作为列表的最末端数据包传送过程中,逐个将列表中的下一个路由器放到IPv6首部的目的地址字段分段扩展首部IPv6不支持转发分段,因此必须先由PMTU发现传输路径所能支持的最大分段在发送端,如果数据包比PMTU更大,就需要用到分段扩展首部在发送端分段。首部的字段与IPv4的一样,标识、标志(最后一个分段值为0),片偏移(图3-13)原始数据包分成两个部分:不可分段部分(包括IPv6基本首部和不可分段的扩展首部)和可分段部分(其余部分)。每个分段都由不可分段部分+分段扩展首部+可分段部分分成的段组成IPv6MTU与数据包处理路径MTU发现的机制利用ICMPv6协议(遇到太大的数据包而无法转发时,会丢弃数据包,并发回一个数据包太大的ICMP消息)源节点目的节点最大MTU第一跳路由器第二跳路由器第三跳路由器IPv6MTU与数据包处理路径MTU发现的机制利用ICMPv6协议(遇到太大的数据包而无法转发时,会丢弃数据包,并发回一个数据包太大的ICMP消息)源节点目的节点更小MTU第一跳路由器第二跳路由器第三跳路由器IPv6MTU与数据包处理路径MTU发现的机制利用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论