多数应用程序是由通信进程对组成,每对中的两个进程互相发送报文。从一个进程向另一个进程发送的报文必须通过下面的网络。 进程通过一个称为套接字的软件接口(一个进程有一个或多个套接字,每个都有唯一的标识符)向网络发送报文和从网络接受报文。套接字是同一台主机内应用层与运输层之间的接口,由于套接字是建立网络应用程序的可编程接口,所以也叫做应用程序编程接口。 举例子: 进程比作房子,套接字比作门。当一个进程向另一台主机的进程发送报文时,它把报文推出门,报文经过运输到达目的进程的门,接受进程的门(套接字)传递给目的进程。
多路分解:将运输层的报文段中的数据交付到套接字的工作; 多路复用:将报文段传送到网络层 举例子: 有两栋房子大房和小房,大房有3个孩子 123,小房有3个孩子abc,两房孩子经常写信。大房由孩子1和小房孩子a负责收集和分发信件。孩子1将收集的信件交给快递员就是一个多路复用操作,孩子a收到后将信件分发给其他孩子就是个多路分解操作。 多路复用有两个要求: 1.套接字有唯一标识符 2.每个报文段有特殊字段来指示要用哪个套接字 一个UDP套接字有目的IP地址和目的端口号,因此两个UDP报文段有不同的源IP地址和源端口号但是具有相同的目的IP和端口号,将通过相同的套接字送到相同的目的进程。 一个TCP套接字有源IP地址、源端口号、目的IP地址和目的端口号,因此两个不同的源IP或端口号将通过不同的套接字送到不同的目的进程。
|