您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 2019年IP协议.ppt
Chapter5因特网协议IP数据报Datagram分片Fragmentation选项Options校验和ChecksumIP安全问题IP数据报的选路2IP层将不同的物理网络连接起来,并且是通信子网的最高层,它屏蔽了底层物理网络的实现细节,使得各种物理网络的差异对上层是透明的.IP层提供无连接的IP数据报投递服务,无论传输层使用何种协议,都是由IP来转发数据的.InternetProtocol(IP)RFC791IPLANsMANsWANsICMPIGMPARPRARPNetworkLayerNetworkAccessLayerTransportLayerApplicationLayerTheFeaturesofIPCommunicationFeaturesConnectionless:跨越多个异构物理网通用性IP协议独立的对待要传输的数据报,在传输前不建立连接,传输的数据报需要经过不同的路径.Unreliable:可靠性问题交由高层协议解决数据在传输过程中可能出现丢失,延迟和无序情况Best-effortdeliveryIP尽最大的努力来交付数据报,不轻易放弃数据报5TheFeaturesofIPCommunicationConnectionvs.ReliableConnectionandconnectionlessReliable:errorcontrol,flowcontrol,…面向连接不一定保证可靠,无连接不一定不可靠在连接上容易实现可靠性机制两者之间没有必然联系5.1DatagramInternet数据报互联网把它的基本传输单元称为数据报。与物理网络帧类似,数据报分为首部和数据区。首部包含了源地址和目的地址以及一个标识数据内容的类型字段。一般格式如下图。数据报首部数据报数据区IP不规定数据区的格式,可以用来传输任意数据IP数据报格式类型总长度组号存活时间协议校验和015163132474863647172798095分段IP数据区IP头部控制码源IP地址目的IP地址09596127128159IP报文长,576-64K之间本分组的唯一序号报文所允许经过的“跳”的最大次数,以此避免死循环当前协议编号,如IP、TCP、UDP等将所有以16位为单位的双字节相加,不考虑进位部分,其16位以内的结果即为校验和。版本头长度服务类型0347815标志48505663偏移可以是4版本或6版本以32位的四字节为单位,范围为5-15。4种服务类型:延迟类:请求最低的延迟吞吐量:希望是高的吞吐链路可靠性:选择高可靠链路开销:廉价的路径再次分段后本段在原分组的相对位置允许再次分段标志IPDatagramC语言描述9typedefstruct{intVer:4;inthLen:4U8tos;U16length;U16pid;intflag:3;intoffset:13;U8TTL;U8proto;U16hcs;U32sIP;U32dIP;}IP_Hdr编程验证各个域是否在适当的字节位置IP_HdrHdr;Hdr.Ver=4;Hdr.hLen=sizeof(IP_Hdr)/4;Hdr.tos=34;……char*pH;inti;pH=(char*)&Hdr;for(i=0;isizeof(IP_Hdr);i++)printf(“%d“,p[i]);版本version字段长度为4个比特,用来标识IP协议的版本信息。IP协议存在两个版本:IPv4和IPv6,目前的版本为4无论是主机还是路由器,在收到一个IP数据报时,首先要检查版本字段,以便选择相应的IP协议模块来进行处理。10LengthFieldsHLEN(首部长度字段):4bits以4字节(即32bits)为单位(不是以字节为单位)取值:5~15(即首部长度为20~60bytes)Totallength(总长度字段):16bits以字节单位首部长度(即4*HLEN)+数据长度思考:IP分组的最大长度是多少?65535TypeofServiceFieldTOS(服务类型):8bits该分组所期望的服务质量DTRPrecedenceD:MinimizedelayR:MaximizereliabilityT:MaximizethroughputC:Minimizecost指示对分组进行处理(排队或丢弃)的优先权,值从0(普通优先级)到7(网络控制)该分组所希望的路由转发服务类型,不能同时设置ReserveRFC1349DTRPrecedenceCRFC2474DSCPCUDifferentiatedServicesCodePoint,区分服务编码点CurrentlyUnused(3)服务类型与区分码点服务功能:指定本数据报的处理方式说明:TOS不是必须实现的DTRMU优先级D(elay),T(hroughout),R(eliable)M(onetarycost),U(nused)优先级:8种,0-普通级别,7-网络控制区分码点服务(DSCP)(RFC2474、2475)未用码点功能:把码点值映射到底层服务,多个码点可映射成同一服务。设计思想:将码点映射为底层服务,多个码点值可映射为同一服务。3组服务:XXXXX0IETF分配使用XXXX11本地使用或用于实验XXXX01本地使用或用于实验(将来也可由IETF分配)说明:XXX000对应原来的8个优先级FragmentationFieldsIdentification(标识字段):16bits源站每发送一个分组,标识值+1(源IP地址,标识)全网唯一分组标识Flags(标志字段):3bitsFragmentationoffset(片偏移字段):13bits以8bytes为单位DMFlagsD:DonotfragmentM:Morefragments思考:IP数据报为什么需要被分片?MTU,最大传输单元。当一个数据报较大,无法使用一个帧传输时,IP模块要把它分成多个较小的片,并为各个分片构造一个单独的IP数据报。当同一数据报的各个分片到达目的主机后,IP模块要将其重组,然后才能向上层交付。TimetoLiveFieldTTL(生存时间):8bits分组寿命:防止路由成环时,IP被无限次转发发生网络拥塞为避免这种情况的发生?(TTL)主要用来限制数据报在网络中的存活时间。占一个字节,范围(0-255),秒(最初)处理方法:在路由器收到数据报时,TTL值为t1,处理时延为t2,计算t=t1-t2,如果t0,丢弃数据报;否则将t置为新的TTL值,并转发数据报。取值:分组传输时间+路由器转发处理时间困难(过小,过大)TTL实际:源和目的之间的路由器个数(跳数)路由器转发时将TTL值减1,TTL值为零时丢弃该分组没有彻底解决数据报的投递问题,折中。最大值?255ProtocolField协议:8bits使用IP服务的高层协议HeaderICMPIGMPEGPOSPFTCPUDPNetworklayerTransportlayerIPDatagram1:ICMP2:IGMP4:IP6:TCP8:EGP17:UDP41:IPv689:OSPFChecksumField校验和:16bits差错检测只校验首部,数据部分由高层协议校验无须重复校验数据部分缩短了路由器转发分组时的处理时间基本原理源主机在发送数据报之前,先计算首部校验和,并将计算结果置于首部校验和字段中;目的主机收到数据后,先验证首部校验和,如果验证失败,丢弃该数据报,否则,根据协议字段将数据报交给适当的协议模块处理。OptionField选项:0~40bytes网络测试或调试不是IP分组的必需部分,但其处理是IP软件的必需部分Code8bitsLength8bitsDatavariablelengthCopy1bitClass2bitsNumber5bitsCopy0Copyonlyinfirstfragment1CopyintoallfragmentsClass00Datagramcontrol01Reserved10Debuggingandmanagement11ReservedNumber00000Endofoption00001Nooption00011Loosesourceroute00111Recordroute01001StrictsourcerouteEncapsulationExample:EthernetframIPPacket目的MAC类型FCS源MACPacket66246~150040x0800byteEthernetframeheaderIPheaderIPdataIPDatagramExampleToProcessanIPPacket合法性检查版本长度TTLProtocolChecksumIP地址分片与重组选项处理1.数据报的封装(以太网帧类型0800H)问题:每个网络有固定的MTU,若IP报文长度大于MTU,怎么办?2.数据分片例:IP数据报长度1400字节,网络MTU620字节,如何分片?数据报首部数据报数据区帧头帧数据区首部数据(1600字节)数据1(600字节)数据2(600字节)数据3(200字节)5.2FragmentationMTUMTUHeaderTrailerIPdatagramDatagramFrame数据帧中封装的最大数据长度PhysicalNetworkMTUTokenring(16Mbps)17914Tokenring(4Mbps)4464FDDI4352Ethernet1500X.25576PPP296一个数据报从源端到达目的端可能要经过多次分片;各分片到达目的端之后需要重组成一个大的数据块提交给上层协议.分片控制解决三个问题:如何标识一个数据报的各个分片;如何标识一个数据报的各分片的顺序;如何标识一个数据报分片的结束.标识各个分片:数据报各分片使用与原数据报相同的标识值.各分片的顺序:使用片偏移量来指示各分片中的数据在原始数据报中的起始位置.分片的顺序:标志字段比特位含义0保留未用01DF位(Don’tFragment)0,可分片1,不可分片2MF位(MoreFragment)0,最后一个分片1,不是最后一个分片数据报首部部分DF值为1,则该数据报不能被分片。但此时数据报的长度大于网络的MUT值,则该数据报被丢弃。标识DFMF信源机产生,每个数据报唯一解决了:标识同一数据报的各个分片标识分片在原来数据报文中的位置解决了:分片的顺序MF(MoreFragment):片未完位MF=0,是最后一片MF=1,不是最后一片解决了:分片的结束DF(DonotFragment):不分片位DF=1,强制不允许分片片偏移量FragmentationOperationTobefragmentedbyroutersandasourcehostTobefragmentedwhenitDOESberequiredAdatagramcanbefragmentedmorethanonceAnIPheadermustbeincludedineachfragmentHData1600bytesData2600bytesData3200bytes06001200Offset=0Offset=600/8=75Offset=150DataMTU620HHHData1Data2Data3FragmentationExample402014567001420MTU=142014567原始分组数据0~39991220114201456714567145671456710110175350175275820620MTU=820片3数据:2800~3999片1数据:0~1399片2数据:1400~2799片2.2数据:2200~2799片2.1数据:1400~2
本文标题:2019年IP协议.ppt
链接地址:https://www.777doc.com/doc-4493844 .html