波特率 & 码元

  1. 在无噪声情况下,若某通信链路的带宽为 3khz 。采用 4 个相位。每个相位具有 4 种振幅的 QAM 调制技术,则该通信链路的最大数据传输速率是?
  • 24kbit/s
  • 48kbit/s
  • 96kbit/s
  • 12kbit/s

考查对奈氏准则和香农定理,这是通信工程的理论。软件可忽略。

奈奎斯特:在无噪声情况下,码元速率极限值 B 与信道带宽的关系:B=2*W (Baud) ,一个数字脉冲的波形就是一个码元,波特就是单位时间传送的码元个数(码元 / 秒),一个码元可以表示多位信息

奈奎斯特公式 —- 无噪信道传输能力公式:

C=2 * W * log2N(bit/s)

C 是数据传输速率,W 为信道的带宽,本题中 W=3KHz;

N 为一个码元所取得离散值个数,本题中 N=16 (4 个相位,每个相位 4 中振幅)。

C=2 * W * log2N=2 * 3kHz * log216=2 * 3k * 4=24kbps;

香农公式是在带噪信道容量计算时使用的公式:

C=W * log2(1+S/N)(bit/s)

S 为信号功率,N 为噪声功率,S/N 为信噪比;

信噪比 (dB) = 10 * log10 (S/N) (dB)

  1. 若某通信链路的数据传输速率为 2400bit/s,采用 4 相位调制,则该链路的波特率是( )。
  • 600 波特
  • 1200 波特
  • 4800 波特
  • 9600 波特

选 B。
数据传送速率 R,与波特率 B 之间的关系是:

                        R = B*log 2 N ,其中,N 为进制数。

本题中,N = 4,R = 2400,所以 B = 1200

  1. 若信道在无噪声情况下的极限数据传输速率不小于信噪比为 30dB 条件下的极限数据传输速率,则信号状态数至少是
  • 4
  • 8
  • 16
  • 32

2log2N>=log2(1001)

可用奈奎斯特采样定理计算无噪声情况下的极限数据传输速率,用香农第二定理计算有噪信道极限数据传输速率。2Wlog2N≥Wlog2 (1+S/N),W 是信道带宽,N 是信号状态数,S/N 是信噪比,将数据带入计算可得 N≥32,选 D。分贝数 = 10log10S/N。

双绞线

568B 线序:白橙,橙,白绿,蓝,白蓝,绿,白棕,棕

568A 线序:将 568B 中 1<->3、2<->6 互换

交叉线:一头 568A 一头 568B

直通线:两头都是 568B

反转线:一端 568A,另一端将 568A 线序反过来

数据链路层

本文由 简悦 SimpRead 转码, 原文地址 www.cnblogs.com

数据链路层

  在物理层的传输过程中,会使数据出现一定的误差。引入了数据链路层在物理层之上,采用差错检测、差错控制和流量控制等方法,来检测差错,从而向网络层提供高质量的数据传输服务。

  数据链路层包含两个子层

  1.LLC 作为数据链路层的一个子层,使用 MAC 子层为其提供的服务,通过与对等实体 LLC 子层的交互为它的上层网络层提供服务。

  LLC 包含可靠传输的方式,以及解决封装成帧,透明传送,差错控制。

  2.MAC 子层是用来实现介质访问控制的网络实体。MAC 子层主要功能包括数据帧的封装 / 拆封、帧的寻址与识别、帧的接收与发送、链路的管理、帧的差错控制及 MAC 协议的维护等。

  MAC 子层包含:二层交换设备,以太网,CSMA/CD。

数据在每次经过路由器的时候都会在数据链路层检测是否有差错。

1996208-20200416224258894-1241589285

R 为路由器。

数据链路层解决的三个问题:封装成帧,透明传送,差错控制

概念:

1. 数据链路层的信道类型:

  1. 点对点信道:(一对一)两个设备一根线,从其中一个设备到另一个设备发送信息。

  2. 广播信道:(一对多)一根信道上连有多个主机,每个主机都有可能收到信息,需要协议来协调发送。

2. 链路与数据链路:

  1. 链路:一条点到点的物理段,中间没有任何其他交换节点。

  2. 数据链路:在链路上添加一定协议来传输数据,为数据链路。

3. 帧:

  数据链路层在获得网络的发送来的数据包时,将数据封装,封装过后的新数据称为帧,其中封装了帧头,帧尾,来标记一个帧的开始和结尾,其中还含有物理层地址和校验和等信息。

4. 解决封装成帧

