计算机网络(数据链路层)

前言

这个部分的东西可多了,总之一步步来吧

正文

(一)数据链路层的功能

1.为网络层提供服务

1. 无确认的无连接服务(Unacknowledged Connectionless Service):

在无确认的无连接服务中,数据链路层并不需要在数据传输前建立连接,也不需要接收方发送确认。发送方直接将数据帧发送到接收方,不关心是否能够成功接收。这种服务通常用于不需要可靠性的场景,例如音频和视频传输等实时应用。

特点:

  • 无需建立连接,直接发送数据帧。
  • 不进行确认,发送方无法得知数据是否成功接收。
2. 有确认的无连接服务(Acknowledged Connectionless Service):

有确认的无连接服务在无连接服务的基础上增加了接收方的确认机制。发送方在发送数据帧后,会等待接收方的确认信息。如果一定时间内没有收到确认,发送方会尝试重新发送数据帧,以确保数据的可靠传输。

特点:

  • 无需建立连接,直接发送数据帧。
  • 接收方会发送确认信息,告知发送方数据帧已经成功接收。
  • 发送方会重传数据帧,直到收到确认为止。
3. 有确认的面向连接服务(Acknowledged Connection-Oriented Service):

有确认的面向连接服务是最可靠的一种服务类型。在建立连接后,数据链路层会确保数据帧的可靠传输,即使发生错误也会进行纠正。接收方会发送确认信息,以确保发送方得知数据已经成功接收。如果发生错误,数据链路层会进行错误检测和纠正,并保持连接的可靠性。

特点:

  • 需要建立连接,确立通信双方之间的关系。
  • 数据帧的传输是可靠的,会进行错误检测和纠正。
  • 接收方会发送确认信息,告知发送方数据帧已经成功接收

2.链路管理

链路管理实际上就是数据链路层的建立,维持和释放过程,他主要用于面向连接的服务.

3.帧定界,帧同步与透明传输

帧定界(Frame Delimitation)、帧同步(Frame Synchronization)和透明传输(Transparent Transmission)是数据链路层中重要的概念,它们在数据通信中起到关键作用。下面将详细介绍这三个概念:

1. 帧定界(Frame Delimitation):

帧定界是指在数据通信中,将连续的比特流分割成一个个具有特定起始和终止标志的数据帧。数据帧是数据链路层传输数据的基本单位。帧定界的目的是确保接收方能够正确地识别数据帧的开始和结束,以便准确地提取出帧中的数据部分。

在帧定界中,通常使用特殊的比特模式作为帧的起始和终止标志。例如,在以太网中,帧定界通常使用前导码(Preamble)和起始帧定界符(Start Frame Delimiter)来标识帧的开始,使用帧校验序列(Frame Check Sequence,FCS)来标识帧的结束。

 2. 帧同步(Frame Synchronization):

帧同步是指接收方在接收数据时,能够准确地识别帧的定界信息,确保正确地提取出数据帧的内容。帧同步通常涉及到时钟同步和定界同步两个方面。

- **时钟同步:** 接收方需要与发送方保持时钟同步,以便在正确的时机读取传输的比特。时钟同步确保了接收方能够在正确的时钟周期内读取比特,避免了数据采样错误。

- **定界同步:** 定界同步是指接收方能够准确地识别帧的起始和终止标志,确保帧的正确提取。定界同步通常使用专门的硬件电路或者软件算法,识别帧定界信息,以便准确地提取出帧的数据部分。

 3. 透明传输(Transparent Transmission):

透明传输是指在数据通信中,数据链路层传输数据时不对数据内容进行任何修改或处理,直接将数据从发送方传输到接收方,保持数据的原始性。透明传输的目的是确保数据在传输过程中不被篡改、修改或解释,保持数据的完整性和准确性。

透明传输通常应用于需要传输特定格式的数据,例如文件传输、图像传输等,这些数据通常需要在接收方原样解释和处理。数据链路层在透明传输中不会添加任何额外的控制信息,确保数据的传输是无损的。

综合来看,帧定界确保了帧的起始和终止标志,帧同步确保了帧的正确提取,而透明传输保持了数据的原始性,这三个概念在数据通信中相互配合,确保了数据的可靠传输和正确解释。 

4.流量控制

流量控制(Flow Control)是数据通信中的一种管理传输速率的机制,其目的是确保发送方和接收方之间的数据传输保持平衡,防止发送方发送过多的数据,导致接收方无法及时处理,从而发生数据丢失或溢出。流量控制的主要目标是维持网络的稳定性,确保数据的可靠传输。

流量控制的实现通常依赖于一些协议、算法和策略,以下是一些常见的流量控制方法:

### 1. **滑动窗口协议(Sliding Window Protocol):**

滑动窗口协议是一种流量控制的机制,通过在发送方和接收方维护一个窗口大小,来控制数据的发送和接收速率。发送方在窗口内可以发送多个数据帧,接收方在窗口内可以接收多个数据帧。通过动态调整窗口大小,滑动窗口协议可以适应网络状况的变化,确保高效的数据传输。

### 2. **自适应流量控制算法:**

自适应流量控制算法根据网络的实际情况自动调整传输速率。例如,TCP(Transmission Control Protocol)中的拥塞控制算法就是一种自适应流量控制算法,它根据网络拥塞的程度动态调整数据发送速率,以避免网络拥塞和数据丢失。

### 3. **令牌桶算法(Token Bucket Algorithm):**

令牌桶算法是一种基于令牌的流量控制算法。发送方需要获取令牌才能发送数据,而令牌以固定的速率生成。如果发送方没有足够的令牌,则需要等待,这样就限制了发送速率,确保了数据传输的平稳性。

### 4. **Leaky Bucket算法:**

Leaky Bucket算法是一种简单的流量控制算法。它类似于一个漏斗,数据以恒定的速率流入漏斗,当漏斗满了时,多余的数据会被丢弃或者缓存。这种算法可以平滑突发流量,避免了网络的过载。

### 5. **拥塞控制(Congestion Control):**

