知了堂|网络安全之网络协议-TCP和UDP
作为 TCP/IP 中两个最具有代表性的传输层协议,TCP 和 UDP 经常被拿出来相互比较。这些协议具体有什么区别,又是什么作用呢?今天就来简单聊聊 TCP 和 UDP,不过在讲 TCP 和 UDP之前,我们先来了解一下 TCP/IP。
TCP/IP 网络模型
网络设备之间要互相通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而这种规则就称之为协议(Protocol)。
TCP/IP 是互联网相关的各类协议族的总称,它以两个原始协议:传输控制协议(TCP)和Internet 协议(IP)来命名。比如:TCP,UDP,IP,FTP,HTTP,ICMP,SMTP 等都属于 TCP/IP 族内的协议。

下面主要来介绍一下传输层协议:TCP 和 UDP。
TCP:
传输控制协议TCP是面向连接的,提供可靠交付,有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),每一条 TCP 连接只能是点对点的(一对一)。
UDP:
用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。
TCP vs UDP
TCP 和 UDP 有许多区别和相似之处。它们都是通过 Internet 发送数据包的最常用的协议。并且它们都在 TCP/IP 协议栈的传输层上工作。

再简单总结下 TCP 和 UDP 的区别:
1、TCP是面向连接的(在客户端和服务器之间传输数据之前要先建立连接),UDP是无连接的(发送数据之前不需要先建立连接)
2、TCP提供可靠的服务(通过TCP传输的数据。无差错,不丢失,不重复,且按序到达);UDP提供面向事务的简单的不可靠的传输。
3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性比较高的通讯或广播通信。随着网速的提高,UDP使用越来越多。
4、没一条TCP连接只能是点到点的,UDP支持一对一,一对多和多对多的交互通信。
5、TCP对系统资源要去比较多,UDP对系统资源要求比较少
6、UDP程序结构更加简单
7、TCP是流模式,UDP是数据报模式
