进程并不直接把数据交给运输层,而是把数据交给套接字,由套接字把数据交给运输层。由于每个主机上有多个套接字存在,所以就需要为每个套接字提供一个唯一标识,这个标识就是常说的主机的端口号
为了知道每个报文是发往哪个主机的哪个进程的,所以有了ip协议的ip地址和tcp/udp协议的端口号
ip地址提供主机到主机的运输,端口号提供同一主机内向多个进程的多路分解。
UDP套接字是由一个二元组标识的,该二元组包括目的IP地址和目的端口号。因此,如果两个UDP报文有不同的源IP地址或源端口号,但有相同的目的IP地址和目的端口号,那么这两个报文将被发送到相同的套接字上
TCP套接字是由四元组标识的,包括源IP地址和目的IP地址,源端口号和目的端口号。因此如果两个UDP报文有不同的源IP地址或源端口号,但有相同的目的IP地址和目的端口号,这两个报文将被发送到不同的套接字
造成这种差异的原因是,TCP建立新连接的方式不同,它总是有一个Listen_fd来接收新连接,而UDP不用