在 IP 数据包交付的过程中,在数据链路层会对数据包进行添加报头信息。以太网协议就是数据链路层的一个重要协议。这样说其实不太准确,因为以太网协议是一个规定数据链路层及物理层的协议,不能说它是数据链路层的一个协议。

以太网帧

以太网帧就是将网络层交付的数据添加报头信息后,此时的数据以帧的形式传递。以太网帧的格式如下:

在这里,目的地址与源地址这里都指的是 MAC 地址。每一个主机对应唯一的一个 MAC 地址,是由网卡决定的,长度是 48 位,所以这里的目的地址与源地址都是 6 个字节,也就是 48 个比特位。

在以太网帧的最后,还有一个 CRC 校验码,来校验数据是否异常。

在中间,有一个两个字节的类型标识。这个类型字段有三种值,分别是 : IP、ARP、RARP。

IP

如果类型码为 0800 那么在数据链路层解包完毕后,将该数据交付给网络层的 IP 协议来处理该报文。

ARP

如果类型码是 0806 , 那么在向上层交付的时候就交付给 ARP 协议,这里要说的是 ARP 协议是处于数据链路层与网络层之间的一种协议,也叫作地址解析协议。它将 IP 地址转换为 MAC 地址。

RARP

RARP 协议,就是 Reverse ARP,与 ARP 协议相同,是将 MAC 地址转换为 IP 地址的协议。


一般来说,数据第一次发送给目的主机时,在这之前应该发送 ARP 协议,根据目的主机的 IP 地址来确定目的主机的 MAC 地址,从而为后面的数据发送与接收提供便利。

MAC地址与IP地址

在数据发送传输的过程中,目的 IP 地址与源 IP 地址是永远不会变的,这是这个数据的起始与终点,而 MAC 地址是一直在变化的,由于数据在传输的过程中会经历很多的主机等,所以在这个过程中 MAC 地址一直在变。类似于我们坐车,要坐车从 A 出发,目的地是 D。这个过程中我们会经过 B C,在到达 B 的时候,此时的 MAC 地址相当于我们上一站是 A , 下一站是 C。而目的 IP 地址与 源 IP 地址 分别是 D 与 A,这样说的话就很好理解了。

MAC 地址与 IP 地址,一个代表的目的与终点,一个代表着途中的经过。所以在到达目的局域网后,数据包并不知道要传输给哪台主机,因为 MAC 地址的变化,但是目的 IP 地址一直没有变化,所以此时就需要 ARP 协议来确定目的主机的 MAC 地址。

MTU

在谈 IP 协议的时候说到, IP数据报的长度受数据链路层的 MTU 影响。数据链路层要求在网络层传输过来的数据包必须在 MTU 范围内,以太网帧中的数据长度必须在 46字节到1500字节当中去。也就是说在 IP 层在添加报头信息之前,要判断此时由传输层传输过来的数据段是否超过了 1480 个字节(以太网帧中的数据包括 IP 协议的报头信息,IP 协议的报头信息为 20 字节),如果超过了,那么则对该数据段进行分片,所有被分片的数据的 IP 报头信息当中,它们的 16 位标识都是相同的,并且报头信息中的标志字段中第二位为 0 ,第三位如果为 1 ,代表着报文的结束。

接收端在接收到这里分片数据后,根据 IP 报头信息的 16 为标识信息、三位标志位、13位偏移量信息进行组装。

如果分片后的数据在接收端丢失某一片,那么就组装失败。即使组装失败, IP 层也不负责重新传输的功能。这是传输层所该做的事情。

我们发现 ARP 协议与 RARP 协议它们的实际数据只有 28 个字节,于是在它的报文后进行补位,其中 PAD 就是用来填充的,使 ARP / RARP 协议的长度达到 MTU 的最小字节数。

对于 UDP 传输的影响

一旦 UDP 携带的数据超过了 1472 (MTU - IP报头 - UDP报头 = 1500 - 20 - 8),那么在 IP 层就会对该数据分片,一旦分片就意味着增加了 UDP 传输丢包的可能性。 由于 UDP 协议传输本身就不负责可靠性,再加上分片,那么丢包的可能性就大大增加。

对 TCP 传输的影响

TCP 协议在传输时也收到 MTU 的影响。一个 TCP 数据报的最大长度为 MSS 。MSS 处于 TCP 报头信息选项中。在 TCP 进行链接的时候,双方在发送 SYN 与 SYN + ACK 时就会在选项内对 MSS 进行设置。在双方都得到对方的 MSS 时,选择较小的 MSS 的值作为最终的 MSS 。

再说明白点,MSS 的大小其实就是应用层给传输层的交付的数据的大小。不包括传输层的报头信息。所以在计算 MSS 的时候,用 MTU 减去网络层报头长度以及传输层报头长度即可。


欢迎大家共同讨论,如有错误及时联系作者指出,并改正。谢谢大家!

