1、概念

主要功能:用于两个设备(同一种数据链路节点)之间进行信息传递。

网络层和数据链路层对比: 网络层是进行地址管理和路由选择的,是为数据报的转发找出一条路来;而数据链路层解决的是两个结点之间的数据交换,数据链路层接近于物理层的概念。

2、以太网

2.1 概念

以太网不是具体的网络,而是一种技术标准。包含数据链路层和物理层的内容。例如:规定了网络拖拓扑结构、访问控制方式、传输速率。

以太网是当前最广泛的局域网技术,还有令牌环网,无限LAN等。

2.2 以太网数据帧格式


1)源地址和目的地址:MAC地址(48位)

2)类型

08xx 协议类型
0806 ARP请求
0835 ARP应答
0800 ip协议

2.3 为什么存在MAC地址还需要IP地址去标识互联网中的一台主机呢?

在数据链路层,存在多种异构的网络,比如以太网、令牌环网等,也就是数据链路层存在多种MTU,既然存在多种不同的传输信道,如果只有MAC地址,在不同的网络之间是没有办法传输的,只能在MAC地址上封装一次抽象的IP地址来封装底层各种不同的网络。

MAC地址和IP地址的对比

  • 一个数据报中的源IP地址和目的IP地址是为了标识这个数据的起点和终点
  • 源MAC地址和目的MAC地址是为了标识上一站的地址和下一站的地址
  • 在一个数据报的传输过程中,IP一直不变,而MAC地址是一直在变的

3、最大传输单元MTU

这个限制是不同的链路层对应的物理层的限制。

  • 以太网帧中的数据长度规定最小46字节,最大1500字节(ARP:如果不够46字节,则要在后面补填充位);如果大于1500字节,必须在网络层分片。
  • MTU的最大值为1500,称为以太网的最大传输单元,不同的网络类型有不同的MTU
  • 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU,则需要对数据包进行分片。

3.1 MTU对IP地址的影响

由于链路层存在MTU的限制,导致网络层的报文如果超过1500字节,就必须要对齐进行分片发送。

  • 将ip包分成多个小包,每个小包的ip协议头的16位标识都是相同的。
  • 每个小包的3位标志字段中,第一位保留;第二位为1,表示禁止分片;第三位标识结束标识,置为1。
  • 达到对端之后,将这些小包按照顺序重组,拼接完成后返回给传输层。如果任一小包丢失,接收端的重组就会失败,但是IP层不会负责重新传输数据。

3.2 MTU对UDP协议的影响

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

3.3 MTU对TCP的影响

  • TCP数据报也不能无限大,单个数据报的最大消息长度,称他为MSS。
  • 双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值。然后双方得知对方的MSS值之后选择较小的作为最终的MSS。MSS的值就是在TCP首部的40字节变长选项中(kind=2)。
  • MSS = MTU - TCP首部 - IP首部,既TCP报文的数据长度

在Linux系统中可以使用ifconfig命令查看MAC、IP和MTU:

4、数据链路层的三个基本问题

4.1 封装成帧

封装成帧:帧是数据链路层的传送单位。一个帧的帧长等于帧的数据部分加上帧的首部和尾部的长度。首部和尾部的一个重要作用是帧定界(确定帧的界限)。每一种链路层协议都规定了所能传输的帧的数据部分的上限既最大传输单元MTU。


对于帧定界做以补充

1)当数据是由ASCII组成的文本文件时,使用特殊的帧定界符。

SOH(Start Of Header)放在帧的最前面,表示帧的开始。十六进制编码是01(二进制00000001)

EOT(End Of Transmission)表示帧的结束。十六进制编码是04(二进制00000100)

SOH和EOT只是控制字符的名称。

2)当数据是非ASCII码的文本文件(字符都是从键盘上输入)时

字节填充:发送端的数据链路层在数据中出现了控制字符SOH或者EOT时,就在其前面加上转义字符“ESC”(十六进制为1B,二进制为00011011)。如果数据中出现了转义字符,也在其前面加上一个转义字符。在接收端的数据链路层在把数据向网络层传送之前,删除这些转义字符。

4.2 透明传输

透明传输:表示无论什么样的比特组合的数据,都能按照原样没有差错的通过这个数据链路层。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。

解决方法:字符填充。

4.3 差错检验

在计算机网络传输数据时,必须采用各种差错控制技术。目前在数据链路层广泛使用了循环==冗余检验(CRC)==的检错技术。

为什么数据链路层要以帧为单位来传送数据呢? 因为如果不以帧为单位,就无法加入冗余码来进行差错检验。

5、点对点协议PPP

一个主站轮流和链路上的多个从站进行通信。只支持点对点的链路通信,只支持全双工链路。

PPP协议的三个组成部分

1)一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。

2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP。

3)一套网络控制协议NCP。

5.1 PPP协议格式


1)标志字段F:0x7E(01111110):表示一个帧的开始或者结束。标志字段就是PPP帧的定界符。

2)地址字段A:0xFF(11111111)

3)控制字段C:0x03(00000011)

4)协议字段:为0x0021时,PPP协议帧就是IP数据报;为0xC021时,信息字段就是PPP链路控制协议LCP的数据;为0x8021时表示网络层的控制信息。

5)FCS:使用CRC帧检验的冗余码。

6、其他重要的协议或技术

6.1 、NAT技术

一种将私有IP和全局IP转换的技术

1)静态NAT(一对一)
内部网络的私有ip地址转换成公有ip地址

