From c2e969c2b7c655b3d0322bc21060f8d8fd8ff2b0 Mon Sep 17 00:00:00 2001 From: guide Date: Wed, 27 Jan 2021 21:50:15 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E8=AE=A1=E7=AE=97=E6=9C=BA=E7=BD=91?= =?UTF-8?q?=E7=BB=9C.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...56\227\346\234\272\347\275\221\347\273\234.md" | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git "a/docs/network/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" "b/docs/network/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" index 688d7f3e..0e83a26b 100644 --- "a/docs/network/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" +++ "b/docs/network/\350\256\241\347\256\227\346\234\272\347\275\221\347\273\234.md" @@ -133,12 +133,14 @@ TCP 提供面向连接的服务。在传送数据之前必须先建立连接, **自动重传请求**(Automatic Repeat-reQuest,ARQ)是OSI模型中数据链路层和传输层的错误纠正协议之一。它通过使用确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。ARQ包括停止等待ARQ协议和连续ARQ协议。 #### 停止等待ARQ协议 -- 停止等待协议是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认(回复ACK)。如果过了一段时间(超时时间后),还是没有收到 ACK 确认,说明没有发送成功,需要重新发送,直到收到确认后再发下一个分组; -- 在停止等待协议中,若接收方收到重复分组,就丢弃该分组,但同时还要发送确认; +停止等待协议是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认(回复ACK)。如果过了一段时间(超时时间后),还是没有收到 ACK 确认,说明没有发送成功,需要重新发送,直到收到确认后再发下一个分组。 -**优点:** 简单 +在停止等待协议中,若接收方收到重复分组,就丢弃该分组,但同时还要发送确认。 -**缺点:** 信道利用率低,等待时间长 +**优缺点:** + +- **优点:** 简单 +- **缺点:** 信道利用率低,等待时间长 **1) 无差错情况:** @@ -157,9 +159,10 @@ TCP 提供面向连接的服务。在传送数据之前必须先建立连接, 连续 ARQ 协议可提高信道利用率。发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了。 -**优点:** 信道利用率高,容易实现,即使确认丢失,也不必重传。 +**优缺点:** -**缺点:** 不能向发送方反映出接收方已经正确收到的所有分组的信息。 比如:发送方发送了 5条 消息,中间第三条丢失(3号),这时接收方只能对前两个发送确认。发送方无法知道后三个分组的下落,而只好把后三个全部重传一次。这也叫 Go-Back-N(回退 N),表示需要退回来重传已经发送过的 N 个消息。 +- **优点:** 信道利用率高,容易实现,即使确认丢失,也不必重传。 +- **缺点:** 不能向发送方反映出接收方已经正确收到的所有分组的信息。 比如:发送方发送了 5条 消息,中间第三条丢失(3号),这时接收方只能对前两个发送确认。发送方无法知道后三个分组的下落,而只好把后三个全部重传一次。这也叫 Go-Back-N(回退 N),表示需要退回来重传已经发送过的 N 个消息。 ### 4.2 滑动窗口和流量控制 -- GitLab