计算机网络总结(3)

计网总结(三)一数据链路层


一、概括

七层模型中所处位置以及涉及知识概括:

在这里插入图片描述

数据链路层使用的信道主要有以下两种类型:

  • 点对点信道。这种信道使用一对一的点对点通信方式。
  • 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。

    结点:主机、路由器;

    帧:链路层的协议数据单元、封装网络层数据报;

区分链路与数据链路:

  • 链路(link): 是一条点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。
  • 数据链路(data link) : 除了物理线路外,还必须有通信协议来控制这些数据的传输(逻辑链路)。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。

二、链路层的功能

三个基本功能: 封装成帧、透明传输、差错检测

数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到
相邻节点的目标机网络层。

其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。

  • 功能一 : 为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务;
  • 功能二 : 链路管理,即连接的建立、维持、释放(用于面向连接的服务) ;
  • 功能三 : 组帧 (封装成帧);
  • 功能四 : 流量控制;
  • 功能五 : 差错控制(帧错/位错);

1、封装成帧和透明传输

点到点信道的数据链路层的协议数据单元 一 帧

在这里插入图片描述

在这里插入图片描述

封装成帧:

  • 封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
  • 首部和尾部包含许多的控制信息,他们的重要作用就是进行帧定界;

帧同步: 接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

透明传输:

  • 指不管所传数据是什么样的比特组合,都应当能在链路上传送;
  • 因此,链路层就看不见有什么妨碍数据传输的东西;

组帧的四种方法: 1.字符计数法,2.字符(节) 填充法,3.零比特填充法,4.违规编码法

3_4.png

这里简单介绍一下字符计数法和字符填充法:

字符计数法:

3_5.png

字符填充法:


帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在

2、差错检验

概括来说,传输中的差错都是由于噪声引起的。

  • 全局性: 由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。解决办法: 提高信噪比来减少或避免干扰。( 对传感器下手)
  • 局部性: 外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。解决办法: 通常利用编码技术来解决。

局部性的又可以分为:


如果通信质量好,且用有线传输链路,一般会是无确认无连接服务

如果通信质量差,采用无线传输链路,则会采用有确认面向连接服务

几种处理的方式


检错编码:

3_9.png

3、流量控制

较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。

数据链路层的流量控制和传输层的流量控制不同:数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的 :

  • 数据链路层流量控制手段: 接收方收不下就不回复确认
  • 传输层流量控制手段: 接收端给发送端一个窗口公告

注意可靠传输和流量控制都和滑动窗口有关:

3_11.png

TCP的滑动窗口主要有两个作用,一是提供TCP的可靠性,二是提供TCP的流控特性。同时滑动窗口机制还体现了TCP面向字节流的设计思路。

滑动窗口:
(一)、“窗口”对应的是一段可以被发送者发送的字节序列,其连续的范围称之为“窗口”;
(二)、“滑动”则是指这段“允许发送的范围”是可以随着发送的过程而变化的,变化的方式就是按顺序“滑动”。

滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的速度,从而达到防止发送方发送速度过快导致网络故障的目的。
滑动窗口的基本原理是:
TCP使用窗口机制进行流量控制。当连接建立后,发送方和接收方都要分配一块自己的缓冲区来存储接收的数据,为了防止接收方已经没有缓冲区进行接收而发送方在在继续发送,出现网络拥塞和故障。所以用滑动窗口进行了流控。
具体实现:接收方将缓冲区剩余的尺寸和期待接收的下一个字节序号在确认信息中发送给发送方,发送方根据接收方剩余的大小空间来定量的发送合适的数据给接收方。它也是建立在“确认重传”的基础之上。

滑动窗口的原理图如下所示:

upload successful

窗口的大小属性:

TCP的window是一个16bit位字段,它代表的是窗口的字节容量,也就是TCP标准窗口最大为2^16-1=65535个字节;另外在TCP的选项字段中还包含了一个TCP窗口的扩展因子,option-kind为3,option-length为3个字节,option-data取值范围0-14。窗口扩大因子用来扩大TCP窗口,可把原来的16bit的窗口,扩大为31bit。

发送窗口和接收窗口:
TCP是双工的协议,会话的双方都可以同时接收、发送数据。TCP会话的双方都各自维护一个“发送窗口”和一个“接收窗口”。其中各自的“接收窗口”大小取决于应用、系统、硬件的限制,但是tcp的传输速率不能大于应用的数据处理能力,否则就会缓冲区淹没。各自的“发送窗口”则取决于对端通告的“接收窗口”,也就是取决于接收的缓冲区的大小。

发送窗口只有在收到对端对于本段发送窗口内字节的ACK确认,才会移动发送窗口的左边界。
接收窗口只有在前面的所有数据确认收到的情况下,才会移动左边的窗口。当在前面还有未接受的字节,而后面的字节已接收的情况下,窗口也不会移动,并不会对后续的字节进行确认。一次确保对端会对这些未收到的数据进行重传。主要涉及到接收端的累积确认接收机制。