拥塞控制是一种网络层面的流量控制,用于避免网络拥塞和数据包丢失。拥塞控制通常包括了一系列的算法和策略,例如拥塞避免、拥塞检测、拥塞恢复等,它们共同协作以确保网络的稳定性和可靠性。

这些流量控制方法和算法可以单独使用,也可以组合使用,根据不同的网络环境和需求选择合适的流量控制策略,以保障数据传输的平稳和可靠性。

5.差错控制

差错控制(Error Control)是指在数据通信中,通过各种技术手段检测和纠正在传输过程中可能引入的错误。数据在传输过程中可能会受到各种干扰,例如噪声、干扰、衰减等,导致数据在接收端出现错误。差错控制的目的是确保数据的完整性和可靠性,以保证接收方收到的数据是正确的。

差错控制通常包括以下几种主要技术:

### 1. **奇偶校验(Parity Check):**

奇偶校验是一种简单的差错控制方法。在奇偶校验中,发送方在每个数据块中添加一个附加位,使得数据块中1的个数为奇数或偶数。接收方根据接收到的数据块中1的个数来判断数据是否出错。如果数据块中的1个数与约定的奇偶性不符,说明数据出错。

### 2. **循环冗余校验(Cyclic Redundancy Check,CRC):**

CRC是一种基于多项式运算的差错控制技术。在发送端,会将数据块通过多项式除法运算生成一段固定长度的冗余校验码,将这个校验码附加在数据块后一起发送。接收方也会进行类似的多项式除法运算,得到一个接收端的校验码,然后将接收到的校验码与接收端计算得到的校验码进行比较,如果不一致,则说明数据出错。

### 3. **前向纠错码(Forward Error Correction,FEC):**

前向纠错码是一种能够在接收端纠正一定数量的错误的差错控制技术。发送方在数据中添加一些冗余信息,使得接收方能够在接收时利用这些信息纠正可能的错误。常见的前向纠错码包括海明码(Hamming Code)和RS码(Reed-Solomon Code)等。

### 4. **自动重发请求(Automatic Repeat reQuest,ARQ):**

ARQ是一种基于反馈的差错控制技术。当接收方检测到接收到的数据出现错误时,会发送一个反馈信号给发送方,请求发送方重新发送该数据。常见的ARQ协议包括停止-等待ARQ、滑动窗口ARQ等。

### 5. **冗余数据删除(Redundant Data Elimination):**

在某些情况下,可以在传输过程中添加冗余数据,当数据接收方接收到数据后,利用冗余数据检测和纠正错误。如果数据没有错误,冗余数据可以被删除,否则用于错误的纠正。

这些差错控制技术可以单独或者结合使用,具体的选择取决于通信环境、数据传输的可靠性要求以及网络性能等因素。通过合理选择和配置差错控制技术,可以提高数据传输的可靠性,确保数据的完整性和正确性。

(二)组帧

**组帧(Framing)** 是在数据通信中将传输的比特流划分为逻辑上的帧(Frame)的过程。帧是数据链路层传输数据的基本单位,它包含了数据字段和控制信息,用于标识数据的起始和终止。组帧的目的是确保在数据传输过程中,发送方和接收方都能够正确地识别帧的边界,从而准确地提取出帧中的数据部分。

以下是几种常见的组帧方法:

### 1. **字符计数法(Character Counting):**

在字符计数法中,帧的开始部分包含一个表示数据长度的计数字段,告诉接收方帧的长度,接收方根据这个计数字段知道何时停止接收数据。例如,如果帧的长度为8比特,那么计数字段可能是一个8比特的二进制数,表示数据的长度。例如,如果数据为10101010,计数字段可能为00001000(8的二进制表示),整个帧为0000100010101010。

### 2. **字符填充的首尾定界符法(Character Padding with Delimiters at Start and End):**

在这种方法中,帧的开始和结束部分包含特定的字符或比特模式作为定界符(Delimiter)来标识帧的起始和终止。发送方在数据中插入这些定界符,接收方根据这些定界符来提取数据。例如,在ASCII字符中,SOH(Start of Header)和ETX(End of Text)可以用作定界符。

帧的格式可能是:`[SOH] Data [ETX]`,其中`[SOH]`和`[ETX]`是定界符,`Data`是数据部分。

### 3. **零比特填充的首尾标志法(Zero-bit Padding with Start and End Flags):**

在这种方法中,帧的开始和结束部分包含特定的比特模式作为起始和结束标志,表示帧的起始和终止。为了确保数据中不会出现与标志相同的比特模式,如果在数据中出现了与标志相同的模式,需要插入零比特(Zero Bits)来避免歧义。例如,HDLC(High-Level Data Link Control)协议中使用的帧定界方法就是零比特填充。

帧的格式可能是:`01111110 Data 01111110`,其中`01111110`是起始和结束标志,`Data`是数据部分。如果在数据中出现了连续的五个1,需要插入一个0

### 4. **违规编码法(Violation-Based Encoding):**

在这种方法中,帧的起始和终止由一组特定的规则定义,数据的编码在这些规则之外,形成一种违规编码。例如,在曼彻斯特编码中,高到低的变化表示0,低到高的变化表示1。如果在数据中出现了违反这种规则的变化,可以用来标识帧的边界。

帧的格式可能是:`10 Data 01`,其中`10`和`01`是起始和终止的违规编码,`Data`是数据部分。

请注意,这些组帧方法只是一些示例,实际应用中可能会根据需求和协议的规定使用不同的方法。不同的通信标准和协议可能使用不同的组帧方式。

(三)差错控制

1.检错编码
**奇偶校验码(Parity Check Code):**

奇偶校验码是一种简单的差错检测方法,通常用于检测数据传输中的单比特错误。在奇偶校验中,每个数据块(通常是一个字节)的最低位(或者最高位,根据奇偶校验的类型而定)被用作校验位。该校验位的值被设置为使整个数据块(包括校验位)中1的个数为奇数(奇校验)或者偶数(偶校验)。当数据传输时,发送方计算校验位并将它附加到数据块后面,接收方在接收到数据块时重新计算校验位,然后与接收到的校验位进行比较。如果校验位不符合奇偶性要求,则表示数据块中存在错误。

