以太网数据包格式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

以太网数据包格式 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】
时隙在一般的数字通信原理中是这样定义的:
由各个消息构成的单一抽样的一组脉冲叫做一帧,一帧中相邻两个脉冲之间是时间间隔叫做时隙.
而以太网的时隙有它自己的特定意义.
(1)在以太网CSMA/CD规则中,若发生冲突,则必须让网上每个主机都检测到。

但信号传播到整个介质需要
一定的时间。

(2)考虑极限情况,主机发送的帧很小,两冲突主机相距很远。

在A发送的帧传播到B的前一刻,B开始发送帧。

这样,当A的帧到达B时,B检测到了冲突,于是发送阻塞信号。

(3)但B的阻塞信号还没有传输到A,A的帧已发送完毕,那么A就检测不到冲突,而误认为已发送成功,不
再发送。

(4)由于信号的传播时延,检测到冲突需要一定的时间,所以发送的帧必须有一定的长度。

这就是时隙需要解
决的问题。

这里可以把从A到B的传输时间设为T,在极端的情况下A要在2T的时间里才可以检测到有冲突的存在
1,电磁波在1KM电缆的传输时延约为5us(这个数字应该记下来~~~),如果在理想情况下
2,在10Mbps的以太网中有个5-4-3的问题:10Mb/s以太网最多只能有5个网段,4个转发器,而其中只允许3个网段有设备,其他两个只是传输距离的延长。

按照标准,10Mbps以太网采用中继器时,连接最大长度为2500米!
那么在理想的情况下,时隙可以为2500/1000*5*2us=25us,但是事实上并非如此简单.实际上的时隙一定会比25us大些.接下来说明一下~~~
3,在以太网在,时隙也可以叫做争用期,只有经过争用期这段时间没有检测到冲突碰撞,发送端才能肯定这次发送不会发生碰撞.然后当发生了碰撞而停止之后,以太网上的机器会再次侦听,再发送,这就有个再次碰撞的可能性,这里以太网使用了截断二进制指数类型的退避算法来解决,在碰撞之后,会推迟一个随机时间(具体略),这也会对争用期的选择有些影响.
而这个截断二进制指数类型的退避算法的有关说明,可以看看我回的这个帖子~
基于上面所说的原因,也因为考虑到了端到端时延,而且还包括其他的许多因素,如可能存在的转发器所增加的时延等等~~~~以太网取为争用期,也就是时隙
对于10Mbps以太网来说,10Mb/s*=512bit,所以一般说的512bit时隙长度就是这样来的,这个长度为512/8=64字节.以太网在发送数据时,如果在前面64字节没有发生冲突的话,那么后续的数据就不会发生冲突,以太网就认为这个数据的发送是成功的.
100Mbps和1000Mbps以太网的时隙
(1)100Mbps以太网的时隙:
100Mbps以太网的时隙仍为512位时,以太网规定一帧的最小发送时间必须为μs。

