Linux网络-------6.数据链路层
对⽐理解"数据链路层"和"⽹络层"
- 跨网络通信,本质就是再很多个子网之间进行数据传递!!!!
1.以太网
1.以太网帧格式
1.如何分离
可以看到,数据段是拥有固定位置的
,所以直接获取对应位置的数据就行!!!
2.如何分用
每一行都有名为类型的2字节数据
,根据不同的类型,就进行不同的调用!!!!
2.MAC地址和ip地址
- MAC地址⽤来识别数据链路层中相连的节点;
•⻓度为48位,及6个字节.⼀般⽤16进制数字加上冒号的形式来表⽰(例如:08:00:27:03:fb:19)
• 在⽹卡出⼚时就确定了,不能修改.mac地址通常是唯⼀的(虚拟机中的mac地址不是真实的mac地址,可能会冲突;也有些⽹卡⽀持⽤⼾配置mac地址).
3.认识MTU
- UDP数据长度超过1472 --------(1500-20(IP⾸部)-8(UDP⾸部)),所以要进行分片!!!
- MSS的存在是为了减少分片,减少丢包的可能性!!!!!
2.ARP协议------IP地址转MAC地址
1.APR协议的作用
- 所以客户端一开始就知道要发送信息的目的ip地址是多少,但是并不知道mac地址是多少
- 每个子网之间进行通信都需要进行APR请求和应答
2.如何实现
3.ARP数据报的格式
- 注意,op代表这次发送是为了请求还是应答!!!!!-------
1为请求,0为应答
- 若是请求-------那么目的以太网地址设置为FFFFFF,代表我不知道,以太网目的地址设为FFFFFF------代表我要向局域网内的所有主机发送这个请求—即广播!!!!
- 若是应答--------那么目的以太网地址就是原来请求端的mac地址。