TCP 和UDP的应用场景

TCP 和UDP的应用场景
网路中计算机通信无外乎有两种情况

  • TCP :适用于发送的文件多,需要将发送的内容分成多个数据包进行传输。【 需要分段,编号,流量控制,拥泵控制,可靠传输的功能。客户端与服务器建立TCP连接(协商参数:选择确认性,最大报文),通信结束后,需要释放连接】【适用场景例如:电影下载,文件下载】
  • UDP 要发送的内容少,只需要一个数据包就能够全部发送。【适用场景:QQ聊天,语音聊天,流媒体(不需要控制,不需要分段,传输是否完成全靠应用层进行判断,不需要建立连接,节省服务器资源)】【实时的语音聊天,多播,也是通过UDP协议,这种数据在传输过程中不允许数据颠倒顺序。】【不可靠传输,传输的数据少】
  • 针对这两种情况,在传输层有两种协议,TCP(Transmission Control Protocol 即传输控制协议)和UDP(User Datagram Protocol 即用户数据报协议)
  • 访问网页web 发送邮件 FTP协议 不是一个数据包就能够解决的 所以用TCP协议
### TCP UDP应用场景 #### TCP 应用场景 TCP 适用于对数据传输可靠性要求高的应用场合。由于 TCP 提供了面向连接的服务,能够确保数据包按照发送顺序到达接收端,并且可以处理丢包情况下的自动重传请求。 - **Web 浏览器与服务器之间的交互**:HTTP/HTTPS 协议通常运行于 TCP 上面,因为网页加载过程中任何丢失的数据都可能导致页面显示异常[^4]。 - **文件传输服务 (FTP)** :为了保证文件完整无误地被上传或下载,在 FTP 中采用 TCP 来保障每次操作都能顺利完成。 - **电子邮件系统 (SMTP, POP3, IMAP)** :邮件收发过程涉及到大量文本信息交换,这些都需要高精度的数据传递来防止内容损坏或丢失。 ```python import socket def create_tcp_socket(): tcp_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) return tcp_sock ``` #### UDP 应用场景 相比之下,UDP 更加适合那些实时性强而对少量丢包不太敏感的应用程序。它不需要建立连接的过程,减少了延迟时间;同时也简化了很多复杂的控制逻辑,提高了效率。 - **在线视频会议软件**:这类应用程序往往更关注音视频流能否及时播放出来而不是个别帧是否有轻微失真,因此会选择使用 UDP 来减少延迟并提高流畅度[^1]。 - **多人联机游戏**:游戏中玩家位置更新等消息如果偶尔丢失并不会严重影响整体体验,反而频繁的心跳检测会增加不必要的负担,所以很多网络游戏倾向于利用 UDP 实现快速响应。 - **域名解析服务(DNS)**:DNS 查询一般只需要一次性的问答形式即可完成任务,而且查询失败还可以再次尝试其他 DNS 服务器,故此选用轻量级的 UDP 是合理的选择[^2]。 ```python import socket def create_udp_socket(): udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return udp_sock ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值