TCP/IP--数据链路层

本篇结构:

  • 前言
  • 正文

一、前言

TCP/IP--数据链路层_第1张图片

网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议系统。
链路层(有时也称作数据链路层或网络接口层),是TCP/IP四层协议中的低层。它通常包括操作系统中的设备驱动程序计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。

我们知道在OSI七层模型中,在链路层下面还有一层物理层。计算机用二进制表示信息,而实际的通信媒介处理的却是电压的高低,光的闪灭,电波的强弱等信号,把这些信号与二进制的0,1进行转换正是物理层的作用。
数据链路层处理的数据也不是单纯的0,1序列,而是把他们集合成一个叫做“帧”的块进行传递。

二、正文

1、数据链路层的三个主要目的

为IP模块发送和接收IP数据报;
为ARP模块发送ARP请求和接收ARP应答;
为RARP发送RARP请求和接收RARP应答。

2、数据链路层点对点信道和广播信道

数据链路层使用的信道主要有两种:
点对点信道--这种信道使用点对点、一对一的通信方式。
广播信道--这种信道使用一对多的通信方式。

3、使用点对点信道的数据链路层

(1) 链路和数据链路
链路:是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
数据链路:除了物理线路外,还有一些通信协议控制数据的传输,若把实现这些协议的硬件和软件加到链路上,就成了数据链路。
(2) 数据链路传递的是帧


TCP/IP--数据链路层_第2张图片

点对点的数据链路进行通信时的基本步骤如下:

  • 封装成帧
    网络层把ip数据报传到数据链路层成为帧的数据部分,在帧的数据部分分别加上首部和尾部,就构成了帧。首部和尾部的重要作用就是帧界定(即确定帧的界限),用SOH放在帧的最前面,用EOT放在帧的最后面(SOH和EOT是控制字符)。发送帧时,都是从帧的首部开始发送,为了提高帧的传送效率,应该使帧的数据部分尽量大于首部和尾部,但每种链路层协议都规定了帧的数据部分长度上线--最大传送单元MTU。


    TCP/IP--数据链路层_第3张图片
  • 透明传输
    “透明”是指某一实际存在的事物看起来不存在一样,“透明传输”可以理解为“无论什么样组合的比特数据,都能原样没有差错的通过这个数据链路层。
    为了解决透明传输的问题,就需解决数据中可能出现的“SOH”和“EOT”被解释为控制字符的问题,做法是在前面加一个转义字符“ESC”。如果出现转义字符,则在前面再加一个转义字符,这种方法叫做“字符填充”或“字节填充”。


    TCP/IP--数据链路层_第4张图片
  • 差错检测
    现实的通信链路不是理想的,比特在传输的过程中会出现差错:1可能变为0,0可能变为1。这叫比特差错。为了保证传输的可靠性,数据链路层采用循环冗余检验的检测(CRC)技术。具体检测原理暂不深究。
    但需要说明的是数据链路层提供的只是对比特差错检测,并不能检测是否出现帧缺失,帧重复和帧失序这些差错,链路层并不提供“可靠传输”的服务。

(3) 使用点对点信道的链路层协议PPP
数据链路层的协议有很多,对于点对点的链路,Point-to-Point Protocal(PPP)协议是使用最广的数据链路协议。
PPP协议的组成:
一个将 IP 数据报封装到串行链路的方法。
链路控制协议 LCP (Link Control Protocol)。
网络控制协议 NCP (Network Control Protocol)。
PPP 协议的帧格式:


TCP/IP--数据链路层_第5张图片

对PPP协议感兴趣的可以找资料深入看看。

4、使用广播信道的数据链路层

广播信道可以实现一对多的通信,局域网使用的就是广播信道。

