TCP协议和UDP协议知识预览

对于TCP协议和UDP协议,大家应该都再熟悉不过了。我们常用的网络通讯(如下图),都是通过这两种协议进行数据传输的。

 如何工作

TCP/UDP协议工作在传输层,它们的目标都是在程序之间传输数据,数据可以是文本文件,视频或者图片,对于这这两种协议来说,都是一堆二进制数,并没有多大区别。那TCP和UDP之间的区别是什么?想必大家都知道,没错,就是一个基于连接,一个基于非连接,具体是什么意思,我们来举个简单的例子。

 如果把人与人之间的通信比喻为进程与进程的通信,我们基本有两种方式:写信和打电话。如果不考虑速度因素,这两种方式之间最大的区别是什么?对于写信方式,

  1. 信寄出去后对方能否接收到。
  2. 收到的信内容是否完整。
  3. 先后寄两封信过去是否按顺序接收。

这些都变成了未知数,甚至你填写的收件地址和收件人,你都无法确认。而打电话则不同,从拨打电话到电话接通,互相通话,再到结束通话后挂断电话,这一系列的流程都能得到及时的反馈,并且能确认对方准确的接收到。所以我们可以这样说,打电话就是基于连接的;而写信就是基于非连接的。

 

TCP如何保证以上过程

三个关键步骤(三次握手、传输确认、四次挥手)

三次握手

建立连接的过程,主要解决在不可靠信道进行可靠传输。

 为什么不是两次握手?(即在服务端回复完SYN+ACK后就建立连接)

这是因为防止已失效的请求报文突然又传到服务器引起错误。

传输确认

进入数据传输状态,面临的几个问题:一包数据有可能会被拆成多包发送,如何处理丢包问题;这些包到达的先后顺序不同,如何处理乱序问题。

 以上过程不区分客户端和服务端,tcp连接是全双工的,对于两端来说均采用上述机制。

四次挥手

为了在不可靠的网络链路中进行可靠的链路断开。

UDP协议

其实就是将数据简单地包装一下,然后从网卡发出去就可以了,数据包之间并没有状态上的联系。正因为udp这种简单的处理方式,导致它的性能损耗非常少,对于CPU,内存资源的占用也远小于tcp,但对网络传输过程中产生的丢包,udp协议并不能保证,所以udp在传输稳定性上要弱于tcp。

总结

TCP vs UDP
协议特点应用场景
TCP传输数据稳定可靠网络通讯质量较高,需要准确无误(传输文件、发送邮件、浏览网页)
UDP速度快实时性要求较高,少量丢包不影响(域名查询、语音通话、视频直播)

除此之外,udp还有一个非常重要的应用场景——隧道网络 ,比如VPN,VXLAN。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值