计算机网络 第三章: 数据链路层概述

文章目录

数据链路层在网络体系结构中所处的地位

数据链路层在网络体系结构中处于关键的位置,它提供了物理传输的可靠性,并负责处理数据的错误检测、流量控制和介质访问等功能。它是网络通信的基础,为网络层提供了稳定的数据传输环境。

链路、数据链路和帧

链路

链路 (Link)是指从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点。

数据链路 (Data Link)是基于链路的。当在一条链路上传送数据时,除需要链路本身,还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

计算机中的网络适配器(俗称网卡)和其相应的软件驱动程序就实现了这些协议。一般的网络适配器都包含了物理层和数据链路层这两层的功能。

帧(Frame)是数据链路层对等实体之间在水平方向进行逻辑通信的协议数据单元PDU。

数据链路层的三个重要问题

封装成帧和透明传输

发送方的应用层将待传输的应用层协议数据单元交付给运输层,运输层为其添加一个运输层首部, 使之封装为运输层协议数据单元 并将运输层协议数据单元交付给网络层, 网络层位其添加一个网路层首部, 使之封装为网络层协议数据单元并将网路层数据单元交付给数据链路层, 数据链路层为其添加一个首部和尾部:

下图表示透明传输:

如果不解决上述问题,则数据链路层就会对上层交付的PDU的内容有所限制,即PDU中不能包含帧定界符。显然,这样的数据链路层没有什么应用价值。

如果能够采取措施,使得数据链路层对上层交付的PDU的内容没有任何限制,就好像数据链路层不存在一样,就称其为透明传输。

差错检测

发送方给接收方发送桢, 由于实际的通信链路都不是理想的, 表示比特的信号在信道上传输时不可避免的会产生失真 甚至出现误码, SO , 接收方收到该桢后 如何才能知道桢中出现了误码呢? 这就需要 差错检测: (奇偶校验 循环冗余校验两种算法)

可靠传输

如果数据链路层向其上层提供的是不可靠的传输服务, 则接收方的数据链路层丢弃有误码的桢即可.

若数据链路层向其上层提供的是可靠的传输服务, 这就需要数据链路层通过某种机制实现发送什么, 接收方都能正确收到.

总结

封装成帧和透明传输

数据链路层给上层交付下来的协议数据单元PDU添加帧首部和帧尾部,这称为封装成帧。

如果能够采取措施,使得数据链路层对上层交付的PDU的内容没有任何限制,就好像数据链路层不存在一样,就称其为透明传输。

差错检测

帧在传输的过程中可能出现误码。

接收方根据发送方添加在帧尾部中的检错码,可以检测出帧是否出现了误码。

可靠传输

不可靠传输服务:收到有误码的帧,直接丢弃,其他什么也不做;未收到发送方发送的帧,也不进行任何处理。

可靠传输服务:实现发送方发送什么,接收方最终都能正确收到。

相关推荐
一路往蓝-Anbo14 小时前
第四章:手撕协议栈 —— 缓冲区与结构体数据的 Mock 技巧
网络·stm32·单片机·嵌入式硬件·软件工程·tdd
号码认证服务14 小时前
小米、OPPO、VIVO手机支持号码认证显示公司名吗?
java·服务器·网络·经验分享·智能手机·云计算·php
小娄~~15 小时前
TCP/IP协议和TFTP协议
网络·网络协议·tcp/ip
Rudon滨海渔村15 小时前
macOS启动转换助理出现“不能下载该软件,因为网络出现问题 ”
网络·macos
xiaoxue..15 小时前
HTTPS:更安全的HTTP,从加密原理、数字证书到TLS 握手全解析
网络协议·面试·https
我爱C编程15 小时前
基于Sarsa强化学习的异构蜂窝网络中基站休眠算法matlab仿真
网络·matlab·强化学习·sarsa·异构蜂窝网络·基站休眠
大明者省15 小时前
手机访问虚拟机里面的网站(从虚拟机桥接网络到宝塔面板可访问)
linux·服务器·网络
fiveym15 小时前
BIOS/UEFI模式PXE装机全解析
服务器·网络·性能优化
剑神一笑15 小时前
Linux netstat 命令深度解析:从网络连接到端口监控的完整实现
linux·运维·网络
99乘法口诀万物皆可变15 小时前
UDS诊断测试用例评审方法论:以BMS产品为例的六大维度与改进路线图
网络·测试用例