Skip to content

Commit 02b6dba

Browse files
committed
内容勘误
1 parent b73c122 commit 02b6dba

File tree

12 files changed

+5
-5
lines changed

12 files changed

+5
-5
lines changed

docs/01.网络/03.传输控制协议TCP.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,27 +149,27 @@ TCP 的滑动窗口是以字节为单位的。假定 A 收到了 B `发来`的
149149

150150
发送窗口前沿通常是不断向前移动,但也有可能不动。这对应于两种情况:
151151

152-
- 一是没有收到信的确认,对应通知的窗口大小也不变
152+
- 一是没有收到新的确认,对应通知的窗口大小也不变
153153
- 二是收到了新的窗口单对方通知的窗口缩小了,使得发送窗口前沿正好不动
154154

155-
发送窗口前沿也有可能`向后收缩`。这发生在对方通知的窗口缩小了。但 TCP 的标准`强烈不赞成这样做`因为很可能发送方在收到这个通知以前已经发生了窗口中的许多数据,现在又要收缩窗口,不让发送这些数据,这样就会产生一些错误
155+
发送窗口前沿也有可能`向后收缩`。这发生在对方通知的窗口缩小了。但 TCP 的标准`强烈不赞成这样做`因为很可能发送方在收到这个通知以前已经发送了窗口中的许多数据,现在又要收缩窗口,不让发送这些数据,这样就会产生一些错误
156156

157157
![TCP协议-图9](./assets/tcp-09.png)
158158

159159
要描述一个发送窗口的状态需要三个指针:P<sub>1</sub>,P<sub>2</sub>,P<sub>3</sub>。指针都指向字节的序号。这三个指针指向的几个部分的意义如下:
160160

161161
- 小于 P<sub>1</sub> 的是已发送并已收到确认的部分,而大于 P<sub>3</sub> 的是不允许发送的部分
162-
- P<sub>3</sub> - P<sub>1</sub> = A 的发送窗口
162+
- P<sub>3</sub> - P<sub>1</sub> = `A 的发送窗口`
163163
- P<sub>2</sub> - P<sub>1</sub> 已发送但尚未收到确认的字节数
164164
- P<sub>3</sub> - P<sub>2</sub> 允许发送但当前尚未发送的字节数(又称为`可用窗口``有效窗口`)
165165

166166
B 的接收窗口大小是20。在接收窗口外面,到30号为止的数据是已经发送过确认,并且已经交付主机了。因此在 B 可以不再保留这些数据。接收窗口内的序号(31\~50)是允许接收的。在上图中,B 收到了序号为32和33的数据。这些数据没有按序到达,因为序号为31的数据没有收到(也许丢失了,也许滞留在网络中的某处)。请注意,B 只能对按序收到的数据中的最高序号给出确认,因此 B 发送的确认报文段中的确认号仍然是31(即期望收到的序号),而不是32或33
167167

168-
现在假定 B 收到了序号为31的数据,并把序号为31\~33的数据交付主机,然后 B 删除这些数据。接着把接收窗口向前移动3个序号,同时给 A 发送确认,其中窗口值仍为20,但确认号是34.这表明 B 已经收到了到序号33为止的数据。B 还收到了序号为37,38和40的数据,但这些都没有按序到达,只能先暂存在接收窗口中。A 收到 B 的确认后,就可以把发送窗口向前滑动3个序号,但指针 P<sub>2</sub> 不动。现在 A 的可用窗口增大了,可发送的序号范围是42\~53
168+
现在假定 B 收到了序号为31的数据,并把序号为31\~33的数据交付主机,然后 B 删除这些数据。接着把接收窗口向前移动3个序号,同时给 A 发送确认,其中窗口值仍为20,但确认号是34这表明 B 已经收到了到序号33为止的数据。B 还收到了序号为37,38和40的数据,但这些都没有按序到达,只能先暂存在接收窗口中。A 收到 B 的确认后,就可以把发送窗口向前滑动3个序号,但指针 P<sub>2</sub> 不动。现在 A 的可用窗口增大了,可发送的序号范围是42\~53
169169

170170
![TCP协议-图10](./assets/tcp-10.png)
171171

172-
A 在继续发送完序号42\~53的数据后,指针 P<sub>2</sub> 向前移动和 P<sub>3</sub> 重合。发送窗口内的序号都已用完,但还没有再收到确认。由于 A 的发送窗口已满,可用窗口已减小到零,因此必须停止发送。发送窗口内所有的数据都已正确到达 B,B 也早已发出了确认。但所有这些确认都滞留在网络中。在没有收到 B 的确认时,A 不能猜测:或许 B 收到了吧!”为了保证可靠传输,A 只能认为 B 还没有收到这些数据。于是,A 在经过一段时间后(由超时计时器控制)就重传这部分数据,重新设置超时计时器,知道收到 B 的确认为止。如果 A 收到确认号落在发送窗口内,那么 A 就可以发送窗口继续向前滑动,并发送新的数据
172+
A 在继续发送完序号42\~53的数据后,指针 P<sub>2</sub> 向前移动和 P<sub>3</sub> 重合。发送窗口内的序号都已用完,但还没有再收到确认。由于 A 的发送窗口已满,可用窗口已减小到零,因此必须停止发送。发送窗口内所有的数据都已正确到达 B,B 也早已发出了确认。但所有这些确认都滞留在网络中。在没有收到 B 的确认时,A 不能猜测:或许 B 收到了吧!“为了保证可靠传输,A 只能认为 B 还没有收到这些数据。于是,A 在经过一段时间后(由超时计时器控制)就重传这部分数据,重新设置超时计时器,直到收到 B 的确认为止。如果 A 收到确认号落在发送窗口内,那么 A 就可以发送窗口继续向前滑动,并发送新的数据
173173

174174
![TCP协议-图11](./assets/tcp-11.png)
175175

docs/01.网络/assets/tcp-01.png

-18.7 KB
Loading

docs/01.网络/assets/tcp-02.png

-15.8 KB
Loading

docs/01.网络/assets/tcp-03.png

-14.7 KB
Loading

docs/01.网络/assets/tcp-04.png

-7.98 KB
Loading

docs/01.网络/assets/tcp-05.png

-5.61 KB
Loading

docs/01.网络/assets/tcp-06.png

-11.4 KB
Loading

docs/01.网络/assets/tcp-07.png

-24.1 KB
Loading

docs/01.网络/assets/tcp-08.png

-11.5 KB
Loading

docs/01.网络/assets/tcp-09.png

-14.8 KB
Loading

0 commit comments

Comments
 (0)