(007)TCP/IP协议-静态IP选路

一、引言

选路是IP层最重要的功能之一。该选路规则核心一点是每一个主机都维护了一张路由表。IP层进行的选路实际上是一种选路机制,它搜索路由表并决定向哪个网络接口发送分组。

二、原理

在路由表中,是有一定的搜索规则来确定数据包发送网络端口的:

  • 先搜索搜索匹配的主机地址;
  • 没有找到,搜索匹配的网络地址;
  • 再没有找到,搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为 0)。

可以使用netstat -rn列出当前主机的路由表:

图1. 当前主机的路由表项

说明,每一行表示一个路由表项,第一行中的第一列为0.0.0.0,这是一个默认路由表表项。每个主机都有一个或多个默认路由。

  • 第1列(Destination):指明目的地,搜索该列。
  • 第2列(Gateway):该网络/主机的网关地址。
  • 第3列(Genmask):该主机/网络的子网掩码。
  • 第4列(Flags):标志位,有5种不同的标志位
    • U:有该值表示当前路由表项可用,没有表示不可用;
    • G:有该值表示当前路由是到一个网关(路由器),没有表示目的地与该主机是直接相连的;
    • H:有该值表示当前表项的目的地是一个主机(中间可能跳转多次,不一定直接相连),没有该值表示当前路由表项的目的地是一个网络。
    • D:有该值表示该表项由路由重定向报文创建,没有不是;
    • M:有该值表示该表项由路由重定向报文修改,没有不是。
  • 第5列(MSS):Default maximum segment size for TCP connections over this route.
  • 第6列(Window):Default window size for TCP connections over this route.
  • 第7列(irtt):Initial RTT (Round Trip Time). The kernel uses this to guess about the best TCP protocol parameters without waiting on (possibly slow) answers.
  • 第8列(Ifac):该路由表项属于哪个网络接口(一台主机可以有多个网络接口)

三、路由表的创建

从来没有说过这些路由表是如何被创建的,这里介绍如何创建路由表。通常有三种方式来创建路由表-route(主动添加)、ICMP重定向差错数据包(被动修改)、ICMP路由发现请求/应答数据包(主动询问)。

1. 路由表可以是在系统初始化的时候通过route命令来添加默认路由。

图2. route添加路由命令

这是一种手动添加方式。

2. 通过ICMP重定向差错数据包

当IP数据包应该被发送到另一个路由器时,收到数据包的路由器就要发送ICMP重定向差错报文给ICMP数据包的发送端。ICMP重定向数据包只能有路由器生成,主机接收使用。


图3.ICMP差错重定向数据包产生过程
  • 主机想发送一份IP数据包给R2,但通过查找路由表只找到R1的表项。主机将IP数据包发送给R1
  • R1通过网络端口A接收到该IP数据包;
  • R1查找自己路由表到R2的表项,发现转发端口也是A。这时候发送一份ICMP差错重定向数据包给IP数据包的源(主机)。
  • R1将IP数据包转发给R2。
  • 主机收到R1发过来的ICMP差错重定向数据包后,根据数据包修改自己的相应的路由表项。这时候从主机发送IP数据包给R2就能直接发送过去了。

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

ICMP差错重定向数据包格式如下:


图4. ICMP差错重定向数据包结构

ICMP重定向数据包的接收者必须查看三个IP地址:( 1 )导致重定向的IP地址(原IP数据包的目标地址); ( 2 )发送重定向报文的路由器的IP地址(主机路由表该表项中的下一跳地址);( 3 )应该采用的路由器IP地址(要修改的IP地址)。

3. ICMP路由发现请求/应答数据包

主机在引导以后要广播或多播传送一份ICMP路由器请求报文。一台或更多台路由器响应一份路由器应答报文。另外,路由器定期地广播或多播传送它们的路由器应答报文,允许每个正在监听的主机相应地更新它们的路由表。


图片5. ICMP路由器请求数据包

图6. ICMP路由器应答数据包

IP地址必须是发送路由器的某个地址。优先级是一个有符号的 32 bit整数,指出该IP地址作为默认路由器地址的优先等级,这是与子网上的其他路由器相比较而言的。值越大说明优先级越高。优先级为 0 x 8 0 0 0 0 0 0 0说明对应的地址不能作为默认路由器地址使用,尽管它也包含中通告报文中。优先级的默认值一般为 0。

都看到这里了,要不要扫二维码关注一下微信公众号林湾村龙猫

微信公众号rudy_tan_home

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

推荐阅读更多精彩内容

  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,051评论 6 174
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,051评论 0 8
  • 9.1 引言 选路是IP最重要的功能之一。图9-1是IP层处理过程的简单流程。需要进行选路的数据报可以由本地主机产...
    张芳涛阅读 1,187评论 0 2
  • 地址解析协议ARP 物理这一级,主机和路由器是用物理地址来区别的。物理地址是一个本地地址,管辖范围是本地网络,所以...
    顾慎为阅读 1,073评论 0 1
  • 网络层简介 1. 概念 为解决经由多条链路的交付问题,从而设计了网络层。其主要负责主机到主机的交付,并且在分组经过...
    顾慎为阅读 3,096评论 0 0