1.选路原理

    在IP搜索路由表分为几个步骤

    1.搜索匹配的主机地址

    2.搜索匹配的网络地址

    3.搜索默认表项.

  IP层进行选路实际是一种选路机制,搜索路由表并决定向哪个网络接口发送分组,区别选路策略,IP层选路把路由放进哪个路由规则,而路由守护程序则选择选路策略

  

  2.路由表

    当执行netstat命令时,会列出路由表 -n用于打印IP地址,在路由表中的Flag标识会有5种标示表明路由状态

  •    U 标示路由可以使用
  • G 标示该路由是一个网关,如果没有标志,表明目的地直接连接
  • H 标示路由是一个主机,目的地是一个完整的地址,如果没有标记,表明是一个网络,目的地是一个网络地址,一个网络号或者与子网号结合
  • D 标示该路由由重定向报文创建
  • M 标示报文被修改

标记G区分了间接路由和直接路由,区别在于发往直接路由的分组不但具有目的地端的IP地址,也具有链路层地址.当分组发往一个间接路由时,IP地址指明最终目的,但链路层指明的是网关

Refent 指的是正在使用路由的活动进程个数,面向连接的协议链接时要固定路由,当主机与slip之间建立Telnet连接时可以看到参数值为1.

use 显示的是通过路由发送的分组数,如果是路由的唯一用户,那么ping程序发送5个分组时,值为5,最后一列(Interface)为本地接口名字

环回接口为lo0,没有设置G标志,指路由不是一个网关,

 默认路由指的是都一个或多个默认路由,UG表明是一个网关

 主机路由表的复杂性取决于主机所在网络的拓扑结构

    1.最简单的情况为主机没有任何网络相连,只能本省通信,只包含环回接口

    2.主机连接局域网,包含环回接口和局域网

  3. 初始化路由表

    每当初始化一个接口时,就为接口自动创建一个直接路由,在对于点对点链路和环回链路,路由到达主机,对于广播接口,路由到达网络

    到达不直接相连的主机或者网络路由必须以某种方式添加到路由表,可以通过运行下列两个命令来添加路由表选项

  

route add default sun
route add slip bsdi

  第三个参数标示目的端,第三个标示网关,最后一个标示路由的度量,route在度量大于0会为路由设置G标志,否则为0时不设置,

  4没有到达目的地的路由

    在没有默认项也没找到匹配项时,路由的选择取决于该IP数据报由主机产生的还是被转发,如果数据报是由本地主机产生,那么发送该数据报的应用程序返回一个差错,或者主机不可达差错.如果是被转发的数据报,那么向主机端发送一份ICMP不可达差错报文

  5.ICMP主机

    当路由器收到一份IP数据报但不能转发时,就会发送一份ICMp差错报,

  6.ICMP重定向差错

    当IP数据报应该发送另一个路由器时,收到数据报的路由器会发送ICMP重定向差错报文交给IP数据报的发送端,只有当主机可以选择路由器发送分组的情况下,才能看到ICMP重定向报文.

    

  1.假定主机发送IP数据报给R!,发现R2是发送该数据的下一站,当数据报发送给R2时,R1检测到他发送的接口与数据报到达接口相同.这样路由器发送重定向报文原始发送端提供线索

  2.R1发送报文给主机,告诉数据报发送R2而不是R1

  重定向一般让具有很少选路信息的主机建立合适的路由表,主机启动时可以只有一个默认表项,一旦发生错误,默认路由器进行重定向,并允许主机对路由表做出改动,ICMP重定向允许主机在选路时不具有智能特性,而把特性放在路由器端中,在ICMP重定向报文中,具有以下格式

  

  ICMP重定向报文的接收者必须查看3个IP地址  

    1.导致重定向的IP地址

    2.发送重定向报文的路由器的IP地址

    3.应该采用的路由器IP地址

  在代码描述中包含以下参数

    1.0:网络重定向

    2.1:主机重定向

    3.2:服务类型和网络重定向

    4 3:服务类型和主机重定向

  在ICMP重定向报文中包含许多规则,报文只能由路由器生成,不能由主机生成,报文为主机使用。

7.ICMP路由器发现报文

  路由器在一份报文中可以通告多个地址,地址数指的是报文包含的地址数,地址大小指的是每个路由器32bit数目,始终为2,生存期指的是通告地址有效的时间(s)

  

  在路由器启动时,定义在所有广播或多播传送接口上发送报文,形式为随机发送,以减少与子网上其他路由器发送冲突的概率,每次通告间隔450s或者600s,一份一份通告报文的默认周期为30min

  使用生命周期域的另一个时机是当路由器的某个接口被关闭时,路由可以在该接口发送最后一个通告报文,并把生命周期设为0

  在主机操作引导一般发送3份路由的请求报文,每3秒发送一次,一旦接收到一个有效的报文,就停止发送.

