TCP与UDP的区别,TCP三次握手和四次握手用恋爱关系讲,容易了解多了

关于TCP和UDP的解读

网络协议是每个工程师都需要了解的传输层协议, 其中需要着重掌握的是TCP和UDP,这两中传输协议的区别也会成为面试管口中常问的问题。
TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议。
(A和B加了好友进行聊天,聊天内容不会丢失)
UDP(User Data Protocol,用户数据报协议)是一个面向无连接的协议。
(A和B无线电聊天,听不听的到一切佛系随缘,男A和女B是谁详情往下…)

TCP和UDP的区别

1. 连接方面的区别
TCP是面向连接的,即传输数据前需要先建立连接
UPD是无连接的,发送数据之前是不需要连接的
2. 安全方面的区别
TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。
UDP尽最大努力交付,即不保证可靠交付。
3. 传输效率的区别
TCP传输效率相对较问低。
UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。
4. 连接对象数量的区别
TCP连接只能是点到点、一对答一的。
UDP支持一对一,一对多,多对一和多对多的交互通信。

TCP连接的三次握手

在这里插入图片描述

  1. 第一次握手:建立连接时,客户端向服务器端发送syn包,等待服务器确认。

  2. 第二次握手:服务器收到syn包,同时自己也发送一个syn包,即syn+ack包。

  3. 第三次握手:客户端收到服务器的syn包,向服务器发送确认包。

    此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

SYN:同步序列编号(Synchronize Sequence Numbers)。

以上解释比较官方,可以用一个简单的图片即可了解,如下
在这里插入图片描述

  1. 第一次握手:刚刚开学,男同学A看上了同班女同学B,在附近的人搜索看到了头像是她的qq号,发送了SYN(我的qq号是123456)
  2. 第二次握手,B看到A发送的消息,发出SYN(我的qq号是654321)+ACK(你是XXX吗?)
  3. 第三次握手:A收到B发送的消息,发出ACK(是的,你是XXX吗?)

A和B确实是对方没错,于是乎加了好友开始聊天(传输数据)

TCP连接的四次挥手

在这里插入图片描述

  1. 第一次挥手:A数据传输完毕需要断开连接,A的应用进程向其TCP发出连接释放报文段(FIN = 1,序号seq = u),并停止再发送数据,主动关闭TCP连接,进入FIN-WAIT-1状态,等待B的确认。
  2. 第二次挥手:B收到连接释放报文段后即发出确认报文段(ACK=1,确认号ack=u+1,序号seq=v),B进入CLOSE-WAIT关闭等待状态,此时的TCP处于半关闭状态,A到B的连接释放。而A收到B的确认后,进入FIN-WAIT-2状态,等待B发出的连接释放报文段。
  3. 第三次挥手:当B数据传输完毕后,B发出连接释放报文段(FIN = 1,ACK = 1,序号seq = w,确认号ack=u+1),B进入LAST-ACK(最后确认)状态,等待A 的最后确认。
  4. 第四次挥手:A收到B的连接释放报文段后,对此发出确认报文段(ACK = 1,seq=u+1,ack=w+1),A进入TIME-WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,A才进入CLOSE状态。

ok,有添加好友的过程就会有删除好友的过程

在这里插入图片描述

  1. 第一次:A另寻新欢,不想与B聊天了,但又怕B发现这个QQ的蛛丝马迹,于是主动给B发消息FIN:(这个号(seq=u)123456不聊了)
  2. 第二次:B收到A的消息,有点不开心,于是质问A发送ACK:((ack=u+1)123456+1不要了?连号的qq多好呀,那我(seq=v)654321咋办)
  3. 第三次:A在撩骚没给B发消息,B追问,FIN(死鬼?,不聊了?我还是觉得你的qq(ack=u+1)123456号好),ACK(你的新qq号是什么,我(seq=w)654321加你)
  4. 第四次:A有点不耐烦发送ACK(新号是1234567,(seq=u+1)123456这个号不喜欢了,你懂我意思吧,有更好的了,你这个(ack=w+1)654321也不咋地,有啥可稀罕了,删了)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值