TCP和UDP的差异有哪些
本文从数据发送方式的差异、数据有序性的差异、可靠性的差异三方面向大家介绍TCP和UDP的差异。
l 数据发送方式的差异
TCP:
由于 TCP 是建立在两端连接之上的协议,所以理论上发送的数据流不存在大小的限制。但是由于缓冲区有大小限制,所以你如果用 TCP 发送一段很大的数据,可能会截断成好几段,接收方依次的接收。
UDP:
由于 UDP 本身发送的就是一份一份的数据报,所以自然而然的就有一个上限的大小。每次 UDP 发送的数据报大小由哪些因素共同决定呢?UDP协议本身,UDP协议中有16位的UDP报文长度,那么UDP报文长度不能超过2^16=65536;
以太网(Ethernet)数据帧的长度,数据链路层的MTU(最大传输单元);
socket的UDP发送缓存区大小。先来看第一个因素,UDP 本身协议的报文长度为 2^16 – 1,UDP 包头占 8 个字节,IP 协议本身封装后包头占 20 个字节,所以最终长度为: 2^16 – 1 – 20 – 8 = 65507 字节。只看第一个因素有点理想化了,因为 UDP 属于不可靠协议,应该尽量避免在传输过程中,数据包被分割。所以这里有一个非常重要的概念 MTU—也就是最大传输单元。在 Internet 下 MTU 的值为 576 字节,所以在internet 下使用 UDP 协议,每个数据报最大的字节数为: 576 – 20 – 8 = 548
l 数据有序性的差异
TCP:
对于 TCP 来说,本身 TCP 有着超时重传、错误重传、还有等等一系列复杂的算法保证了 TCP 的数据是有序的,假设发送了数据 1、2、3,则只要发送端和接收端保持连接时,接收端收到的数据始终都是 1、2、3。
UDP:
UDP 协议,无论 server 端无论缓冲池的大小有多大,接收 client 端发来的消息总是一个一个的接收。并且由于 UDP 本身的不可靠性以及无序性,如果 client 发送了 1、2、3 这三个数据报过来,server 端接收到的可能是任意顺序、任意个数三个数据报的排列组合。
l 可靠性的差异
TCP:
TCP 内部的很多算法机制让他保持连接的过程中是很可靠的。比如:TCP 的超时重传、错误重传、TCP 的流量控制、阻塞控制、慢热启动算法、拥塞避免算法、快速恢复算法 等等。所以 TCP 是一个内部原理复杂,但是使用起来比较简单的这么一个协议。
UDP:
UDP 是一个面向非连接的协议,UDP 发送的每个数据报带有自己的 IP 地址和接收方的 IP 地址,它本身对这个数据报是否出错,是否到达不关心,只要发出去了就好了。
以上就是关于TCP和UDP的差异介绍。
| 相关阅读
1、网易云信:融合通信云服务专家、通信与视频 PaaS 平台
集网易 24 年 IM 以及音视频技术打造的融合通信云服务专家,稳定易用的通信与视频 PaaS 平台。提供融合通信与视频的核心能力与组件,包含 IM 即时通讯、5G 消息平台、一键登录、信令、短信与号码隐私保护等通信服务,音视频通话、直播、点播、互动直播与互动白板等音视频服务,视频会议等组件服务,并联合网易易盾推出一站式安全通信方案「安全通」。目前,网易云信已经成功发送 1.6 万亿条消息,覆盖智能终端 SDK 数累计超过 186 亿,我们期待每个智能终端都有云信的融合通信能力。
2、网易云信在基于人工智能技术的音视频优化和通信安全方面具有很大优势
钛媒体消息,近期Gartner发布了2021年《Market Guide for Communications Platform as a Service》(CPaaS市场指南),网易智企旗下融合通信云服务“网易云信”入围该报告。Gartner指出,网易云信在基于人工智能技术的音视频优化和通信安全方面具有很大优势。
据悉,网易云信成立六年间帮助120万企业开发者成功发送 16000亿条消息,全球注册应用数超48万,覆盖智能终端SDK数累计超186亿,覆盖用户超10亿,覆盖中国 90%以上智能手机用户,已在娱乐社交、教育、金融领域提供行业融合通信云服务解决方案。
网易云信表示,未来将继续深耕娱乐社交、教育、金融三大行业,并将以IM和RTC为基础,推出“融合通信+∞”无限融合计划。