文件名称:
IP分片时为啥片中数据长度要求为8字节的整数倍
开发工具:
文件大小: 194kb
下载次数: 0
上传时间: 2019-03-17
详细说明:NULL
博文链接:https://lostyue.iteye.com/blog/5402561.3.接口( Interfaces)
在 interne t环境中,本协议被视为主机到主机(host-to-host)的协议。本协
议调用本地网络协议来携带 internet数据报到下一个网关或者目的主机。
比如,TP模块调用 internet模块携带一个TCP分片(该分片包含了TCP头部
和用户数据)作为一个 internet数据报的数据部分。TCP模块会在 internet头
部中提供地址( addresses)和其他参数作为调用 Internet模块的参数。然后
internet模块会创建个 internet数据报并且调用本地网络接凵来传输
internet数据报
比如,对于 ARPANET, Internet模块会调用一个本地网络模块( local net
module),该模块会给 internet数据报添加一个1822个字节的前导字符,创建
条传输给IMP的 ARPANET消息。 ARPANET地址将通过木地网络接凵从 internet
地址中获取,该地址是 ARPANET中的某些主机的地址,该主机可能是个到其他网
络的网关。
1.4操作( operation)
internet协议执行两个基本功能:寻址( addressing)和分片( fragmentation)
internet模块使用在 internet头部中携带的地址来给的地址传送 internet
数据报.传输路径的选择被称作选路( routing)
nternet模块使用 internet头部屮的域来分片和重组 internet数据报,这在通
过”小包"网络传输的情况下是必要的.
操作模型是位于每个主机上的 internet模块负责 internet通信,位于每个网关
上的 lnternet模块负责网络互联.这些模块都具有解析地址,分片和重组数据报
等相同的功能.另外,这些模块(特别是网关上的 internet模块)具有选路和其他
功能对应的程序.
internet协议将每个 internet数据报视为同任何其他 internet数据报无关的
独立实休这里不存在连接或者逻辑回路(虚的或其他)
internet协议使用4个主要的机制提供服务:服务类型( Type of service),生
存时间( Time to live),操作( Operation)和校验和( Header checksum)
服务类型用来指示要求的服务质量.服务类型是一个抽象的整套的参数,这些参
数指定了组成 internet的网络中提供的服务选择.这个服务指示类型在选路的
时候被网关用来为某一个特定的网络,下一个网络或者下一个网关选择真实的传
输参数
生有时间数据报生存时间的上限它由数据报的发送者设定,在网络上每个水
数据报被处理的时候,逐渐递减.如果生存时间在 internet数据报到达目的地.
前达到0值, internet数据报就被销毁.生存时间可以看作一个自我销毁时间限
制
选项( options)提供了在某些情况下需要或有用的控制功能,但是人多数情况下
是不必要的.选项包括时间戳( time s tamp),安全( security)和特殊选路( special
routing
校验和提供了处理 internet数据报使用到的信息被正确传输的确认.数据可能
包含错误.如果校验和失败了, internet数据报就被检测到错误的实体立即丟
弃
Internet协议并没有提供可靠传输机制.没有端对端或者逐朓(hopυ-by-hop的
确认杋制.没有数据的错误控制,只有一个头部校验和.没有重传.没有流控
检测到的错误可以通过 Internet控制消息协议(ICM)来报生,该协议在
internet协议模块中实现.
2.总览( OVERVTEW)
2.1.同其他协议的关系( Relation to0 ther protocols)
下图展示了 Internet协议在协议层次中的地位
Telnet| FTP TFTP
I TCP UDP
Internet protocol ICMP
Local Network Protocol
Protocol relationships
Figure
Internet协议接口往上是高级别的主机到主机的协议,向下则是局域网络协议
( local network protoco1).在这里,局域网络(" local network")可以是在一栋
大楼里面的一个小网络,也可以是像 ARPANET这样的大网络
2.2.操作模型( Model of operation)
从一个应用程序到其他应用程序的传输数据报操作模型可以通过如下例子展示
假设传输包括一个中间网关
发送程序准备好数据后,调用局域网络模块来发送那个数据(该数据作为个
数据报),在调用接口的时候传递∏的地地址和其他参数.
Internet模块组装数据报头部,并且给他附着一个数据. Internet模块为这
个 internet地址确定一个局域网络地址.在这甲,它就是一个网关的地址.它发
送这个数据报和局域网络地址给局域网终接口
局域网络接凵创建个局域网络头部,并为它附着个数薮据报,然后通过局域
岗终传输.
到达网关主机的数据报被封装( wrapped)在局域网络头部.局域网络接口去掉
( strip o^门)头部,然后将数据报传送给 internet模块. internet模块从
internet地址确定数据报需要被发送到第二个网络的其他主机上. internet模
块确定目的主机的局域网地址.调用局域网接凵来发送数据报.
这个局域地址创建一个局域网头部并和数据报组装在一起,然后将组装结
果发送给目的主机
在这个目的主机上,局域网接口去掉数据报的局域网头部,然后交给 internet
模块.
internet模块确定数据报所要交付的应用程序.然后将数据作为一个系统调
用的响应传递给应用程序,调用时传递了源地址和其他参数
Application
Application
Program
Program
Internet module Internet module Internet Module
LNI-1
LNI-1 LNI-2
LN-2
Local network 1
Local network 2
Transmission path
2.3.功能描述( Function Description)
Internet协议的功能和目的是通过一个互联的网络传输数据报.这是通过从
个 Internet模块到另外一个 internet模块传递数据报直到目的地址来实
现. Internet模块位于主机上或者 internet系统上的网关.数据报通过基于一个
nternet地址的解析从一^ interne t模块选路到另一个 lnternet模块.因
此, internet协议的一个重要功能就是 internet寻址
在从一个 internet模垬到另外一个 internet模块的信息寻址屮,数据报可能需
要在一个最大包大小小于数据报大小的网络上传输.为了客服这个困难,在
internet协议中提供了分片机制( fragmentation mechani sm)
寻址( Addressing
名字( name s),地址( addresses)和路由( routes)是有区别的.名字指示了我们所
要寻找的.地址告诉我们它在哪里.路由告诉我们如何到达哪里. internet协议
主要处理地址.从域名到地址的映射是高级别的协议(如主机到主机或者应用程
序)的任务. Internet模块将 Internet地址映射为局域网络地址.将局域网络地
址映射到路由是底层程序(如局域网络或者网关)的任务.
地址固定为4段8位的地址(32位).以岗终号码开始,接下来是本地地址(称
为"其他″部分).有3种形式或者类型的 internet地址:A类地址,第一段的最髙
位为0,其他7位为网络地址.剩下的24位位本地地址.B类地址,前两段为网络
地址,其中前两个字节位10,其他14个字节为网络地址,后两段为本地地址C类
地址的前三段为网络地址,最后段为本地地址在前三段中,前三位为110,其
他21位为网终地址.
在将 internet地址转化位局域网络地址的时候必须注意:单个物理主机必须
能够被视为几个不同的主机,通过使用不同了 internet地址。有些主机还可能有
多个物理接口(mlti- homing)
也就是说,对一个主机来说,必须可以有多个网络的物理接口,每个接口可以
有多个逻辑 Internet地址.
地址映射的例子可以参考" Address mappings"[5]
分片( Fragmentation
当在个允许大包大小的 internet数据报的局域网络上宀生,且必须在包大小
为较小的局域网络上传输的时候,分片是必须的.
个数据报可以标为"不可分片".任何 internet数据报如果这样标记,则在任
何情况下,不能被分片.如果标记为"不可分片"的数据报除非分片不能到达目的
地,则将其丢弃
在对 internet协议模块不可视的局域网络上分片,传输和重组称为 intranet
分片,可以被使用.
internet分片和重组程序需要能够将一个数据报分割成任意数量的块,这些
块可以在之后重组.分片接收者使用 identification头部来确保不同的分片不
被混在一起.分片偏移( fragment offsct)头部告诉接收者分片在原始数据报中
的位置.分片偏移和分片长度( frament length)确定了这个分片所覆盖的原始数
据报的块.Ⅲore- fragments标志(通过重置)指示了最后一个分片.这些头部提供
了足够的信息来重组数据报
dentification头部被用来区分一个数据报的不同分片. internet数据报的
生成( originating)协议模块没定 identification头部为一个值,该值必须是对
源地址和目的地址对和协议范围内在数据包的生存期间是唯一的(详者注:该值
对同一 Source, destination, protocol在生存期间是唯一的).对于一个完整的
数据报数据包的生成协议模块( originating protocol module)设定
more- fragments标志为0,同时设定分片偏移为0
为了对一个长 internet数据报进行分片, internet协议模块(如网关),创建
两个新的 internet数据报,将 internet头部内容从长数据报拷贝到两个新
internet头部.长数据报的数据在8 octet的整数倍边界被分割成两部分(第二
部分不必是8 octets的整数倍,但第部分必须是).将第部分8otet块的数
日为NB( Number of fragment Blocks:分片块个数).第一部分数据被放在第
个新的 internet数据报,总长度头部设置成第一个数据报的长
度.lore- fragments标志设成1.数据的第二部分放在第二个新 interne t数据报
里面.总长度头部设置成第二个数据报的长度.more- fragments标志设置成同长
数据报·样的值.第二个新 internet数据报的片偏移头部值设置成长数据报的
片偏移头部值加上NFB的和.这一过程可以通用化为n次分割,前面描述的是二
分
要重组 internet数据报的分片, internet协议模块(比如目的主机)将
identification,目的地地址,源地址和协议四个头部值一样的 internet数据报
组合在一起.这一结合是通过将每个分片的数据块放在分片的 intenet头部中的
片偏移标识的位置来实现的.第一个分片的分片偏移值为0,最后一个分片的
more- fragments标志为0
2.4.网关( Gateways)
网关实现了 internet协议,可以在恻终间前推数据报.网关也实现了网关到网关
的协议( GateWay to gateway Protocol:GGP协议),用于协调选路和其他 internet
控制信息.
在网关中,高层协议需要被实玑,且GGP功能被加到IP模块.
一
Internet protocol& icmp ggp
+—
Local net
Local Net
Gateway Protocols
Figure 3.
3.规范( SPECIFICATI0N)
3.1. Internet头部格式( Internet header Format
internet头部内容如下:
01234567890123456789012345678901
-+-+-+-+-+-+-+—+-+-+-+-+-+-+-+-+-+-—+-+-+-+-+-+-+-+-+-+-+-+—+—+
Version IhL Type of Service
Total length
+-+-+一+-+-+
Identification
flags
fragment offset
-+-+-+-+一+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+
I Time to Live Protocol
Header Checksum
-+-+-+-+-+
-+-+-
+-+-+-+-+-
Source address
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-—+-+-+-+-+-+-+-+-+-+-+-+一+-+
Destination address
-+-+-+-+-+—+-+-+-+-+-+-++-+-+-+
-+-+-+-+-+-+-+-+—+-+-+-+—
Options
Padding
-+一+-+一+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+
Example Internet datagram Header
Figure 4.
注:每个问隔代表位
版本( version):4位
版本头部指示了 internet头部的格式.本文当描述的是版本4.
Internet头部长度(IHL):4位
internet头部长度是用32位表示的 internet头部的长度,它指向数据的开始处
备注:一个正确头部的最小头部长度值是5.(译者注:5表示头部长度值为5*4=20
Octets
服务类型( Type of Service):8位
服务类型提供了所要求的服务质量的抽象参数的指示.这些参数被用于在一个
特定的网终上传输数据报时指导真实服务参数的选择.有些网络会提供服务优先
级参数( service precedence),高优先级的交通流比其他交通流重要一些(通常
通过在高负载的时候仅接受高于某一特定优先级的交通流来实现).主要的选择
是3方面的权衡:低延迟(1ow- delay),高可靠性(high- reliability),和高吞叶
(high-throughput)
Bits0-2: Precedence(优先级)
Bit3:0- Normal delay(正常延迟),1- Low Delay(低延迟)
Bits4:0= Normal Throughput(正常吞吐),1= High Throughput(高
吞吐)
Bits5:0= Normal Relibility(正常可靠性),1= High Relibility(高
可靠性)
Bit6-7: Reserved for future use(保留)
01234567
PRECEDENCE
D TRiO
Precedence(优先级)
l11- Network control(网络控制)
110- Internetwork Control(互联网终控制)
l0l- CRITIC/ECP(至关重要)
100- Flash override( Flash覆盖)
011-Flash
010- I mmediate(立即)
001- Priority(主要)
000- Routine(常规)
延迟( Delay),吞吐量( roughout)和 Reliability(可靠性)的指示可能会增加服
务的代价.在很多网络中,某一个参数带来的高性能很可能带来其他参数的低性
公做务类型被于在通过 internet系统传输的时候指定数据报的处理在
只有在一些非正常的情况下,这三个指示中两个必须设定
Service mappings[8]屮给出了 internet服务类型到真正的服务类型的映射的例
子,如 AUTODIN1L, ARPANET, SATNET和 PRNET.
网络内控制优先权的指派仪在一个网络内使用.该指派的使用和控制是胜任于网
络内的.网络间控制优先级的指派仅用于网关控制创作者.如果这些优先权指派
的真实使用是同某个特定网络相关的,它就负责那些优先级指派的权限控制和
使用
总长度( Total length):16位
总长度是数据报的总长度,以字节( octets)为单位计量,包含 internet头部和
数据.这个头部允许一个数据报的长度最长到65535个字节.如此长的数据报对
大部分主机和网络来说是不现实的.所有主机必须能够接收长达576个字节的数
据报(不管他们是以整个数据报到达还是以分片到达).推荐主机在确认目的地址
能够接收大数据报的情况下才发送大于576字节的数据报.
选择576这个数字是为了允许传送一个合理人小的数据块,除了要求的头部信息
之外.比如,这个大小允许512个字节的数据块加上64个字节的头部填充于一个
数据报.最大的 internet头部是60个字节,通常 internet头部是20个字节,允
许高层协议流出一个头部富余量
标识( Identification):16位
该标识由发送者设定值,有助于重组数据报的分片
标记(F1ags):3位
不同的控制标记
Bit0:保留,必须位0
Bit1:(DF)0=可以分片( May fragment),1=不可分片(Dont
Fragment)
Bit2:(MF)0=最后一个分片( Last fragment),1=还有分片More
Fragments)
---
DM
0 FF
分片偏移( Fragment offset):13位
该头部指示了这个分片在所属数据报中的位置.分片偏移以8字节(64位)作为计
量单位.第个分片的偏移为0.
生存时间( Time to live):8位
该头部指示了数据报允许在 internet系统中生存的最太时间.如果该头部的
值为0,
数据报必须被销毁.该头部在 internet头部处理的时候被改变,该时间以秒单位
度量,但由于处理数据报的每个模块必须减少T至少1秒,即便该模块处理数据
报的吋间少于1秒,TL必须被视为数据报可以存在的吋间的上限.这样做的目的
是丢弃无法投递的数据报,限制数据报的生存时间
协议( Protocol):8位
该头部指示了在 internet数据报的数据部分中使用的下一个层次的协议.
不同协议的值在” Assigned Numbers”[9中指定
头部校验和( Header Checksum):16位
校验和仅用于头部.当某些头部(比如生存时间)改变的时候,检验和在每个
internet头部被处理的时候被重新计算和确认
校验和的算法如下:
检验和头部是头部中所有16位字的和,为了计算校验和,校验和头部的值是
0.这是计算校验和和实验性证据的简单方法,这指示了它是个充分的,但它是
暂时的,可能被一个CRC程序替代,取决于未来的的实验
源地址( Source address):32位,参见3.2
目的地址( estination address):32位,参见3.2
选项(0 tions):可变
选项可以出现也可以不出现在数据报中.所有的IP模块(主机和网关)必须实现
这个东东.可选的是在任一个特殊数据报中它们的传输,而不是它们的实现
在某些环境下,安全选项( security option)可能在所冇的数据报中需要.
0 ptions头部在长度上是可变的.可以有0到多个的选项. option的格式有两种情
况
情况1:一个单独的8位字节的选项类型( option-type)
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.