例如,对于奇校验,如果发送方的数据为1011001,那么奇校验位会被设置为1,使得整个数据块中1的个数为奇数。在传输时,发送的数据帧为10110011,接收方在接收到数据帧时计算校验位,如果计算出的奇校验位不为1,表示数据帧中存在错误。

奇偶校验码的例子:

假设我们有一个数据块为1101,我们想要使用奇偶校验来检测错误。在奇校验中,需要保证1的数量为奇数。因此,我们需要在数据块后添加一个校验位。

原始数据块:1101 奇校验后的数据帧:11011

在这个例子中,奇校验位是1,因为原始数据块中1的数量为3,是奇数。

**循环冗余码(Cyclic Redundancy Check,CRC):**

CRC是一种更强大的差错检测和纠正方法,常用于数据通信中。CRC利用多项式运算对数据进行处理,生成一个固定长度的冗余校验码,将这个校验码附加到数据后一起发送。接收方也会使用相同的多项式进行计算,得到一个接收端的校验码,然后将接收到的校验码与接收端计算得到的校验码进行比较,如果不一致,则表示数据帧中存在错误。

这里讲一下冗余码的生成方式:

冗余码(Redundancy Check Code,简称CRC)的计算过程基于多项式除法。CRC通常用于数据通信中,以检测和纠正传输过程中的错误。CRC的计算过程可以通过以下步骤进行:

1. **选择生成多项式:** 首先,选择一个生成多项式,它决定了CRC的性能。生成多项式是一个二进制数,通常以多项式表示。例如,CRC-32的生成多项式为32位的二进制数`1 0000 0100 1100 0001 0001 1101 1011 0111`,可以表示为多项式x³² + x²⁶ + x²³ + x²² + x¹⁶ + x¹² + x¹¹ + x¹⁰ + x⁸ + x⁷ + x⁵ + x⁴ + x² + x + 1。

2. **将数据块左移生成多项式的位数:** 将要传输的数据块左移生成多项式的位数。例如,如果数据块是8位二进制数`11011011`,而CRC-32的生成多项式是32位,那么数据块左移32位变为`110110110000000000000000000000000`。

3. **模2除法运算:** 将左移后的数据块与生成多项式进行模2除法运算。具体步骤如下:

   - 将左移后的数据块的最高位与生成多项式的最高位对齐。
   - 如果最高位为1,就执行异或操作。
   - 将结果左移一位,继续与生成多项式的最高位异或,直到所有位都处理完毕。

   运算结束后,剩下的余数就是CRC的值。

4. **附加CRC到数据块后面:** 将得到的CRC附加到原始数据块的后面,形成完整的帧,然后发送。

在接收端,接收到的帧会进行同样的CRC计算过程。如果接收端计算得到的CRC与接收到的CRC一致,说明数据传输没有错误。如果不一致,说明数据中存在错误。

请注意,CRC的性能和生成多项式的选择密切相关。不同的应用可能需要选择不同的生成多项式,以满足特定的差错检测和纠正需求。CRC的计算是一种高效的方法,通常用于网络通信和存储系统中,以保障数据的完整性。

CRC的特点是能够检测多比特错误,且可以被设计为在大部分情况下纠正错误。CRC的性能取决于生成多项式的选择,不同的CRC算法使用不同的生成多项式。一个常见的CRC算法是CRC-32,它在很多应用中被广泛使用,包括以太网帧和ZIP文件校验等。

总的来说,奇偶校验码适用于简单的错误检测,而CRC码更适用于需要高可靠性的数据通信环境,能够提供更强大的错误检测和纠正能力。选择使用哪种校验码通常取决于应用的需求和性能要求。

CRC校验码的例子:

假设我们使用CRC-4(生成多项式为10101)来计算一个4位数据块的冗余校验码。

原始数据块:1101 生成多项式:10101

首先,我们将数据块左移4位,变成11010000,然后用生成多项式进行模2除法运算:

   10101
---------
11010000   (被除数)
-10101      (生成多项式)
---------
   01111000
   -10101
---------
     11001000
     -10101
---------
       10011000
       -10101
---------
         11001000
         -10101
---------
           1010100
           -10101
---------
             0110100
             -10101
---------
               0100100
               -10101
---------
                 101110
                 -10101
---------
                   001010
                   -10101
---------
                     100110
                     -10101
---------
                       111100
                       -10101
---------
                         10000
                         -10101
---------
                           1100
                           -10101
---------
                             101
                             -10101
---------
                               0000

最终的冗余校验码是0000

在实际通信中,发送方将原始数据块和CRC校验码一起发送,接收方使用相同的生成多项式对接收到的数据进行校验。如果校验码不为0,表示数据中存在错误。

2.纠错编码

**海明码(Hamming Code)** 是一种用于检测和纠正数据传输中的错误的差错检测和纠正编码技术。它的主要特点是可以纠正单比特错误,并且能够检测并标识出多比特错误。海明码的基本思想是在数据中插入冗余的校验位(也称为海明码的校验位),这些校验位被用于检测和纠正数据中的错误。

**海明码的构造过程:**

1. **确定数据和校验位的位置:** 首先,确定在数据块中哪些位是数据位,哪些位是校验位。通常,校验位的位置是2的幂次方位置(1、2、4、8、16,等等),而数据位占据剩余的位置。

2. **计算校验位的值:** 对于每一个校验位,计算其值。校验位的位置决定了用来计算校验位的比特的位置。例如,对于第1个校验位(位置1),计算所有第1位为1的数据位的异或值。对于第2个校验位(位置2),计算所有第2位为1的数据位的异或值,以此类推。

3. **插入校验位:** 将计算得到的校验位插入到数据块的相应位置上。

4. **传输数据:** 发送端将带有校验位的数据块传输给接收端。

5. **检测和纠正错误:** 接收端使用相同的校验位计算方法,计算接收到的数据块的校验位。如果某个校验位不匹配,接收端就知道在相应的位置发生了错误。通过比较校验位的异或值,可以找到错误的位置,并进行纠正。

**海明码的例子:**

假设我们要传输一个4位的数据块`1011`。我们决定使用3个校验位。首先,确定校验位的位置:第1、2、4位是校验位,第3位是数据位。

