目录
一、数据链路层和网络层的关系
二、以太网
1、以太网格式
2、认识MTU
三、ARP协议
1、ARP协议的作用
2、ARP协议的工作流程
3、ARP数据报的格式
4、思考:浏览器中输入url后, 发生的事情(经典面试题)
一、数据链路层和网络层的关系
IP协议最大的意义是路径选择,要把数据送到哪是IP决定的,如何把目标送到指定地点是数据链路层决定的。能够直接通信的两个节点,一定是在同一个局域网内。
二、以太网
1、以太网格式
- 以太网数据帧中的源地址和目的地址是指网卡的硬件地址(MAC地址),长度是48位,是在网卡出厂时固化的,MAC地址描述的是路途上的每一个区间的起点和终点,也就是上一个节点和下一个节点的地址。
- 帧协议类型字段有三种值,分别对应IP、ARP、RARP。根据这个字段就可以判断出要向上交付给哪个协议。
2、认识MTU
MTU相当于发快递时对包裹尺寸的限制,这个限制是不同的数据链路对应的物理层, 产生的限制。以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位。最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU。如果超过这个大小就要进行分片。
MTU对于TCP协议的影响:
- TCP的一个数据报也不能无限大, 因为要尽量避免分片。受制于MTU, TCP的单个数据报的最大数据长度, 称为MSS(MaxSegment Size)。
- TCP在建立连接的过程中, 通信双方会进行MSS协商。
- 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值,然后双方得知对方的MSS值之后, 选择较小的作为最终MSS。
三、ARP协议
1、ARP协议的作用
ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议。
在网络通信时,源主机的应用程序如果只知道目的主机的IP地址,却不知道目的主机的硬件地址(MAC),那么就无法在数据链路层传输。因此在通讯前必须获得目的主机的硬件地址。
2、ARP协议的工作流程
- 源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”, 并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播)。
- 目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。
- 为了增加效率,每个主机都会维护一张ARP缓存表,只需要通过ARP发送一次请求就可以获得目标主机的MAC地址存在缓存表中。缓存表中每个表项的生命周期为20分钟,如果20分钟没有使用过缓存表中的每个表项则会失效,下次需要重新发送请求来询问ARP地址。
3、ARP数据报的格式
- 注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。
- 硬件类型指链路层网络类型,1为以太网。
- op字段为1表示ARP请求,op字段为2表示ARP应答。
4、思考:浏览器中输入url后, 发生的事情(经典面试题)
总结
本文主要给大家讲解了数据链路层的相关内容,希望能给大家带来帮助。