封装成帧的目的是标记一个帧的开始与结束。其中有几种方法:

  1. 字节计数法:每个帧头都添加一个字段,字段写当前这帧的长度是多少,很好理解,但是容易出错,一旦其中一个数据出错往后的数据全部出错。
  2. 字节填充的标志字节法:在帧头帧尾添加一个字节的标记(FLAG),从标记中就可以知道一个帧的长度,还解决了字节计数法的问题,当然这种方法也存在问题,当发送的数据里面存在我们的标记的时候,即这个表示是我们发送的数据在帧的中间,我们就会误认为帧在这里结束,解决方法类似与 C 语言的转移字符,如果是在数据中包含了标记(FLAG),就会在 FLAG 前面加上一个字节的转义符(ESC),当检测到 FLAG 的时候只用看见前面是否有 ESC 就可以了,同样若数据中出现了 ESC 就会在前面加 ESC 转义符。在数据被接收的时候就会去掉 ESC 来恢复原数据。里面还有很多情况比如数据中出现 ESC FLAG 的字段就转换成 ESC ESC ESC FLAG,第一个和第三个 ESC 便是加上的转义符。(缺点只适用与 8 比特(1 字节)整数倍的数据,也就是只能在字节级别更改)
  3. 比特填充的标志比特法:在帧头帧尾添加一个特殊的比特串 01111110 作为帧标记来表示一个帧的开始与结束,当然数据中也会出现这样的比特串,解决的方法就是在数据中只要连续的出现了 5 个 1 就自动的在后面添加一个 0,保证了不会有 6 个 1 连续的出现,举个例子当一个帧为 01111110(头)011111000 (数据)01111110(尾),那么接收之后就会变为 01111110(头)01111100 (数据)01111110(尾),去掉了在数据部分的 5 个连续的 1 后面的一个 0。(优点是可以适用与任意比特的传输)。
  4. 物理层编码违禁法:将物理层中不会出现的编码(由编码规则而定)来作为帧界。(有点不会出现帧界的混淆)

5. 解决透明传输

  透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。也就是上面的出现了和标记信息一样的信息就采用填充法来解决和标记信息一样的比特流数据传输会出错的问题。

6. 解决差错控制

  在传输过程中可能会出现比特差错即 0 变 1,1 变 0,差错控制使接收放只接收正确的数据,若数据不正确则不接收(只检错不纠错)。

  常见的检错码

  1. 奇偶校验码:是一种通过增加冗余位使得码字中 “1” 的个数恒为奇数或偶数的编码方法,分为奇校验和偶校验。

     奇校验:当前比特串中含有奇数个 1,将冗余位置为 0,否则置为 1。

     偶校验:当前比特串中含有偶数个 1,将冗余位置为 0,否则置为 1。

     局限:检测到的出错的信息是可靠的,但并不能保证检测正确的是可靠的(多个突变,校验仍然可能是正确的)

  2. 校验和:对数据中数据位进行计算求出来的放置在消息的末尾。

  1. 循环冗余校验码(CRC 校验码):CRC 校验也是在数据后放上校验码,校验码的个数会根据数据的个数大小变化。

    如何生成计算 CRC 校验码:

          1. 几个概念

            1. 多项式:生成多项式也就是一个 01 串 设多项式 G(x)=X^3+X^2+1, 我们可以看作 G(x)=1 *(X^3)+1 *(X^2)+0 *(X^1)+1 *(X^0),只保留 X 前系数得二进制码 1101。

            2. 模二运算:可以理解为异或运算,其中 0+0=0,0+1=1,1+0=1,1+1=0,记住的模二运算中加法没有进位,减法没有借位,也就是说 1+1=0 不往后进位。

          2. 如何计算

            1. 约定共同的生成多项式:收发的双方首先在事前约定一个相同的多项式。(生成多项式是规定好的不需要我们去关心)

            2. 取生成多项式的二进制码位数 r,在原数据位后添加 r-1 个零,得到新的数据 n。

            3. 对新的数据 n 作为被除数,生成多项式作为除数,做模二除法,得到余数为 y。

            4. 将新数据 n 和得到的余数 y 做模二减法,得到最终数据 p(就是将末尾添加的 r-1 位零替换成余数 y),发送数据 p。

           3. 接收检错

            1. 接收到的数据作为除数,生成多项式作为除数,做模二除法。

            2. 若余数为 0,则数据无错,若有余数,则数据出错。

