以太网数据包格式.docx

上传人:b****5 文档编号:6112919 上传时间:2023-01-03 格式:DOCX 页数:7 大小:23.17KB
下载 相关 举报
以太网数据包格式.docx_第1页
第1页 / 共7页
以太网数据包格式.docx_第2页
第2页 / 共7页
以太网数据包格式.docx_第3页
第3页 / 共7页
以太网数据包格式.docx_第4页
第4页 / 共7页
以太网数据包格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

以太网数据包格式.docx

《以太网数据包格式.docx》由会员分享,可在线阅读,更多相关《以太网数据包格式.docx(7页珍藏版)》请在冰豆网上搜索。

以太网数据包格式.docx

以太网数据包格式

IMBstandardizationoffice【IMB5AB-IMBK08-IMB2C】

 

以太网数据包格式

时隙在一般的数字通信原理中是这样定义的:

由各个消息构成的单一抽样的一组脉冲叫做一帧,一帧中相邻两个脉冲之间是时间间隔叫做时隙.

而以太网的时隙有它自己的特定意义.

(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

版本

首部长度

服务类型

长度

认证

标志

段偏移量

TTL

协议

校验和

源IP地址

目的IP地址

选项...

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?

协议号

协议号

协议

协议号

协议

00?

IP

22?

XNS-IDP?

01?

ICMP?

27?

RDP?

02?

IGMP?

29?

ISO-TP4?

03?

GGP?

36?

XTP?

04?

IP-ENCAP?

37?

DDP?

05?

ST?

39?

IDPR-CMTP?

06?

TCP?

73?

RSPF?

08?

EGP?

81?

VMTP?

12?

PUP?

89?

OSPFIGP?

17?

UDP?

94?

IPIP?

20?

HMP?

98?

ENCAP?

头校验和(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协议包头大小是一样的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1