TCP和UDP是OSI模型中的传输层中的协议。
在传输层定义了两种服务质量不同的协议,即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。
TCP协议是一个面向连接的,可靠的协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。需要三次握手进行连接,才能进行数据传输。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。
UDP协议是一个不可靠的、无连接协议、不与对方建立连接,而是直接就把数据包发送过去。主要适用于无需对报文进行排序和流量控制的场合。UDP适用于一次只传送少量数据,对可靠性要求不高的应用环境。比如我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否达到的消息及时反馈回来,那么网络就是通的。