1. **计算校验位的值:**
   - 校验位1(位置1):计算所有第1位为1的比特的异或值,即1 xor 1 xor 1 = 1。
   - 校验位2(位置2):计算所有第2位为1的比特的异或值,即0 xor 1 xor 1 = 0。
   - 校验位4(位置4):计算所有第4位为1的比特的异或值,即1 xor 1 xor 1 = 1。

2. **插入校验位:**
   将计算得到的校验位插入到数据块的相应位置上:`1101001`。

现在,带有海明码的数据`1101001`可以被传输到接收端。接收端使用相同的校验位计算方法,计算接收到的数据块的校验位。如果某个校验位不匹配,接收端就知道在相应的位置发生了错误,并且可以通过比较校验位的异或值来找到错误的位置,然后进行纠正。

(四)流量控制与可靠传输机制

1.流量控制,可靠传输与滑动窗口机制:

流量控制(Flow Control)和可靠传输(Reliable Transmission)是在计算机网络中两个关键的概念。它们通常与滑动窗口机制(Sliding Window)结合使用,以确保数据的可靠传输和网络的高效利用。下面详细介绍这三者的关系和作用:

### 1. **流量控制(Flow Control):**

流量控制是一种机制,用于控制发送方向接收方发送数据的速率,以防止接收方无法及时处理大量的数据,从而导致数据溢出或丢失。流量控制的目的是确保网络的稳定性和可靠性。流量控制通常通过滑动窗口机制来实现,发送方和接收方之间维持一个窗口大小,控制发送方发送的数据量,以确保接收方能够及时处理。

### 2. **滑动窗口机制(Sliding Window):**

滑动窗口机制是一种流量控制和可靠传输的技术。发送方和接收方各自维护一个窗口,窗口内的序号表示允许发送或接收的数据帧。发送方可以发送窗口内的数据帧,接收方只能接收窗口内的数据帧。随着数据的传输和确认,窗口会滑动,允许新的数据帧进入窗口,从而实现数据的流控和可靠传输。

### 3. **可靠传输(Reliable Transmission):**

可靠传输是指确保数据在网络中能够正确、完整、按序地传输到接收方的机制。它通常包括了数据的确认、超时重传、流量控制等技术。在滑动窗口机制中,可靠传输通过接收方发送确认帧(ACK)来告知发送方哪些数据已经成功接收,发送方在收到确认帧后才能滑动窗口,发送新的数据。

在滑动窗口机制中,发送方维护了一个发送窗口,接收方维护了一个接收窗口。发送窗口表示可以发送但还未得到确认的数据帧,接收窗口表示可以接收但还未确认的数据帧。发送方和接收方根据窗口的大小来控制数据的发送和接收,确保数据的可靠传输和流量控制。

2.单帧滑动窗口与停止-等待协议:

**单帧滑动窗口(Single Frame Sliding Window)** 是一种简单的滑动窗口协议,其中发送方每次只发送一个数据帧,而接收方每次只接收一个数据帧,并发送确认。它也被称为**停止-等待协议(Stop-and-Wait Protocol)**。这种协议的基本思想是,发送方发送一个数据帧后等待接收方的确认,只有在接收到确认后才能发送下一个数据帧,这样可以确保数据的可靠传输。

**停止-等待协议的步骤:**

1. **发送数据帧:** 发送方发送一个数据帧到接收方。
2. **等待确认:** 发送方等待接收方发送确认帧。
3. **接收数据帧:** 接收方接收到数据帧。
4. **发送确认帧:** 接收方发送确认帧给发送方。
5. **等待下一个数据帧:** 接收方等待下一个数据帧。

在停止-等待协议中,只有在接收到上一个数据帧的确认后,发送方才能发送下一个数据帧。如果发送方在等待确认时超时,它会重新发送当前数据帧,直到接收到确认。

**例子:**

假设发送方(A)想要向接收方(B)发送一个数据帧`0101`。以下是停止-等待协议的步骤:

1. **A发送数据帧:** A发送数据帧`0101`到B。

2. **B接收数据帧:** B接收到数据帧`0101`。

3. **B发送确认帧:** B发送确认帧给A,表示成功接收。

4. **A等待下一个数据帧:** A等待下一个数据帧的发送机会。

如果B在接收数据帧后发现数据帧有错误,它将不发送确认帧,而是等待超时。在超时之后,A会重新发送相同的数据帧。这个过程会一直持续,直到B成功接收到数据帧并发送确认帧。这种协议的可靠性来自于重传机制,确保了即使数据帧在传输中发生错误,也能够通过重传机制纠正错误。

需要注意的是,停止-等待协议的效率相对较低,因为发送方每次只能发送一个数据帧,并且需要等待确认,这样会导致网络带宽的低效利用。在实际应用中,通常会采用具有更大窗口大小的滑动窗口协议来提高传输效率。

3.多帧滑动窗口与后退N帧协议:

**多帧滑动窗口(Multiple Frame Sliding Window)** 是一种滑动窗口协议,允许发送方在不等待确认的情况下连续发送多个数据帧。与停止-等待协议相比,多帧滑动窗口提高了网络的利用率,因为发送方可以在等待确认的同时继续发送新的数据帧。在多帧滑动窗口协议中,每个数据帧都有一个唯一的序号,用于标识帧的顺序和确认。

**后退N帧协议(Go-Back-N Protocol)** 是多帧滑动窗口的一种具体实现。在后退N帧协议中,发送方可以连续发送多个数据帧,但是只能等待接收方确认窗口内的第一个数据帧。如果接收方收到了序号为N的数据帧,但是接收方检测到了前面的帧有丢失或错误,接收方会丢弃后续的所有帧,并且只确认错误之前的最后一个正确帧。发送方在超时之后会重新发送窗口内的所有帧,从未被确认的第一个帧开始。

也正因如此这里就要注意一下窗口的大小问题:后退N帧协议的接受窗口为1,可以保证按序接受数据帧.若采用n比特对帧编号,则其发送窗口的尺寸Wt应该满足1<=Wt<=2n-1(这里是2的n次方),若发送窗口大于这个,就会造成接收方无法分辨新帧和旧帧

