计算机网络之链路层

参考博客:

https://www.cnblogs.com/whgk/p/6065281.html

https://www.cnblogs.com/whgk/p/6048354.html

 

主机之间数据的传输:

基本概念

链路:一条点到点的物理线路段,中间没有任何其他的交换结点。 一条链路只是一条通路地一个组成部分。

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

适配器:也就是网卡,用来实现数据链路上的一些协议。

帧:数据链路层上传送的就是帧。

1. 三个基本问题

(1) 封装成帧

所谓封装成帧,就是在IP数据报的前后分别添加一个首部和一个尾部,用来标记帧的开始和结束。

图示如下:

(2) 透明传输

这里" 透明 " 是指:一个实际存在的事物好像不存在似的。

原因:帧使用首部和尾部进行定界,若帧的数据部分包含有首部和尾部的相同的内容,就会造成误判。

措施:如果在数据出现和首部、尾部相同的内容前面加入转移字符ESC。 如果出现和转义字符一样的内容,就在该字符前面再添加一个转义字符。 这就是所谓的透明传输。

图示:

而在数据的接收端,会将接收到的数据中的所有转义字符ESC删除,如果碰到两个转义字符,则删除第一个。这样,在接收端就接收到了发送端透明传输之前的原始数据。

(3) 差错检测 

目前数据链路层广泛使用了循环冗余检测(CRC)来检查比特差错。

问题:在数据的传输过程中可能会产生比特差,如0变成1,1变成0。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER。

解决:使用CRC循环冗余检测。

循环冗余检验(CRC):

在发送端,先把数据划分为祖,假定每组K个比特。现假定待传送的数据M = 101001(k=6)。CRC运算就是在数据M后面添加提供差错检测的n位冗余码,然后构成一个帧发送出去,一共发送(k+n )位。在所要发送的数据后添加冗余码,显然增大了数据传输的开销,但却可以进行差错检测。当传输可能出现差错时,付出的代价往往是很值得的。

n位冗余码计算:

用二进制的模2运算进行2^n乘M的运算,这相当于在M后面添加n个0 ,得到的(k+n )位的数除于收发双方实现商定的长度为(n + 1)位的除数P,得出的商是Q而余数是R(n位,比P少一位)。

除数P:

用生成多项式P(X)表示上面的除数(假定n+1位),P(X) = X^3 + X^2 + 1则P = 1101。

即P(X) = X^n+ X^(n-2) + ….+ X^2 +1 , P = 101…101。

检测:

在接收端把收到的数据以帧为单位进行CRC检测:把收到的每一个帧除于同样的除数(模2运算),然后检查得到的余数R,如果传输过程无差错,经过CRC检测得到的余数肯定是0 。

 

2. 两类信道

(1) 点对点信道

一种一对一的通信,不发生碰撞,使用PPP协议 ( Point to Point Protocol )

现在全世界使用的最多的数据链路层协议就是点对点协议PPP(Point to Point Protocol),我们大多数用户使用的拨号电话线接入因特网时,一般使用的就是PPP协议。

(2) 广播信道

1. 关于以太网和局域网

    以太网:以太网是通信协议标准,是一种星型拓扑结构的局域网。

    局域网:在较小范围内组建的网络,如一栋楼,校园等。

局域网中采用广播信道,一台PC机发送数据给另一台PC机,同一局域网中的计算机都能接收到该数据。

一对多通信,一个节点发送的数据能被广播信道上所有的节点接收到。

所有节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(也叫碰撞)。

主要有两种控制方法进行协调,一个是使用信道复用技术,一个是使用CSMA/CD协议。

 

3. CSMA/CD协议 (Carrier Sense Multiple Access with Collision Detection)

Multiple Access(多点接入) : 总线型网络,许多主机以多点的方式链接到总线上。

Carrier Sense(载波监听) : 每个主机都不停地监听信道。在发送前,若监听到信道正在使用,则必须等待。

Collision Detection(碰撞检测) : 发送过程中,采用边发送,边检测策略。若检测到信道上已有其他主机正在发送数据,就表示发生了碰撞。

发生碰撞后:停止发送,并采用截断二进制指数退避算法来确定等待时间。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值