计算机网络——数据链路层

  • 计算机网络数据链路层
    • 一 点对点信道的数据链路层
        • 1链路
        • 2数据链路
        • 3点对点信道的数据链路层的通信
        • 4点对点信道三个基本问题
    • 二 点对点协议PPP
    • 三 广播信道的数据链路层
      • F1 CSMACD
        • 1CDMACD
        • 2多点接入
        • 3载波监听
        • 4碰撞检测
        • 5解决碰撞的办法
        • 6强化碰撞
        • 7适配器
      • F2 以太网的MAC层
        • 1MAC帧的格式
        • 2无效的MAC帧
        • 3扩展的以太网
        • 4网桥和集线器或转发器不同
        • 5虚拟局域网 VLAN


计算机网络——数据链路层

数据链路层信道主要有:点到点信道、广播信道

一、 点对点信道的数据链路层


1)链路

从一个结点到**相邻**结点的一段物理线路(有线、无线),中间没有任何其他的交换节点(简单理解就是相邻的线路,中间没有经过交换)。

2)数据链路

一条路线上传输数据时,除了有一条物理线路之外,还需要一些通信协议控制,实现这些协议的硬件+软件即构成了数据链路,最常用的方法是使用**网络适配器**来实现。

点对点信道的数据链路层的协议数据单元是——**帧**。文章里也有涉及到数据链路的介绍

http://blog.csdn.net/wzhworld/article/details/73359741

3)点对点信道的数据链路层的通信

网络层发下的数据构成添加首部尾部后将帧,将封装好的帧发送到数据链路,另一个结点接收到无差错则提取上交到网络层,有则丢弃。

4)点对点信道三个基本问题

计算机网络——数据链路层_第1张图片

1、封装成帧

就是在一段数据前后添加首部尾部。首部为SOH(使用十六进制:01、二进制:00000001表示),尾部为EOT(使用十六进制:04,使用二进制:00000100),数据装载首尾部之间。
规定帧的数据部分的长度上限——**最大传送单元MTU**

2、透明传输

数据链路层协议允许所传送的数据可具有任意形式的比特组合。可能出现两种情况

(1)第一点提到当收到EOT时认为结束,那么但我们在数据中也有EOT的数据流该怎么保证传输呢,我们就在EOT前添加一个“ESC”(十六进制为1B)

(2)出现转义字符时也需要进行处理,解决办法是在转义字符前面再加一个转义字符,

这两种处理方式成为字节填充或者字符填充。

3、差错检测

传输过程中可能出现“0”变成“1”的可能,此时就需要差错检测保证可靠传输。常用CRC差错检测(有兴趣自行百度)。

可靠传输:

数据链路层的发送端发送什么,接收端就接受什么。

传输差错:

一种是比特差错(即“0”“1”变换),一种是出现帧丢失、帧重复、帧失序。

二、 点对点协议PPP


计算机网络——数据链路层_第2张图片

F标志一个帧的开始或者结束,A、C目前还没进行定义,只是一个固定值。FCS是用来判断PPP帧的信息字段是IP数据段、链路控制协议LCP、或者网络层的控制数据。

信息字段的长度是可变的,不超过1500字段。

字节填充

在PPP使用异步传输时使用,个人觉得跟透明传输有点类似,就是当出现F相同的数据时,直接转成(0x7D,0x5E),如果有出现0x7D的字节,则转成(0x7D,0x5D)两个字节。

零比特填充:

使用同步传输时,当连续出现五个“1”时,在后面添加一个“0”。

三、 广播信道的数据链路层


F1、 CSMA/CD

[1]CDMA/CD

意思就是载波监听多点接入/碰撞检测,算那个要点如下。

[2]“多点接入”:

表示许多计算机以多点接入的方式连接在一根总线上。

[3]“载波监听”:

是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。 

[4]“碰撞检测”:

就是计算机边发送数据边检测信道上的信号电压大小。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。 碰撞检测也称为“冲突检测”。

