接上一篇计算机网络复习(二)
TCP和UDP的区别
连接:TCP是面向连接的,在发送数据之前需要通过三次握手建立连接,发送数据结束后需要通过四次挥手释放连接。UDP是无连接的,发送数据之前无需建立连接,发送数据结束后也无需释放连接。
交付:TCP提供可靠交付,即通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达。 UDP尽最大努力进行交付,即不保证可靠交付,主机不需要维持复杂的连接状态表。
数据:TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看出成一连串无结构的字节流。TCP不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小关系。 UDP是面向报文的,UDP对于应用层交下来的报文,添加首部后就向下交给IP层,既不合并,也不拆分,一次交付一个完整的报文。
通信双方:TCP连接是点对点(一对一),每一条TCP连接只能有两个端点。 UDP支持一对一、一对多、多对一、多对多的交互通信。
拥塞:TCP通过慢开始、拥塞避免、快重传、快恢复等算法进行拥塞控制。 UDP没有拥塞控制,网络的拥塞不会使源主机的发送速率降低。
首部:TCP首部是20个字节。UDP首开销小,只有8个字节。
TCP如何实现可靠传输?
TCP通过滑动窗口、超时重传和选择确认来实现可靠传输。
TCP可靠传输的工作原理
ARQ协议
ARQ全称是Automatic Repeat-reQuest,意为自动重传请求。如果发送方在超时时间内没有收到接收方的确认,那么发送