7. 流量控制与可靠传输

  1. 滑动窗口协议:

    1. 停止 - 等待协议(一位滑动窗口):在接收方维护这一个希望接收的帧的一个窗口,每次发送方发送一个帧到接收方后,接收方会检测是不是自己需要的帧,若是则发送一个确认回去,若接收方没收到,一段时间以后(定时器超时),发送方没收到确认帧,则发送方重新发送刚刚发送的那个帧。这是一个停 - 等协议,发送方接收方需要等到上一个帧确认接收后才能发送下一个帧。在确认回传过程中,若定时器设置不合理会导致,发送方没有接收到确认时就定时器超时,这回导致一个信道中含有多个重复的帧,浪费资源。发送窗口的值 Ws=1,接收窗口的值 Wr=1。

    2. 连续 ARQ(go-back-N 回退 N 帧):为了避免一位滑动窗口的问题,回退 N 帧协议可以一次性传多个帧也就是将滑动窗口从一位扩大到 n 位,我们在选取到合适的 n 的情况下,可以实现在发送完当前窗口的最后一帧时接收到当前窗口发送的第一帧的确认,这样窗口第一帧就确保了接收方的接收,滑动窗口向后滑动,继续发送新的帧。而回退 N 帧,则是代表在发送过程中发现其中一帧出问题了,但是已经发送了这个问题帧的后面的帧,那么要做的是就是从问题帧开始重新发送往后的所有帧。发送方要做的是在发送一个帧后启动这个帧的定时器,并且缓存这个帧待帧出现错误后重传,接收到确认之后滑动窗口,在接收方要做的是,一旦发现接收到的某一帧有问题或并未接受到,则后面接收到的数据帧全部丢弃。累积确认:如果接收端发送了对第 n 帧的确认,则代表从 0 到 n-1 号帧都已经正确收到。后退N帧协议的接收窗口为 1,可以保证按序接收数据帧。若采用 n 个比特对帧编号,则期发送窗口的尺寸 Wt 应满足:**1 <= Wt <= 2^n - 1**。若发送窗口的尺寸大于 2^n - 1,则会造成接收方无法分辨新帧和旧帧。若信道的传输质量很差导致误码率较大时,后退N帧协议不一定优于停止等待协议

    3. 选择性重传 ARQ:回退 N 帧是重新发送问题帧以后的所有帧,而选择性重传则是只重新发送问题帧,在接收方,如果是没问题的帧就直接上交,如果是有问题的帧,便把之后收到的帧缓存取来直到接收到重传的那一帧,在完成排序后一起上交。这个协议中发送窗口需要进行约束,选择重传协议的接收窗口尺寸 Wr 和发送窗口尺寸 Wt 都大于 1,一次可以发送或接收多个帧。若采用 n 比特对帧编号,为了保证接收方向向前移动窗口后,新窗口序号与旧窗口序号没有重叠部分,需要满足条件:接收窗口 Wr + 发送窗口 Wt <= 2^n。假定仍然采用累计确认的方法,并且接收窗口 Wr 显然不应超过发送窗口 Wt (否则无意义),那么接收窗口尺寸不应超过序号范围的一半 **Wr <= 2^(n-1)。当接收窗口为最大值时,Wtmax = Wrmax = 2^(n-1)**。选择重传协议可以避免重复传送那些本已正确到达接收端的数据帧,但在接收端要设置具有相当容量的缓冲区来暂存那些未按序正确收到的帧。接收端不能接收窗口以下或窗口上界以上的序号的帧,因此所需缓冲区的数目等于窗口的大小,而不是序号数目。

8. 几个协议

  1.ppp 协议:在使用点对点数据通信(点对点通信就是两设备之间没有其他设备),PPP 协议拥有数据链路的基本功能即封装成帧,透明传送和差错控制,但不具备流量控制功能和可靠传输机制。

image-20220914094106465

其中首尾的 F(7E)是帧的开始和结束,首部的 A(FF)是地址(一般是固定的 因为点到点目的地址只有一个),C(03)控制字段,选择是没用的字段,都是一个字节长度。

协议字段(两个字节长)是

(1) 当协议字段为 0x0021 时,PPP 帧的信息字段就是 IP 数据报。

(2) 当协议字段为 0xC021 时,PPP 帧的信息字段就是 PPP 链路控制协议 LCP 的数据。

(3) 当协议字段为 0x8021 时,PPP 帧的信息字段就是网络层的控制数据。

尾部的 FCS 是帧检验序列。(1 个字节长)

