当前位置: 首页 > article >正文

数据链路层(一)-使用点对点信道的数据链路层

数据链路层属于计算机网络的底层,使用的信道主要有以下两种类型:

(1)点对点通信。这种通信使用一对一的点对点通信方式。

(2)广播通信。这种信道使用一对多的广播通信方式。

1 使用点对点信道的数据链路层

1.1 数据链路和帧

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

数据链路:当需要一条线路上传送数据时,除了必须有一条物理线路外,还必须有有一些通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加在链路上,就构成了数据链路。

帧:点对点通信的数据链路层的协议数据单元,数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并交给网络层。

在点对点通信的数据链路层中,在通信时,主要有以下三步:

(1)节点A的数据链路层吧网络层交下来的IP数据包添加首部和尾部封装成帧;

(2)节点A把封装好的数据帧发送给节点B的数据链路层;

(3)若节点B的数据链路层接收到的帧无差错,则从接收到的帧中取出IP数据包交给上层网络层;否则丢弃这个帧。

1.2 封装成帧

在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。这样的帧是数据链路层的数据传输单元。一个针对长度等于帧的数据部分长度加上帧头和帧尾的长度。在帧的首部和尾部中包含有很多控制信息,如帧定界,用来确定帧的界限。

在发送数据帧时,是从帧首开始发送的,各种数据链路层协议对于帧首和帧尾的格式有明确的规定。同时,为了提高帧的传输效率,应当使帧的数据部分长度尽可能大于首部和胃部的长度,但是,每一种链路层协议都规定了所能传送的帧的数据部分长度上限--MTU,最大传送单元。

帧定界,可以使用特殊的帧定界符,当数据是可打印的ASCII码组成的文本文件时,控制字符SOH(strat of header)放在最前面,表示首部开始,另一个控制字符EOT(end of transmission)表示帧的结束。

1.3 透明传输

当传送的数据帧是用文本文件组成的帧时,其数据部分不会出现像SOH或者EOT这样的帧定界控制字符,所以不管从键盘上输入什么字符都可以放在这样的帧中传输过去,这样的传输就是透明传输。

当传送的数据帧是非ASCII码的文本文件时,某个数据的某个字节的二进制代码正好和SOH或EOT的一样,这样就会导致数据链路层错误地“找到帧边界”,收下部分帧(误认完整的帧),丢弃部分数据(找不到帧界定符SOH)。这就造成了非透明传输。

为了解决透明传输的问题,就必须将数据中可能出现的控制字符“SOH”和“EOT”在接收端不被解释为控制字符。

具体方法:发送端的数据链路层在数据中出现控制字符SOH或EOT的前面插入一个转义字符“ESC”。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转移字符。这种方法叫做字节填充或字符填充


http://www.kler.cn/a/412488.html

相关文章:

  • TCP/IP协议攻击与防范
  • 路面泥泞,坑洼,裂缝,路面损坏,马路牙检测 YOLO标记资源整理
  • jmeter基础06_(练习)常见的http请求
  • Redis设计与实现第14章 -- 服务器 总结(命令执行器 serverCron函数 初始化)
  • 【04】Selenium+Python 手动添加Cookie免登录(实例)
  • 【测试工具JMeter篇】JMeter性能测试入门级教程(一)出炉,测试君请各位收藏了!!!
  • Edge浏览器保留数据,无损降级退回老版本+禁止更新教程(适用于Chrome)
  • 深度理解进程的概念(Linux)
  • 【C#设计模式(15)——命令模式(Command Pattern)】
  • 数据结构——排序算法第二幕(交换排序:冒泡排序、快速排序(三种版本) 归并排序:归并排序(分治))超详细!!!!
  • MQ高级1:消息可靠性问题、生产者可靠性
  • STM32F4系列单片机新玩法---Micropython--pyBoard
  • PHP实现终端表格提取
  • Three.js 和其他 WebGL 库 对比
  • Docker--将镜像推送到阿里云仓库中
  • linux上离线部署Mysql5.7.22
  • 5.1 MySQL 锁机制
  • 【pyspark学习从入门到精通22】机器学习库_5
  • 如何做小红书平台关键词优化??
  • springboot+vue电影购票系统(源码+文档+调试+答疑)
  • linux安全管理-会话安全
  • 计算机网络的初步认识
  • MyBatis的优缺点
  • 每日一题 LCR 109. 打开转盘锁
  • 【系统架构设计师】高分论文:论软件架构的生命周期
  • QT6学习第五天 第一个QT Quick程序