ip包的分片和重组实验设计

ip包的分片和重组实验设计

ID:10009860

大小:595.50 KB

页数:8页

时间:2018-05-20

ip包的分片和重组实验设计_第1页
ip包的分片和重组实验设计_第2页
ip包的分片和重组实验设计_第3页
ip包的分片和重组实验设计_第4页
ip包的分片和重组实验设计_第5页
资源描述:

《ip包的分片和重组实验设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验四IP包的分片和重组实验目的通过实验掌握IP数据包的分片和重组的方法。实验内容对一个较长的IP分组进行分片,然后再将所有的分片重新组装成一个IP分组。实验要求(1)从数据包文件如“packet.pkt”中读取分组,并输入一个整数值作为MTU。首先计算分组头校验和,判断分组接收是否正确,然后检查分组长度是否超过MTU。如果长度超过MTU,则检查DF位:若DF位为1,打印出错信息;否则对IP包进行分片,生成各分片的文件,如Fragment1.pkt、Fragment2.pkt等。(2)读取上一步得到的各分片文件,首先计算头校验,检查

2、分片是否正确;然后将各个分片组装成一个完整的分组,并保存在一个数据包文件如“MergedPkt.pkt”中;比较MergePkt.pkt与原始的packet.pkt的数据部分内容,以检验分组分片和重组是否成功。尝试不按顺序读入各个片段,验证重组程序是否仍然能够正确重组分组。实验提示(1)IP数据包的格式为:与数据报的分片与重组有关的字段是:总长度、标识、标志、分片偏移、TTL、16位首部校验和。总长度:总长度以字节为单位,指该IP数据报的总大小,包括首部的20字节以及实际的来自应用层的数据。判断一个数据包是否要进行分片,就是将收到的

3、数据报的总长度与MTU进行比较。如果总长度大于MTU,就需要进行分片。标识:这个16位的字段标识从源主机发出的数据报。当数据报离开源主机时,这个标识与源IP地址唯一地定义了这个数据报。为了保证唯一性,IP协议使用了一个计数器来标识数据报。当IP协议发送数据报时,就把这个计数器的当前值复制到标识字段中,并把这个计数器的值加1。当数据报被分片时,标识字段的值就被复制到所有的分片中,即同一个数据报的所有分片具有相同的标识。这个标识主要是用于在分片组装的时候对每个分片属于哪个数据报进行判断。本次实验只考虑对同一个数据报进行分片,并把这些分片

4、重新组装,因此不需要做这个判断,只要直接把标识拷贝到各分片中即可。标志:这是一个3位的字段,如下图所示:第一个比特保留为以后用;第二个比特是不分片(Donotfragment)位。若这个值是1,机器就不能把该数据报进行分片。若无法把这个数据报通过任何可用的物理网络进行转发,就丢弃这个数据报,并向源主机发送ICMP差错报文。若这个值为0,则在需要的时候可把这个数据报进行分片。第三个比特是还有分片(Morefragment),若这个值是1,则表示这个数据报不是最后的分片,这个分片后面还有更多的分片。若这个值是0,则表示这已是最后的或者是

5、唯一的分片。分片偏移:这个13位的字段表示这个分片在整个数据报中的相对位置。是在原始数据报中的数据偏移量,以8字节为度量单位。这样做是因为分片偏移字段只有13bit长,它不能表示超过8191的字节数。而IP数据报最大的长度为65535字节,因此按8字节为单位可以用13位来表示更多的字节。把数据报进行分片的主机或路由器必须选择每个分片的长度,使得这个长度可以被8整除。如下图所示,一个具有4000字节的数据报,当MTU=1420字节的时候,被划分为3个分片,每个分片长度为1400字节,1400字节是可以被8整除的。为减少分片的数量,每个

6、分片的长度应尽可能大。为用片偏移表示片段的起始位置,除最后一个分片外,其它分片的长度(数据部分,不包括IP头)应能被8整除。如MTU=505的时候,除去20字节IP头,可以传输的最大数据段长度为485字节,但可被8整除及不不超过485的最大整数为480,需要按480来进行分片。TTL:在分片的时候需要对原数据报的TTL进行减1操作,组装的时候不需要此操作。首部检验和:对于每一个分片,设置好各自的总长度、标识、标志、片偏移、TTL之后,需要重新对该IP报头重新计算校验和。(2)IP数据报头的C语言定义可以用类似如下的数据结构:type

7、defstructtagIPHDR{unsignedcharVIHL;//VersionandIHLunsignedcharTOS;//TypeOfServiceshortTotalLen;//TotalLengthshortID;//IDentificationshortFlagOff;//FlagsandFragmentOffsetunsignedcharTTL;//TimeToLiveunsignedcharProtocol;//ProtocolunsignedshortChecksum;//Checksumunsignedl

8、ongSrcAddr;//SourceAddressunsignedlongDstAddr;//DestinationAddress}IPHDR,*PIPHDR;对各个域进行操作时要注意网络字节序与主机字节序的不同。对于8位的域,如T

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。