解决透明传输:头尾的标记字段是 7E,若在数据出现 7E 则替换为 7D 5E (俩字节),出现了 7D 则替换为 7D 5D. 也可以使用零比特填充的方法。

 PPP 协议一般用于广域网。

  2.ALOHA 协议(用于局域网,一条线路上链接有多个计算机)

    1. 纯 ALOHA 协议:每个站点可以在任意时间发送自己数据,极其的任性,很容易发送冲突,信道利用率最高达到 18.4% 很低。
    2. 分隙 ALOHA 协议:将时间分片,每一个时间片为分隙,每个发送方只能在时隙的开始发送,所以冲突只在时隙开始的发生,一旦一个帧占用了这个时隙,在这个时隙内就不会发生冲突了,计算出的信道利用率为可以达到 36.8%。

  3. 带冲突检测的载波侦听多路访问协议(CSMA/CD 协议)(同样用于局域网):为了解决冲突问题(先听后发,边发边听)

    1. 多点接入:一条线路上连接有多个计算机,如果同时发送数据就会发生冲突。
    2. 载波监听:会监听信道,如果信道是空闲的就会立马发送数据,如果是不是就会等待(先听后发)。
    3. 碰撞检测:如果成功发送了数据除了被接收方完好无损的接收还会出现两种情况
1. 两台计算机同时发送了数据,一定会碰撞。
2. 一台计算机先发送了数据,由于传播时延,另一台计算机还没有监听到,于是也发送了数据,也会碰撞。那么在出现碰撞的情况下,发送方也会监听到(边发边听)(在自己发送过程中接收到了其他信号,就是碰撞),那么发送方会停止发送数据,并且发送一个拥塞信号并广播,告诉这条信道上的所有计算机出现了碰撞,等信道空闲之后,设定一个随机时间,等经过了这个随机时间之后在开始监听信道发送。

碰撞检测的检测时隙宽度要求等于两个最远计算机之间的传输时间(来回时间),可以在一个时隙内可以检测到最远距离的冲突。

发送有效帧的时间大于两个最远计算机之间的传输时间(来回时间),也就是说发送的时间要大于一个来回时间用来保证在能够发送时监听到最远距离发生的碰撞。

基本退避时间为争用期 2τ 具体的争用期时间是 51.2μs(就是最远一来一回的时间)

最小帧长为 64 字节

image-20220914094155675

9. 以太网概述

  以太网是当今现有局域网采用的最通用的通信协议标准。以太网提供的服务是不可靠服务,最大努力的交付,和无差错接收(只接受无差错的数据)。经典以太网中使用 CSMA/CD 协议来保证使数据。以太网包含着 OSI 参考模型的最后两层。以太网处理的帧叫做以太帧。

  IEEE802.3 协议规定了运行在各种介质上的 1M-10M 速度的 CSMA/CD 协议的标准

   以太网帧格式

image-20220914094219602

  从左到右分别是前导码(7 Bytes)、帧起始定界符(1 Bytes)、目的 MAC 地址(6 Bytes)、源 MAC 地址(6 Bytes)、类型 / 长度(2 Bytes)、数据和填充字段(48~1500 Bytes)、帧校验序列(4 Bytes)

  MAC 地址:也称为局域网地址,物理地址,MAC 地址用于在网络中唯一标示一个网卡,每一个网卡都有一个 MAC 地址,并且是全球唯一的。

  以太帧有很多种类型,常见的有以太 II 帧和 IEEE802.3 帧。其中如果是 IEEE802.3 帧帧起始定界符为 1 表示一个帧的开始,如果是以太 II 帧则是 0。第五个字段(长度 / 类型字段)中 IEEE802.3 帧这个字段代表长度,而以太 II 帧代表数据的类型。

 以下是抓到的数据包。

image-20220914094237036

 其中 Frame 就是这个数据包的概述

而 Ethernet II 就是就是我们抓到的以太网 II 帧 查看一下

image-20220914094252570 

里面包含了目的 MAC 地址,源 MAC 地址,和数据类型是 IPV4。

而我们上面所看的帧头部(前 8 字节)和尾部校验和,在计算机收到这个数据包的时候就已经去掉了,剩下的数据部分就是下面的 Internet protocol 的网络层的内容了。