三、介质访问控制

数据传输时使用的两种链路:

  • 点对点信道: 一对一通信。因为不会发生碰撞,因此也比较简单,使用 PPP 协议进行控制。
  • 广播信道: 一对多通信,一个节点发送的数据能够被广播信道上所有的节点接收到。所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞)。主要有两种控制方法进行协调,一个是使用信道复用技术,一是使用 CSMA/CD 协议。

介质访问控制就是解决避免广播信道产生冲突的:

采取一定的措施,使得两个节点之间的通信不会发生互相干扰的情况。 例如一堆对讲机,不能同时有两个人同时的讲话。

主要的措施:

3_24.png

1、静态划分信道-信道划分介质访问控制-信道复用技术

信道划分介质访问控制: 将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和
频域资源合理地分配给网络上的设备。

3_25.png

1)、频分多路FDM

3_26.png

2)、时分多路TDM

3_27.png

使用频分复用和时分复用进行通信,在通信的过程中主机会一直占用一部分信道资源。但是由于计算机数据的突发性质,通信过程没必要一直占用信道资源而不让出给其它用户使用,因此这两种方式对信道的利用率都不高。更好的方法是统计时分复用。

统计时分复用:

3_28.png

3)、波分多路WDM

波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率) 的光信号,由于波长(频率)
不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。

4)、码分多路CDM

码分多址(CDMA) 是码分复用的一种方式。

1个比特分为多个码片/芯片 (chip) ,每一个站点被指定一个唯一的m位的蕊片序列。
发送1时站点发送芯片序列,发送0时发送芯片序列反码(通常把0写成-1) 。

2、动态划分信道

1)、随机访问介质访问控制(随机访问MAC协议)

a)、ALOHA协议(不听就说,想说就说)

分为两种: 纯ALOHA协议和时隙ALOHA协议。

纯ALOHA协议: 不按时间槽发送,随机重发。想发就发。

时隙ALOHA协议: 把时间分成若干个相同的时间片,所有用户在时间开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。

纯ALOHA协议比时隙ALOHA协议吞吐量更低,效率更低。

b)、CSMA协议(先听再说)

协议思想: 发送帧之前,监听信道。发送数据之前要检测一下总线上是否有其他计算机在发送数据。

具体又可以分为三种:

3_29.png

具体:

  • 1)、1-坚持CSMA: 空闲则直接传输,不必等待;忙则一直监听,直到空闲马上传输;(可能冲突)
  • 2)、非坚持CSMA: 空闲则直接传输,不必等待;忙则等待一个随机的时间之后再进行监听;
  • 3)、p-坚持: 空闲则以p概率直接传输,以1-p概率等待到下一个时间槽再传输;忙则等待一个随机的时间之后再进行监听;

3_30.png

c)、CSMA/CD协议(重点)

英文名:Carrier sense multiple access with collision detection。(CSMA/CD)

主要用于总线式以太网

CSMA/CD协议思想: 先监听再发送,边监听边发送

CSMA/CD 表示载波监听多点接入 / 碰撞检测。

  • 载波监听(CS) :每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。
  • 多点接入(MA) :说明这是总线型网络,许多主机以多点的方式连接到总线上。
  • 碰撞检测(CD) :在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞(冲突检测)。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞(所以适用在半双工网络)。

传播时延对载波监听的影响:

3_31.png

记端到端的传播时延为 τ,最先发送的站点最多经过 就可以知道是否发生了碰撞,称 争用期只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞

当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用 截断二进制指数退避算法 来确定。从离散的整数集合 {0, 1, 2, 4 .., (2^k-1)} 中随机取出一个数,记作 r,然后取 r 倍的争用期作为重传等待时间。

帧的传播时延至少要两倍于信号在总线中的传播时延。

帧长(bit) / 数据传输速率 >= 2τ

d)、CSMA/CA协议

英文名: Carrier sense multiple access with collision avoidance。(后面是碰撞避免)。

主要用于无线网,可以全面的检测碰撞。

过程:

1)、发送数据前,先检测信道是否空闲-空闲则发出RTS(request to send) ,RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息。 信道忙则等待。

2)、接收端收到RTS后,将响应CTS ( clear to send) 。

3)、发送端收到CTS后,开始发送数据帧,同时预约信道: 发送方告知其他站点自己要传多久数据)。

4)、接收端收到数据帧后,将用CRC(循环冗余)来检验数据是否正确,正确则响应ACK帧-发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间) 。

2)、轮询访问介质访问控制

主要有两个: 轮询协议和令牌传递协议

轮询协议: 主节点轮流“邀请”从属节点发送数据。

令牌传递协议: 在所有主机之间,有一个特殊格式的令牌(MAC控制帧,不含任何信息)来控制信道的使用,确保同一时刻只有一个节点独占信道。

