- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内容摘要
IP协议(网际协议),是TCP/IP 协议族中最为核心的协议。所有的数据在此协议机制下都以IP数据报的格式传输。当分组过大不适合在所选硬件接口(即不同网络)上发送时,就要对其分片。在目的主机上再把所有分片组装成一个完整的数据报,提交给上层协议处理。本次设计开发工具为Turboc2.o+win2000,由我们3人独立完成,采用结构化设计思想完成对所有分片的重装,实现IP协议的重装模快。
(一)IP协议重装原理及功能分析
1:设计背景
我们知道,每一个数据链路层都有自己的帧格式,在格式里面规定了数据的最大长度,即MTU。当数据报封装成帧时,长度都应该小于此长度,因此,为了适应不同网络,就要对IP数据报进行分片,分片带来的问题就是要对分片进行重装。
2:重装依据—IP数据报首部
0 15 16 31
4位版本 4位首部长度 8位TOS 16位总长度(字节) 16位标识 3位标志 13位片偏移 8位TTL 8位协议 16位首部检验和 32位源IP地址 32位目的IP地址 32位选项 数据 (图1)IP首部
首部共20字节。
把一份IP数据报分片后,只有到达目的地才进行重新组装。重新组装由目的端的IP层来完成,其目的是分片与重新组装过程对传输层是透明的。如图(1)IP首部为分片后的重装提供了必要的信息:首先,其标识字段包含一个唯一的值,该值在分片后被复制到每个片中;其次,标志字段由3个1bit组成,比特0是保留的,必须为0,比特1是“不分片”,比特2是表示“更多的片”标志,标志字段其它13bit指出该片偏移原始数据报开始处的位置,以8字节单元计算,因此,除最后一个分片外,其他每个分片都望是一个8字节倍数的数据,从而使后面的分片从8字节开始。当数据被分片后,片总长要改为该片的长度。当IP数据报被分片后,每个片都有自己的首部,这样在目的端就有足够的信息来组装这些数据报分片。
处理思想:
IP协议是个无连接的协议,无连接是指IP并不维护任何关于后续数据报的状态信息,因此它不能保证分片都按序到达,另外,属于一个数据报的分片也可能与另一个数据报分片混杂在一起,。为了解决上述问题,我们可
以用重装表图(2)和一些想关链表完成。重装表做的就是找出当前分片是那个组的,将属于同一个数据报的分片进行排序,当所有的分片都到达时将它们重新组装成一个数据报,当然在接收数据时都有一定时间限制,当建立的超时限已过,同时有的分片丢失了,则将接受到的分片都丢掉。
处理过程:
当接收到一个IP数据报时,如果其的片偏移为0而还有“更多分片“也为0,则将数据报发送到适当对列,反之,就去查找重装表项目,如果没有找到,就建立一个新的项目,找到了就在链表适当地方插入此分片。当所有的分片都已经到达,就重装这些分片,将其发送到高层协议,反之,就检查是否超时,如果超时,就丢弃所有分片同时发送ICMP差错报文。
功能分析:
通过上述处理就完成了对分片的重装,就实现不同网络中数据帧的传输。
ST SA DI To F ………. ——链表
图(2)重装表
——链表
ST:状态;SA:源址,DI:数据报ID;TO:超时;F:分片
(二)数据结构定义及处理流程
1:变量定义:
数据报首部:
数据报首部 说明 ip_id 标识字段 ip_off 标志字段 IP_DF 标志字段的”不分片”标志 IP_MF “更多分片“标志 ip_src 源地址 ip_dst 目的地址 ip_p 协议值 ip_len 数据报长度
记数统计量:
ipstat成员 说明 ips_cantfrag 要求分片但被DF禁止而没有发送的数据报报数 ips_odropped 内存不足而被丢弃的分组数 ips_ofragments 被发送的分组数 ips_fragmented 未输出的分片的分组数 全局变量:
ipq:类型Struct,说明—重装表
2:函数设计:
函数 说明 ipintr() 接收分片并交给ip_reass()处理,最后由它把封装好的数据报传给上层 ip_reass() 接受来自ipintr()的分片,并对其进行重装,最后把重装好的数据报交给ipintr()函数 3用到的数据结构以及必要的说明:
ipq(重装表)结构:
struct ipq{
struct ipq *next,*prev; /*重组报头*/
char ipq_tll; /*重装生存时间*/
char ipq_p; /*此片用到的协议*/
short ipq_id;
您可能关注的文档
最近下载
- 八年级学生数学典型错题的成因及教学对策研究.pdf VIP
- G100G150E150激光器中文用户使用指南.pdf VIP
- 《安全系统工程(第3版)》全套教学课件.pptx
- 具身智能在社会治理中的应用与挑战.docx VIP
- 北师大版九年级数学上册特殊平行四边形《单元知识梳理复习题》示范公开课教学课件.pptx VIP
- 北师大版九年级数学上册特殊平行四边形《知识梳理复习题》示范公开课教学课件.pptx VIP
- 武冷双机双级螺杆式压缩机使用说明书.pdf VIP
- 《习作:______让生活更美好》课件.pptx VIP
- 《江苏省 JGT046-2016 岩棉外墙外保温系统应用技术规程》.pdf
- 新《公司法》修订要点解读.pptx VIP
原创力文档


文档评论(0)