10. 数据链路层设备

  1. 交换机,网桥:网桥用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch)所取代。

    网桥和交换机将两个相似的网络连接起来,并对网络数据的流通进行管理。设备将两个局域网连接在一起时,若两个网络的帧格式不同,网桥可以对他们重新封装变成合适的帧,也可以对帧进行缓存来适应不同的发送接收速度。

    当帧到达网桥时,网桥都需要做出决策,是转发还是广播这个帧,在网桥中有个 MAC 表支持学习的功能,当某一帧到达网桥,他会解封帧,提取里面的数据首先记录这个帧的源 MAC 地址来自哪个端口将这一信息记录到 MAC 表中,在查找 MAC 表中是否含有对应的目的地址对应了端口,如果有则直接将帧转发到对应的端口,否则就广播这个帧,发送到已经连接的端口,还有一种情况在查找的表后发现数据送来的端口就是要转发的端口,那么网桥将会丢弃这个帧,因为这两计算机位于同一条信道上,源主机发送帧时,一条信道的上的所有计算机都可以接收到这个帧,网桥没必要转发一次了。

  2. 网卡

  网卡提供 MAC 地址,数据的封装与解封,链路管理。网卡既是物理层的设备也是数据链路层的 MAC 子层的 d 设备。

11. 生成树协议

  在连接多个局域网的时候,经常用不止一条线来连接,来保证可靠性,但是这样就很容易形成环结构,很有可能会让数据帧无线的在环上无限传输,形成网络风暴。也会让交换机在 MAC 地址表学习的时候会让学习的端口不稳定。为了避免这个问题,用生成树协议来使从一点到另一点的路径只有一条,将图转换为树。

  原理:生成树协议工作原理:任意一交换机中如果到达根网桥有两条或者两条以上的链路。生成树协议都根据算法把其中一条切断,仅保留一条。从而保证任意两个交换机之间只有一条单一的活动链路。因为这种生成的这种拓扑结构。很像是以根交换机为树干的树形结构。故为生成树协议。

  当生成树中某些端口失效了 ,生成新的生成树。

12. 虚拟局域网(VLAN)

  虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。

  基于端口的 VLAN,在交换机内部有一个 VLAN 表,来标定哪些是虚拟局域网端口。

  假如一台交换机上有一个 VLAN vlan 内包含 AB 两个主机 而 CD 两个主机是连在普通端口上。那么 C 发送的帧交换机要交付给 A 的时候是无法做到的,AB 是无法转发到的。只有 AB 是相互连通。他们在物理上是连通的但是在逻辑上是不通的。

13. CSMA/CA 协议

接收信号强度往往会远远小于发送信号强度,如要在无线局域网的适配器上实现碰撞检测,对硬件的要求非常高。
即使够实现碰撞检测的功能,并且当发送数据时检测到信道是空闲的,在接收端仍然有可能发生碰撞(隐蔽站问题)
屏蔽站问题:
未能检测出媒体上已存在的信号的问题


当 A 和 C 检测不到无线信号时,都以为信道是空闲的,因而都向 B 发送数据,结果发生碰撞。

为了更好地解决隐蔽站带来的碰撞问题,802.11 允许要发送数据的站对信道进行预约。具体的做法是这样的。A 在向 B 发送数据帧之前,先发送一个短的控制帧,叫做请求发送 RTS (Request To Send),它包括源地址、目的地址和这次通信(包括相应的确认帧)所需的持续时间。当然,A 在发送 RTS 帧之前,必须先监听信道。若信道空闲,则等待一段时间 DIFS 后,才能够发送 RTS 帧。若 B 正确收到 A 发来的 RTS 帧,且媒体空闲,则等待一段时间 SIFS 后,就向 A 发送一个叫做允许发送 CTS (Clear To Send) 的控制帧,它也包括这次通信所需的持续时间。A 收到 CTS 帧后,再等待一段时间 SIFS 后,就可发送数据帧。若 B 正确收到了 A 发来的数据帧,在等待时间 SIFS 后,就向 A 发送确认帧 ACK。

SIFS(短帧间间隔):
最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站应当能够在这段时间内从发送方式切换到接收方式。
使用 SIFS 的帧类型有:
ACK 帧、CTS 帧、由过长的 MAC 帧分片后的数据帧,以及所有回答 AP 探询的帧和在 PCF 方式中接入点 AP 发送出的任何帧。

PIFS(点协调功能帧间间隔):
比 SIFS 长,是为了在开始使用 PCF 方式时(在 PCF 方式下使用,没有争用)优先获得接入到媒体中。PIFS 的长度是 SIFS 加一个时隙 (slot) 长度。
时隙的长度的确定:
在一个基本服务集 BSS 内当某个站在一个时隙开始时接入到媒体时,那么在下一个时隙开始时,其他站就都能检测出信道已转变为忙态。