顺便说一下采用n比特对帧编号的意思是:在通信中,帧编号是用来标识数据帧的唯一标识符。为了区分不同的帧,通常会在数据帧中添加一个帧序号(Frame Sequence Number)。采用n比特对帧编号,意味着帧序号使用n个比特(二进制位)来表示。

例如,如果采用3比特对帧编号,那么可以表示的帧序号范围是从000(二进制)到111(二进制),即从0到7。这样,一个3比特的帧编号可以表示8个不同的帧。同理,如果采用4比特对帧编号,可以表示16个不同的帧,范围从0000(二进制)到1111(二进制),即从0到15。

采用n比特对帧编号的好处是,可以表示更多的帧,使得通信系统能够处理更大规模的数据传输。然而,随着比特数的增加,帧编号的范围也会增加,从而导致帧序号字段的长度增加,占用更多的带宽。在设计通信系统时,需要权衡帧编号的范围和通信效率,以满足具体应用的需求。

**多帧滑动窗口和后退N帧协议的步骤:**

1. **发送数据帧:** 发送方可以连续发送多个数据帧(序号为1到N)。

2. **接收数据帧:** 接收方接收数据帧,如果帧在窗口内,则接收方会将其缓存,并且发送确认帧。

3. **丢弃错误帧:** 如果接收方发现帧的序号不是期望的序号,它会丢弃错误的帧。

4. **确认:** 接收方只确认窗口内的第一个正确帧。

5. **超时重传:** 如果发送方在规定时间内没有收到确认,或者收到了错误的确认,它会超时重传窗口内的所有帧。

**例子:**

假设发送方(A)希望发送帧序号为1到4的数据帧给接收方(B),但是B只收到了帧序号为1的数据帧,后续的帧在传输中发生了错误。在这种情况下,后退N帧协议的步骤如下:

1. **A发送数据帧:** A发送帧序号为1到4的数据帧。

2. **B接收数据帧:** B接收帧序号为1的数据帧,但是后续的帧在传输中发生了错误,B只能确认帧序号为1的数据帧。

3. **A超时重传:** A在超时之后,重新发送帧序号为1到4的数据帧。

4. **B接收数据帧:** B接收到帧序号为1的数据帧,确认帧序号为1的数据帧,后续的帧在传输中发生了错误,B只能确认帧序号为1的数据帧。

在这个例子中,后退N帧协议允许A发送多个数据帧,但是由于错误的发生,只能确认和接收到的第一个正确帧。发送方需要等待确认之后才能发送下一个窗口内的帧。

4.多帧滑动窗口与选择重传协议:

**多帧滑动窗口(Multiple Frame Sliding Window)** 和 **选择重传协议(Selective Repeat Protocol)** 是一种高效的滑动窗口协议。与Go-Back-N协议(后退N帧协议)不同,选择重传协议允许接收方接收和确认窗口内的任何顺序的帧,而不是仅仅确认窗口内的第一个帧。它提供了更高的网络利用率,因为发送方可以继续发送未被确认的帧,而不需要等待整个窗口的帧都被确认。

**多帧滑动窗口与选择重传协议的步骤:**

1. **发送数据帧:** 发送方可以连续发送多个数据帧(序号为1到N)。

2. **接收数据帧:** 接收方接收数据帧,不论其顺序是否与发送顺序一致。

3. **确认:** 接收方发送确认帧,确认接收到的数据帧的序号。

4. **选择性重传:** 如果接收方发现有丢失或错误的数据帧,它可以选择性地请求发送方重新发送丢失或错误的数据帧,而不是等待整个窗口的帧都被重传。

这里需要注意一下:在选择重传协议中,接收窗口和发送窗口的大小是一样的,且最大值都是最大范围的一半,若采用n比特对帧编号,则需要满足:Wtmax=Wrmax=2(n-1)(这里也是2的n-1次方)

**例子:**

假设发送方(A)希望发送帧序号为1到5的数据帧给接收方(B)。以下是选择重传协议的步骤:

1. **A发送数据帧:** A发送帧序号为1到5的数据帧。

2. **B接收数据帧:** B接收到帧序号为1、2、4、5的数据帧,但是帧序号为3的数据帧在传输中发生了错误,导致B无法正确接收。

3. **B发送选择性重传请求:** B发送一个选择性重传请求,请求A重新发送帧序号为3的数据帧。

4. **A重新发送数据帧:** A收到选择性重传请求后,只重新发送帧序号为3的数据帧。

5. **B接收数据帧:** B接收到帧序号为3的数据帧,确认帧序号为3的数据帧,继续接收帧序号为6的数据帧。

在这个例子中,选择重传协议允许接收方(B)选择性地请求重新发送丢失或错误的数据帧,而不需要等待整个窗口的帧都被重传。这提高了网络的利用率,因为发送方(A)可以继续发送未被确认的帧,而不需要等待整个窗口的帧都被确认。

(五)介质访问控制

1.信道划分介质访问控制:

信道划分介质访问控制分为以下四种:

频分多路复用(Frequency Division Multiplexing,FDM):

频分多路复用是一种多路复用技术,它允许多个信号在不同的频率上传输,以便在同一通信信道上共存。每个信号占用不同的频带宽度,它们之间没有重叠。接收端通过将不同频率范围内的信号分离,即可还原出原始信号。广播电视、有线电视等都是使用频分多路复用的例子。

时分多路复用(Time Division Multiplexing,TDM):

时分多路复用是一种多路复用技术,它允许多个信号在不同的时间间隔内传输,以便在同一通信信道上共存。每个信号在不同的时间段内占用整个信道的带宽。接收端通过时间分割,将时分多路复用的信号分离,即可还原出原始信号。电话网络、数字传输等都是使用时分多路复用的例子。

波分多路复用(Wavelength Division Multiplexing,WDM):

波分多路复用是一种多路复用技术,它允许多个信号在不同的波长(光频率)上传输,以便在光纤通信中实现高容量传输。每个信号占用不同的波长,它们之间没有重叠。光纤通信网络中,波分多路复用技术常用于增加信号的传输容量。

码分多路复用(Code Division Multiplexing,CDM):

