以太网帧长度为什么不能小于64字节?

0 引言

以太网帧长度不能小于64字节这个要求很多人都知道,但是要问为什么,应该有些人就答不上来了,用就是了呗~这样不好,我们要知其然还要知其所以然。
咳咳,不装B。其实在下也是最近把《计算机网络》翻出来看,正好看到了,就拿出来记录一波。

问:到底为什么以太网帧长度不能小于64字节呢?
答:为了避免以太网中信号碰撞。

1 何为碰撞检测?

碰撞检测是CSMA/CD(Carrier Sense Multiple Access with Collision Detection)协议的一个要点。这个协议又是啥个东东呢?各位都知道TCP/IP体系结构最下面一层是网络接口层,这一层在OSI七层体系结构中又划分为数据链路层和物理层。这里说的CSMA/CD协议就是以太网在数据链路层使用的协议。

碰撞检测也就是局域网中某个站点(也就是主机)在发送数据时,其适配器(通俗点讲就是网卡)会检测信道上是否有其他站在发送数据,检测到则中止帧的发送。因为多个站点同时发送数据,总线上信号叠加会造成信号失真,不能正常解析。所以我们要避免多个站点同时发送数据的冲突,也即避免发生信号碰撞。

2 何为争用期?

首先,大家记住一个数据,电磁波在1km电缆的传播时延约为5μs

如下图所示,A向B发送数据, τ后到达B(单程端到端传播时延,记为τ)。若B在A的数据到达之前,发送自己的数据(这时B检测信道是空闲的,因为它没收到任何数据),则必然会与A的数据在信道中发生碰撞。而A在开始发送后多久才能知道发生碰撞了呢?要等到B的数据到达A,而A还未结束发送。

假设一个极端情况,当图中所示的时间差δ(δ为B发送数据时刻与A数据到达B的时刻的时间差)趋向于0,则A检测到发生碰撞的时间2τ-δ = 2τ,当超过这个时间都未检测到碰撞,则A发送出的数据就一定不会产生碰撞了。以太网中端到端的往返时间2τ称为争用期,也叫碰撞时间。只有经过争用期这段时间还未检测到碰撞,才能肯定这次发送不会发生碰撞,这时就可以放心把这一帧发送完毕。

3 争用期为多少?

按照标准,10Mbps以太网采用中继器时,连接的最大长度是2500米,最多经过4个中继器(这个数据百度得来)。按照之前的电磁波在1km电缆的传播时延约为5μs计算,可以得到最大往返时间为((4*2500)/1000)*5μs = 50μs,但实际以太网争用期确定为51.2μs,不仅考虑到以太网的端到端时延,而且还包括其他的许多因素,如存在的转发器所增加的时延,以及强化碰撞的干扰信号(这个概念本文就不解释了,读者自行查阅)的持续时间。

4 以太网帧最小长度

有了争用期51.2μs和以太网传输速率10Mbps(本文讨论的是传统以太网标准),我们可以得出10Mbps*51.2μs=512bit=64Byte,这个数据长度就是以太网帧最小长度。
各位读者想通了吗?当帧长度小于64Byte时,争用期还没结束,帧就已经发送完毕,即使检测到碰撞也不能中止帧的发送。一个异常帧就这么传输出去,显然不是我们想要的。
当规定帧最小长度为64Byte时,只要小于64Byte的帧就被丢弃,大于等于64Byte又一定能检测到是否发生碰撞(发生碰撞即中止发送,没有结束符的帧也会被丢弃)。

5 结语

以上就是以太网帧长度为什么不能小于64字节的原因了,文中内容基本都是从《计算机网络》摘录的知识,自己整理了一下,如有错误欢迎指正~

原文地址:https://www.cnblogs.com/1million/p/11942836.html

时间: 2024-10-01 06:29:35

以太网帧长度为什么不能小于64字节?的相关文章

搞懂CSMA/CD,你就明白为什么以太网最小帧是64字节。

每出现一个新的东西,新的技术, 小编就经常反问自己的一句话就是:为什么会诞生它(CSMA/CD)呢?why? 每个东西的产生或发明都是有它的存在的原因或背景的. 我们先来看看最初的以太网的构思吧! 把相距有一定距离的一些电脑连接起来,实现计算机之间互相通信就可以了. 最初都是把这些计算机连接在一根网线上,这种方式实现起来简单又可靠. 总线的特点是:当一台计算机发送数据时,总线上的所有计算机都能监听到这个数据.这也是我们常说的:广播通信.但现实中,我们并不总是需要一对多通信.所以为了实现一对一通信

