博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP/IP协议栈 --- IP路由
阅读量:7062 次
发布时间:2019-06-28

本文共 2234 字,大约阅读时间需要 7 分钟。

IP路由:当一个IP包在主机发送出去或者在网络当中时,是怎么选择路径到达目的主机的呢? 一般情况下, 如果说源主机和目的主机在同一个网络中的话,那个数据报可以直接到达目的主机而不经过路由器,下面可以试一下, 我的主机网络是192.168.1.2 ping 网络里面的另一台主机, 我们可以用traceroute或者tracepath看一下整个包在网络中的过程。

~/Desktop$ tracepath 192.168.1.71?: [LOCALHOST]                                         pmtu 15001:  192.168.1.7                                           0.601ms reached1:  192.168.1.7                                           0.946ms reachedResume: pmtu 1500 hops 1 back 1

这里可以看到并没有经过路由器192.168.1.1 如果是外网的ip地址的话

~/Desktop$ tracepath baidu.com 1?: [LOCALHOST]                                         pmtu 1500 1:  192.168.1.1                                           2.128ms  1:  192.168.1.1                                           1.983ms  2:  15.15.180.2                                           4.320ms  3:  15.81.3.18                                            3.632ms

可以看到外网的话是要通过路由器去路由的。

~/Desktop$ route Kernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Ifacedefault         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

内核IP路由表里面的默认路由是192.168.1.1 也就是说到达外网的数据包都会交给路由器, 让路由器在去路由到目的主机。

sudo route del default gw  192.168.1.1

删除默认网关,再去stracepath 外网的话就会直接send failed。 但是内网是没有问题的, 也就是说:

( 1)如果I P层被设置为路由器的功能,那么就对数据报进行转发 (也就是说,像下面对待发出的数据报一样处理);否则( 2)数据报被丢弃。

路由表中的每一项都包含下面这些信息: • 目的I P地址。它既可以是一个完整的主机地址,也可以是一个网络地址,由该表目中的标
志字段来指定(如下所述) 。主机地址有一个非0的主机号(见图1 - 5) ,以指定某一特定的
主机,而网络地址中的主机号为0,以指定网络中的所有主机(如以太网,令牌环网) 。 • 下一站(或下一跳)路由器( next-hop
router)的I P地址,或者有直接连接的网络 I P地 址。下一站路由器是指一个在直接相连网络上的路由器,通过它可以转发数据报。下
一站路由器不是最终的目的,但是它可以把传送给它的数据报转发到最终目的。 • 标志。其中一个标志指明目的 I
P地址是网络地址还是主机地址,另一个标志指明下一 站路由器是否为真正的下一站路由器,还是一个直接相连的接口(我们将在 9 . 2节中
详细介绍这些标志) 。 • 为数据报的传输指定一个网络接口。

路由器IP路由选择主要完成以下这些功能:

1) 搜索路由表,寻找能与目的 I P地址完全匹配的表目(网络号和主机号都要匹配) 。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值) 。
2) 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目
指定的下一站路由器或直接连接的网络接口(取决于标志字段的值) 。目的网络上的所
有主机都可以通过这个表目来处置。例如,一个以太网上的所有主机都是通过这种表
目进行寻径的。这种搜索网络的匹配方法必须考虑可能的子网掩码。
3) 搜索路由表,寻找标为“默认( d e f a u l t) ”的表目。如果找到,则把报文发送给该表目指定的下一站路由器。

网络中路由器之间的路由选择就是第二种功能的利用。

那么网络中的路由器之间又是怎么知道各自网络呢,这就需要动态路由, 告诉其他路由器自己所连接的网络状态,路由器上有一个进程称为路由守护程序( routing daemon) ,它运行选路协议,并与其相邻的一些路由器进行通信。 动态路由协议RIP可参考TCP/IP卷一。

 

转载于:https://www.cnblogs.com/MaAce/p/7755700.html

你可能感兴趣的文章
x2engine
查看>>
1084 矩阵取数问题 V2
查看>>
图片头代码
查看>>
Django 项目创建方法
查看>>
动态原型
查看>>
简单字符串处理 hdu2532 Engine
查看>>
robots协议
查看>>
Jquery
查看>>
flask开发没有解决的bug记录
查看>>
在Debian-7.1下安装Bumblebee解决双显卡发热问题
查看>>
.net创建Windows应用程序基本文件介绍
查看>>
一个SQLSERVER触发器的示例
查看>>
Online tools
查看>>
驻扎博客园,以后每天都有进步
查看>>
Python面向对象-访问权限public和private
查看>>
tensorflow1
查看>>
内网渗透的一些小总结(长期更新)
查看>>
linux安装
查看>>
吴恩达机器学习笔记7-梯度下降III(Gradient descent intuition) --梯度下降的线性回归...
查看>>
SQL TRY CATCH
查看>>