数据链路层的三个基本问题是什么?
一、数据链路层的三个基本问题
1.封装成帧
封装成帧 (framing) 就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。首部和尾部的一个重要作用就是进行帧定界。
帧是数据链路层的数据传送单元,一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。为了提高帧的传输效率,应该使帧的数据部分长度尽可能地大于首部和尾部的长度。
2.透明传输
如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”。 解决方法:字节填充 (byte stuffing) 或字符填充 (character stuffing)。
发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC” (其十六进制编码是 1B)。接收端的数据链路层在将数据送往网络层之前删除插入的转义字符如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
3.差错控制
在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。误码率与信噪比有很大的关系。为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
延伸阅读:
二、数据链路层使用的信道
1.点对点信道
也就是字面意思,点对点得通信方式。
2.广播信道
这种信道是一对多的方式,所以整个过程也比较复杂。必须使用一些信道协议来协调网络中的主机数据发送。物理层的线路有传输介质与通信设备组成,比特流在传输介质上传输时肯定会存在误差的。这样就引入了数据链路层在物理层之上,采用差错检测、差错控制和流量控制等方法,向网络层提供高质量的数据传输服务。
以上就是关于数据链路层的内容希望对大家有帮助。
相关推荐HOT
更多>>数组名与指针变量有什么区别?
一、数组名与指针变量的区别在 C/C++ 程序中,数组名和指针变量虽然在语法上有些相似,但实际上它们的含义和用途是不同的。1、数组名数组名是指...详情>>
2023-10-11 22:54:21javase和javaee区别?
一、javase和javaee区别Java SEJava SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入详情>>
2023-10-11 21:58:40jsf和jsp有什么区别?
一、jsf和jsp的区别1、目标JSP是一种基于Java的技术,主要用于为小型应用程序创建动态网页。将它用于大规模应用程序非常困难,因为它们是使用某...详情>>
2023-10-11 17:12:40ejb与soa有什么区别?
一、ejb与soa的区别ejb与soa的区别是,ejb是一种特殊的javabean,比起一般的javabean,也就是java的class,多了一些接口需要继承和实现。soa是...详情>>
2023-10-11 16:40:59