• [Linux] 数据链路层-----以太网帧协议、ARP协议


    以太网帧格式

    以太网帧格式

    最大传输单元----MTU

    1)是什么

    • 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;
    • 其中,最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU,不同的数据链路层标准的MTU是不同的。

    2)MTU对IP协议的影响

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

    3)MTU对UDP协议的影响

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

    4)MTU对于TCP协议的影响

    • TCP的一个数据报也不能无限大,还是受制于MTU;
    • TCP的单个数据报的最大消息长度,称为MSS,TCP在建立连接的过程中,通信双方会进行MSS协商,最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度。

    ARP协议

    1)是什么?

    • ARP协议建立了主机 IP地址和MAC地址 之间的映射关系;
      ARP数据报格式

    2)为什么?

    • 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;数据包首先是被网卡接收到,再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃;因此在通讯前必须获得目的主机的硬件地址。

    3)工作流程

    • 在局域网中,发起方构建ARP请求,以广播的方式发送给局域网中的每一台主机;每台主机都能识别,然后根据以太网首部的帧类型0x0806交付给每个主机的arp层;其他不相关的主机会根据目的ip地址,在自己arp协议的内部丢弃arp请求;目标主机构建好ARP应答后,以1对1的形式把ARP应答数据返回给源主机;源主机根据op字段判定是ARP请求还是应答,如果是应答,就提取ARP应答中的发送端mac地址和ip地址
  • 相关阅读:
    leetcode 58
    华为云区块链三大核心技术国际标准立项通过
    js简单知识
    38、RabbitMQ hello world
    SpringBoot实现SSE构建实时数据单向推送
    攻防世界WEB练习-inget
    南京溧水农民丰收节 国稻种芯·中国水稻节:江苏味稻文化
    servlet异步返回图片失败,页面不显示
    openresty安装配置,执行shell脚本
    交叉编译 openssl
  • 原文地址:https://blog.csdn.net/Darling_sheeps/article/details/127652692