电磁波在1km电缆的传播时延为5us,假设A到B点的距离为1km,那么最迟要10us才知道自己的发出的数据有没发生碰撞(往返)。这个往返的时间称为争用期,又称为碰撞窗口,经过这个时间我们就可以知道没发生碰撞。

[5]解决碰撞的办法

截断二进制指数退避,这个算法的思路就是对于10Mbit/s的以太网来说,发送512bit需要51.2us(争用期),从【0,1,2,2^k-1】中随机娶一个数来,记为r,当发生碰撞时,k=Min【重传次数,10】,推迟r倍数的争用期后在进行重发。(以太网规定的最小帧间隔时间为9.6us)。

[6]强化碰撞

(1)当发送数据的站一旦发现发生了碰撞时,立即停止发送数据;

(2)再继续发送若干比特的人为干扰信号(jamming signal),以便让所有用户都知道现在已经发生了碰撞。  

[7]适配器:

计算机网络——数据链路层_第3张图片

适配器与局域网之间的通信是通过电缆或者双绞线以并行传输方式进行传输,与计算机之间的通信方式是通过串行的传输方式进行传输。由于网络上的数据率与计算机的数据率并不相同,因此必须对数据进行缓存。当收到有差错的帧时,适配器直接丢弃。

F2、 以太网的MAC层

在局域网中,硬件地址又称为物理地址,或 MAC 地址。 802 标准所说的“地址”严格地讲应当是每一个站的**“名字”**或**标识符**。 
网卡从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址。如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。“发往本站的帧”包括以下三种帧: 

(1)单播(unicast)帧(一对一)

(2)广播(broadcast)帧(一对全体)

(3)多播(multicast)帧(一对多)

计算机网络——数据链路层_第4张图片

[1]MAC帧的格式

常用的以太网MAC帧格式有两种标准 :

(1)DIX Ethernet V2 标准(最常用的)

(2)IEEE 的 802.3 标准

首尾共18字节,而最小长度是64字节,所以数据部分是从46字节到1500字节。其中的“类型”是指明上一次使用的是什么协议。从MAC传到物理层需要在帧之前插入8个字节,其中7个字节为前同步码,1个字节为帧开始界定符。

[2]无效的MAC帧

(1)帧的长度不是整数个字节;

(2)用收到的帧检验序列 FCS 查出有差错;

(3)数据字段的长度不在 46 ~ 1500 字节之间;(**有效的MAC长度在64~1500**)

(4)对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。 

[3]扩展的以太网

(1)物理层扩展

主机使用光纤和一对光纤调制解调器连接到集线器;

用多个集线器可连成更大的局域网,一个以太网是一个碰撞域,即任意时刻,只能有一个站发送数据。

(2)数据链路层扩展

在数据链路层扩展局域网是使用网桥。网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。

网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的端口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个端口 

网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。  

[4]网桥和集线器(或转发器)不同

1)集线器在转发帧时,不对传输媒体进行检测。

2)网桥在转发帧之前必须执行 CSMA/CD 算法。若在发送过程中出现碰撞,就必须停止发送和进行退避。在这一点上网桥的接口很像一个网卡。但网桥却没有网卡。**由于网桥没有网卡,因此网桥并不改变它转发的帧的源地址。**

3)多接口网桥——以太网交换机 
以太网交换机的每个接口都直接与主机相连,并且一般都工作在全双工方式。使用以太网交换机时,虽然在每个接口到主机的带宽还是 10 Mb/s,但由于一个用户在通信时是独占而不是和其他网络用户共享传输媒体的带宽,因此对于拥有 N 对接口的交换机的总容量为 N*10 Mb/s。这正是交换机的最大优点。  

[5]虚拟局域网 VLAN

VLAN是由一些局域网网段构成的与物理位置无关的逻辑组。虚拟局域网限制了接收广播信息的工作站数,使得网络不会因传播过多的广播信息(即“广播风暴”)而引起性能恶化。 

其他文章

计算机网络知识
计算机网络——数据链路层
计算机网络——运输层
计算机网络——网络层(1)IP
计算机网络——网络层(2)IP
计算机网络——应用层

你可能感兴趣的:(计算机网络)