面向连接服务的实现
我们需要一个虚拟电路子网来实现面向连接的服务。虚拟电路的设计是为了避免为发送的每个数据包都选择新的路由。
相反,当建立连接时,从源机器到目标机器的路由作为连接设置的一部分被选择并存储在路由器的表中。该路由用于流经连接的所有流量,其方式与电话工作方式完全相同。
当连接释放时,虚拟电路也终止。在面向连接的服务中,每个数据包都将具有一个标识符,用于指示它属于哪个虚拟电路。
面向连接服务的实现如下图所示:
示例
考虑上图中提到的场景。
步骤1 - 主机H1已与主机H2建立连接1,这在每个路由表中都被记住为第一条条目。
步骤2 - A的第一行推断当数据包具有连接标识符1时,它来自主机H1,必须发送到路由器W,并将其连接标识符设置为1。
步骤3 - 同样,W的第一条条目将数据包路由到Y,连接标识符也为1。
步骤4 - 如果H3也想要与H2建立连接,则它选择连接标识符1并告诉子网建立虚拟电路。这将出现在表中的第二行。
步骤5 - 请注意,这里存在冲突,因为尽管我们可以轻松地区分来自H1的连接1数据包和来自H3的连接1数据包,但W无法做到这一点。
步骤6 - 出于这个原因,我们将不同的连接标识符分配给第二个连接的出站流量。避免此类冲突的原因是路由器需要能够替换出站数据包中的连接标识符。在某些情况下,这称为标签交换。
广告