(1) 这里就有一个问题,为什么局域网使用广播信道而广域网不使用广播信道呢?
局域网采用广播通信是因为局域网中的数量不多的机器都连接到同一条物理线路,所有主机的数据传输都经过这条链路,采用的通信方式是将主机要发送的数据送到公用链路上,发送至所有的主机,接收端通过地址对比,接收发往自己的数据,并丢弃其他数据的方式。
广域网是由更大的地理空间、更多的主机构成的,若要将广播用于广域网,可能会导致网络无法运行。首先,主机间发送数据时,将会独自占用通信链路,降低了网络的使用率;另一方面,主机A向主机B发送数据,是向网络中所有的主机发送数据,当主机数目非常多时,将严重消耗主机的处理能力。同时也造成了数据的无效流动;再次,极易产生广播风暴,使网络无法运行。
(2) 使用广播信道的局域网的优点
具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
提高了系统的可靠性、可用性和残存性。
(3) 广播信道如何共享物理媒体连接
局域网是使用广播信道的网络,局域网上的站点从原理上讲都通过共享物理媒体相互连接。局域网上某个站点发送的数据,其他站点都能接收到,如果两个以上站点同时发送的话,这些数据将相互干扰而使接收者无法接收。因此需要有一定的控制方法管理站点对共享媒体的数据发送,以便有多个站点都需要访问局域网时不至于相互干扰。
任何一个媒体接入控制技术的关键参数是“控制地点”和“控制方式”。
“控制地点”有两种选择:集中式控制和分布式控制,集中式控制把媒体接入控制权放在某个站点上,其好处是可以对接入访问进行较多的控制,提供诸如优先控制、保证带宽等功能;可以使每个站点的逻辑变得尽可能简单;避免了协调问题。集中式控制的不足是会出现影响全网运行的单站点,该站点正常工作时是局域网的效率瓶颈,出现故障时会导致局域网瘫痪。分布式控制把媒体接入控制权交给网上所有站点,其性能与集中式正好相反。
“控制方式”要完成把传输媒体的信道资源合理.有效地分配给网上各个站点的任务。它受局域网的拓扑结构影响,并且是对许多相互制约因素折衷选择的结果,这些因素有代价、性能和复杂性等。
媒体接入控制方法可分为同步和异步两类。
在同步方式下,每个接入网络的站点均被分配一个速率固定的传输通道,与其他站点复用局域网媒体。由于站点对传输通道的需求会动态变化,峰值流量与平均流量有很大差距,事前又是不可知的,因此同步方式分配通道的方法一般不是最佳的,不适合局域网的应用环境。
异步方式下站点可以随机接入,即可以任意地访问媒体,也可以通过某种算法控制站点接入的顺序和时间,以获得较好的对应用需求的响应。异步方式有3种分配方法:循环、预约和竞争。
IEEE 802为解决媒体接入控制,根据不同的网络拓扑提出了几个协议,它们是媒体接入子层的主要内容。其中,IEEE 802.3带冲突检测的载波监听多路访问控制方法是一种典型的采用竞争技术的媒体接入控制协议;IEEE 802.4令牌总线访问控制方法在物理总线上构成逻辑环,用令牌循环的方式解决媒体接入控制;IEEE 802.5令牌环访问控制方法在环状网络上用令牌预约、令牌循环的方式解决媒体接入控制。
(4) 适配器的作用
适配器即网卡,它上面装有处理器和存储器。适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线并以并行的方式进行的。
因为网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中有对数据进行缓存的存储芯片。
对数据进行缓存。
适配器在接收和发送各种帧时,不使用计算机的CPU。当适配器收到有差错的帧时,就直接丢弃不通知计算机,当收到正确的帧时,就中断通知计算机,并交付协议栈中的网络层。在发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网。
(5)广播信道的数据链路层协议
这里简单介绍采用竞争方式的CSMA/CD(载波监听多路访问/冲突检测)协议和CSMA/CA(载波监听多路访问/避免冲突)

  • CSMA/CD

它尽可能保证网络上同时只有一个节点发送数据,减小数据“碰撞”概率。发送数据前 先侦听信道是否空闲,若空闲则立即发送数据.在发送数据时,边发送边继续侦听,若侦听到冲突,则立即停止发送数据。等待一段随机时间,再重新尝试。

  • CSMA/CA

它采用主动避免碰撞而非被动侦测的方式来解决碰撞问题,802.11无线局域网采用此数据通信方法。

CSMA/CA协议的工作流程分为两个分别是:

送出数据前,监听媒体状态,等没有人使用媒体,维持一段时间后,才送出数据。由於每个设备采用的随机时间不同,所以可以减少冲突的机会。送出数据前,先送一段小小的请求传送报文(RTS : Request to Send)给目标端,等待目标端回应 CTS: Clear to Send 报文后,才开始传送,其它接收到RTS、CTS的节点,知道有其它节点正在通信,会关闭自己的数据发送操作, 利用RTS-CTS握手(handshake)程序,确保接下来传送资料时,不会被碰撞。同时由於RTS-CTS封包都很小,让传送的无效开销变小。
(6)以太网的MAC地址
在局域网中,硬件地址又称物理地址或MAC地址,是一个6字节,48位的固化在适配器ROM中的地址,每个适配器都有一个全球唯一的MAC地址。
MAC帧时数据链路层的数据协议单元。
MAC帧格式:
以太网中有两种MAC帧格式,DIX Ethernet V2 标准和IEEE 的 802.3 标准,最常用的是是以太网V2的格式。


TCP/IP--数据链路层_第6张图片
  • 类型字段 (2个字节) 用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。
  • 数据字段 (46-1500)

正式名称是MAC客户数据字段,最小长度64 字节-18字节的首部和尾部 = 数据字段的最小长度

  • FCS字段 (4 字节)
    帧检查序列,使用CRC检验。

当数据字段的长度小于46字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的MAC帧长不小于64字节。
由图可以看到,在传输媒体中实际传送的要比MAC帧多8个字节,这是因为当一个站在刚开始收到MAC帧时,由于适配器的时钟尚未与到达的比特流达成同步,因此MAC帧的最前面的若干位就无法接受,结果整个MAC成为无用的帧。为了接受段快速实现同步,从MAC子层向下传到物理层时还要在帧的前面插入8字节,它由两个字段构成,字节中的第一个字段共 7 个字节,是前同步码,作用是使接收段的适配器在接收MAC帧时能够迅速调整其始终频率,用来迅速实现 MAC帧的比特同步。第二个字段是帧开始定界符,表示后面的信息就是MAC帧。
(7)PPP协议帧和MAC帧的区别
PPP属于广域网范畴,MAC是局域网范畴,按实际情况和环境就选用不同的协议,PPP支持的网络结构只能是点对点,MAC支持多点对多点。
以太网中用AMC,远程的话就用PPP(如ADSL拨号,就是基于PPP的)。
PPP的帧格式如下:
Flag Address Crotrol Protocol Informaiton FCS Flag
其中Flag标识了一个PPP数据帧的起始及结束,FCS为帧校验,真正属于PPP报文内容的为Address,Control,Protocol,Information域所包含内容。Address表示此为PPP广播地址,Address和Control一起表示了此报文为PPP报文,即PPP报文头为FF03。
PPP在封装方式以以太网的封装方式不同,它没有以太网帧所要求的MAC地址,它通过自身的协商过程实现点到点的数据传输。

你可能感兴趣的:(TCP/IP--数据链路层)