原创 图解TCP中的三次握手

其实就跟我们去某宝购物一样:

1、 小明:你好,我刚刚拍下了1000块的XXX键盘

2、 店小二:对的,亲,我们会尽快发货的,请您确认一下信息:北京市XXXXXXX 联系方式:135XXXXXX

3、 小明:嗯嗯,对的没问题

于是小明开始吃土计划,卖家美滋儿滋儿的开始了提货、打包、发货等等流程

image

第一次握手

client(客户端)发送一个SYN(seq=x)数据包给server(服务器),然后磕着瓜子等着server的ACK回复

syn为synchronous的缩写代表TCP/IP建立连接时使用的握手信号,seq为sequence(序列)的缩写,ACK为acknowledge(通知)的缩写。

image

第二次握手

server(服务器)接收到SYN(seq=x)包后就返回一个ACK(ack=x+1)包,附带一个SYN(seq=y)包,意思是告诉client(客户端):亲,SYN包裹已收到喽,期待你的回信。

image

第三次握手

client(客户端)接收到server(服务器)发回的ACK(ack=x+1)包后,然后就把自己的状态设置为ESTABLISHED(已建立连接)。 然后根据server(服务端)发回的SYN(seq=y)包,返回给正在嗑瓜子的server一个ACK(ack=y+1)包

image

磕着瓜子的server收到ACK回复,也把自己的状态设置为ESTABLISHED(已建立连接)。

到此TCP三次握手完成,client与server可以正常进行通信了。

本文为 Laysonx 原创 文章,转载无需和我联系,但请注明来自 李鑫的杂货铺 或 李鑫博客