首页 > 代码库 > TCP 和 UDP

TCP 和 UDP

有两种类型的互联网协议(IP, Internet Protocol),一种是TCP(Transmission Control Protocol, 传输控制协议),一种是UDP(User Datagram Protocol, 用户数据传输协议)。

TCP是面向连接的,一旦建立连接,数据可以双向发送;

UDP是一种更简单,无连接的互联网协议,多个消息使用UDP作为数据包以块的形式发送。

  TCP UDP
全名称 传输控制协议 用户数据报协议(或通用数据报协议)
连接 面向连接的协议 无连接协议
适用场景 适用于需要高可靠性的应用,传输时间相对不那么关键 适用于需要快速,高效传输应用,如游戏.
被其他协议使用 HTTP, HTTPS, FTP, FMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP
数据包排序 TCP重新排序的数据按照指定序列分组 UDP没有固定的顺序,因为所有分组是彼此独立的。如果需要排序,它必须由应用程序层管理。
传输速度 TCP速度比UDP慢 UDP更快,因为不尝试错误恢复,它是一个"尽力而为"的协议
可靠性 绝对保证所传输的数据保持完整,并按照发送数据的相同顺序到达 不能保证发送的消息或分组能到达
报头大小 TCP报头大小为20字节 UDP报头大小为8字节
数据流 数据被读取为字节流,没有区别的指示被发送到信号消息(段)边界 数据包单独发送,只有到达时才会检查其完整性。分组具有明确的边界,在接收时被认可,这意味着在接收器插座处的读取操作将产生整个消息,因为它最初被发送。
数据流控制 TCP执行流控制。TCP需要三个数据包来建立一个套接字连接,在任何用户数据可以发送之前。TCP处理可靠性和拥塞控制。 UDP没有流控制选项
错误检查 TCP执行错误检查和错误恢复。错误的数据包从源重新传输到目标。 UDP执行错误检查,但简单地丢弃错误的数据包。不尝试错误恢复。
确认 确认段 无确认
握手 SYN, SYN-ACK, ACK 无握手(无连接协议)

TCP 和 UDP