计算机网络制作者:ywmIP格式图VerHLenTOSTotalLengthIdentifierFragOffsetTTLProtocolHCSSourceIPAddressDestinationIPAddressIPOptions(ifany)PaddingData048161931MFDF可变部分首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分数据部分首部IP数据报固定部分发送在前首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分数据部分首部IP数据报固定部分可变部分区分服务发送在前首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分版本——占4位,指IP协议的版本目前的IP协议版本号为4(即IPv4)区分服务1.IP数据报首部的固定部分中的各字段首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分首部长度——占4位,可表示的最大数值是15个单位(一个单位为4字节)因此IP的首部长度的最大值是60字节。区分服务计算机网络制作者:ywm格式域•Ver:版本号(=4)•HLen:首部长度(包括Option域)–长度单位4字节–无Option时,HLen=5(20字节)•TotalLength:本报文总长度–单位:字节–包括:首部域、Option域、数据域–IP报文最大长度:65536首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分区分服务——占8位,用来获得更好的服务在旧标准中叫做服务类型,但实际上一直未被使用过。1998年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段区分服务计算机网络制作者:ywm服务类型(TOS)•3bit的优先级•1bit未用(必须为0)•4比特TOS–D:最小时延–T:最大吞吐率–R:最高可靠性–C:最小费用–RFC1340描述标准应用如何使用TOS设置–RFC1349进一步描述了TOS的特性区分服务——占8位,用来获得更好的服务在旧标准中叫做服务类型,但实际上一直未被使用过。1998年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分总长度——占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传送单元MTU。区分服务首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分标识(identification)占16位,它是一个计数器,用来产生数据报的标识。区分服务首部04816192431版本标志生存时间协议标识区分服务总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分。区分服务课件制作人:ywm头3位用于优先级(0-7),指定数据报的优先级,可用于拥塞控制,但目前几乎所有的主机和路由器都忽略此信息。D:设置后表示要求低延迟T:设置后表示要求高吞吐量R:设置后表示要求高可靠都用来给路由选择提供建议,但不是一定要执行的。优先级DTR保留课件制作人:ywmIDENTIFICATION、FLAGS和FRAGMENTOFFSET三个字段控制IP数据报的分片(fragmentation)和组合(reassembly)IP数据报的分片和组合:IP数据报是由软件处理,与硬件无关,因而在不同版本的协议中可规定其最大长度。但由硬件处理的低层的数据帧长度是由硬件限定的,例如,以太网最大可传送的帧长为1500个8位组,而FDDI为4470个8位组,这些限定值称为最大传送单元(MTU)。而IP数据报封装在低层的数据帧中,如果数据报需要通过一个具有较小的MTU的物理网络,那么为了适合物理网络MTU的要求,就必须把较大的数据报分片成较小的数据报,分片由路由器来完成,但不提供保证。(路由器处理的最小数据单元为576个8位组)而把较小的数据报组合回原始的数据报在目的主机进行。下页示例图:课件制作人:ywm课件制作人:ywm在TCP/IP中,数据报一旦被分片,则在到达目的主机之前就一直以单独的数据报存在,在到达主机后,才组合成原始的数据报。这样做的缺点:都到接受端主机组合,效率不高,且在MTU大的网络中仍以小的数据报传输,效率不高接受端主机会设置一个组合计时器,若超过一个定时,则不再组合为原始数据报,这样只要有一个小的分组不能到达目的,则整个的原始数据报就出错,这就有可能增大了整个网络传输出错的概率。这也可能是优点,各个小的数据报可以独立路由,均衡负载。课件制作人:ywm在分片后,每一片都与原始的数据报有相同的头格式。TOTALLENGTH字段设置为分片的长度,而非原始数据报的长度数据报头数据1,600数据2,600数据3,200分片1头数据1分片1头数据1分片1头数据1偏移=0/8=0偏移=0/8=0偏移=1400/8=175偏移=2800/8=350140028003799279913993799需分片的数据报数据报片1首部数据部分共3800字节首部1首部2首部3字节0数据报片2数据报片314002800字节0【例4-1】IP数据报分片课件制作人:ywmIDENTIFICATION字段每一个原始数据报的IDENTIFICATION字段包含一个唯一的标识数据报的整数,在分片时,这个整数拷贝到所有分片,以便使主机知道每个分片是属于哪一个数据报FRAGMENTOFFSET字段通过指定各个分片在原始数据报中的偏移量而指定各个分片在原始数据报中的位置FLAGS字段:3位FLAGS的低两位控制分片其中头一位(不要分片)设为1时表示不要分片,当某个路由器认为一个设为不要分片的数据报需要分片时,路由器放弃该数据报并向源主机发送一个出错消息。低一位(更多的分片)指定分片是否是一个原始数据报的中间部分或结束部分。若其设置为0,则表明该分片是最后一个分片,再通过检查各分片的偏移量,目的主机就可以重新组合回原始数据报。首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分生存时间(8位)记为TTL(TimeToLive)数据报在网络中可通过的路由器数的最大值。区分服务•TTL:TimeToLive•(以秒为单位)–该报文的寿命(秒,最大255建议值32)–防止路由成环时,IP被无限次转发–指定数据报在网上的保留时间。协议规定,路由器处理IP报文时,应减去处理所用的时间,TTL为零时,丢弃该报文.这样就不会使一个数据报总在网络中占用资源。–但在没有时钟同步时,一般路由器并不能知道精确的时间,一种简易的途径是:•当路由器处理一个未经长时等待的数据报时,只把TTL字段减一,而如果该路由器负载较大,数据报等待时间长,则减去其从达到路由器到得到处理这一段的秒数。–实际:TTL经过路由器时,被减1首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分协议(8位)字段指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程区分服务计算机网络制作者:ywm•Protocol:上层协议类型–作为IP提供的SAPTCPUDP176IP计算机网络制作者:ywmAssignedProtocolNumber•0:Reserved•1:ICMP•2:IGMP•3:GGP•4:IP•6:TCP•8:EGP•9:IGP•17:UDP•23:Trunk-1•25:Leaf-1•29:ISO-TP4•46:RSVP•48:MHRP•88:IGRP•89:OSPFIGP•93:AX.25•94:IPIP•97:ETHERIP•……运输层网络层首部TCPUDPICMPIGMPOSPF数据部分IP数据报协议字段指出应将数据部分交给哪一个进程首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分首部检验和(16位)字段只检验数据报的首部不检验数据部分。这里不采用CRC检验码而采用简单的计算方法。区分服务发送端接收端16位字116位字2置为全0检验和16位字n16位反码算术运算求和……取反码数据报首部IP数据报16位检验和16位字116位字216位检验和16位字n16位反码算术运算求和16位结果……取反码数据部分若结果为0,则保留;否则,丢弃该数据报数据部分不参与检验和的计算HEADERCHECKSUM字段检校和,确保数据头(而非整个数据报)值的完整性,这就使得封装的高层协议数据需要自己的检校和。首部04816192431版本标志生存时间协议标识总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分固定部分可变部分源地址和目的地址都各占4字节区分服务SOURCEIPADDRESS字段:源主机32位IP地址DESTINATIONIPADDRESS:字段目的主机32位IP地址课件制作人:ywm2.IP数据报首部的可变部分IP首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。选项字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。•PADDING字段(填充字段)–由于IPOPTIONS的字段长度依据所选定的选项而有所不同,PADDING字段的作用是根据IPOPTIONS字段的长度把两个字段的长度和补到32位。•IPOPTIONS字段在一般数据报中并不需要,主要用于网络测试和调试。•IPOPTIONS的第一个8位组为选项代码字段:COPY(1)OPTIONCLASS(2)OPTIONNUMBER(5)•COPY位控制在分片时路由器如何对待这些选项。–COPY位设为1时,指定选项应拷贝到所有分片–COPY位设为0时,指定选项应拷贝到第一个分片•OPTIONCLASS和OPTIONNUMBER指定选项类别并指定各个选项类的特定选项:OPTIONCLASSMEANING0数据报或网络控制1保留2调试或测量3保留OPTIONCLASSOPTIONNUMBERLENGTHDESCRIPTION00-选项列表结尾01-无操作0211军队用03Var用于指定路径的路由07Var跟踪路由08409Var24var时间戳•记录路由选项:–允许源主机建立一个空列表,并让每一个处理了数据报的路由器添加其IP地址到表中。•时间戳选项:–允许源主机建立一个空列表,并让每一个处理了数据报的路由器向列表添加一个项,这个项包含两部分:•其IP地址,时间戳(整数)–这样可以使源主机知道更精确的数据报传输路径