资源干货我用 LinuxLinux

TCP状态(图文)

2017-02-21  本文已影响226人  wulegekong

TCP通信时状态转换

tcp状态-1.jpg tcp状态-2.jpg

如上图所示, 图一和图二相互对应, 其中图一主要是红实线和绿虚线部分, 其他为极端情况, 分析如下:

三次握手

数据传输

四次挥手

半关闭状态, client发送断开请求, 而server还没给client发送断开请求, 此时client关闭了与server的连接, 而server还处于连接状态, 那么client就只能接收数据, 而不能发送数据.

对上次TCP协议补充, 其中数据格式中有一块是滑动窗口, 发送端(client)会告诉接收端(server)我的滑动窗口大小, 待会回复数据时不要超过这个大小. (第一次握手)
server做出应答时也会告诉client接受的大小最大是多少.(第二次握手)
通信时, 此时发送端会计算发送数据的大小, 满了之后就不会再发.
当对方做出应答之后, 则发送端就会知道你空出了接受的数据的大小.所以TCP通信时会知道对方那些收到那些没收到, 从而会重新发送, 所以能保证数据传输到达
图释如下


滑动窗口机制.png
上一篇 下一篇

猜你喜欢

热点阅读