码分多路复用是一种数字多路复用技术,它使用不同的编码方案为不同的用户分配不同的码序列,使得它们的信号在同一频率上传输,但通过不同的码序列进行区分。接收端使用相应的解码器将特定的码序列分离出来,即可还原出原始信号。CDMA技术就是一种应用了码分多路复用的例子,在3G和4G移动通信中得到广泛应用。

2.随机访问介质访问控制

1. ALOHA协议:

ALOHA是一种最早的多路访问协议,它允许多个用户通过一个共享的通信信道进行数据传输。在ALOHA协议中,当一个用户要发送数据时,它直接发送到信道上。如果在发送的过程中发生冲突(即两个或多个用户同时发送数据),数据帧可能会在传输过程中发生碰撞,从而导致数据帧丢失。后来,ALOHA协议被改进为“滑动窗口”版本,即Slotted ALOHA。

2. 时隙ALOHA协议(Slotted ALOHA):

时隙ALOHA在时间上分割信道,并将时间划分为时隙(slots)。用户只能在时隙开始时发送数据。如果发生碰撞,发送者将等待下一个时隙再次尝试发送。Slotted ALOHA相对于最初的ALOHA提高了信道利用率,因为它降低了碰撞的概率。

3. CSMA协议(Carrier Sense Multiple Access):

CSMA协议是一种多路访问协议,发送前,每个设备都会“侦听”信道,检测信道上是否有其他设备正在传输。如果信道空闲,设备就可以发送数据。然而,由于信号在传输中存在传播延迟,可能多个设备在侦听到信道空闲时同时发送数据,引发碰撞。

而在CSMA(Carrier Sense Multiple Access)协议中,存在三种不同的变体,分别是1-坚持CSMA(1-Persistent CSMA)、非坚持CSMA(Non-Persistent CSMA)和p-坚持CSMA(p-Persistent CSMA)。它们在竞争信道上发送数据时的行为方式不同。

1. 1-坚持CSMA(1-Persistent CSMA):

  • 行为方式: 当一个设备想要发送数据时,它首先检测信道是否空闲。如果信道空闲,设备立即发送数据。如果信道忙碌,设备会持续等待,直到信道空闲为止。
  • 优点: 简单直接,设备在信道空闲时立即发送,不需要等待。
  • 缺点: 当多个设备同时想要发送数据时,可能会导致碰撞,降低信道利用率。

2. 非坚持CSMA(Non-Persistent CSMA):

  • 行为方式: 当一个设备想要发送数据时,它首先检测信道是否空闲。如果信道空闲,设备有一定的概率立即发送数据。如果信道忙碌,设备会随机等待一段时间后再次检测信道的状态。
  • 优点: 减少了碰撞的概率,提高了信道利用率。
  • 缺点: 需要随机等待一段时间,可能会导致一些设备等待时间过长,影响了发送的实时性。

3. p-坚持CSMA(p-Persistent CSMA):

  • 行为方式: 当一个设备想要发送数据时,它首先检测信道是否空闲。如果信道空闲,设备有p的概率立即发送数据。如果信道忙碌,设备有1-p的概率随机等待一段时间后再次检测信道的状态。
  • 优点: 通过调整概率p,可以在延迟和信道利用率之间做出权衡。当p接近1时,行为接近于1-坚持CSMA,当p接近0时,行为接近于非坚持CSMA。
  • 缺点: 需要调整概率p,需要进行合适的配置。

这三种CSMA的变体在不同的网络场景下选择使用,根据网络的负载、实时性需求和性能要求来确定。1-坚持CSMA适用于低负载和低延迟要求的网络。非坚持CSMA适用于中等负载和一定实时性要求的网络。p-坚持CSMA允许在延迟和性能之间进行平衡,适用于更灵活的网络环境。选择合适的CSMA变体能够更好地满足特定网络的需求。

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

CSMA/CD是CSMA的改进版本,它引入了碰撞检测机制。当设备发送数据时,它会继续侦听信道上的信号。如果设备侦测到信号的能量与它发送的信号相同,说明有碰撞发生。在检测到碰撞后,设备会停止发送,等待一个随机的时间后,再次尝试发送。

这里主要是需要注意一下时间的问题.

5. CSMA/CA协议(Carrier Sense Multiple Access with Collision Avoidance):

CSMA/CA是为了避免无线网络中的碰撞而设计的。与CSMA/CD不同,无线网络无法轻松检测到碰撞。CSMA/CA通过避免在传输开始前的冲突,来减少碰撞的可能性。它引入了一种称为RTS/CTS(Request to Send/Clear to Send)的机制,发送方在发送数据前会发送RTS帧请求信道的使用权,接收方返回CTS帧,表示信道空闲,发送方可以开始传输数据。

这些多路访问协议在不同的网络环境和需求下被广泛使用,以提高网络的效率和可靠性。选择合适的多路访问协议可以根据网络的特点和要求来确定,以最大程度地提高网络的性能。

3.轮询访问:令牌传递技术

轮询访问(Polling)令牌传递技术(Token Passing) 是两种多路访问控制方法,通常用于共享介质的网络环境,如局域网。它们的目标都是有效地协调多个设备之间的数据传输,以提高网络的利用率和性能。

轮询访问(Polling):

工作原理: 在轮询访问中,一个中央控制器负责协调所有设备的访问。控制器逐个询问设备是否有数据要发送,然后按照设备的响应顺序分配时间给设备,使得每个设备在其分配的时间内可以发送数据。

步骤:

  1. 控制器询问第一个设备是否有数据发送。
  2. 如果设备有数据,它将数据发送出去;如果没有,控制器继续询问下一个设备。
  3. 控制器按照顺序轮询每个设备,依次判断它们是否有数据要发送。

优点:

  • 简单易实现。
  • 控制权在中央控制器手中,可以灵活管理设备。

缺点:

  • 如果设备响应慢或者设备数量较多,可能导致延迟增加,降低了实时性。
  • 单点故障问题:如果中央控制器发生故障,整个网络可能无法正常工作。
令牌传递技术(Token Passing):

