⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠ You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’
Excalidraw Data
Text Elements
发送缓存
1
2
3
4
5
6
7
8
9
10
发送应用程序
持续写入数据到缓存中
发送窗口
接收缓存
接收窗口
接收应用程序
持续从缓存中读取
1
2
3
4
1
2
3
4
Seq=1, DATA
Seq=101, DATA
Seq=201, DATA
Seq=301, DATA
发送缓存
10
9
8
7
6
5
发送应用程序
持续写入数据到缓存中
接收缓存
接收应用程序
持续从缓存中读取
1
2
3
4
ACK=1,ack=401
5
6
7
8
5
6
8
Seq=401, DATA
Seq=501, DATA
丢失
Seq=701, DATA
发送缓存
10
9
8
7
6
5
发送应用程序
持续写入数据到缓存中
接收缓存
接收应用程序
持续从缓存中读取
5
6
8
9
10
7
8
ACK=1, ack=601
Seq=601, DATA
Seq=701, DATA
Seq=801, DATA
9
10
7
8
Seq=901, DATA
已经读取的报文段从缓存中删除
接收方已经确认接收的报文段从缓存中删除
这里报文 8 重新发送了一次,其实这样的话有点浪费了,如果使用了选择确认技术(SACK)那么就只会重新发送 7,8 不会再发
发送方 A
接收方 B