TCP/IP五层模型之数据链路层

点击图片领取阿里云云产品幸运券

TCP/IP五层模型:
TCP/IP五层模型

数据链路层位于物理层和网络层之间,其设计的初衷就是顺利为网络层提供数据服务,不考虑可靠性,可靠性的部分由传输层的TCP协议实现。我们可以从下面的图中简单地了解一下数据链路层在网络传递中的地位,假设在通信的过程中需要通过路由器的话,那么数据的具体流动过程就像下面图中箭头的示意:
数据链路层在网络传递中的地位

其中路由器负责路由转发,因此需要最高到网络层进行IP协议的分析;我们也可以在逻辑上将整个通信过程看成是两端数据链路层之间点对点的通信:
逻辑上将整个通信过程看成是两端数据链路层之间点对点的通信

数据链路的信道主要有两种模式:
1. 点对点信道:这种信道使用一对一的点对点通信方式;
2. 广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。

点对点的数据链路层

  1. 区分“链路”与“数据链路“
    链路指从一个结点到相邻结点的一段物理线路,其中没有任何其他的交换结点。数据链路则是指在物理线路上添加上控制数据传输的协议的硬件和软件。因此数据链路是比链路更为深刻的内涵。
  2. 数据链路层的数据传输单元我们一般称之为帧,数据链路层的任务就是将上层的数据封装成帧交给物理层传输,以及分析物理层提交的数据帧,提取出上层数据交给网络层。具体来说就是:
    a. 信源的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧;
    b. 信源把封装好的数据帧发送给信宿的数据链路层;
    c. 若新宿的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给网络层,否则丢弃这个帧;

PPP协议的工作状态起止于链路静止状态,这时在用户PC机和ISP的路由器之间并不存在物理层的连接。整个过程如下图:
PPP协议的工作状态

一个正常的工作过程开始于用户通过选择网络连接的选项,然后用户的PC机通过调制解调器呼叫路由器,路由器就能够检测到调制解调器发出的载波信号,在双方建立了物理层的连接之后,PPP协议就进入“链路建立”状态,其目的是建立链路层的LCP连接。
此时LCP开始发送配置请求帧,进行协商一些配置选项,包括链路上的最大帧长、所使用的鉴别协议,以及不适用的PPP帧中的地址和控制字段等。LCP的配置请求帧依旧是一个PPP帧,其协议字段置为LCP对应的代码,而信息字段包含特定的配置请求。链路的另一端可以发送以下几种响应中的一种:

  • 配置确认帧:所有选项都接受;
  • 配置否认帧:所有选项都理解但不能接受;
  • 配置拒绝帧:选项有的无法识别或不能接受,需要协商;

协商结束后双方建立了LCP链路,接着就进入鉴别阶段,在这一状态下,只允许传送LCP协议的分组、鉴别协议的分组以及监测链路质量的分组。若鉴别失败,则转到“链路终止”状态,成功则进入“网络层协议”状态。
在“网络层协议”状态,PPP链路两端的网络控制协议NCP根据网络层的不同协议互相交换网络层特定的网络控制分组,总之也许PPP协议两端的网络层可能运行不同的网络层协议,但是都可以使用一个PPP协议进行通信。

使用广播信道的以太网

由于以太网已经是事实上的局域网标准,我们就主要介绍以太网。广播网络的一个重要问题时当所有结点共享通信链路时,如何避免冲突,一般有随机接入和受控接入两种。实际中我们更多的使用是随机接入,因此重点来介绍前者。这里的核心只有一个:CSMA/CD。
CSMA/CD,即载波监听多点接入/碰撞检测的缩写

  • 多点接入
    说明这是个总线网络,许多计算机以多点接入的方式连接在一根总线上,协议的实质是“载波监听”和“碰撞监测”;
  • 载波监听
    即“发送前先监听”,每个站在发送数据前要先检测一下总线上是否有其他站在发送数据,如果有,暂时不发送数据,等待信道空闲时再发送,总线上没有“载波”,这里只是一个习惯称呼;
  • 碰撞检测
    即“边发送边监听”,适配器边发送数据边检测信道上的信号电压,以便判断自己在发送数据时其他站是否也在发送数据。

如果考虑上信号在链路上的传播时延,那么过程类似这样:
= —— =

由上图我们可以看出:

  1. CSMA/CD不可能同时进行发送和接受,因此是半双工协议,即双向交替通信;
  2. 每一个端点在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性,这段时间最长为两个单程最长时间,将这个时间成为“争用期”,只有通过争用期的“考验”,才能肯定这次发送不会发生碰撞。
  3. 以太网把争用期定位51.2微秒,如果是一个标准10M/s的带宽的话,大概是512比特,也就是64字节,因此以太网规定了争用期大小的帧为最小长度,所有比这小的帧都认为是碰撞导致的丢弃帧,因此以太网的帧最小为64字节。

CSMA/CD的要点为:

  1. 适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,准备发送;
  2. 若适配器检测到信道空闲,即在发送间隙9.6微秒约96个比特时间内没有检测到信道上有信号,就发送这个帧;若检测到信道忙,则继续检测并等待信道转为空闲(加上96比特时间),然后发送这个帧;
  3. 在发送过程中继续检测信道,若一直未检测到碰撞,就顺利把这个帧成功发送完毕;若检测到碰撞,则中止数据发送,并发送人为干扰信号;
  4. 在中止发送后,适配器就执行指数退避算法,等待r被的512比特时间后,返回到步骤(2);

转载:http://blog.chinaunix.net/uid-26275986-id-4104189.html


点击图片领取阿里云云产品幸运券

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值