找了一系列文章,涉及到的要么只有三次握手协议,要么最多有个断开的过程,都没有将保持连接的过程,然而实际上是存在多次数据往来一个短时间的连接过程。
建立连接:三次握手
1. 客户端发生请求,求服务端勾兑,下面是WireShark的截图
比喻->客户端对服务端说:“给你发数据,要的不?"
Flag:0x02 对应 SYN
2. 服务端接受请求,答复客户端,
比喻->服务端对客户端说:“要的嘛,你好久发?"
Flag:0x12 对应 SYN ACK
3. 服务端接受请求,答复客户端,
比喻->客户端对服务端说:“马上发,稍等?"Flag:0x10 对应 ACK
保持连接:传输数据
1. 客户端正式向服务端请求数据。
Flag:0x18 对应PSH ACK
图中,Next sequence number参数的值表示的是下次请求的信息大小,也是维持连接的标示
2. 服务端返回数据包括两部分,显示表示数据收到,再次是返回相应的数据,
图中红色框线中的三个数字,分别表示确认收到的请求大小、本次请求大小、下次请求大小
3. 若客户端发生的信息不带Next sequence number,则服务器会发起关闭连接
关闭连接:双向确认