四、局域网和广域网体系结构

1、局域网

英文: Local Area Network,简称LAN,指在某一区域由多态计算机互联组成的计算机组,使用广播信道

决定局域网的主要因素: 网络拓扑、传输介质和介质访问控制方法

局域网拓扑结构有: 星型拓扑、总线型拓扑、环形拓扑、树型拓扑

传输介质:

  • 有线局域网 常用介质: 双绞线、同轴电缆、光纤
  • 无线局域网 常用介质: 电磁波

局域网分类

  • 1)、以太网,应用最广泛,符合IEE802.3系列标准。逻辑拓扑是总线型,物理拓扑是星型。
  • 2)、令牌环网: 不用了。
  • 3)、FDDI网: 双环拓扑。
  • 4)、ATM网。
  • 5)、无线局域网(WLAN): 采用IEE802.11标准
    3_32.png

MAC 地址是链路层地址,长度为 6 字节(48 位),用于唯一标识网络适配器(网卡)。

一台主机拥有多少个网络适配器就有多少个 MAC 地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个 MAC 地址。

2、以太网(属于局域网)

以太网是一种星型拓扑结构局域网

早期使用集线器进行连接,集线器是一种物理层设备, 作用于比特而不是帧,当一个比特到达接口时,集线器重新生成这个比特,并将其能量强度放大,从而扩大网络的传输距离,之后再将这个比特发送到其它所有接口。如果集线器同时收到两个不同接口的帧,那么就发生了碰撞()。

目前以太网使用交换机替代了集线器,交换机是一种链路层设备,它不会发生碰撞,能根据 MAC 地址进行存储转发

以太网帧格式(图可以看最文章上面那张图的下方):

  • 类型 :标记上层使用的协议;
  • 数据 :长度在 46-1500 之间,如果太小则需要填充;
  • FCS :帧检验序列,使用的是 CRC 检验方法;

3_33.png

以太网提供无连接、不可靠的服务。

无连接: 发送方和接收方之间无握手过程。

不可靠: 不对发送方的数据帧编号,接收方不向发送方进行确认,帧错直接丢弃,差错纠正由高层负责。

3、广域网和PPP协议

广域网 (WAN,Wide Area Network) ,通常跨接很大的物理范围。

广域网的通信子网主要使用分组交换技术。因特网 (Internet)是世界范围内最大的广域网。

PPP(Point-to-Point Protocol)协议是目前使用最广泛的数据链路层协议,是在广域网使用的协议,只支持全双工链路

特点:

  • 简单: 对于链路层的帧,无需纠错,无需序号,无需流量控制。
  • 封装成帧: 加上帧定界符
  • 透明传输: 与帧定界符一样比特组合的数据应该如何处理: 异步线路用字节填充,同步线路用比特填充。
  • 多种网络层协议: 封装的IP数据报可以采用多种协议。
  • 多种类型链路”串行/并行,同步/异步,电/光…
  • 差错检测: 错就丢弃
  • 检测连接状态 : 链路是否正常工作。
  • 最大传送单元: 数据部分最大长度MTU
  • 网络层地址协商: 知道通信双方的网络层地址

(1)PPP具有动态分配IP地址的能力,允许在连接时刻协商IP地址;
(2)PPP支持多种网络协议,比如TCP/IP、NetBEUI、NWLINK等;
(3)PPP具有错误检测能力,但不具备纠错能力,所以ppp是不可靠传输协议

组成部分:

(1)、高级数据链路控制协议
高级数据链路控制协议是将 卫 数据报封装到串行链路的方法。PPP 既支持异步链路 (无奇偶校验的 8 比特数据),也支持面向比特的同步链路。IP 数据报在 PPP 帧中就是其信息部分,这个信息部分的长度受最大传送单元 MTU 的限制。
(2)、链路控制协议
链路控制协议(Link Control Protocol,LCP) 用来建立、配置和测试数据链路连接,通信的双方可协商一些选项(进行身份验证)。
(3)、网络控制协议
网络控制协议 NCP (Network Control Protocol) 中的每一个协议支持不同的网络层协议, 如IP、IPv6、DECnet,以及 AppleTalk 等。

3_34.png

PPP 的帧格式:

  • F 字段为帧的定界符
  • FCS 字段是使用 CRC 的检验序列
  • 信息部分的长度不超过 1500

    3_35.png

4、链路层设备

物理层设备: 中继系统,即转发器(repeater)或集线器(hub)。

数据链路层: 即交换机(switch)或网桥(交换机前身)。

网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是
先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃 (即过滤) ,这就是比集线器好的地方。

3_36.png

集线器既不能分割冲突域也不能分割广播域,它就像一根接口比较多的网线一样。

3_37.png

一个小例题:

3_38.png

关于冲突域和广播域更多可以看这篇博客