计算机网络-数据链路层小结
title: 计算机网络-数据链路层小结
date: 2020-02-22 13:35:15
tags:
- 数据链路层
categories: - 计算机网络
[TOC]
计算机网络 数据链路层
数据链路层基本概念及基本问题

基本概念
链路(link)
链路是一条点到点的物理线路段,中间没有其他点,一条链路只是一条通路的一个组成部分。
数据链路(data link)
除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 目前最常用的方法是使用适配器(网卡)来实现这些协议的硬件和软件。
- 一般的适配器都包括了数据链路层和物理层这两层的功能。
帧
数据链路层传送的是帧
在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。

三个基本问题
封装成帧
封装成帧就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。
首部和尾部的一个重要作用就是进行帧定界

MTU 最大传输单元 帧的数据部分最大为 1500字节
透明传输
如果传输的数据是ASCII码中“可打印字符(共95个)”集时,是一个正常的帧,但是当数据中出现帧尾的时候,就会错误的认为一个帧的范围,数据不是仅由“可打印字符”组成时,就会出问题,如图:

解决方案: 使用转义字符的字节填充方法
个人认为这种解决方案C语言中的转义字符思想一样,所以类比理解就好了
发送端
发送端的数据链路层在数据中出现控制字符”SOH“ 或 ”EOT“ 的前面插入一个转义字符”ESC“(十六进制编码 1B)
接收端
字节填充(byte stuffing)或字符填充(character stuffing)接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
如果转义字符也出现在数据中,就在转义字符前再插入一个转义字符

差错控制
问题描述:
传输过程中可能会出现产生 比特差错:1 可能变成0 ,0可能变成1
在一段时间中,传输错误的比特占所有传输比特总数的比率称为 误码率(BER Bit Error Rate)
为了保证数据传输的可靠性,在计算机网络传输数据时,必须才用各种差错检查措施。
计算方法
循环冗余检验 CRC
在数据链路层 传送的帧中,广泛使用了循环冗余检验 CRC的方法。
在发送端,先把数据划分为组,假定每组 k 个比特。
假设带待传送的一组数据 M=101001(现在k=6)。我们在M的后面再添加供差错检测用的 n 位 冗余码一起发送。
冗余码的计算
用二进制的模 2 运算进行2^n ,这相当于在M后面添加n个0。
得到的(k + n)位的数除以是先选定好的长度为(n + 1)位的除数 P,得出商是Q而余数是R,余数R比除数P少一位,即 R是 n 位。
循环冗余检验的计算过程
帧检验序列 FCS
在数据后面添加上的冗余码称为
帧检验序列FCS (frame check sequence)循环冗余检验 CRC 和 帧检验序列 FCS 不等同。
- CRS是一种常用的检错方法,而FCS是添加在数据后面的冗余码
- FCS 可以用CRC这种方法得出,但 CRC 并非用来获得FCS的唯一方法
小结:CRC差错检测技术
仅用循环冗余检验 CRC差错检测技术只能做到无差错接收(accept)
- 无差错接收是指
凡是接受的帧(即不包括丢弃的帧),我们都能非常接近于1的概率认为这些帧在传输过程中没有产生差错。换句话就是凡是接收端数据链路层接受的帧都没有传输差错(有差错的帧就丢弃不接受)
CRC是一种 没有比特差错,而不是没有传输差错的检测机制
要做到 可靠传输 就必须再加上 确认和重传机制
两种情况下的数据链路层
使用点对点(PPP)信道的数据链路层
使用广播信道(CSMA/CD)的数据链路层
CSMA/CD (Carrier Sense Multiple Access with Collision Detection)
多点接入 表示许多计算机以
多点接入的方式连接在一根总线上。载波监听 是指
每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不发送数据,以免发送碰撞载波监听 就是用电子技术检测总线上有没有其他计算机发送数据信号
以太局域网
MAC的硬件地址(MAC地址)
在局域网中,硬件地址又称物理地址(或MAC地址)
802标准中 地址严格地将 每个站的名字(或标识符),
IEEE 的注册管理机构RA负责向 厂家 分配地址段的前三个字节(高位24位),地址字段中的后三个字节(低位24位)由厂家自行指派,称为拓展标识,必须保证生产出的适配器没有重复地址。 一个地址块可以生成2^24个不同的地址,这种48位地址称为
MAC-48,通用名称EUI-48。
MAC地址,实际上就是适配器地址或适配器标识符EUI-48。
扩展以太网
高速以太网
- 本文作者:Jun
- 本文链接:http://mambajun.github.io/2020/06/05/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C-%E6%95%B0%E6%8D%AE%E9%93%BE%E8%B7%AF%E5%B1%82%E5%B0%8F%E7%BB%93/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!
