西北工业大学<<计算机网络原理>>project专用纸Noi题目:接收并解析IP分组姓名:学号:班号:时间:2016/10/23西北工业大学<<计算机网络原理>>project专用纸Noii计算机学院时间:目录摘要1目的....................................................................................12要求....................................................................................13相关知识.............................................................................14实现原理及流程图..........................错误!未定义书签。5程序代码.............................................................................96运行结果与分析.................................................................97参考文献...........................................................................15西北工业大学<<计算机网络原理>>project专用纸No1题目:接收并解析IP分组1、目的IP分组是网络层传输的基本单元,通过接收和解析IP分组,了解IP分组基本结构与IP协议基本功能2、要求(1)以命令行方式运行:DOS>ParseIPlog_file;以命令方式显示,并保存文件。其中,ParseIP为程序名,log_file为文件名(2)输出内容:IP分组首部每个字段,以及数据用ASCII码显示。(3)当程序收到输入“CTRL+C”时退出。3、相关知识互联网络层是TCP/IP协议参考模型中的关键部分。IP协议把传输层送来的消息组装成IP数据包,并把IP数据包传递给数据链路层。IP协议的数据包格式如下:西北工业大学<<计算机网络原理>>project专用纸No21.IP数据报首部的固定部分中的各字段①版本:占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。日前广泛使用的IP协议版本号为4(即IPv4)。IPv6目前还处于起步阶段。②首部长度:占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。这样做的目的是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。③服务:占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(DifferentiatedServices)。只有在使用区分服务时,这个字段才起作用。④总长度:总长度指首都及数据之和的长度,单位为字节。因为总长度字段为16位,所以数据报的最大长度为216-1=65535字节。在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,即最大传送单元MTU(MaximumTransferUnit)。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。⑤标识(Identification):占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接的服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。⑥标志(Flag):占3位,但目前只有2位有意义。标志字段中的最低位记为MF(MoreFragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。标志字段中间的一位记为DF(Don'tFragment),意思是“不能分片”。只有当DF=0时才允许分片。⑦片偏移:占13位。较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。⑧生存时间:占8位,生存时间字段常用的英文缩写是TTL(TimeToLive)...