数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(比如以太网,令牌环网等)上的传输。不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个接口。
    数据链路层常用的两个协议是ARP协议(Address Resolve Protocol,地址解析协议)和RARP协议(Reverse Address Resolve Protocol,逆地址解析协议)。它们实现了IP地址和机器物理地址(通常是MAC地址,以太网,令牌环网,无限网卡等都是使用的MAC地址)之间的相互转换。
    网络层必须先将目标机器的IP地址转化为物理地址才能够使用数据链路层提供的服务,这就是ARP协议的用途。而RARP仅用于网络上的某些无盘工作站,它们无法记住自己的IP地址,但可以利用网卡上的物理地址来向网络管理者(服务器或网络管理软件)查询自己的IP地址
以太网
  • 以太网不是一种具体的网络,而是一种技术标准;既包含了数据链路层内容,又包含了物理层的内容。
  • 以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M
  • 与以太网并列的还有无线LAN,令牌环网等
以太网帧格式
  • 目的地址和源地址是指网卡的硬件地址(即MAC地址 ),长度是48位(6字节),是在网卡出厂时固化的
  • 帧协议类型字段有三个值:分别对应IP(0x800)、ARP(0x806)、RARP(0x835)
  • 帧末尾是CRC校验码
MAC地址
  • MAC地址用来用来识别数据链路层中相连的节点
  • 长度是48位(6个字节),一般用16进制数加上冒号的形式来表示(如08:00:27:03:fb:19)
  • MAC地址在网卡出厂时就设定了,不能修改。MAC地址通常是唯一的(虚拟机中的MAC地址不是真实的MAC地址,可能会冲突;也有些网卡支持用户配置MAC地址)
MAC地址与IP地址的区别(下面这样理解很好理解)
  • IP地址描述的路途的起点与终点
  • MAC地址描述的是这个路途中某一段区间的起点和终点
MTU (最大传输单元)
        MTU相当于是数据在数据链路层被打包后最大的一个包大小(以太网是1500字节),这个限制是不同的数据链路对应的物理层产生的限制
  • 以太网帧中的数据长度规定为最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位
  • 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU
  • 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,需要对数据包进行分片
  • 不同的数据链路层标准的MTU是不同的
MTU对IP协议的影响
由于数据链路层MTU的限制,就要对较大的IP数据包进行分包
  • 将较大的IP包分成多个小包,为每个小包打上标签
  • 每个小包的IP协议头的16位标识部分都是相同的
  • 每个小包的IP协议头的3位标志字段中,第2位置为0(为0表示可以分片),第三位表示结束标记(当前包是否为最后一个包,如果是则置为1,否则置为0)
  • 到达对端时再将这些小包按顺序重组,拼装到一起返回给传输层
  • 一旦小包中任意一个丢失,接收端的重组就会失败,但是IP层不会负责重新传输数据
MTU对UDP协议的影响
  • 一旦UDP的数据超过1472(1500-20(IP首部)-8(UDP首部)),那么就会在网络层分成多个IP数据报
  • 这多个IP数据报有任意一个丢失,都会引起接收端网络层重组失败,这就意味着,如果UDP数据报在网络层被分片,整个数据报被丢失的可能性就大大增加了
MTU对TCP协议的影响
  • TCP的一个数据报也不能无限大,还是受限制于MTU,TCP的单个最大数据报的最大消息长度,称为MSS(Max Segment Size)
  • TCP在建立连接的过程中,通信双方会进行MTU协商
  • 最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度(这个长度仍然受限制于数据链路层的MTU)
  • 双方在发送SYN的时候会在TCP首部写入自己能支持的MSS值
  • 然后双方得知对方的MSS之后,选择较小的作为最终MSS
  • MSS的值就是在TCP首部的40字节变长选项中(kind=2)
下图是关于MSS和MTU的两者之间的关系图

