标识
SYN(synchronous建立联机)
ACK(acknowledgement 确认)
PSH(push传送) FIN(finish结束)
RST(reset重置) URG(urgent紧急)
Sequence number(顺序号码)
Acknowledge number(确认号码)
三次握手:
- 第一次 :客户端发送syn=1 并随机产生seq number = xxx 的数据包到服务器,服务器收到标识syn = 1(知道客户端想要建立连接)
- 第二次 :服务端确认syn = 1标识,发送ack number = (收到的seq +1),是syn= 1,ack = 1 随机产生seq number = xxx 的 数据包到客户端
- 第三次 :客户端确认标识 ack number是否等于第一次发送的seq+1,ack=1,syn = 1,确认后发送ack = 1 服务器接收到后确认连接成功
在这个过程中,如果发送端在规定延迟时间内没有收到回复则默认接收方没有收到请求,而再次发送,直到收到回复为止
可以这样方便理解:
- 客户端:我要跟你连接
- 服务端:好的
- 客户端:好嘞
四次挥手:
- – 为了避免服务器与客户端双方的资源占用和损耗,当双方没有请求或响应传递时,任意一方都可以发起关闭请求。与创建TCP连接的3次握手类似,关闭TCP连接,需要4次握手。
- 第一次:客户端发送 标识fin =1 数据包 (表示断开连接)
- 第二次:服务器确认收到fin = 1 ,并发送ack= 1(确认断开连接)
- 第三次:服务器发送 标识fin =1 数据包 (表示断开连接)
- 第四次:服务器确认收到fin = 1 ,并发送ack= 1(确认断开连接)
可以这样方便理解:
- 客户端:我这边没数据要传了,关闭链接吧
- 服务端:好的,接收到了,我看看我这边还有没有要传的
- 服务端:我这边也没有了,关闭吧
- 客户端:好嘞
- 小菜鸟路过,各位大佬看出哪里有问题请留言,知错就改才能进步