以太网协议 & ARP协议 & MTU
Posted 小羊教你来编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以太网协议 & ARP协议 & MTU相关的知识,希望对你有一定的参考价值。
链路层相关理解
目录:
一.以太网协议 ethernet
48位源端/对端MAC地址: 用来识别指定的相邻设备
MAC地址: uint8_t mac[6] --网卡的物理硬件地址–出厂时已经被设定
16位数据类型: 用于数据分用时上层解析协议的选择
32位数据帧尾: 校验和进行差错校验
二.ARP协议
ARP协议 是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
三.MTU & MSS 详解
1.原理
MTU(Maximum Transmission Unit)即最大传输单元,用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。
MSS(Maximum Segment Size,最大报文长度),是TCP协议定义的一个选项,MSS选项用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度。
2.影响
(1)对TCP的影响
tcp在三次握手阶段会协商mss,双方去比较小的mss来作为最大的数据段的大小来进行传输,每次从缓冲区中取出不大于mss大小的数据封装报头来进行数据的传输.
~
tcp在传输层的时候会自动的进行数据的分段,不会再网络层进行数据分段
(2)对UDP的影响
因为udp没有和mss协商,只要数据大小在64k-28就可以进行传输,如果大于的话就会在网络层进行数据分片
而分片在对端接受到的时候,会进行分片重组,如果缺少任意一片的时候,整个报文都会被丢弃,所以,分片越多,传输出现的问题就更多
~
在使用udp传输的时候,最好在上层分包的时候就计算好mss大小分包,减少分片的概率.
以上是关于以太网协议 & ARP协议 & MTU的主要内容,如果未能解决你的问题,请参考以下文章