TCP/IP协议族的数据链路层基础(1)——MTU相关推荐

  1. TCP/IP协议族的网络层基础(1)——网段划分

        网络层实现数据包的选路和转发.WAN(广域网)通常使用众多分级的路由器来连接分散的主机或LAN(局域网),因此通信的两端通常不是直接相连的,而是通过多个中间节点(路由器)连接的.     网络 ...

  2. TCP/IP 协议族 And HTTP 协议 基基基础知识

    文章目录 TCP/IP协议群 HTTP 协议 1.HTTP 消息结构 2.HTTP 请求方法 3.HTTP 响应信息 4.HTTP 状态码 5.HTTP content-type 6.请求类型Get与 ...

  3. 《TCP/IP协议族》:数据链路层三

    1.引言 从图1-4可以看出,在TCP/IP协议族中,链路层主要有三个目的: (1)为IP模块发送和接收IP数据报: (2)为ARP模块发送ARP请求和接收ARP应答. (3)为RARP发送RARP请 ...

  4. TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

    接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...

  5. Network 之五 TCP/IP 协议族、工作流程、常用协议格式

      最近工作需要搞网络相关的内容,由于之前对网络了解比较少,因此开始重点学习一下网络相关的各种知识.博文中的有些内容来自于在学习过程中对于一些互联网上我认为的重点知识的记录,如果侵权请联系删除!    ...

  6. 第一章 TCP/IP协议族

    一.协议族体系结构 TCP/IP协议族分为四层协议系统,自底向下分别为数据链路层.网络层.传输层.应用层. 数据链路层常用ARP(地址解析协议)和RARP(逆地址解析协议).在网络层使用IP寻址,而在 ...

  7. 网络传输之TCP/IP协议族

    我们现实网络无处不在,我们被庞大的虚拟网络包围,但我们却对它是怎样把我们的信息传递并实现通信的,我们并没有了解过,那么当我们在浏览器中出入一段地址,按下回车这背后都会发生什么? 比如说一般场景下,客户 ...

  8. TCP/IP协议族 详解(TCP/IP四层模型、OSI七层模型)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols) ...

  9. 程序员必知必会网络传输之TCP/IP协议族,共864页的详解文档让你原地起飞!

    我们现实网络无处不在,我们被庞大的虚拟网络包围,但我们却对它是怎样把我们的信息传递并实现通信的,我们并没有了解过,那么当我们在浏览器中出入一段地址,按下回车这背后都会发生什么? 比如说一般场景下,客户 ...

  10. TCP/IP 协议族 简介(应用层,传输层,网络层,链路层)

    互联网协议(Internet Protocol Suite [swi:t])是一个 网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构.它常被通称为TCP/IP 协议族(TCP/IP P ...

最新文章

  1. python培训班学费-南京Python培训班学费贵吗怎么收费
  2. opencv 图像的腐蚀与膨胀
  3. 判断字典中指定key是否存在
  4. 火山引擎视频云:从toC到toB,如何将最好的技术开放出去
  5. Java基本数据类型的传值
  6. 计算机常用主题词,标引主题词的目的是( )。A.反映文件的全部内容B.便于计算机检索和管理C.供归_考题宝...
  7. 数字图像处理--颜色选择
  8. vsftpd增加用户 linux,linux下开通vsftpd 添加新ftp用户
  9. 配置私有仓库(使用registry镜像搭建一个私有仓库)
  10. 最短路径之Dijkstra算法和Floyd-Warshall算法
  11. lingo纳什均衡代码_传统的战略式博弈求解纳什均衡方法——虚拟博弈(Fictitious Play)讲解及其代码...
  12. 关于计算机英语手抄报全国一等奖,获奖手抄报图片
  13. 使用aspose方式使excel,ppt,word进行在线预览。(无水印)
  14. 配置完python环境后输入命令显示缺少python27.dll解决办法
  15. python函数实验总结_Python程序设计实验报告:实验六 函数
  16. 转换MP4后浏览器播放只有声音没有图像的问题
  17. 机器人4.0时代来临!四大核心技术助推大规模商用部署
  18. 【Cucumber系列】Junit Test Runner和CucumberOptions
  19. python调用matlab需要的库_python调用matlab文件
  20. oracle部门分组员工平均工资,oracle分组查询

热门文章

  1. bitcoin-NG的分析
  2. 三做一年级算术题-吐槽挖雷
  3. cogs 1752 [BOI2007]摩基亚Mokia(cdq分治+树状数组)
  4. 【跨境电商平台】Magento VS Shopify,选谁进行独立站建站?
  5. p17.matplotlib:图中图
  6. 程序员接私单需要注意的几大问题
  7. javascript中数据类型转换为Number
  8. 配置全局使用的scss样式公用样式函数(后台框架整体颜色改变)
  9. 东方卫视携微软小冰打造人工智能新闻节目引热议
  10. 打开优盘显示要格式化怎么办?