《协议森林》系列文章写的通俗易懂,在此向作者致敬~~以下是我做的笔记。
以太网数据帧格式如下
Preamble:
序言,七个字节,每个字节都是0xAA,其作用是为了统一收发双方的频率。收发双方的频率必须统一,否则会丢失数据。开始通讯时,接收方会不断调整自己的频率,直到和发送方一致,这个过程称为时钟复原。这个过程,就像听收音机时,调整频率,直到接收到清晰的信号。
SFD:
Start frame delimiter,起始帧分隔符,固定值0xAB,提醒接收方开始发送数据了,就像广播刚开始的时候,会提醒听众收听,比如,“这里是中央人民广播电台中国之声”。。
DST,SRC:
分别为目的地址和源地址,是MAC地址,6个字节。
Type: 数据类型,比如0x0800为IPv4,0x0806为ARP。
Payload(Data):有效数据。
Pad:如果Payload中的数据不足最小的长度,则在Pad中补0凑齐。
FCS:校验序列,CRC校验。
Hub and Switch
Hub,把数据从源地址发送到目的地址。
一个Hub有多个端口,当有数据发送到Hub时,Hub会把数据发送到它所连接的所有的端口,相当于广播。在这个局域网中的端口,检查数据帧的目的地址DST是否是自己,如果不是则不予理会,如果是则接收。
Hub有两个缺陷
1.保密性差,因为它会把数据对外广播。
2.同一时间只能有一个端口在发送数据。
Switch改进了Hub的缺陷
1.Switch会记录各个端口的Mac地址,只把数据帧发送到目的端口。
2.允许多路同时通信。
目前,Switch已经取代了Hub,不过在一些老的以太网中还在使用Hub。