File tree Expand file tree Collapse file tree 1 file changed +4
-4
lines changed Expand file tree Collapse file tree 1 file changed +4
-4
lines changed Original file line number Diff line number Diff line change @@ -8,14 +8,14 @@ TCP 是个 “流” 协议,所谓流,就是没有界限的一串数据。TC
8
8
9
9
![ avatar] ( ../../../images/Netty/TCP粘包拆包问题.png )
10
10
11
- 假设客户端依次发送了两个数据包 DI 和 D2 给服务端,由于服务端一次读取到的字节数是不确定的,故可能存在以下 4 种情况。
11
+ 假设客户端依次发送了两个数据包 D1 和 D2 给服务端,由于服务端一次读取到的字节数是不确定的,故可能存在以下 4 种情况。
12
12
13
13
1 . 服务端分两次读取到了两个独立的数据包,分别是 D1 和 D2,没有粘包和拆包;
14
- 2 . 服务端一次接收到了两个数据包,DI 和 D2 粘合在一起,被称为 TCP 粘包;
15
- 3 . 服务端分两次读取到了两个数据包,第一次读取到了完整的 DI 包 和 D2 包的部分内容,第二次读取到了 D2 包 的剩余内容,这被称为 TCP 拆包;
14
+ 2 . 服务端一次接收到了两个数据包,D1 和 D2 粘合在一起,被称为 TCP 粘包;
15
+ 3 . 服务端分两次读取到了两个数据包,第一次读取到了完整的 D1 包 和 D2 包的部分内容,第二次读取到了 D2 包 的剩余内容,这被称为 TCP 拆包;
16
16
4 . 服务端分两次读取到了两个数据包,第一次读取到了 D1 包的部分内容,第二次读取到了 D1 包的剩余内容 和 D2 包的整包。
17
17
18
- 如果此时服务端 TCP 接收滑窗非常小,而 数据包 DI 和 D2 比较大,很有可能会发生第 5 种可能,即服务端分多次才能将 D1 和 D2 包 接收完全,期间发生多次拆包。
18
+ 如果此时服务端 TCP 接收滑窗非常小,而 数据包 D1 和 D2 比较大,很有可能会发生第 5 种可能,即服务端分多次才能将 D1 和 D2 包 接收完全,期间发生多次拆包。
19
19
20
20
### TCP 粘包/拆包发生的原因
21
21
You can’t perform that action at this time.
0 commit comments