【计算机网络】数据链路层重点协议

1. 认识以太网

    以太网是一种局域网的技术规范,而不是一种具体的网络,以太网既包含了数据链路层的内容,也包含了一些物理层的内容,如:规定网络拓扑结构,访问控制方式,传输速率等 以太网中的网线必须使用双绞线,传输速率有10M,100M,1000M等 以太网是当前应用最广泛的局域网技术,和以太网并列的有令牌环网,无线LAN等

1.1 以太网帧格式

    源地址和目的地址为网卡的硬件地址(MAC地址),长度为48位,网卡出场时就确定了 帧协议类型字段有三种,为IP,ARP,RARP 帧尾是CRC校验码

2. 认识MTU

MTU规定了以太网最大的传输数据长度,超过了这个长度就会分片(实际在网络层就会分片),比如网购了一个桌子,桌子整张太大了,快递就分开包装,如:桌子腿,桌子面,固定桌子的材料等,快递到货后,我们在对其进行组装成一个完整的桌子

    以太网帧中的数据长度规定最小为46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补充填位 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片 不同的数据链路层标准的MTU是不同的

2.1 MTU对IP协议的影响

由于数据链路层MTU的限制,对于较大的IP数据包要分片

    将较大的IP包分成多个小包,并给每个小包打上标签 每个小包IP协议头的16位标识(id)都是相同的 每个小包的IP协议头的3位标志字段中,第2位置为0表示允许分片,第3位来表示结束标记(当前是否是最后一个小包,是的话置1,不是置0) 到达对端后,再将这些小包按顺序进行重组,拼装到一起返回给传输层 一旦这些小包中任意一个小包丢失,接收端的重组就会失败,但是IP层不会负责重新传输数据

2.2 MTU对UDP协议的影响

数据包分片后,如果多个分片的数据报有任意一个丢包,整个数据报就没有用了(UDP只管发送,不管接收),接收端根据多个分片还原的时候就会重组失败,只能丢弃,这意味着,如果UDP数据报在网络层被分片,整个数据被丢弃的概率大大增加了

2.3 MTU对TCP协议的影响

    TCP数据报也不能无限大,也受限于MTU,TCP单个数据报的最大长度称为MSS(双方约定最大传输端大小) TCP建立连接的时候,通信双方会进行MSS协商,双方在发送的SYN的时候在TCP头部写入自己能支持的MSS值 双方知道对方的MSS值后,选择min(MSS,MTU)值作为最终的MSS 如果真实发送的数据超过MSS,就会分片,如果任意一个分片丢包,整个数据报就没用了,但是TCP协议有超时重传机制会重新发生,所以丢包的影响不大

3. ARP协议 

ARP协议不单纯是数据链路层的协议,它是介于数据链路层和网络层之间的协议 ,ARP协议建立了主机IP地址与MAC地址的映射关系,主机和路由器中都维护了一张ARP缓存表(基于ARP协议,可以通过IP地址找到对应的MAC地址)

3.1 ARP协议的作用

    发送数据到同网段主机时,目的IP和目的端口肯定都知道,但是可能不知道目的主机的MAC,这时候基于ARP缓存表通过目的主机IP找到对应目的主机MAC(找不到就喊话) 发送数据到不同网段主机时,先往网关设备发,也要基于ARP协议通过网关IP找到网关MAC 网关设备封装完数据报,根据路由功能,找到下一跳设备的IP,此时基于网关设备的ARP缓存表,通过IP找到下一跳设备得MAC

3.2 ARP协议的工作流程

    源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播 目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中 每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址
经验分享 程序员 微信小程序 职场和发展