数据链路层

数据链路层解决的是直接相连的主机之间的数据传输。

数据帧格式

数据帧在IP报文的基础上增加了目的MAC,源MAC,类型和CRC校验的内容

类型有三种,因为数据链路层的数据帧根据有效载荷内容分为三种,IP,ARP和RARP。IP的类型值为0800,ARP是0806,RARP是0835。

数据帧传输过程

最大传输单元MTU

以太网帧中的数据长度规定最小46字节,最大1500字节ARP数据包的长度不够46字节,要在后面补填充位;

最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU;

如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片;

MTU对IP协议的影响

如果IP包很大,会将IP报文分成多个包,每个包的标签都是相同的。到达目标主机后,网络层再对小包按照顺序组装成一个大数据包。其中任何一个数据包丢失都会让数据失效,IP没有重传机制,效率很低不建议分包。

MTU对UDP的影响

一旦UDP携带的数据超过1472(1500 - 20(IP首部) - 8(UDP首部)), 那么就会在网络层分成多个IP数据报. 这多个IP数据报有任意一个丢失, 都会引起接收端网络层重组失败. 那么这就意味着, 如果UDP数据报在 网络层被分片, 整个数据被丢失的概率就大大增加了.

MTU对TCP的影响

TCP的一个数据报也不能无限大, 还是受制于MTU.

TCP的单个数据报的最大消息长度, 称为MSS(Max Segment Size);

TCP在建立连接的过程中, 通信双方会进行MSS协商. 最理想的情况下, MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然是受制于数据链路层的 MTU). 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值. 然后双方得知对方的MSS值之后, 选择较小的作为最终MSS. MSS的值就是在TCP首部的40字节变长选项中(kind=2);

MSS和MTU的关系;

ARP协议

ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网 络层之间的协议。ARP协议的作用就是建立MAC和IP地址之间的关系。

ARP数据报格式

注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况 是多余的,但如果链路层是其它类型的网络则有可能是必要的。

硬件类型指链路层网络类型,1为以太网;

协议类型指要转换的地址类型,0x0800为IP地址;

硬件地址长度对于以太网地址为6字节;

协议地址长度对于和IP地址为4字节;

op字段为1表示ARP请求,op字段为2表示ARP应答。

工作流程

源主机发出ARP请求,询问目标IP主机的MAC地址是多少, 并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播);

目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中;

每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如 果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址

相关推荐
qq_3106585110 小时前
webrtc源码走读(一)-QOS-NACK-概述
网络·webrtc
易ლ拉罐11 小时前
【计算机网络】HTTP协议(二)——超文本传输协议
网络·计算机网络·http·1024程序员节
极客范儿11 小时前
新华三H3CNE网络工程师认证—STP状态机与收敛过程
服务器·网络·stp·1024程序员节
LCMICRO-1331084774612 小时前
长芯微LDUM3160完全P2P替代ADUM3160,LDUM3160是一款采用ADI公司iCoupler® 技术的USB端口隔离器
网络·stm32·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程
威迪斯特12 小时前
网络环路:隐形威胁的破解之道
网络·流量分析·生成树协议·端口安全·路由过滤·网络环路·广播风暴
isNotNullX12 小时前
一文讲清:数据清洗、数据中台、数据仓库、数据治理
大数据·网络·数据库·数据分析·1024程序员节
云飞云共享云桌面13 小时前
东莞精密机械制造工厂5个SolidWorks设计共享一套软件
运维·服务器·网络·人工智能·自动化·制造
李辰洋13 小时前
IPv6路由技术
运维·服务器·网络
卓豪终端管理13 小时前
从发现到阻止:构建自动化内部威胁防线的核心步骤
网络·安全·web安全
Fms_Sa16 小时前
UDP实现客服与客户的咨询对话
网络·网络协议·udp