传输层:定义传输数据的协议端口号,以及流控和差错校验。 协议有:TCP、UDP等
UDP和TCP的主要区别包括以下几个方面:
1、连接性与无连接性:TCP是面向连接的传输控制协议,而UDP提供无连接的数据报服务。这意味着TCP在传输数据之前需要建立连接,而UDP不需要。
可靠性:TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序。它通过校验和、重传控制、序号标识、滑动窗口、确认应答等方式实现可靠传输。而UDP在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,因此可能会出现分组丢失、重复、乱序的情况。应用程序需要负责传输可靠性方面的所有工作。
2、实时性:UDP具有较好的实时性,工作效率较TCP协议高。这主要是因为UDP没有拥塞控制机制,网络出现拥塞不会使源主机的发送速率降低,对于实时应用很有用,如IP电话、实时视频会议等。而TCP会进行流量控制和拥塞控制,以避免网络拥塞导致的丢包和性能下降。
3、资源占用:TCP对系统资源要求较多,而UDP对系统资源要求较少。
通信模式:每一条TCP连接只能是点到点的,而UDP支持一对一、一对多、多对一和多对多的交互通信。
4、头部开销:TCP首部开销20字节,而UDP的首部开销小,只有8个字节。
5、通信方式:TCP提供全双工通信,是可靠传输,数据是按顺序传送并且只发送一次。而UDP是无序的、不可靠的传输方式,数据可能重复发送或者未发送。
总的来说,TCP和UDP各有优势,适用于不同的应用场景。TCP主要适用于需要可靠、有序和错误较少的数据传输的场景,如网页浏览、电子邮件等。而UDP则适用于对实时性要求较高,错误较多的场景,如在线游戏、实时音视频等。在选择使用哪种协议时需要根据具体的应用需求进行权衡
UDP协议通常用于如下场景:
- 实时音频/视频通话:例如VoIP(网络电话)。
- 在线视频直播:例如斗鱼、快手等。 在线游戏:例如《英雄联盟》、《绝地求生》等
- 物联网:在物联网领域,UDP协议常常用于MQTT协议进行数据传输
- 文件传输:通过FTP协议上传或下载文件
- 电子邮件传输:使用SMTP协议发送或接收邮件
- 网页浏览:在浏览器中访问网站时使用HTTP协议
- 远程登录:使用Telnet协议远程登录服务器
- 文件共享:在局域网内使用SMB协议共享文件或打印机
需要注意的是,实际应用中不同的场景可能会采用不同的协议组合,而且TCP和UDP之间并不是孤立的选择,有时候也可以同时使用它们来完成一个任务。例如,在网络视频流传输时,通常先使用TCP进行握手和建立连接,然后再切换到UDP协议进行高效传输。因此,在实际应用中,需要根据具体的需求来选择合适的协议