tcp ,udp 同为网络的传输层协议,二者却有着很大的区别。
要谈传输层,首先就要了解多路分解,和多路复用。
多路复用,从源主机的不同的套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段传递到网络层,这个工作叫多路复用。
多路分解,主机的运输层从网络层得到数据后,根据报文段中的信息,将报文段传送到对应的进程,这个过程就是多路分解。
由于网络需求的各异性,会产生各种各样的应用程序和数据,所以多路复用和多路分解就成为了整个网路的必不可少的东西。
首先谈UDP,udp协议其实是在网络层的基础上只是实现了多路复用和多路分解以及差错检验功能。
udp传输协议是一个无连接,无拥塞控制,不可靠的协议。一个udp套件字仅仅包含目的的ip地址和目的的端口地址。也就是说,不同源ip地址和源端口但是相同目的ip地址和目的端口的报文段会在接收端聚合到同一个进程中。
tcp是面向连接,有状态的,有拥塞控制的可靠的传输协议。tcp附加的这些特色使得它不能适应于对实时性要求较高的应用。