我是靠谱客的博主 生动唇彩,最近开发中收集的这篇文章主要介绍数据链路层的三个基本问题今天我们主要讨论数据链路层的三个基本问题:封装成帧,差错控制,透明传输。,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
今天我们主要讨论数据链路层的三个基本问题:封装成帧,差错控制,透明传输。
0x1数据链路层使用的两种信道
1.点对点信道
顾名思义,就是两台计算机一对一通信
2.广播通信
一台计算机发送消息,在网络上的所有主机都会收到,但是实际上根据某些规定,只有某些特定的计算机才会接受这个消息
0x2有关局域网
这里必须说明一些,虽然局域网是一个网络,但其实我们并不把它放在网络层来考虑,因为我们平时讨论的网络层都是跨过不同的网络,期间需要路由转发等,所以我们把局域网归到数据链路层来讨论。
0x3链路
链路与数据链路是不同的两个概念,链路我们一般是指物理线路,而数据链路则是传输信息的逻辑上的链路,所以有时候我们也把他们叫为物理链路与逻辑链路。
0x4封装成帧
我们都知道在计算机网络中分组交换中我们会把数据划分成多个小段,网络层是ip数据报,在数据链路层则是帧,与其他划分的方式差不多,我们划组装帧的方式就是在某段数据的两端加上首部(soh)与尾部(eot)他们的十六进制分别是01与04,我们期望的是数据部分比他们的头部与尾部要长的多,这样相对来说对链路的资源利用则更加多。但是链路层规定了一个最大数据传输单元(MTU),封装成帧对差错控制也有一定的贡献,例如数据在发送途中丢了一般,只有SOH没有EOT那么接收端收到该数据就会将他丢弃。
0x5透明传输
透明是什么?就是不可见,就像一个100%透明的玻璃对于我们,这里所说的透明传输就是无论是什么样的比特组合的数据经过数据链路层都会原模原样的传输到接收端,就像毫无障碍一样。那么个人认为这个透明传输的基础其实就是数据不能出错(貌似离不开差错控制啊),透明传输中的要点就是当数据中出现了和SOH以及EOT一样编码的数据时不会出错,所以这里就有一个转义的方法,如果数据中出现了“SOH”与“EOT”时用转义符“ESC”将他标识出来,转义方法是在他们之前插入转义符,这种方式叫做字节填充或字符填充当然如果数据中出现了“转义符”也用转义符转义(如果有两个连续的符号靠在一起,只需要加一个转义符就行)。
0x6差错控制
这里我们只讨论循环冗余校验(CRC)这种差错控制方式,如果想要了解其他方式,请自行Google。
例如我们要传输一段数据10000111,想让他除以一个数字,会得到一个余数,这个余数就是冗余码,然后把冗余码加在需要传输的码后面,一同传输,然后接收端如果正确接受的,就能狗被除数整除,如果不能整除就说明出错了。
CRC的基本原理就是这样了,由于能力与精力有限只能讲讲原理性的东西了,具体一点的请访问此篇文章:http://blog.csdn.net/liyuanbhu/article/details/7882789
最后
以上就是生动唇彩为你收集整理的数据链路层的三个基本问题今天我们主要讨论数据链路层的三个基本问题:封装成帧,差错控制,透明传输。的全部内容,希望文章能够帮你解决数据链路层的三个基本问题今天我们主要讨论数据链路层的三个基本问题:封装成帧,差错控制,透明传输。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复