首先我们需要先了解两个东西:
TCP 传输控制协议 面向连接的可靠传输协议
UDP 用户数据报文协议 非面向连接的不可靠传输协议
TCP传输速度慢
而UDP传输速度快
用一张通俗易懂的图来表示
了解了TCP和UDP的区别,接下来我们再说什么是”三次握手,四次挥手”
首先我们先来讲三次握手,我们要先了解两个词语
SYN:同步序列号请求
ACK:确认
通过这张图我们了解了三次握手,但是我们通俗易懂的来讲
把客户端当成小马,把服务器端当成小王,两个人发消息
第一次握手
小马对小王发消息:在吗?
第二次握手
小王发消息:我在
小马不确定小王是否收到消息
第三次握手
直到小王回复“我在”小马才知道小王收到,建立起来了对话连接
四次挥手
建立在三次握手的基础上
FIN----请求断开连接
接下来我们继续用上一个例子
第一次挥手
小马收到消息后回复一个:好
第二次挥手
小王收到消息后给小马回复:怎么了
第三次挥手
小马迟迟不给小王回消息,小王给小马发了一句:还在不在
第四次挥手
小马给小王回复了一个:在
小王明白了小马是真的无聊
为什么TCP建立连接时候,要进行3次握手,2次不行吗?
主要目的:防止server端一直等待,浪费资源,
为什么建立连接是三次握手,关闭连接确是四次挥手呢?
建立连接的时候, 服务器在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,而自己也未必全部数据都发送给对方了,所以己方可以立即关闭,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送,从而导致多了一次。为了确保正确关闭连接,所以需要四次。