TCP/IP||IP选路的更多相关文章

  1. http tcp udp ip 间的关系

    首先,我自己梳理一下,其实除了应对以后的笔试,还有需要应对的是自己在编程中对于api的选择,我在满足需求时采取哪种方案更好. 首先,我需要了解的是tcp/ip是一个协议组,有三大层: ip 对应于网络 ...

  2. 005.TCP--拼接TCP头部IP头部,实现TCP三次握手的第一步(Linux,原始套接字)

    一.目的: 自己拼接IP头,TCP头,计算效验和,将生成的报文用原始套接字发送出去. 若使用tcpdump能监听有对方服务器的包回应,则证明TCP报文是正确的! 二.数据结构: TCP首部结构图: s ...

  3. spark Association failed with [akka.tcp:sparkMaster@ip:7077]

    今搭建spark集群, conf/spark-env.sh 配制如下 export SPARK_MASTER_IP=masterexport SPARK_MASTER_PORT=7077export ...

  4. 【前端童鞋看过来!】给大家分享网盘里前端相关书籍,主要是和网络通信(HTTP/TCP/IP)及javascript相关的

    百度云链接:https://pan.baidu.com/s/1kUPdf5H(无密码) 截图: <HTTP权威指南> [豆瓣书评]:此书第一部分是HTTP的概略,如果你没有时间,通读第一部 ...

  5. DNS,TCP,IP,HTTP,socket,Servlet概念整理

    DNS,TCP,IP,HTTP,socket,Servlet概念整理   常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习.如有错误欢迎指正.   D ...

  6. 三十天学不会TCP,UDP/IP编程--MAC地址和数据链路层

    这篇文章主要是来做(da)推(guang)介(gao)的!由于这两年接触到了比较多的这方面的知识,不想忘了,我决定把他们记录下来,所以决定在GitBook用半年时间上面写下来,这是目前写的一节,后面会 ...

  7. 三十天学不会TCP,UDP/IP网络编程-IP头格式祥述

    我又来了,这篇文章还是来做(da)推(guang)介(gao)我自己的!俗话说事不过三,我觉得我下次得换个说法了,不然估计要被厌恶了,但是我是好心呐,一定要相信我纯洁的眼神.由于这两年接触到了比较多的 ...

  8. 三十天学不会TCP,UDP/IP网络编程-ARP -- 连接MAC和IP

    继续来做(da)推(guang)介(gao)我自己的!由于这两年接触到了比较多的这方面的知识,不想忘了,我决定把他们记录下来,所以决定在GitBook用半年时间上面写下来,这是目前写的一节,目前已完成 ...

  9. .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

随机推荐

  1. PyODPS DataFrame 处理笛卡尔积的几种方式

    PyODPS 提供了 DataFrame API 来用类似 pandas 的接口进行大规模数据分析以及预处理,本文主要介绍如何使用 PyODPS 执行笛卡尔积的操作. 笛卡尔积最常出现的场景是两两之间 ...

  2. Datamation Index

    Datamation Index     Understand how to handle big data and improve organizational agility to support ...

  3. oracle用EXPLAIN PLAN 分析SQL语句

    EXPLAIN PLAN 是一个很好的分析SQL语句的工具,它甚至可以在不执行SQL的情况下分析语句. 通过分析,我们就可以知道ORACLE是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及 ...

  4. background背景色

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. jsp获取后端java路由返回值

    html: <input type="hidden" id="tableName" value="${id}"> javascr ...

  6. .net core 控制台下使用HttpClientFactory封装

    HttpClientFactory封装,如有错误请指出,谢谢! using System; using System.Collections.Generic; using System.Net.Htt ...

  7. 第三次脱发——Scurm学(ctrl)习(C)心得

    Scrum 学习心得: 首先,敏捷并不是一门具体的技术,而是一种理念或者说是一种思想.它可以指导我们更加高效的开发. 其次,敏捷开发都具有以下共同的特征: 迭代式开发 增量交付 开发团队和用户反馈推动 ...

  8. element-ui-——el-uploadexcel导入

    布局文件:(选择文件放在了弹框内部——即点击导入按钮后弹框显示,先下载模板再选择文件点击提交按钮才上传) )) { this.$notify({ message: '数据导入成功', type: 's ...

  9. HDU 1087 Super Jumping....(动态规划之最大递增子序列和)

    Super Jumping! Jumping! Jumping! Problem Description Nowadays, a kind of chess game called “Super Ju ...

  10. 备战省赛组队训练赛第十七场(UPC)

    upc:传送门 A: 题解[1] G: 题解[1] D,G,H,J,L 题解 by 鲁东大学