IP的分片与组装
2016-07-22 17:32
337 查看
IP的三位标志:
标志位共有三位。
(1)最高位必须为0,该位必须复制到所有分组中。
(2)不分片位(no not fragment,DF位)。为0,表示可以分片;为1,表示接受主机对分组不能分片。如果长度超过MTU(最大传输单元)而又不可以分片的话,那么只能丢弃该组,并且用ICMP差错报文向源主机报告。
(3)分片位(More fragment,MF位)。该位表示是否是最后一个分片,MF=1表示接收的分组不是最后一片,否则表示是最后一片。
IP如何分片:
(1)检查DF标志位,检查是否允许分片。如果设置了该位,则数据报将被丢弃,并将一个ICMP错误返回给源主机。
(2)基于MTU,确定片长度,将数据长度分为若干部分。(除了最后的数据部分,所有新建的数据选项的长度必须是8个字节的整数倍。)
(3)每个数据部分被放入一个IP数据报,这些数的数据报的报头略微修改了原来的报文头。
(4)除了最后的数据报分片外,每个分片都设置了多个分片标志位。
(5)每个分片的偏移量字段设置为这个数据部分在原来的数据报所占的位置,这个位置相当于原来未分片的数据报的开头处。
(6)如果在原来的数据报中包括了选项,则选项类型字节的高位字节决定了这个信息是被复制到所有的分片数据段,还是只复制到了第一个数据报。
(7)设置新数据报的报文头字段及总长度字段。
(8)重新计算报文头部校验和。
IP的组装:
为了高效第组装分片,用于保存分片的数据结构必须做到:
(1)快速定位属于某一数据报的一组分组。
(2)在属于某一数据报的一组分片中快速插入新的分片。
(3)有效地判断一个数据报的所有分片是否已经全部接收。
(4)具有组装超时机制,如果在重组完成之前定时器溢出,则删除该数据报的所有内容。
NAT(Network Address Tranlation)
网络地址转换,它是一个IETF(Intenet Engineering Task Force ,Internet工程任务组)标准,允许一个整体机构以公用IP地址出现在Internet上,顾名思义,它是一种把内部私有网络地址翻译成合法网络IP地址的技术。因此,我们认为,NAT在一定程度上,能够有效地第解决公网地址不足的问题。
代理服务器(Proxy Serve):
是个人网络和Internet服务商之间的中间代理机构,它负责转发合法的网络信息,对转发进行控制和登记。
相关文章推荐
- JavaScript 获取客户端计算机硬件及系统信息
- JavaScript 获取客户端计算机硬件及系统信息
- UIcollectionView的使用(首页的搭建4)
- Linux device driver ---sleeping(睡眠唤醒)
- sas 64位与office32位不兼容的问题解决方法
- socket实现通讯a+b(包的完整性检测)
- mybatis如何防止sql注入
- keypress、keyup、keydown事件频繁执行优化
- OpenLayers3入门篇-创建地图
- java 线程池ThreadPoolExecutor简介与实例
- [Vibrator]LK阶段如何实现开机震动
- Bootstrap打开Modal后再打开编辑层, 文本框不能输入
- hdu1877-进制转换问题 vector容器
- Unity Shader Example 14 (平面切割图片 )
- 从QWidget继承的圆形进度条QRoundProgressBar,只有370行代码(别忘了有现成的QProgressDialog)
- 邮件措辞小计
- PhotoSwipe中文API(二)
- FTP 的搭建过程和遇到的问题
- 字节流与字符流的区别
- POJ-3468 A Simple Problem with Integers(线段树模板题)