面试题答案
一键面试传输层多路复用与多路分解基本概念
- 多路复用:在发送端,传输层将从多个应用进程接收到的数据,封装到不同的传输层报文段中,并通过网络层发送出去。它使得多个应用层进程的数据可以共享网络传输资源。
- 多路分解:在接收端,传输层根据传输层报文段中的首部信息,将接收到的报文段正确地交付到对应的应用层进程。
在网络通信中的作用
- 多路复用:提高网络资源利用率,减少网络连接数量,降低成本。多个应用数据能通过相同网络连接传输,避免为每个应用单独建立连接。
- 多路分解:确保接收方的应用层进程能准确接收属于自己的数据,避免数据混淆。
TCP和UDP协议实现方式
- TCP:
- 多路复用:TCP通过端口号来标识不同的应用进程。当TCP从多个应用进程接收数据时,会为每个应用进程的数据加上对应的源端口号,封装成TCP报文段后交给网络层。
- 多路分解:TCP在接收端,根据TCP报文段首部中的目的端口号,将报文段中的数据准确交付到相应的应用进程。此外,TCP还通过序号、确认号等机制保证数据按序、可靠交付,这也是其多路分解的一部分保障机制,确保数据正确的先后顺序和完整性。
- UDP:
- 多路复用:UDP同样利用端口号。当从多个应用进程接收数据时,UDP为每个应用进程的数据添加源端口号,封装成UDP用户数据报,再交由网络层传输。
- 多路分解:UDP在接收端,依据UDP用户数据报首部中的目的端口号,将数据交付到对应的应用进程。但UDP没有如TCP那样复杂的可靠性机制,只是简单地根据端口号进行数据交付。