DIFS(分布协调功能帧间间隔(最长的 IFS)):
在 DCF 方式中用来发送数据帧和管理帧。DIFS 的长度比 PIFS 再增加一个时隙长度。

退避算法:

为什么信道空闲还要再等待一段时间 DIFS 呢?就是考虑到可能有其他的站有一高优先级的帧要发送。如有,就要让高优先级帧先发送。

现在假定没有高优先级帧要发送,因而源站发送了自己的数据帧。目的站若正确收到此帧,则经过时间间隔 SIFS 后,向源站发送确认帧 ACK。若源站在规定时间内没有收到确认帧 ACK (由重传计时器控制这段时间),就必须重传此帧,直到收到确认为止,或者经过若千次的重传失败后放弃发送。

由此可见,802.11 无线局域网采用的停止等待协议,是一种可靠传输协议。发送力一必须等待对力一的确认帧。但 802.3 有线局域网的传输是不可靠的,发送方把数据发送出去就不管了 (当然若检测到碰撞是必须重传的),如果需要可靠传输则由高层负责。

14. 信道划分的 MAC 协议:

时间(TDMA)、频带(FDMA)、码片(CDMA)划分

随机访问 MAC 协议:

ALOHA,S-ALOHA,CSMA,CSMA/CD(带冲突检测的载波监听多路访问),其中 CSMA/CD 应用于以太网,CSMA/CA 应用于 802.11 无线局域网

轮转访问 MAC 协议:

主节点轮询;令牌传递

蓝牙、FDDI、令牌环网

网络层

考试重点

  • 选择题(30 分),简答题(15 分),计算题(25 分),分析题(15 分),应用题(15 分)

  • 重要内容的梳理结合计算机网络课程大纲

课程目标 1.1

课程目标 1.2

  • 四种信道复用技术,码分多址,0、1

    image-20230530001739915

  • 数据链路层,CRC

    数据链路层和传输层提供的可靠传输的区别_WenjieDai 的博客 - CSDN 博客_数据链路层是可靠传输吗

    关于数据链路层提供的可靠传输和传输层提供的可靠传输的区别_陈朔怡的博客 - 程序员资料_可靠传输和不可靠传输的区别 - 程序员资料

  • 停止等待协议,ARQ

  • 滑动窗口协议,选择重传 ARQ,3 种 ARQ,窗口大小,2^n,2^(n-1)

  • 802.11,CSMA/CD

  • 网际层(重中之重,大题都在这),IP,字段的含义,重组

  • 互联网的两个路由选择协议,RIP

    计算机网络基础(七)网络层 —— 路由选择协议之 RIP 协议、OSPF 协议和 BGP 协议 - 张柏沛 IT 博客
    https://www.zbpblog.com/blog-355.html

  • 第五章运输层,TCP 的可靠传输协议、可靠传输控制(重中之重)、差错控制(检错码上面有),UDP

    TCP 的可靠传输

    应用数据被分割成 TCP 认为最适合发送的数据块。

    TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。

    校验和:TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。

    TCP 的接收端会丢弃重复的数据。

    流量控制:TCP 连接的每一方都有固定大小的缓冲空间,TCP 的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。 (TCP 利用滑动窗口实现流量控制)

    拥塞控制:当网络拥塞时,减少数据的发送。

    ARQ 协议:也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。

    超时重传:当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。

    产生确认的情况

    1、当 A 端向 B 端发送数据报文段时,必须包含(捎带)一个确认,它给出 A 端期望接收的下一个序号。

    ​ 2、当接收方没有数据要发送,但是收到了按序到达(序号是所期望的)的报文段,同时前一个报文段也已经确认过了,那么接收方就推迟发送确认报文段,直到另一个报文段到达,或经过了一段时间(通常是 500ms)。

    ​ 3、当具有所期望的序号的报文段到达,而前一个按序到达的报文段还没有被确认,那么接收方就要立即发送 ACK 报文段。

    ​ 4、当序号比期望的序号还大的失序报文段到达时,接收方立即发送 ACK 报文段,并宣布下一个期望的报文段序号。这将导致对丢失报文段的快重传。

    ​ 5、当一个丢失的报文段到达时,接收方要发送 ACK 报文段,并宣布下一个所期望的序号。

    6、如果到达一个重复的报文段,接收方丢弃该报文段,但是应当立即发送确认,指出下一个期望的报文段。

  • 应用层不是很重要,域名系统 DNS,FTP,WWW,SMTP/POP3,对应课程目标 1.2、2.1