以太网协议是使用最多的有线LAN技术之一,该协议工作在物理层(以太网电缆)和数据链路层(以太网协议),协议标准定义在IEEE 802.3和IEEE 802.2中,能够支持10-100000Mbps的传输速率。
协议格式、
HDLC(High-Level Data Link Control)协议也是一种面向位的协议,协议通常用于直接相连的两台设备进行通信,例如串行通信线路或专线连接。它是一种数据链路层协议,用于在这些点对点通信环境中实现可靠的数据传输,与以太网类似。尽管它们都是面向位的协议,但它们在以下几个方面存在一些不同之处:
- 网络层:以太网协议主要用于本地局域网(LAN)环境,而HDLC协议是一种广域网(WAN)协议,用于在不同的网络设备之间进行数据传输。
- 帧的结构:以太网协议定义了特定的帧格式,包括目的MAC地址、源MAC地址等字段。而HDLC协议的帧格式更加灵活,可以根据需要进行定制,例如添加控制字段、地址字段等。
- 差错检测:以太网协议使用循环冗余校验(CRC)来进行帧的差错检测,以保证数据的完整性。而HDLC协议通常使用异或校验来执行帧的差错检测。
- 点对点与多点通信:以太网协议通常用于点对点或点对多点的通信,其中一个发送方与一个或多个接收方进行通信。而HDLC协议支持点对点、点到多点和多点到多点之间的通信,具有更广泛的应用范围。
尽管以太网和HDLC协议都是面向位的,但它们在适用环境、帧结构、差错检测和通信模式等方面有所不同,因此在不同的场景和需求下,它们可能会被选择来满足特定的通信需求。
前导码( Preamble):七字节前导码,MAC物理层使用7个字节同步码( 0和1交替( 55-55-55-55-55-55-55))实现数据的同步。
帧起始界定符( SFD, Start Frame Delimiter):使用1个字节的SFD(固定值为0xd5)来表示一帧的开始,后面紧跟着传输的就是以太网的帧头。
目的MAC地址: 即接收端物理MAC地址,占用6个字节。 MAC地址从应用上可分为单播地址、组播地址和广播地址。单播地址:第一个字节的最低位为0,比如00-00-00-11-11-11,一般用于标志唯一的设备;组播地址:第一个字节的最低位为1,比如01-00-00-11-11-11,一般用于标志同属一组的多个设备;广播地址:所有48bit全为1,即FF-FF-FF-FF-FF-FF,它用于标志同一网段中的所有设备。
源MAC地址:即发送端物理MAC地址,占用6个字节。
长度/类型: 上图中的长度/类型具有两个意义,当这两个字节的值小于1536(十六进制 为0x0600)时,代表该以太网中数据段的长度;如果这两个字节的值大于1536,则表示该以太网中的数据属于哪个上层协议,例如0x0800代表IP协议( 网际协议) 、 0x0806代表ARP协议(地址解析协议)等。
数据:以太网中的数据段长度最小46个字节, 最大1500个字节。最大值1500称为以太网的最大传输单元( MTU, Maximum Transmission Unit),之所以限制最大传输单元是因为在多个计算机的数据帧排队等待传输时,如果某个数据帧太大的话,那么其它数据帧等待的时间就会加长,导致体验变差,这就像一个十字路口的红绿灯,你可以让绿灯持续亮一小时,但是等红灯的人一定不愿意的。另外还要考虑网络I/O控制器缓存区资源以及网络最大的承载能力等因素, 因此最大传输单元是由各种综合因素决定的。为了避免增加额外的配置, 通常以太网的有效数据字段小于1500个字节。
CRC校验码: 为了确保数据的正确传输, 在数据的尾部加入了4个字节的循环冗余校验码( CRC校验) 来检测数据是否传输错误。
在以太网协议中,SFD(Start of Frame Delimiter)是一个一字节的特殊字段,它的值为固定的 0x55(10101010)用来表示一个以太网帧的开始。数据部分可能会出现与 SFD 相同的字节,这可能会导致以太网设备错误地识别帧的开始位置。为了解决这个问题,以太网采用了两种方法:
- 强制帧大小:以太网规定数据字段的最小长度为 46 字节。这意味着,在数据字段中必须至少有 46 字节的数据,而不会出现与 SFD 相同的字节。这种方法确保了在数据字段中不会出现错误的帧开始标志。
- 字节填充:如果数据字段的长度不足 46 字节,以太网帧会使用填充字节来扩展长度。填充字节的值可以是任意的,只要避免与 SFD 字节相同即可。常见的填充字节包括 0x00 或 0xFF。接收方在接收到帧后会去除填充字节,以恢复原始数据。
通过强制固定帧大小和使用填充字节,以太网协议能够解决数据部分中可能出现与 SFD 相同字节的问题,确保正确地识别帧的开始位置。
HDLC、BISYNC、DDCMP 和 PPP 这些协议通常都有各自的专用传输介质,与以太网电缆不兼容。这些协议在设计时可能考虑了特定的传输环境和需求,因此它们可能需要特定的硬件和物理层特性来支持数据传输。
以太网协议是一种常用的局域网协议,它在物理层上使用以太网电缆(如双绞线、同轴电缆、光纤)进行数据传输。以太网电缆传输以太网帧,这些帧的格式和处理方式与以太网协议相匹配。
而其他协议如 HDLC、BISYNC、DDCMP 和 PPP 则在不同的传输介质上使用,例如串行线路、调制解调器、专用线路(如ISDN)等。这些协议可能在不同的硬件层面上实现不同的传输特性,因此在使用时需要与相应的传输介质和硬件设备兼容。
HDLC、BISYNC、DDCMP 和 PPP 这些协议虽然在过去在某些特定的环境中得到了应用,但随着技术的发展和以太网的广泛应用,它们在一些常见的网络环境中变得不那么常见。相比之下,以太网协议在局域网和广域网中广泛使用,成为了现代网络通信的主要基础。
广播,单播,组播、
广播(Broadcast)、单播(Unicast)和组播(Multicast)是网络通信中常见的三种数据传输方式。
广播是一种将数据同时发送给网络中所有主机的方式。发送广播消息时,消息将传送到同一物理网络中的所有主机,每个主机都会接收到该消息。广播通常用于向局域网中的所有主机发送公告或通知。
单播是一种将数据从源主机发送到目标主机的方式。在单播通信中,数据只会被传输到指定的目标主机,其他主机将不会接收到该数据。例如,当你在浏览器中访问一个网站时,浏览器会通过单播方式向服务器发送请求,服务器则通过单播方式将响应发送回浏览器。
组播是一种将数据同时发送给一组特定目标主机的方式。组播通信中,源主机将数据发送到一个特定的组播IP地址,而该组播IP地址对应着一组目标主机。只有加入该组的主机才会接收到组播数据。组播常用于多媒体流媒体、在线游戏和网络会议等场景。
MAC地址:48位,6字节,每一个字节之间使用冒号间隔。
如何区分广播,单播,组播?MAC地址为FF:FF:FF:FF:FF:FF的是广播;MAC地址第一个字节最后一位为1的是组播,为0是单播。
按字节从左到右发送;对于每一个字节从右到左发送。74:02:B1:E2:80:EE
组播地址不能是源MAC地址,只能是目的MAC地址,如果计算机收到MAC源地址为组播地址的帧就是丢弃!
以太网协议有效载荷最小字节为46字节,最大为1500字节;不足46字节会进行填充(Padding)以满足最小长度要求。填充通常使用空的字节填充,并且在帧的末尾添加,也就是在CRC后面添加,这样可以确保帧的实际长度达到最小要求。当有效载荷超过1500字节时,以太网帧需要进行分段(Fragmentation)处理。分段是将原始数据分成多个较小的帧,每个帧的有效载荷不超过1500字节。这样做是为了适应网络中的传输限制,避免数据包过大导致传输延迟或丢失。
传输时间大于等于两倍的传播时间是一个基本原理,它适用于许多不同的情况,包括数据传输和通信。
传输时间是指数据从发送方到接收方所需的时间。它取决于许多因素,包括数据的大小、传输速度和网络负载等。传播时间是指信号在传输媒介中传播所需的时间,它主要取决于信号传播的速度和距离。
根据这个原理,传输时间应大于等于两倍的传播时间,是为了确保数据能够在传输过程中完全到达目标地点。如果传输时间小于传播时间的两倍,那么数据可能在传输过程中还没有完全到达目标地点,这可能导致数据丢失或错误。
Comments NOTHING