工作原理: 在令牌传递技术中,一个特殊的数据包(令牌)在网络中循环传递。只有持有令牌的设备才能发送数据。当一个设备发送完数据后,它将令牌传递给下一个设备,然后等待令牌再次回到自己手中。

步骤:

  1. 令牌从一个设备传递到下一个设备。
  2. 只有持有令牌的设备才能发送数据,其他设备必须等待令牌到达。

优点:

  • 公平性:每个设备都有机会发送数据,不会出现饥饿现象。
  • 实时性较好:没有轮询过程,减少了传输延迟。

缺点:

  • 令牌传递需要额外的传输时间,可能引入一些延迟。
  • 如果令牌丢失或者损坏,整个网络可能无法正常工作。

总的来说,轮询访问适用于较小规模的网络,且实时性要求不高的场景。而令牌传递技术适用于大规模网络,尤其是那些对实时性要求较高的环境,比如工业自动化系统等。选择哪种方法通常取决于网络的规模、实时性要求和性能需求。

(六)局域网

1.局域网的基本概念和体系结构:

局域网(LAN)基本概念: 

局域网是指在有限的地理范围内,例如办公楼、学校、企业内部等,通过高速数据通信线路互连起来的计算机网络。局域网通常用于连接同一个组织或单位内的计算机和设备,以便实现资源共享、文件传输、打印等功能。它具有较高的传输速度和较低的传输延迟,适用于小范围、高性能、高可靠性的网络需求。

局域网的体系结构:

  1. 拓扑结构(Topology): 局域网的物理布局可以采用不同的拓扑结构,包括星型、总线型、环形和树状等。每种拓扑结构都有其优势和限制,选择合适的拓扑结构取决于网络规模和需求。

    • 星型拓扑: 所有设备都连接到一个中心设备(如交换机或集线器)。中心设备负责转发数据包,具有较好的管理和维护性。

    • 总线型拓扑: 所有设备共享同一根传输线(总线),设备通过发送和接收数据包来通信。总线型拓扑简单,但故障一个设备可能导致整个网络中断。

    • 环形拓扑: 设备被连接成一个环,数据包在环上传递,每个设备都有一个固定的地址。环形拓扑相对稳定,但添加或删除设备较为复杂。

    • 树状拓扑: 设备被组织成树状结构,兼具星型和总线型的特点。树状拓扑提供了更好的扩展性和容错性。

  2. 传输介质(Transmission Media): 局域网的传输介质通常包括双绞线、光纤、无线信道等。不同的传输介质具有不同的传输速率、传输距离和抗干扰能力,选择合适的传输介质取决于网络需求和成本考虑。

  3. 网络设备(Network Devices): 局域网中常用的网络设备包括交换机(Switch)、集线器(Hub)、路由器(Router)、网桥(Bridge)、无线接入点(Wireless Access Point)等。这些设备用于连接、转发和管理数据流,确保数据的顺利传输。

  4. 网络协议(Network Protocols): 局域网使用各种网络协议来规定数据传输的格式、规则和方法。常见的局域网协议包括以太网(Ethernet)、Wi-Fi(无线局域网)、TCP/IP等。网络协议确保不同设备之间可以正确地交换数据,并实现网络通信的顺畅运作。

  5. 网络服务和应用(Network Services and Applications): 局域网提供各种网络服务和应用,包括文件共享、打印共享、电子邮件、Web浏览等。这些服务和应用使得用户能够方便地共享资源和进行各种网络活动。

局域网的体系结构是由以上因素共同构成的,它们相互配合,确保网络能够高效、可靠地运行,满足用户的需求。不同的局域网可以根据具体需求选择不同的拓扑结构、传输介质、网络设备和协议,以构建适合特定场景的网络环境。

2.以太网与IEEE 802.3

以太网(Ethernet) 是一种局域网(LAN)技术,它定义了计算机在局域网中进行通信的标准和规则。以太网最早由Xerox、Intel和Digital Equipment Corporation(DEC)共同开发,并于1983年发布。它使用了**CSMA/CD(Carrier Sense Multiple Access with Collision Detection)**协议,允许多个设备在同一个共享的传输介质(通常是双绞线或光纤)上进行数据通信。

IEEE 802.3 是以太网的一个标准,定义了以太网的物理层和数据链路层的规范。IEEE 802.3标准由IEEE(Institute of Electrical and Electronics Engineers)制定,规定了以太网的各种参数,包括传输速率、数据帧格式、信号传输方式等。这个标准确保了不同厂商生产的以太网设备可以互操作。

以太网的特点和工作原理:
  1. CSMA/CD协议: 以太网使用CSMA/CD协议来避免数据碰撞。设备在发送数据前会监听信道,如果信道闲置,设备发送数据;如果检测到信道忙碌,设备等待一段随机时间后再次尝试发送。

  2. 数据帧: 以太网数据传输以数据帧(frame)为单位。每个数据帧包含源地址、目标地址、数据内容和纠错码等信息。数据帧的长度通常在46字节至1500字节之间。

  3. MAC地址: 每个以太网设备都有一个唯一的MAC地址(Media Access Control Address),用于在局域网中标识设备。MAC地址是48位的二进制数,通常以十六进制表示。

  4. 传输介质: 以太网可以在不同的传输介质上运行,包括双绞线(如10BASE-T)、光纤(如100BASE-FX)和同轴电缆(如10BASE5和10BASE2)等。

IEEE 802.3标准:

IEEE 802.3标准规定了以太网的各种参数和规范,包括不同速率、传输介质和数据帧格式。一些常见的IEEE 802.3标准包括:

  1. 10BASE-T: 使用双绞线进行传输,传输速率为10 Mbps。
  2. 100BASE-TX: 使用双绞线进行传输,传输速率为100 Mbps。
  3. 1000BASE-T: 使用双绞线进行传输,传输速率为1 Gbps。
  4. 1000BASE-SX: 使用多模光纤进行传输,传输速率为1 Gbps。
  5. 1000BASE-LX: 使用单模光纤进行传输,传输速率为1 Gbps。
  6. 10GBASE-T: 使用双绞线进行传输,传输速率为10 Gbps。

