千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > tcp和udp的区别和使用场景

tcp和udp的区别和使用场景

来源:千锋教育
发布人:xqq
时间: 2023-12-05 01:54:07 1701712447

tcp和udp的区别和使用场景,传输层的两个协议—— TCP和UDP有各自的应用场景。

TCP为应用层协议提供可靠传输,发送端按顺序发送,接收端按顺序接收,其间如果发生丢包、乱序由TCP负责重传和排序。下面是TCP的应用场景。

(1)客户端程序和服务器端程序需要多次交互才能实现应用程序的功能。例如,接收电子邮件使用的是POP3,发送电子邮件使用的是SMTP,传输文件使用的是FTP,在传输层使用的是TCP。

(2)应用程序传输的文件需要分段传输,例如,使用浏览器访问网页,网页中的图片和HTML文件需要分段后发送给浏览器;又如使用QQ传文件,在传输层也是选用TCP。

如果需要将发送的内容分成多个数据包发送,这就要求在传输层使用TCP在发送方和接收方建立连接,实现可靠传输、流量控制和避免拥塞。

例如,从网络中下载一个500MB的电影或下载一个200MB的软件,这么大的文件需要拆分成多个数据包发送,发送过程需要持续几分钟或几十分钟。在此期间,发送方将要发送的内容一边发送一边放到缓存中,将缓存中的内容分成多个数据包,并进行编号,按顺序发送。这就需要在发送方和接收方建立连接,协商通信过程的一些参数(如一个数据包较大有多少字节等)。

如果网络不稳定造成某个数据包丢失,发送方必须重新发送丢失的数据包,否则就会造成接收到的文件不完整,这就需要TCP能够实现可靠传输。如果发送方发送速度太快,接收方来不及处理,接收方还会通知发送方降低发送速度,甚至停止发送。

TCP还能实现流量控制,因为Internet中的流量不固定,流量过高时会造成网络拥塞(这一点很好理解,就像城市上下班高峰时的交通堵塞一样),在整个传输过程中,发送方要一直探测网络是否拥塞来调整发送速度。TCP还有拥塞避免机制。

发送方的发送速度由网络是否拥塞和接收方接收速度两个因素控制,哪个速度低,就用哪个速度发送,如图所示。

图 TCP示意图

有些应用程序通信使用TCP就显得效率低了。例如,有些应用的客户端只需向服务器端发送一个请求报文,服务器端返回一个响应报文就可以完成其功能。这类应用如果使用TCP发送3个数据包建立连接,再发送4个数据包释放连接,只为了发送一个报文,就很不值得,这时干脆让应用程序直接发送。如果丢包了,应用程序再发送一遍即可。这类应用,在传输层就使用 UDP。

UDP的应用场景如下。

(1)客户端程序和服务器端程序通信,应用程序发送的数据包不需要分段。如域名解析,DNS协议使用的就是传输层的UDP,客户端向DNS服务器发送一个报文请求解析某个网站的域名,DNS服务器将解析的结果通过一个报文返回给客户端。

(2)实时通信。这类如QQ或微信语音聊天,或视频聊天的应用,发送方和接收方需要实时交互,也就是不允许较长延迟,即便有几句话因为网络堵塞没听清,也不允许使用TCP等待丢失的报文,等待的时间太长了,就不能愉快地聊天了。

(3)多播或广播通信。如学校多媒体机房,老师的计算机屏幕需要分享给教室里的学生计算机,在老师的计算机上安装多媒体教室服务器端软件,在学生的计算机上安装多媒体教室客户端软件,老师的计算机使用多播地址或广播地址发送报文,学生的计算机都能收到。这类应用在传输层使用UDP。

知道了传输层两个协议的特点和应用场景,就很容易判断某个应用层协议在传输层使用什么协议了。现在判断一下,QQ聊天在传输层使用的是什么协议,QQ传文件在传输层使用的是什么协议?

如果使用QQ给好友传输文件,这个过程会持续几分钟至几十分钟,肯定不是使用一个数据包就能把文件传输完的,需要将要传输的文件分段传输。在传输文件之前需要建立会话,在传输过程中实现可靠传输、流量控制、避免拥塞等,这些功能需要在传输层使用TCP来实现。

使用QQ聊天,通常一次输入的聊天内容不会有太多文字,使用一个数据包就能把聊天内容发送出去,并且聊完第一句,也不定什么时候聊第二句,发送数据不是持续的,发送QQ聊天的内容在传输层使用UDP。

可见根据通信的特点,一个应用程序通信可以在传输层选择不同的协议。

tags: IT培训
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT