虚电路与数据报网络学习小记

文章目录

    • 前言
    • 1. 网络层
    • 2. 虚电路网络
    • 3. 数据报网络
    • 4. 对比与总结

前言

Tor在通信之前需要先建立虚电路,并且会频繁更换虚电路。

为了介绍虚电路网络与数据报网络,首先从网络层说起。然后分别介绍了虚电路网络与数据报网络的主要内容、核心思想。最后进行对比和总结。

1. 网络层

应用层
传输层
网络层
链路层
物理层

网络层的作用是将分组从一台主机发送到另外一台主机。

在传输层有两种服务:

  • UDP:无连接服务
  • TCP:有连接服务

在网络层,也有类似的两种服务:

  • 虚电路(Virtual Circuit):无连接服务
  • 数据报网络(datagram network):有连接服务

2. 虚电路网络

核心思想:事先建立好一条虚电路、分配好每条路径的VC号,通过VC号和路由转发表确定下一跳,在事先建好的虚电路中进行通信

虚电路与数据报网络学习小记_第1张图片
三个阶段:

  1. 虚电路建立:在传输数据之前,需要先建立一条通信链路。传输层指定目标地址,网络层决定路径,并沿着该路径为每一条链路确定一个VC号
  2. 数据传送:根据VC号,查询中间主机中的路由表,从出接口转发,并用出VC号更新旧的VC号。可以看出,路径上的每个主机都要维护虚电路连接的信息

虚电路与数据报网络学习小记_第2张图片

  1. 虚电路拆除:网络层通知网络另一侧的端系统结束通信。路径中的主机从表中删除相应的信息,表明此条虚电路已经不存在

3. 数据报网络

核心思想:在分组中携带目的地址,传输过程中根据分组的目的地址、利用目的地址的前缀与路由表中的地址进行最大长度匹配来转发分组,无需事先建立连接

虚电路与数据报网络学习小记_第3张图片

如果我们在每个路由器的路由表中使用完整的地址的话,全世界有4 billion个IP地址,显然是不现实的。

因此,在实际中,路由表中仅保存了IP地址的前缀。当一个分组到来时,用分组中的目的地址的前缀与路由表中的表项进行匹配,如果存在匹配,则从相应的链路转发。路由转发表根据选路算法修改。

虚电路与数据报网络学习小记_第4张图片

比如这里的路由表:

虚电路与数据报网络学习小记_第5张图片
最长匹配规则:分组的目的地址11001000 00010111 00010110 10100001,前21比特前缀匹配路由表中的第一项,因此,路由器向链路接口0转发该分组

4. 对比与总结

比较内容 虚电路 数据报网络
描述 在网络层提供连接服务 在网络层提供无连接服务
预留资源 虚电路建立期间,网络层可以预留虚电路路径上的资源,比如缓冲区、CPU、带宽等
分组(Packets) 数据包始终以其发送的顺序到达其预期的目标主机 数据包以其发送的不同顺序到达其预期的目标主机
路径 沿着虚拟电路进行转发 每个分组独立选择路由进行转发
可靠性 可靠,分组按发送顺序到达终点 不可靠的,分组不一定按发送顺序到达终点
开销 每次必须建立新连接并保留资源并在路由器处进行额外的信息处理,成本很高 每次通信时不会预留资源,成本低、易于实现
地址 目标地址仅在连接建立时使用,传输过程中每个分组使用VC号 每个分组都有完整的目标地址
差错处理 虚拟电路中遇到故障则无法通信 故障路由器可能会丢失数据包
应用 ATM,电话 IP网络,互联网

Tor建立连接时使用的是虚电路的方式,以前上课的时候没太在意虚电路,现在回来补课了 (T▽T)

这两周太划了,得好好学习才行!

Question: Tor建立连接时为什么使用虚电路的方式?
My Answer:

  • 可能的原因是如果采用数据报网络,那么分组必须携带目标的地址,即经过的节点都知道这个分组是要发给谁的。匿名性不强
  • 比如,数据包从Alice->Bob的时候,路径上的节点都知道这个数据包要发往Bob;数据包从Bob->Alice的时候,路径(不一定是同一条路径)中的节点也都知道这个数据包是发给Alice。

你可能感兴趣的:(网络方面的知识,匿名通信)