相同点:TCP 和 UDP 使用相同的网络层(IP),都是传输层协议
不同点:
1.TCP 是面向连接的,两个 TCP 应用在彼此交换数据之前必须先建立一个 TCP 连接。这说明了,TCP 需要维持连接状态,用到了较多的数据和控制方法,而 UDP 相对简单些。
2.应用数据会被 TCP 分割成它认为最合适的数据块发送。而 UDP 完全不同,应用程序产生的数据报长度将保持不变。
3.UDP 是面向数据报的,进程的每个输出操作都正好产生一个 UDP 数据报,并组装成一份待发送的 IP 数据报。TCP 提供可靠的字节流服务。
a).每当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个段,如果不能及时收到确认,则重发这个报文段。
b). TCP 收到一个段后,它将发送一个确认。(这个确认不是立即发送,通常会延迟)。
c).TCP 保持首部和数据的校验和,如果收到段的校验和有差错,则 TCP 丢弃这个报文,不发送确认。
d).TCP 会对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。
e).TCP 提供了流量控制,TCP 连接的每一方固定大小的缓冲空间,TCP 接收端只允许另一端发送接收端缓冲区所能接纳的数据,这能防止较快主机致使较慢主机缓冲区溢出。
以上机制都说明了 TCP 提供了可靠的字节流服务。
4.