(2)1000Mbps以太网的时隙
1000Mbps以太网的时隙增至512字节,即4096位,这个还望DX来指点.....
帧间间隔的概念:
MAC子层的标准还规定了帧间最小的间隔是,相当于96bit的发送时间,就是说一个主机在检测到总路线开始空闲后,还要等待才能发送数据.这样做是为了使刚刚收到的数据帧的主机的接收缓存来得及清理,做好接收下一帧的准楼主大概明白了吧翻了数字通信原理,计算机网络,TCP/IP的书啊....版主可以加分的吗谢谢!
以太网数据包如下表结构所示:
目地地址(6B)原地址(6B)类型(2B)数据(46~1500B)校验和(4B)IP数据包结构如下页表:版本号(4位)头长度(4位)服务类型TOS(8位)总长度(16位)标示(16位)标志(3位)头偏移(13位)生存时间TTL(8位)上层协议标示(8位)头部校验和(16位)源IP地址(32位)目的IP地址(32位)选项数据TCP抱文结构如下表:TCP源端口号(16位)TCP目的端口号(16位)系列号(32位)确认号(32位)首部长度(4位)保留位(6位)URGACKPSHRSTSYNFIN窗口大小(16位)检验和(16位)紧急指针(16位)选项填充数据区UDP抱文结构如下表:UDP源端口号(16位)UDP目标端口号(16位UDP长度(16位UDP校验和(16位数据区
IP包首部格式
2009-12-1014:26:02阅读85评论0字号:大中小
IPv4首部一般是20字节长。

在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016。

IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到60字节(总
是4个字节4个字节的扩展)
0 4 8 12 16 19 24 31
IP包头字段说明
版本:4位,指定IP协议的版本号。

包头长度(IHL):4位,IP协议包头的长度,指明IPv4协议包头长度的字节数包含多少个32位。

由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。

IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5(5x4=20字节)。

就是说,它
表示的是包头的总字节数是4字节的倍数。

服务类型:定义IP协议包的处理方法,它包含如下子字段
过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~7(网
络控制)
延迟字段:1位,取值:0(正常)、1(期特低的延迟)
流量字段:1位,取值:0(正常)、1(期特高的流量)
可靠性字段:1位,取值:0(正常)、1(期特高的可靠性)
成本字段:1位,取值:0(正常)、1(期特最小成本)
未使用:1位
长度:IP包的总长
认证:
标志:是一个3位的控制字段,包含:
保留位:1位
不分段位:1位,取值:0(允许数据报分段)、1(数据报不能分段)更多段位:1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)
段偏移量:当数据分组时,它和更多段位(MF,Morefragments)进行连接,帮助目的主机将分段的包组
合。

TTL:表示数据包在网络上生存多久,每通过一个路由器该值减一,为0时将被路由器丢弃。

协议:8位,这个字段定义了IP数据报的数据部分使用的协议类型。

常用的协议及其十进制数值包括
ICMP(1)、TCP(6)、UDP(17)。

校验和:16位,是IPv4数据报包头的校验和。

源IP地址:
目的IP地址:
数据在经过IP网络层时,也会对数据进行封装,也就有相应的IP协议包头了。

在以太网帧中,IPv4包头紧跟着以太网帧头,同时以太网帧头中的协议类型值设置为十六进制的
0800。

它的基本格式如图3-12所示。

版本(Version)
指定IP协议的版本号。

因为目前仍主要使用IPv4版本,所以这里的值通常是0x4(注意封
包使用的数字通常都是十六进位的)。

占4位。

图3-12?IP协议头格式
包头长度(InternetHeaderLength,IHL)
指明IPv4协议包头长度的字节数包含多少个32位。

由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。

IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5。

占4位。

由于它是一个4比特字段,因此首部最长为60个字节,但实际上目前最多仍为24个字节。

服务类型(TypeofService,TOS)
定义IP封包在传送过程中要求的服务类型,共由8个bit组成其中每个bit的组合分别代表不同的意思。

4bit中只能置其中1bit。

如果所有4bit均为0,那么就意味着是一般服
务。

具体如下:
000.....(Routine):过程字段,占3位。

设置了数据包的重要性,取值越大数据越重要,取
值范围为:0(正常)~7(网络控制)
...0....(Delay):延迟字段,占1位,取值:0(正常)、1(期特低的延迟)....0...(Throughput):流量字段,占1位。

取值:0(正常)、1(期特高的流量)
.....0..(Reliability):可靠性字段,占1位。

取值:0(正常)、1(期特高的可靠性)…..0.(ECN-CapableTransport):显式拥塞指示传输字段,占1位。

由源端设置,以显示源端节点的传输协议是支持ECN(ExplicitCogestionNotification,显式拥塞指示)的。

取值:0
(不支持ECN)、1(支持ECN)
.......0(CongestionExperienced):拥塞预警字段,占1位。

取值:0(正常,不拥塞)、1
(拥塞)
包长度(TotalLength,TL)
指定IP包的总长,通常以byte做单位来表示该封包的总长度此数值包括标头和数据的总和。

它以字节为单位,占16位。

利用首部长度字段和总长度字段,就可以知道IP数据报
中数据内容的起始位置和长度。

【经验之谈】由于该字段长16比特,所以IP数据报最长可达65535字节。

尽管可以传送一个长达65535字节的IP数据报,但是大多数的链路层都会对它进行分段。

而且,主机也要求不能接收超过576字节的数据报。

由于TCP把用户数据分成若干段,因此一般来说这个限制不会影响TCP。

UDP的应用(如RIP、TFTP、BOOTP、DNS、SNMP 等),都限制用户数据报长度为512字节,小于576字节。

但是,事实上现在大多数的
实现允许超过8192字节的IP数据报。

总长度字段是IP首部中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。

尽管以太网的最小帧长为46个字节(将在本章后面介绍),但是IP数据可能会更短。

如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的
内容。

标识(Identification)
每一个IP封包都有一个16位的唯一识别码。

当程序产生的数据要通过网络传送时都会被拆散成封包形式发送,当封包要进行重组的时候这个ID就是依据了。

占16位。

标识字段唯一地标识主机发送的每一份数据报。

通常每发送一份消息它的值就会加1。

RFC791认为标识字段应该由让IP发送数据报的上层来选择。

假设有两个连续的IP数据报,其中一个是由TCP生成的,而另一个是由UDP生成的,那么它们可能具有相同的标识字段。

尽管这也可以照常工作(由重组算法来处理),但是在大多数从伯克利派生出来的系统中,每发送一个IP数据报,IP层都要把一个内核变量的值加1,不管交给IP的数据来自哪一层。

内核变量的初始值根据系统引导时的时间来设置。

标记(Flags)
这是当封包在传输过程中进行最佳组合时使用的3个bit的识别记号。

占3位。

000(ReservedFragment):保留分段。

当此值为0的时候表示目前未被使用。

.0.(Don'tFragment):不分段。

当此值为0的时候表示封包可以被分段,如果为1则不能被
分割。

..0(MoreFragment):更多分段。

当上一个值为0时,此值为0就示该封包是最後一个封
包,如果为1则表示其後还有被分割的封包。

分段偏移(FragmentOffset,FO)
当封包被分段之后,由于网路情况或其它因素影响其抵达顺序不会和当初切割顺序一至,所以当封包进行分段的时候会为各片段做好定位记录,以便在重组的时候就能够对号入座。

值为多少个字节,如果封包并没有
被分段,则FO值为“0”。

占13位。

生存时间(TimeToLive,TTL)
生存时间字段设置了数据报可以经过的最多路由器数,表示数据包在网络上生存多久。

TTL的初始值由源主机设置(通常为32或64),一旦经过一个处理它的路由器,它的值就减去1。

当该字段的值为0时,数据报就被丢弃,并发送ICMP消息通知源主机。

这样当封包在传递过程中由於某些原因而未能抵达目的地的时候就可以避免其一直充斥在网路
上面。

占8位。

协议(Protocol,PROT)
指该封包所使用的网络协议类型,如ICMP、DNS等。

占8位。

各协议对应的值如表3-1
所示。

表3-1?协议号
头校验和(Headerchecksum)
指IPv4数据报包头的校验和。

这个数值用来检错用的,用以确保封包被正确无误的接收到。

当封包开始进行传送后,接收端主机会利用这个检验值会来检验余下的封包,如果一切无误就会发出确认信息表示接收正常。

与UDP和TCP协议包头中的校验和作用是一样
的。

占16位。

【经验之谈】首部检验和字段是根据IP首部计算的检验和码,不对首部后面的数据进行计算。

ICMP、IGMP、UDP和TCP协议在它们各自的首部中均含有同时覆盖首部和数据
检验和码。

为了计算一份数据报的IP检验和,首先把检验和字段置为0。

然后,对首部中每个16位进行二进制反码求和(整个首部看成是由一串16位的字组成),结果存在检验和字段中。

当接收端收到一份IP数据报后,同样对首部中每个16位进行二进制反码的求和。

由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。

如果结果不是全1(即检验和错误),那么IP就丢弃收到的数据报。

但是不生成差错消息,由上层去发现丢失的数据报
并进行重传。

ICMP、IGMP、UDP和TCP都采用相同的检验和算法,尽管TCP和UDP除了本身的首部和数据外,在IP首部中还包含不同的字段。

由于路由器经常只修改TTL字段(减1),因此当路由器转发一份消息时可以增加它的检验和,而不需要对IP整个首部进行重
新计算。

源地址(SourceAddress,SA)
发送IP数据包的IP地址。

占32位。

目的地址(DestinationAddress)
接收IP数据包的IP地址。

也占32位。

选项(Options)+填充(Padding)
这两个选项较少使用,只有某些特殊的封包需要特定的控制才会利用到。

共32位。

这些
选项通常包括:
安全和处理限制:用于军事领域
记录路径:让每个路由器都记下它的IP地址
时间戳:让每个路由器都记下它的IP地址和时间
宽松的源站选路:为数据报指定一系列必须经过的IP地址
严格的源站选路:与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其
他的地址。

以上这些选项很少被使用,而且并非所有的主机和路由器都支持这些选项。

选项字段一直都是以32位作为界限,在必要的时候插入值为0的填充字节。

这样就保证IP首部始终是
32位的整数倍(这是首部长度字段所要求的)。

从以上IP包头格式可以看出,IP协议包头大小也有两种:当没有“选项”这个字段时,为160位,20个字节;当有“选项”字段时为192位,24个字节。

它与TCP协议包头大小是
一样的。

相关文档
最新文档