2Ray是一个网络转发程序,支持TCP、mKCP、WebSocket这3种底层传输协议,支持HTTP、Socks、Shadowsocks、VMess这4种内容传输协议(HTTP只支持传入),并且有完整的TLS实现,是一个非常强大的平台。如果个人无法搭建V2Ray服务器,可以使用ByWave的服务.(据说ByWave,是一家主打高端的V2ray机场。)BifrostV(V2Ray客户端)是Android版V2Ray客户端,是一款多功能传输工具,软件支持Socks、HTTP、Shadowsocks、VMess等协议,可通过不同的传入和传出协议组合,灵活转换通讯格式,全面包含使用TLS、TCP、mKCP、WebSocket等传输方式进行传输,有效帮助用户更便捷的进行通讯,只需一键即可转换使用,非常的实用。同时,软件还内置的路由功能,可以灵活地实现选择性转发、直连或是阻止部分连接,让您轻松联系您所需对象,而且也可以让大家免费的观看国外的各种视频资源哦~。
在路由表中,对每一条路由最主要的是以下 两个信息①:(目的网络地址,下一跳地址) 。
①注:一个实际的路由表还会有其他的一些信息。例如,标志、参考计数、使用情况以及接口等。“标志”可以设置多个字符以说明不同的意思。如U表示该路由是可用的,G表示下一跳地址是一个路由器,因而是间接交付(如不设置G,则表示直接交付),H表示该路由是到一台主机(如不设置H,则表示该路由是到一个网络)。“参考计数”是给出正在使用该路由的TCP连接数。“使用情况”显示出通过该路由的分组数。“接口”是本地接口的名字,指出分组应当从哪一个接口转发。
根据目的网络地址来确定下一跳路由器,这样做可得出以下的结果:
(1)IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
(2)只有到达最后一个路由器时,才试图向目的主机进行直接交付。
虽然互联网所有的分组转发都是 基于目的主机所在的网络 ,但在大多数情况下都允许有这样的特例,即 对特定的目的主机指明一个路由, 这种路由叫做 特定主机路由 。采用特定主机路由可使网络管理人员更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。在对网络的连接或路由表进行排错时,指明到某一台主机的特殊路由就十分有用。
路由器还可采用 默认路由 (default route)以减小路由表所占用的空间和搜索路由表所用的时间。这种转发方式在一个网络只有很少的对外连接时是很有用的。实际上,默认路由在主机发送IP数据报时往往更能显示出它的好处。主机在发送每一个IP数据报时都要查找自己的路由表。如果一台主机连接在一个小网络上,而这个网络只用一个路由器和互联网连接,那么在这种情况下使用默认路由是非常合适的。例如,在图4-17的互联网中,连接在网络N1上的任何一台主机中的路由表只需要三个项目即可:
第一个项目就是到本网络主机的路由,其目的网络就是本网络N1,因而不需要路由器转发,而是直接交付。
第二个项目是到网络N2的路由,对应的下一跳路由器是R2。
第三个项目就是默认路由。
只要目的网络是其他网络(不是N1或N2),就一律选择默认路由,把数据报先间接交付路由器R1,让R1再转发给互联网中的下一个路由器,一直转发到目的网络上的路由器,最后进行直接交付。在实际上的路由器中,像图4-17路由表中所示的 “直接”和“其他” 的几个字符并没有出现在路由表中,而是被记为 0.0.0.0 。
在IP数据报的首部中没有地方可以用来指明“下一跳路由器的IP地址”。在IP数据报的首部写上的IP地址是源IP地址和目的IP地址,而没有中间经过的路由器的IP地址,既然IP数据报中没有下一跳路由器的IP地址,那么待转发的数据报又怎样能够找到下一跳路由器呢?
当路由器收到一个待转发的数据报,在从路由表得出 下一跳路由器的IP地址 后,不是把这个地址填入IP数据报,而是 送交数据链路层的网络接口软件 。网络接口软件负贵把下一跳路由器的P地址转换成硬件地址(必须使用ARP),并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。由此可见,当发送一连串的数据报时,上述的这种查找路由表、用ARP得到硬件地址、把硬件地址写入MAC帧的首部等过程,将不断地重复进行造成了一定的开销。
根据以上所述,可归纳出分组转发算法如下:
(I)从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。
(2)若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC慎,再发送此顿):否则就是间接交付,执行(3)。
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器:否则,执行(4)
(4)若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器:否则,执行(5)
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器:否则,执行(6)。
(6)报告转发分组出错。
这里我们要再强调一下,路由表并没有给分组指明到某个网络的完整路径(即先经过哪一个路由器,然后再经过哪一个路由器,等等)。路由表指出,到某个网铭应当先到某个路由器〔即下一跳路由器),在到达下一跳路由器后,再继续查找其路由表,知道再下一步应当到哪一个路由器。这样一步一步地查找下去,直到最后到达目的网络。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)