8 为什么说 UDP 是面向报文的,而 TCP 是面向字节流的?
发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。接收方 UDP 对 IP 层交上来的 UDP 用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。
TCP是面向字节流的,它把上面应用层交下来的数据看成无结构的字节流(无边界约束,可分拆/合并)来发送,发送方TCP会将数据放入缓存区,等到可以发送的时候就发送,不能发送就等着,TCP会根据当前网络的拥塞状态来确定每个报文段的大小。