计算机网络知识全面讲解:TCP和UDP的应用场景

免费教程推荐: python、C++、Java、JS、Rust、Go语言入门完全手册(6合1).zip-Python文档类资源-CSDN下载

传输层的两个协议—— TCP和UDP有各自的应用场景。
TCP为应用层协议提供可靠传输,发送端按顺序发送,接收端按
顺序接收,其间如果发生丢包、乱序由TCP负责重传和排序。下面是
TCP的应用场景。
(1)客户端程序和服务器端程序需要多次交互才能实现应用程序
的功能。例如,接收电子邮件使用的是POP3,发送电子邮件使用的是
SMTP,传输文件使用的是FTP,在传输层使用的是TCP。
(2)应用程序传输的文件需要分段传输,例如,使用浏览器访问
网页,网页中的图片和HTML文件需要分段后发送给浏览器;又如使
用??传文件,在传输层也是选用TCP。
如果需要将发送的内容分成多个数据包发送,这就要求在传输层
使用TCP在发送方和接收方建立连接,实现可靠传输、流量控制和避
免拥塞。
例如,从网络中下载一个500MB的电影或下载一个200MB的软
件,这么大的文件需要拆分成多个数据包发送,发送过程需要持续几
分钟或几十分钟。在此期间,发送方将要发送的内容一边发送一边放
到缓存中,将缓存中的内容分成多个数据包,并进行编号,按顺序发
送。这就需要在发送方和接收方建立连接,协商通信过程的一些参数
(如一个数据包最大有多少字节等)。如果网络不稳定造成某个数据
包丢失,发送方必须重新发送丢失的数据包,否则就会造成接收到的
文件不完整,这就需要TCP能够实现可靠传输。如果发送方发送速度
太快,接收方来不及处理,接收方还会通知发送方降低发送速度,甚
至停止发送。TCP还能实现流量控制,因为Internet中的流量不固定,
流量过高时会造成网络拥塞(这一点很好理解,就像城市上下班高峰
时的交通堵塞一样),在整个传输过程中,发送方要一直探测网络是
否拥塞来调整发送速度。TCP还有拥塞避免机制。
发送方的发送速度由网络是否拥塞和接收方接收速度两个因素控
制,哪个速度低,就用哪个速度发送,如图2-2所示。

计算机网络知识全面讲解:TCP和UDP的应用场景_第1张图片

 有些应用程序通信使用TCP就显得效率低了。例如,有些应用的
客户端只需向服务器端发送一个请求报文,服务器端返回一个响应报
文就可以完成其功能。这类应用如果使用TCP发送3个数据包建立连
接,再发送4个数据包释放连接,只为了发送一个报文,就很不值得,
这时干脆让应用程序直接发送。如果丢包了,应用程序再发送一遍即
可。这类应用,在传输层就使用 UDP。
UDP的应用场景如下。
(1)客户端程序和服务器端程序通信,应用程序发送的数据包不
需要分段。如域名解析,DNS协议使用的就是传输层的UDP,客户端
向DNS服务器发送一个报文请求解析某个网站的域名,DNS服务器将
解析的结果通过一个报文返回给客户端。
(2)实时通信。这类如??或微信语音聊天,或视频聊天的应
用,发送方和接收方需要实时交互,也就是不允许较长延迟,即便有
几句话因为网络堵塞没听清,也不允许使用TCP等待丢失的报文,等
待的时间太长了,就不能愉快地聊天了。
(3)多播或广播通信。如学校多媒体机房,老师的计算机屏幕需
要分享给教室里的学生计算机,在老师的计算机上安装多媒体教室服
务器端软件,在学生的计算机上安装多媒体教室客户端软件,老师的
计算机使用多播地址或广播地址发送报文,学生的计算机都能收到。
这类应用在传输层使用UDP。
知道了传输层两个协议的特点和应用场景,就很容易判断某个应
用层协议在传输层使用什么协议了。
现在判断一下,??聊天在传输层使用的是什么协议,??传文件
在传输层使用的是什么协议?
如果使用??给好友传输文件,这个过程会持续几分钟至几十分
钟,肯定不是使用一个数据包就能把文件传输完的,需要将要传输的
文件分段传输。在传输文件之前需要建立会话,在传输过程中实现可
靠传输、流量控制、避免拥塞等,这些功能需要在传输层使用TCP来
实现。
使用??聊天,通常一次输入的聊天内容不会有太多文字,使用一
个数据包就能把聊天内容发送出去,并且聊完第一句,也不定什么时
候聊第二句,发送数据不是持续的,发送??聊天的内容在传输层使用
UDP。
可见根据通信的特点,一个应用程序通信可以在传输层选择不同
的协议。

免费教程推荐: python、C++、Java、JS、Rust、Go语言入门完全手册(6合1).zip-Python文档类资源-CSDN下载

你可能感兴趣的:(计算机网络知识全面讲解,tcp/ip,udp,网络)