TCP/IP详解009IP选路

需要进行选路的数据报可以由本地主机产生,也可以由其他主机产生。
如果是后一种情况,需要把主机配置成一个路由器,否则通过网络接口接收到的数据报,如果目的地址不是本机就要被丢弃。
路由守护程序(daemon)
指的是运行在后台的进程,它代表整个系统执行某些操作。一般在系统引导时启动,在系统运行期间一直存在。
本章主要目的是了解单个IP层如何作出路由决策
IP层工作流程:

image.png

选路原理

路由表中包含的信息决定了IP层所做的所有决策
IP搜索路由表的几个步骤:
1、搜索匹配的主机地址
2、搜索匹配的网络地址
3、搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为0)
匹配主机地址步骤始终发生在匹配网络地址步骤之前。
IP层进行的选路实际上是一种选路机制,它搜索路由表并决定向哪个网络接口发送分组,这区别于选路策略,它只是一组决定把哪些路由放入路由表的规则,IP执行选路机制,而路由守护程序则一般提供选路策略。

简单的路由表
image.png

带-r选项是列出路由表,-n选项再次执行该命令,以数字格式打印出IP地址。(用-n是因为路由表中的一些表项是网络地址,而不是主机地址,如果没有-n选项,netstat命令将搜索文件/etc/networks并列出其中的网络名。这样会与另一种形式的名字——网络名加主机名相混淆。)
标志G是非常重要的,它区分了间接路由和直接路由(对于直接路由来说是不设置标志G的),其区别在于,发往直接路由的分组中不但具有指明目的端的IP地址,还具有其链路层地址,当分组被发往一个间接路由时,IP地址指明的是最终的目的地,但是链路层地址指明的是网关(即下一站路由器)。

标志G和标志H的区别
G标志区分了直接路由和间接路由
但H标志表明,目的地址(netstat命令输出第一行)是一个完整的主机地址,没有设置H标志说明目的地址是一个网络地址(主机号部分为0)。当为某个目的IP地址搜索路由表时,主机地址项必须与目的地址完全匹配,而网络地址项只需要匹配目的地址的网络号和子网号就可以了。

  • 参考记数Refcnt(Reference count)列给出的是正在使用路由的活动进程个数,面向连接的协议如TCP在建立连接时要固定路由。如果主机A和B之间建立Telnet连接,参考记数值变为1,建立另一个Telnet连接时,它的值将增加为2

  • 下一列(“use”)显示的是通过该路由发送的分组数。 如果我们是这个路由的唯一的用户,那么运行ping程序发送5个分组后,它的值将变为5.

  • interface 是本地接口的名字

输出的第二行是环回接口,它的名字始终是lo0,没有设置G标志,因为该路由不是一个网关,H标志说明目的地址(127.0.0.1)是一个主机地址。由于没有设置G标志,说明这是一个直接路由,网关列给出的是外出IP地址。

image.png
image.png

主机路由表的复杂性取决于主机所在网络的拓扑结构。
1、最简单的,主机没有和任何网络相连,路由表只包含环回接口
2、主机连在一个局域网上,只能访问局域网上的主机,这时路由表包含两项:一项是环回接口,另一项是局域网
3、主机能够通过单个路由器访问其他网络时,那么久要进行下一步,一般情况下增加一个默认表项指向该路由器


image.png
初始化路由表

每当初始化一个接口时(通常是用ifconfig命令设置接口地址),就为接口自动创建一个直接路由,对于点到点链路的环回接口来说,路由是到达主机(例如,设置H标志)。对于广播接口来说,如以太网,路由是到达网络。
到达主机或网络的路由如果不是直接相连的,那么就必须加入路由表。
一个常用的方法是在系统引导时显式地在初始化文件中运行route命令。比如在主机A上,运行下面两个命令来添加路由表中的表项:
route add default sun 1
route add slip bsdi 1
第三个参数(default 和slip)代表目的端,第四个参数代表网关(路由器),最后一个参数代表路由的度量(metric)。route命令在度量值大于时要为该路由设置G标志,否则,当耗费值为0时就不设置G标志了。
初始化路由表的其他方法是运行路由守护程序或用较新的路由器发现协议

如果路由表中没有默认项,而又没有找到匹配项,这时会发生什么情况?
结果取决于该IP数据报是由主机产生的还是被转发的。如果数据报是本地主机产生的,那么就给发送该数据报的应用程序返回一个差错,或者是“主机不可达差错”或者是“网络不可达差错”。如果是被转发的数据报,那么就给原始发送端发送一份ICMP主机不可达的差错报文。

ICMP主机与网络不可达差错

当路由器收到一份IP数据报但又不能转发时,就要发送一份ICMP“主机不可达”差错报文。


image.png

参考文献[Ford, Rekhter, and Braun 1993]定义了顶层选路域(top-level routing domain),由它来维护大多数Internet网站的路由信息,而不使用默认路由。他们指出,在Internet上存在5个这样的顶层选路域:NSFNET主干网、商业互联网交换(Commercial Internet Exchange:CIX)、NASA科学互联网(NASA Science Internet :NSI)、SprintLink以及欧洲IP主干网(EBONE)

image.png

ICMP重定向
当IP数据报应该被发送到另一个路由器时,收到数据报的路由器就要发送ICMP重定向差错报文给IP数据报的发送端。

image.png

重定向一般用来让具有很少选路信息的主机逐渐建立更完善的路由表。
主机启动时路由表中可以只有一个默认表项,一旦默认路由发生差错,默认路由器将通知它进行重定向,并允许主机对路由表作相应的改动。
ICMP重定向报文格式


image.png

有四种不同类型的重定向报文,有不同的代码值。
代码值:
0 网络重定向
1 主机重定向
2 服务类型和网络重定向
3 服务类型和主机重定向

还可以利用ICMP路由器通告和请求报文

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,313评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,369评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,916评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,333评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,425评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,481评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,491评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,268评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,719评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,004评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,179评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,832评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,510评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,153评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,402评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,045评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,071评论 2 352

推荐阅读更多精彩内容

  • 9.1 引言 选路是IP最重要的功能之一。图9-1是IP层处理过程的简单流程。需要进行选路的数据报可以由本地主机产...
    张芳涛阅读 1,189评论 0 2
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,051评论 0 8
  • 前言 这一篇文章主要围绕了IP协议,ICMP协议和UDP协议展开,希望可以在这里大概做一个总结,将《TCP/IP协...
    Noskthing阅读 3,087评论 5 57
  • IPv4分组 IPv4,即现在普遍使用的IP协议(版本为4)。IP协议定义数据传送的基本单元——IP分组及其确切的...
    CodeKing2017阅读 1,868评论 0 0
  • 网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务(面向连接还是无连接)曾引起了长期的争论,...
    srtianxia阅读 3,954评论 0 12