802.3和以太网帧结构-路由交换原理1-【HCNA笔记】

1.RAW 802.3帧格式 前导字段 帧起始符 DMAC SMAC Length Data FCS 7字节 1字节 6字节 6字节 2字节 46-1500字节 4字节 前导字段:每个帧以7个字节的前导字段开头,以0.1间隔代码组成,用以通知目标端作好接收准备(10101010 10101010 10101010 10101010 10101010 10101010 10101010). 帧起始符:紧跟前导字段,值为10101011,最后两位‘11’表示帧的实际开始.前导字段与起始符由物理设备自

【HCNA笔记】路由交换原理-1 802.3和以太网帧结构

1.RAW 802.3帧格式 前导字段 帧起始符 DMAC SMAC Length Data FCS 7字节 1字节 6字节 6字节 2字节 46-1500字节 4字节 前导字段:每个帧以7个字节的前导字段开头,以0.1间隔代码组成,用以通知目标端作好接收准备(10101010 10101010 10101010 10101010 10101010 10101010 10101010). 帧起始符:紧跟前导字段,值为10101011,最后两位'11'表示帧的实际开始.前导字段与起始符由物理设备自

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

在传统以太网中,为什么要有最小帧长度和最大帧长度的限制? 以太网(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到数据

以太网帧结构

网络通信协议 一般地,关注于逻辑数据关系的协议通常被称为上层协议,而关注于物理数据流的协议通常被称为低层协议. IEEE802就是一套用来管理物理数据流在局域网中传输的标准,包括在局域网中传输物理数据的802.3以太网标准.还有一些用来管理物理数据流在使用串行介质的广域网中传输的标准,如帧中继FR(FrameRelay),高级数据链路控制HDLC(High-LevelDataLinkControl),异步传输模式ATM(AsynchronousTransferMode). 分层模型0OSI 国际

3.HCNA-HNTD——以太网帧结构

网络中传输数据时需要定义并遵循一些标准,以太网是根据IEEE 802.3标准来管理和控制数据帧的.了解IEEE802.3标准时充分理解以太网中链路层通信的基础. 学习目标: 理解分层模型的作用 掌握以太网中数据帧的结构 掌握MAC地址的作用 掌握以太网中数据帧转发的过程 20世纪60年代以来,计算机网络得到了飞速发展.各大厂商和标准组织为了在数据通信网络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM公司的SNA协议,Novell公司的IPX/SPX协议,以及广泛流行的OSI参考模

以太网帧、IP报文格式

这几天完成一个对比以太网帧的程序(c语言),老师给了以太网帧头部和IP报文头部的结构体,跟实际抓取到的数据包的格式是相同的. 以太网帧头部的数据结构: typedef struct { unsigned char dest_mac[6]; unsigned char src_mac[6]; unsigned short eth_type; } ethernet_header; eth_type字段用来指明上层协议类型,两字节.eth_type字段常见值及对应协议 0x0800 网际协议(IP)

▶链路层第五弹◀使用广播信道的以太局域网(下)--以太网帧(MAC帧)

使用广播信道的以太局域网(下)--以太网帧格式(MAC) l MAC层的硬件地址(MAC地址) 在局域网中,硬件地址又称为物理地址,或 MAC 地址. (48位地址) 802 标准所说的"地址"严格地讲应当是每一个站的"名字"或标识符. 其实我们教材中说的地址并不是很确切,但是我们习惯将这种 48 位的"名字"称为"地址",所以本书也采用这种习惯用法. IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位

以太网帧、TCP与UDP段以及IP数据报格式总结

传输层及其以下的机制由内核提供,是操作系统的一部分,应?层由?户进程提供应?层数据通过协议栈发到?络上时,每层协议都要加上?个数据?部(header),称为封装.不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在?络层叫做数据报(datagram),在链路层叫做帧(frame). 1.以太网帧格式 ?源地址和?的地址是指?卡的硬件地址(也叫MAC地址),长度是48位,是在?卡出?时固化的.Linux下可以?ifconfig命令看?下,"HWaddr 00:15:F2:14:9