IEEE 802.3标准的不断发展使得以太网技术在速率、距离和传输介质上有了更多的选择,适用于不同的网络需求。以太网技术广泛应用于各种网络环境,包括家庭网络、企业网络和数据中心等。

3.IEEE 802.11 无线局域网

IEEE 802.11 是一组无线局域网(Wireless LAN)标准,定义了在2.4 GHz和5 GHz频段上的局域网无线通信协议。这一系列标准是由IEEE(Institute of Electrical and Electronics Engineers)制定的,它规定了在无线网络中设备之间的通信标准,包括无线接入点、无线客户端设备和网络之间的通信方式。

IEEE 802.11的特点和工作原理:
  1. 频段和传输速率: IEEE 802.11标准可以在2.4 GHz和5 GHz两个频段上进行通信。不同的子标准(例如802.11b、802.11g、802.11n、802.11ac等)定义了不同的传输速率和频段选择,使得在不同需求下可以选择适当的标准。

  2. 基础架构和自组织网络: 802.11网络可以以基础架构模式或者自组织(Ad-Hoc)模式工作。在基础架构模式下,无线客户端通过无线接入点(Access Point,AP)连接到有线网络。在自组织网络中,无线设备可以直接彼此通信,无需中央接入点。

  3. 信道管理和碰撞避免: IEEE 802.11网络使用CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)协议来避免碰撞。设备在发送数据前会监听信道,如果信道忙碌,设备会随机等待一段时间后再次尝试发送,以减少碰撞的概率。

  4. 安全性: IEEE 802.11标准提供了多种安全性机制,包括WEP(Wired Equivalent Privacy)、WPA(Wi-Fi Protected Access)和WPA2等,用于加密数据传输,防止未经授权的设备接入网络。

  5. 多天线技术(MIMO): 一些802.11的子标准(如802.11n和802.11ac)支持多输入多输出(Multiple Input Multiple Output,MIMO)技术,通过使用多个天线来提高数据传输速率和信号覆盖范围。

IEEE 802.11的子标准:
  1. 802.11b: 在2.4 GHz频段上提供最高11 Mbps的传输速率,采用DSSS(Direct Sequence Spread Spectrum)调制技术。

  2. 802.11g: 在2.4 GHz频段上提供最高54 Mbps的传输速率,采用OFDM(Orthogonal Frequency Division Multiplexing)调制技术。

  3. 802.11n: 在2.4 GHz和5 GHz频段上提供最高600 Mbps或更高的传输速率,采用MIMO技术,支持多天线传输。

  4. 802.11ac: 在5 GHz频段上提供最高1 Gbps或更高的传输速率,采用更高级的MIMO技术和更宽的信道宽度。

  5. 802.11ax(Wi-Fi 6): 提供更高的传输速率和更好的网络性能,支持更多设备同时连接,提供更好的信道管理和碰撞避免。

IEEE 802.11标准系列不断发展,引入了新的技术和改进,以满足不断增长的无线网络需求。无线局域网技术在移动设备、家庭网络、企业网络和公共场所等广泛应用,成为现代网络通信的重要组成部分。

4.VLAN基本概念与基本原理

虚拟局域网(VLAN) 是一种网络技术,用于将一个物理局域网分割成多个逻辑局域网,以实现更好的网络管理和资源隔离。以下是VLAN的基本概念和基本原理:

基本概念:

  1. 虚拟局域网(VLAN): VLAN是一个逻辑上的局域网,将物理网络设备划分成多个逻辑组,不受物理位置的限制。每个VLAN内的设备可以彼此通信,而不同VLAN之间的设备不能直接通信。

  2. 交换机: VLAN通常在交换机上配置和管理。交换机是一个关键的网络设备,用于将数据帧从一个端口转发到其他端口,以实现设备之间的通信。

  3. 端口: 交换机的物理接口,用于连接计算机、服务器和其他网络设备。每个端口可以分配到一个或多个VLAN。

  4. VLAN ID: 每个VLAN都有一个唯一的标识号,称为VLAN ID。这个ID用于将数据帧与特定的VLAN关联。

基本原理:

  1. 划分VLAN: 划分VLAN是将网络设备根据其功能、部门或其他标准划分为不同的逻辑组。例如,可以创建一个VLAN用于管理部门,另一个用于销售部门。

  2. VLAN ID分配: 为每个VLAN分配一个唯一的VLAN ID。这个ID通常是一个整数,范围从1到4095。不同的交换机制造商可能会有一些限制,但通常有足够的VLAN ID可供选择。

  3. 端口关联: 将每个交换机端口分配到一个或多个VLAN。这意味着设备连接到特定端口的数据流将被分配到相应的VLAN。例如,将管理部门的设备连接到一个VLAN 10,将销售部门的设备连接到VLAN 20。

  4. VLAN隔离: 不同的VLAN通常是相互隔离的,这意味着同一VLAN内的设备可以互相通信,但不同VLAN内的设备不能直接通信。这种隔离有助于提高网络安全性和管理性。

  5. 交换机管理: VLAN配置和管理通常由网络管理员在交换机上完成。管理员可以添加、删除或修改VLAN配置,以满足不同部门或项目的需求。

  6. 标记和数据帧处理: 交换机在数据帧的头部添加VLAN标签,以指示数据帧所属的VLAN。交换机在接收数据帧时,根据标签将数据帧路由到正确的VLAN。这种标签通常使用802.1Q标准来实现。

VLAN的优点:

  • 隔离和安全性: VLAN可以将不同的网络流量隔离开,提高网络的安全性。数据流只能在同一VLAN内通信,减少了网络攻击的风险。

  • 资源管理: VLAN允许更好地管理网络资源,将设备按照功能、部门或项目划分,有助于更有效地配置和维护网络。

  • 灵活性: VLAN允许网络管理员根据需求重新配置网络,而无需改变物理拓扑。

  • 带宽优化: VLAN可以将网络流量分隔开,避免不同部门或项目之间的带宽争用。

总之,VLAN是一种强大的网络管理工具,可以根据不同的需求和情况配置网络,提高网络的性能和管理性。它是现代企业和组织网络的重要组成部分。

结语

好像还漏了广域网来着....,算了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值