精华内容
下载资源
问答
  • 在传统以太网中,为什么要有最小帧长度最大帧长度的限制?以太网(IEEE802.3)帧格式:1、前导码:7字节0x55,一串1、0间隔,用于信号同步2、帧起始定界符:1字节0xD5(10101011),表示一帧开始3、DA(目的MAC):6字节4、...

    在传统以太网中

    ,

    为什么要有最小帧长度和最大帧长度的限制

    ?

    以太网

    (IEEE 802.3)

    帧格式:

    1

    、前导码:

    7

    字节

    0x55,

    一串

    1

    0

    间隔,用于信号同步

    2

    、帧起始定界符:

    1

    字节

    0xD5(10101011)

    ,表示一帧开始

    3

    DA(

    目的

    MAC)

    6

    字节

    4

    SA(

    MAC)

    6

    字节

    5

    类型

    /

    长度:

    2

    字节,

    0

    1500

    保留为长度域值,

    1536

    65535

    保留为类型域值

    (0x0600

    0xFFFF)

    6

    、数据:

    46

    1500

    字节

    7

    、帧校验序列

    (FCS)

    4

    字节,使用

    CRC

    计算从目的

    MAC

    到数据域这部分内容而得到的校验和。

    CSMA/CD

    作为

    MAC

    算法的一类

    LAN

    称为以太网。

    CSMA/CD

    冲突避免的方法:先听后发、边

    听边发、随机延迟后重发。一旦发生冲突,必须让每台主机都能检测到。关于最小发送间隙和最小帧

    长的规定也是为了避免冲突。

    考虑如下的情况,主机发送的帧很小,而两台冲突主机相距很远。在主机

    A

    发送的帧传输到

    B

    的前

    一刻,

    B

    开始发送帧。这样,当

    A

    的帧到达

    B

    时,

    B

    检测到冲突,于是发送冲突信号。假如在

    B

    冲突信号传输到

    A

    之前,

    A

    的帧已经发送完毕,那么

    A

    将检测不到冲突而误认为已发送成功。由于

    信号传播是有时延的,因此检测冲突也需要一定的时间。这也是为什么必须有个最小帧长的限制。

    按照标准,

    10Mbps

    以太网采用中继器时,

    连接的最大长度是

    2500

    米,

    最多经过

    4

    个中继器,

    因此

    规定对

    10Mbps

    以太网一帧的最小发送时间为

    51.2

    微秒。这段时间所能传输的数据为

    512

    位,因

    此也称该时间为

    512

    位时。这个时间定义为以太网时隙,或冲突时槽。

    512

    位=

    64

    字节,这就是以

    太网帧最小

    64

    字节的原因。

    512

    位时是主机捕获信道的时间。如果某主机发送一个帧的

    64

    字节仍无冲突,以后也就不会再发生

    冲突了,称此主机捕获了信道。

    由于信道是所有主机共享的,

    如果数据帧太长就会出现有的主机长时间不能发送数据,

    而且有的发送

    数据可能超出接收端的缓冲区大小,

    造成缓冲溢出。

    为避免单一主机占用信道时间过长,

    规定了以太

    网帧的最大帧长为

    1500

    100Mbps

    以太网的时隙仍为

    512

    位时,以太网规定一帧的最小发送时间必须为

    5.12

    μ

    s

    1000Mbps

    以太网的时隙增至

    512

    字节,即

    4096

    位时,

    4.096

    μ

    s

    对于

    1000Mb/s

    的吉比特以太网,

    MAC

    层有两种选择,

    要么保留

    CSMA/CD

    要么不用它。

    若保留

    CSMA/CD

    协议,必须面临碰撞检测问题,这就要再一次减小网络的最大有效传输距离到

    25

    米。当然您可以不缩短网络的距离,而是增加一个帧的程度,就如我们开始分析

    100Mb/s

    以太网那

    样,让一个帧持续足够长的时间。但因为上层来的数据没有这么多,所以就需要在

    MAC

    层进行一些

    无用数据的填充来满足这个要求。

    展开全文
  • 其中以太网的数据在链路层IP包在网络层TCP或UDP包在传输层TCP或UDP中的数据(Data)在应用层它们的关系是数据{IP包{TCP或者UDP包{Data}}}————————————————————————————————在应用...

    TCP/IP协议,涉及到四层:链路层、网络层、传输层、应用层。

    其中以太网的数据帧在链路层

    IP包在网络层

    TCP或UDP包在传输层

    TCP或UDP中的数据(Data)在应用层

    它们的关系是数据帧{IP包{TCP或者UDP包{Data}}}

    ————————————————————————————————

    在应用程序中我们用到的Data的长度最大是多少,直接取决于底层限制。

    我们从下到上分析一下:

    1.在链路层,由以太网的物理特性决定了数据帧的长度为(46+18)—(1500 + 18),其中的18是数据帧的头和尾,也就是说数据帧的内容最大为1500(不包括帧头和帧尾),即MTU(Maximum Transmission Unit)为1500;

    2.在网络层,因为IP包的首部要占用20字节,所以这的MTU为1500-20 = 1480;

    3.在传输层,对于UDP包的首部要占8字节,所以这的MTU为1480 - 8 = 1472;

    所以,在应用层,您的Data最大长度为1472字节。(当我们UDP包中的数据多于1472时,发送方的IP层需要分片fragmentation进行传输,而在接收方IP层则需要进行数据报重组,由于UDP是不可靠的传输协议,如果分片丢失导致重组失败,将导致UDP数据包被丢弃。)

    从上面的分析来看,普通的局域网环境下,UDP的数据最大是1472字节最好,避免分片重组。

    但是在网络编程中,Internet中的路由器可能设置成不同的值(小于默认值),Internet上的标准MTU值为576,所以Internet的UDP编程时的数据长度最好在576 - 20 -8 = 548字节以内。

    Mac OS点击系统偏好设置——网络——高级——硬件可以查看本机的MTU设置。

    IP数据包的最大长度是64K字节(2^16 -1),因为在IP包头中用2个字节描述报文长度,2个字节所能表示的最大数字就是2^16-1 = 65536 -1 = 65535.

    由于IP协议提供为上层协议分割和重组报文的功能,因此传输层协议的数据包长度原则上来说没有限制。实际上限制还是有的,因为IP包的标识字段终究不可能无限长,按照IPv4,上限是2^32=4G字节。依照这种机制,TCP包头中就没有“包长度”字段,而完全依靠IP层去处理分帧。这就是为什么TCP常常被称作一种“流协议”的原因,开发者在使用TCP服务的时候,不必关心数据包的大小,只需要将SOCKET看作一条数据流的入口,往里面放数据就是了,TCP协议本身会进行拥塞/流量控制。

    UDP则和TCP不同,UDP包头内有总长度字段,同样为2个字节,因此UDP数据包的总长度被限制为(2^16-1),这样恰好可以放进一个IP包内,使得UDP/IP协议栈的实现非常简单高效。65535再减去UDP头本身所占据的8个字节,UDP服务中的最大有效负载长度仅为65527.这个值也就是调用getsockopt()时指定SO_MAC_MSG_SIZE所得到的返回值,任何使用SOCK_DGRAM属性的socket,一次send的数据都不能超过这个值,否则必然得到一个错误。

    那么,IP包提交给下层协议时将会得到怎样的处理呢?取决于数据链路层协议,一般得到数据链路层协议都会负责将IP包分割成更小的帧,然后在目的端重组它,在EtherNet上,数据链路帧的大小如开篇所述。而如果是IP over ATM,则IP包将被切分成一个一个的ATM Cell,大小为53字节。

    展开全文
  • 在传统以太网中,为什么要有最小帧长度最大帧长度的限制? 以太网(IEEE 802.3)帧格式: 1、前导码:7字节0x55,一串1、0间隔,用于信号同步 2、帧起始定界符:1字节0xD5(10101011),表示一帧开始 3、DA(目的MAC...

    在传统以太网中,为什么要有最小帧长度和最大帧长度的限制?

     

    以太网(IEEE 802.3)帧格式:

    1、前导码:7字节0x55,一串1、0间隔,用于信号同步

    2、帧起始定界符:1字节0xD5(10101011),表示一帧开始

    3、DA(目的MAC):6字节

    4、SA(源MAC):6字节

    5、类型/长度:2字节,0~1500保留为长度域值,1536~65535保留为类型域值(0x0600~0xFFFF)

    6、数据:46~1500字节

    7、帧校验序列(FCS):4字节,使用CRC计算从目的MAC到数据域这部分内容而得到的校验和。 以CSMA/CD作为MAC算法的一类LAN称为以太网。CSMA/CD冲突避免的方法:先听后发、边听边发、随机延迟后重发。一旦发生冲突,必须让每台主机都能检测到。关于最小发送间隙和最小帧长的规定也是为了避免冲突。

     

    考虑如下的情况,主机发送的帧很小,而两台冲突主机相距很远。在主机A发送的帧传输到B的前一刻,B开始发送帧。这样,当A的帧到达B时,B检测到冲突,于是发送冲突信号。假如在B的冲突信号传输到A之前,A的帧已经发送完毕,那么A将检测不到冲突而误认为已发送成功。由于信号传播是有时延的,因此检测冲突也需要一定的时间。这也是为什么必须有个最小帧长的限制。

    按照标准,10Mbps以太网采用中继器时,连接的最大长度是2500米,最多经过4个中继器,因此规定对10Mbps以太网一帧的最小发送时间为51.2微秒。这段时间所能传输的数据为512位,因此也称该时间为512位时。这个时间定义为以太网时隙,或冲突时槽。512位=64字节,这就是以太网帧最小64字节的原因。

    512位时是主机捕获信道的时间。如果某主机发送一个帧的64字节仍无冲突,以后也就不会再发生冲突了,称此主机捕获了信道。

    由于信道是所有主机共享的,如果数据帧太长就会出现有的主机长时间不能发送数据,而且有的发送数据可能超出接收端的缓冲区大小,造成缓冲溢出。为避免单一主机占用信道时间过长,规定了以太网帧的最大帧长为1500。

    100Mbps以太网的时隙仍为512位时,以太网规定一帧的最小发送时间必须为5.12μs。 1000Mbps以太网的时隙增至512字节,即4096位时,4.096μs。

     

    对于1000Mb/s的吉比特以太网,MAC层有两种选择,要么保留CSMA/CD,要么不用它。若保留CSMA/CD协议,必须面临碰撞检测问题,这就要再一次减小网络的最大有效传输距离到25米。当然您可以不缩短网络的距离,而是增加一个帧的程度,就如我们开始分析100Mb/s以太网那样,让一个帧持续足够长的时间。但因为上层来的数据没有这么多,所以就需要在MAC层进行一些无用数据的填充来满足这个要求。

    最后,我们推导出以下比例关系:

    最小帧长/传输速率 正比于 网络最大传输距离/光速

    一个网络的最大传输距离也称为冲突域,传输一个最小帧所用的时间(最小帧长/传输速率)正比于1位信息穿越冲突域的时间。

     

    以太网的最大帧长有1518,1522,1536。那么这几个值是怎么来的呢?

    下面是最初802.3定义的以太网帧结构:

    Preamble (7-bytes) --前导位

    Start Frame Delimiter (1-byte) --定界符

    Dest. MAC Address (6-bytes) --目的地址

    Source MAC Address (6-bytes) --源地址

    Length / Type (2-bytes) --长度或帧类型

    MAC Client Data --数据,n最大为1500,即MTU

    (0-n bytes) Pad --填充字段,p最大为46

    (0-p bytes) Frame Check Sequence (4-bytes) --帧校验码

    其实Ethernet V2为实际的标准了。所以我们最常见到的是,源地址后是类型而非长度。

    在1998年提出的802.3ac里,加入了对vlan的支持。也就是在有vlan的情况下在源地址后多加入4个字节,所以就有了1522这个帧长度了。

    Preamble (7-bytes) --前导位

    Start Frame Delimiter (1-byte) --定界符

    Dest. MAC Address (6-bytes) --目的地址

    Source MAC Address (6-bytes) --源地址

    Length/Type = 802.1Q Tag Type (2-byte) --表明是VLAN,这个为8100

    Tag Control Information (2-bytes) --3-bits User Priority Field;1-bit Canonical Format Indicator (CFI);12-bits VLAN Identifier (VID)

    Length / Type (2-bytes) --长度或帧类型

    MAC Client Data --数据,n最大为1500,即MTU

    (0-n bytes) Pad --填充字段,p最大为46

    (0-p bytes) Frame Check Sequence (4-bytes) --帧校验码

    最后要提的就是1536这个长度了。我们知道802.3中规定,如果Length / Type的值大于0×600则表示是类型,而这个值就是1536。

    1998年提出的802.3z中的应用。802.3中提出了一个Extension字段放在了最末尾。它主要作用是在短封包(如64)传输时,由于1000M速度的加快,导致传输时间的减少,破坏了原有冲突检测的机制,缩短了有效传输矩离,所以要增加一些字节,使长度达到512。当然,这个只用在半双工时了。

    第2 / 3页

    其实在802.3中没有规定要扩展的值的大小的,所以最大可以扩展到1536。

    还有一个就是802.1ad。也就是所谓的“Q-in-Q”,就是多重的vlan了,主要为网络运营商用来管理的,实现用户的vlan和运营商的vlan相隔离。这个也会加大现有封包的长度,会增加4个字节。 以太网最大帧长 最小帧长 - Sacrifice - BabyUnion

    还有一个Jumbo frame。这东西不是802.3的标准,而一些厂商提出来的,为了提高1000M时的传输效率。由于是非标的,所以各家支持的大小也不尽相同。一般来说,现在一般可以支持到9k。 在802.3z中还提出一个Frame Bursting。这个东西可以提高短包的传输效率。在1000M以太网下,limit”。帧和帧之间以extension bits来填充gap,以表示线路处于占用状态。burst mode唯一特殊的是,第一个帧要加一个”extension field”。

    新的改变可以参见802.3as-2006。

    使用burst mode,一端可以连续发包,直到达到了65,536 bit times (8192 byte times)的”burst

    转载于:https://www.cnblogs.com/sddai/p/6014237.html

    展开全文
  • 在传统以太网中,为什么要有最小帧长度最大帧长度的限制? 以太网(IEEE 802.3)帧格式: 1、前导码:7字节0x55,一串1、0间隔,用于信号同步 2、帧起始定界符:1字节0xD5(10101011),表示一帧开始 3、DA...

    在传统以太网中,为什么要有最小帧长度和最大帧长度的限制?

    以太网(IEEE 802.3)帧格式:

    1、前导码:7字节0x55,一串10间隔,用于信号同步

    2、帧起始定界符:1字节0xD5(10101011),表示一帧开始

    3DA(目的MAC)6字节

    4SA(MAC)6字节

    5、类型/长度:2字节,01500保留为长度域值,153665535保留为类型域值(0x06000xFFFF)

    6、数据:461500字节

    7、帧校验序列(FCS)4字节,使用CRC计算从目的MAC到数据域这部分内容而得到的校验和

    CSMA/CD作为MAC算法的一类LAN称为以太网。CSMA/CD冲突避免的方法:先听后发、边听边发、随机延迟后重发。一旦发生冲突,必须让每台主机都能检测到。关于最小发送间隙和最小帧长的规定也是为了避免冲突。

    考虑如下的情况,主机发送的帧很小,而两台冲突主机相距很远。在主机A发送的帧传输到B的前一刻,B开始发送帧。这样,当A的帧到达B时,B检测到冲突,于是发送冲突信号。假如在B的冲突信号传输到A之前,A的帧已经发送完毕,那么A将检测不到冲突而误认为已发送成功。由于信号传播是有时延的,因此检测冲突也需要一定的时间。这也是为什么必须有个最小帧长的限制。

    按照标准,10Mbps以太网采用中继器时,连接的最大长度是2500,最多经过4个中继器,因此规定对10Mbps以太网一帧的最小发送时间为51.2微秒。这段时间所能传输的数据为512位,因此也称该时间为512位时。这个时间定义为以太网时隙,或冲突时槽。512位=64字节,这就是以太网帧最小64字节的原因。

    512位时是主机捕获信道的时间。如果某主机发送一个帧的64字节仍无冲突,以后也就不会再发生冲突了,称此主机捕获了信道。

    由于信道是所有主机共享的,如果数据帧太长就会出现有的主机长时间不能发送数据,而且有的发送数据可能超出接收端的缓冲区大小,造成缓冲溢出。为避免单一主机占用信道时间过长,规定了以太网帧的最大帧长为1500

    100Mbps以太网的时隙仍为512位时,以太网规定一帧的最小发送时间必须为5.12μs

    1000Mbps以太网的时隙增至512字节,即4096位时,4.096μs

    展开全文
  • 以太网原理 最大帧长 最小帧

    千次阅读 2017-06-20 23:06:23
    在传统以太网中,为什么要有最小帧长度最大帧长度的限制? 以太网(IEEE 802.3)帧格式: 1、前导码:7字节0x55,一串1、0间隔,用于信号同步 2、帧起始定界符:1字节0xD5(10101011),表示一帧开始 3、DA(目的MAC)...
  • 以太网最大帧和最小帧 以太网技术基础 关于MAC帧最小字节的由来 以太网(IEEE 802.3)帧格式: 1、前导码:7字节0x55,一串1、0间隔,用于信号同步 2、帧起始定界符:1字节0xD5(10101011),表示一帧开始 3、DA...
  • 以太网最大帧和最小帧、MTU

    千次阅读 2016-07-23 14:32:38
    根据rfc894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的开始定界符,具体就是:7字节前导同步码 + 1字节开始定界符 + ...
  • 根据rfc894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的开始定界符,具体就是:7字节前导同步码 + 1字节开始定界符 + ...
  • 遇到的问题:以太网的数据封装如下图所示,包含在IP数据报中的数据部分最长应该是( )字节? A.1434 B.1460 C.1480 D.1500 答案:C 原因: 以太网(IEEE 802.3)格式: 1、前导码(前同步码):7字节0x55,...
  • (转载)以太网最大帧和最小帧、MTU .

    千次阅读 2013-07-04 08:13:54
    根据rfc894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说以太网最大帧长应该是以太网首部加上1500,再加上7字节的前导同步码和1字节的开始定界符,具体就是:7字节前导同步码 + 1字节开始定界符 + ...
  • 以太网原理 之 最大帧长和最小帧

    千次阅读 2012-07-29 21:42:56
     在传统以太网中,为什么要有最小帧长度最大帧长度的限制?  以太网(IEEE 802.3)帧格式:  1. 前导码:7字节0x55,一串1、0间隔,用于信号同步;  2. 帧起始定界符:1字节0xD5( 10101011 ),表示一
  • 以太网数据(802.3)最大最小长度2017年03月20日 19:40:01 Farmwang 阅读数:5370更多个人分类: TCP/IP以太网(IEEE 802.3)格式: 1、前导码:7字节0x55,一串1、0间隔,用于信号同步2、起始定界符:1字节0...
  • 最小帧长与最大传输距离最小帧长802.3标准定义的帧都有最小长度要求,802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不足的空间插入填充(PAD)。Ethernet_II的帧...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 127
精华内容 50
关键字:

以太网最大最小帧长度