2)动态NAT(多对多)
私有IP地址可随机转换为任何指定合法的IP地址

3)网络地址端口转换 NAPT(多对一)
改变外出数据包的源端口并进行端口转换

NAPT是使用最普遍的一种转换方式,它有两种转换方式:SNAT,DNAT
源NAT(SNAT):修改第一个数据包的源地址。伪装数据包就是SNAT的例子。
目的NAT(DNAT):修改第一个数据包的目的地址。如平衡负载、端口转发、透明代理

6.2 NAT和代理服务器

代理服务器:客户端向代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器;服务器返回结果后,代理服务器又把结果传给客户端。

NAT和代理服务器的区别
1)应用上:NAT设备是网络基础设备之一解决IP不足的问题。代理服务器更贴近具体应用

2)底层上:NAT是工作在网络层,直接对ip地址进行替换。代理服务器工作在应用层。

3)范围上:NAT一般在局域网出口部署。代理服务器可以在局域网,也可以广域网,也可以跨网。

4)部署位置:NAT一般集成在防火墙,路由器等硬件设备。代理服务器则是一个软件程序,需要在服务器上。

【计算机网络】数据链路层详解相关推荐

  1. 计算机网络体系结构详解(7层、5层、4层的区别)

    计算机网络体系结构详解(7层.5层.4层的区别) 前言: 在学习计算机网络体系结构模型的时候,相信大家经常会有这样的疑惑?计算机网络体系结构到底是多少层模型?其实,无论是说7层.5层还是4层都是可以的 ...

  2. IP,ARP,以太网--网络层与数据链路层详解

    目录 网络层 IP协议--网络层 基本概念 IP协议格式 IP地址 子网 网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公网IP地址 路由 ICMP协议--网络层 ping命令 面试常问 ...

  3. 面试:计算机网络基础详解(一)

    计算机网络是计算机.软工类面试的基础,不管是软件/硬件开发.技术支持还是测试职位,都会涉及到计算机网络的基础知识,本文基于笔者之前的面试准备所做的相关知识整理.本文的主要内容: OSI 与 TCP/I ...

  4. 计算机网络知识点详解及面试深入

    计算机网络主要知识点和面试题 1.TCP报头格式 端口号:用来标识同一台计算机的不同的应用进程.计算机网络通过端口号实现复用/分用 1)源端口:源端口和IP地址的作用是标识报文的返回地址. 2)目的端 ...

  5. 【Linux】24_网络管理数据链路层详解

    目录 数据链路层简介 组建局域网 VLAN详解 TRUNK详解 数据链路层简介 功能:链路创建,维护,管理帧封装,传输,同步差错校验 地址:MAC地址(媒体访问控制地址),结构为12位16进制数字.示 ...

  6. OSI参考模型——数据链路层详解

    博文目录 一.数据链路层的功能 二.差错的产生原因和控制方法 三.数据链路层使用的最重要的协议--HDLC协议 四.数据链路的工作过程 五.滑动窗口协议 六.点-点协议PPP 一.数据链路层的功能 1 ...

  7. 计算机网络知识详解之:TCP连接原理详解

    网络知识详解之:TCP连接原理详解 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名 ...

  8. 计算机网络(三)数据链路层详解

    目录 第三章 数据链路层和局域网技术 3.1 数据链路层功能 3.2 点到点信道的数据链路 PPP协议的特点 PPP协议的帧格式 PPP协议的工作状态 3.3 广播信道的数据链路 局域网的数据链路层 ...

  9. OSI体系结构——数据链路层详解

    前言 数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间.数据链路层在物理层提供的服务的基础上向网络层提供服务,数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理 ...

最新文章

  1. 黑盒测试方法之边界值分析法
  2. 云原生时代,Java还有优势么?
  3. vscode更改安装路径 无法访问_装完系统必做的优化,更改用户文件和软件安装默认路径,你知道吗...
  4. MATLAB概率密度函数估计
  5. NSArray ----NSMutableArray
  6. java 堆栈_Java中线程与堆栈的关系
  7. 漫画:程序员战力图鉴
  8. Linux虚拟网络原理小结
  9. 深度学习优化算法大全系列3:NAG(Nesterov Acceleration Gradient)
  10. android studio : amend commit
  11. 微信该服务器已饱满,微信故障背后:用户91pron过亿后的小故障有大影响
  12. excel筛选中文或者筛选数字
  13. Java接口练习(组装电脑)
  14. ubuntu compiz 不能启动
  15. 专家解答 揭密IBM Power LC系统
  16. android 打开和关闭输入法
  17. 微信小程序简单好看的表格器
  18. php 课程设计总结心得体会,课程设计心得体会
  19. k--最近邻算法(KNN)
  20. OpenCV,OpenGL,DirectX三者的区别

热门文章

  1. 深度学习-参数量模型大小理论计算量
  2. Linux初学者基础命令行(mkdir、rmdir:创建、删除目录)
  3. Linux SDIO WIFI Marvell8801/Marvell88w8801(四) --- Linux Wi-Fi架构
  4. 机器学习——网易慕课笔记
  5. 信息安全等级保护措施之物理安全技术
  6. Ubuntu命令卸载软件(经过sudo apt-get install安装的)
  7. python大蛇_让大蛇(Python)帮你找工作
  8. Brinson多期归因计算示例
  9. 归因分析笔记5:机器学习可解释性
  10. RT-Thread中的链表结构