数据链路层之以太网协议相关推荐

  1. 网络层(IP,ICMP),数据链路层(以太网协议)

    网络层 ip协议报头的格式+地址管理+路由选择 网络层 ip协议报格式 4位版本:指定ip协议版本,ipv4和ipv6,ipv6并不向下兼容: 4位首部长度:表示ip协议头部长度,也就是length* ...

  2. 数据链路层——封装成帧、透明传输、差错检测、最大传输单元MTU、以太网协议

    OSI模型中的数据链路层与物理层,在TCP/IP协议中同属于网络接口层. 数据链路层为物理连接之间提供了可靠的数据传输.数据链路层主要解决3个问题:封装成帧.透明传输.差错检测. 封装成帧 " ...

  3. 数据链路层(ARP协议,DNS协议和ICMP协议)

    数据链路层(以太网协议):负责两个相邻设备之间的数据帧的传送和识别 一.以太网的帧格式 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位(6个字节),是在网卡出厂时固化的. 帧格式类 ...

  4. 以太网协议、ARP协议、NAT协议、DNS协议

    目录 1. 数据链路层的以太网协议 2. ARP协议 3. NAT协议 NAPT协议(动态NAT重载) 4. DNS协议 1. 数据链路层的以太网协议 数据链路层的以太网协议本质上其实就是相邻设备之间 ...

  5. 计算机网络 | 数据链路层 :ARP协议、以太网协议、MTU

    数据链路层 数据链路层与网络层的关联 以太网协议 什么是以太网 以太网帧格式 MAC地址 MAC地址与IP地址 MTU MTU对TCP的影响 MTU对UDP的影响 ARP协议 什么是ARP协议 ARP ...

  6. 网络基础3-1(细谈IP协议头, 网络层,子网划分,路由选择,数据链路层,以太网帧格式,MAC地址,再谈ARP协议)

    IP协议 IP协议头格式 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4 4位头部长度(header length): IP头部的长度是多少个.32bit, 也就是 ...

  7. 带你一文搞懂网络层的IP协议\数据链路层的以太网\ARP协议以及DNS和NAT协议

    TCP连接管理中的保活机制: TCP协议是面向连接通信,若通信双方长时间没有数据往来,就需要确定对方还是否在线,连接是否正常?        若通信双方长时间(7200秒)没有数据往来,在服务端会向客 ...

  8. 数据链路层协议 ——— 以太网协议

    文章目录 链路层解决的问题 以太网协议 认识以太网 以太网帧格式 认识MAC地址 对比理解MAC地址和IP地址 认识MTU MUT对IP协议的影响 MTU对UDP协议的影响 MTU对TCP协议的影响 ...

  9. 数据链路层-------以太网协议

    这里写目录标题 数据链路层 点对点协议(PPP协议) 以太网协议 认识以太网 以太网帧格式 认识MAC地址 对比理解MAC地址和IP地址 认识MTU MTU对上层协议的影响 查看硬件地址和MTU AR ...

最新文章

  1. GeforceRTX系列参数对比
  2. 微软计划使用 Rust 取代 C和C+
  3. 苹果自带相册打马赛克_如果你用苹果手机!学会这3个技巧,就能让手机变得更加好用...
  4. android sdk根目录,Android SDK根目录中的SDK Manager.exe双击打不开,为什么?
  5. 【CoRL 2018】通过元策略优化的MBRL算法
  6. 关于嵌套类的调用更新问题
  7. OAF_OAF Framework页面分析(概念)
  8. ES6、7学习笔记(尚硅谷)-1-ES5的一些
  9. 用html制作圆的周长,几何画板制作圆周长展开动画
  10. 【UV打印机】PrintExp打印软件教程(七)-高级模式(其它)
  11. 吴伯凡-认知方法论-如何犯一个“正确”的错误
  12. Planning with Goal-Conditioned Policies读书笔记
  13. ubuntu20.04开机显示recovering journal死机的解决方法
  14. 常用1寸、2寸照片标准尺寸
  15. english book1 unit8
  16. uni-app 自定义table-demo 左右列固定冻结
  17. 同学早已年薪百万,你却还在朋友圈集赞
  18. 安卓系统控制服务器,安卓系统远程控制云服务器
  19. java 手动内存回收_java内存与回收调优
  20. 20190122——回首向来萧瑟处,无人等在灯火阑珊处。 Java责任链

热门文章

  1. 2010齐鲁软件大赛题目(十三).基于iPhone的移动互联网软件创意设计
  2. 砸穿底价,巨头将把社区团购带到哪里?
  3. Typora、语雀、eDiary笔记工具
  4. 非常好用的一个软件 eDiary + 建模软件 Enterprise Architect 8.0
  5. 复习方法:为什么别人的CFA考试复习方法总是比你靠谱?
  6. 第三届青年生命科学论坛(北京6月)微生物组学方向报告人征集
  7. 移动硬盘恢复数据多少钱?恢复几率有多大?
  8. 抽奖系统html重置代码,HTML+JS抽奖系统 v2.1.1 HTA版
  9. 朴素贝叶斯分类器简单实例
  10. 医疗器械网络安全定义