前言

简单了解一下ip 协议选路问题。

正文

比如host1 到 host2是直接传输,因为host1和 host2 是同一交换机,直接arp表知道对方的mac。

第二种是他们是不同网段之间通信。

第二种有两种出名的协议rip 和 ospf,动态路由方式。

路由表:

rip 内部选路协议:

routing information protocal

特点:

  1. 基于跳数确定路由。
  2. udp 协议向相邻路由器通知路由表。

举个例子。比如RA 可以到N1,那么RA就想相邻路由器发送自己到N1举例为1。

比如RB就收到了 RA 到 R1 的距离为N1。

现在如果RB要访问N1,那么会将信息发给RA。

那么RB、RC也会继续广播出去给RD,RD收到的RB 的信息是RB到N1为2跳。RD收到RC的信息是RC到N1为2跳。

这个时候RD 也会广播给RB和RC等相邻路由器,告诉他们RD到N1为3跳。

问题:

  1. 基于条数
  2. 慢收敛
  3. 选路环路

OSPF 协议:

open shortest path fist

这个比较复杂,直接百度比较好的。

https://zhuanlan.zhihu.com/p/41341540

这里讲一下为什么这么复杂哈,有些人刚学的时候认为局域网是:

路由器1 为 192.168.1.0/24 那么路由器2是 192.168.0.0/16

那么就是路由器1下面机器1访问192.168.2.1的话,发给路由器1,路由器1根据主机号就知道发给r2。

就是认为网络连接是金字塔结构的,实际上不是。

就是他们的分配是金字塔结构。但是不是他们相邻的不一定不能连接啊。

实际上是这种:

在11.0.0.0/8 和 12.0.0.0/8 他们直接可以相连啊。

如果是金字塔结构,那么的确路由器对比一下主机号就知道了下一个应该发给谁。

但是这样也会有一个问题,那就是太慢了吧,显然是不可行的。

可以看到哈,如果10.1.2.16 要访问 10.2.2.16的话,一定要经过10.0.0.0/8这台机器,那不堵才怪。

就算是10.0.0.0/8 旁边是172.16.0.0/8也是可以的,这样可以让这两个网络互通。(“172开头的不一定是内网,作为内网的172属于B类地址,范围: 172.16.0.0-172.31.255.255,共16个网络数。)

然后公网中的是:BGP(Border Gateway Protocal)

这个就更复杂了,一般是网络工程师专研比较多,开发人员没太多必要。

不过可以查询一下路由跟踪工具:

  1. windows: tracert
  2. linux/mac:traceroute.

除了上面的rip和OSPF 路由寻路方式,这两种是自动寻路,也就是动态路由,还有静态路由的方式来寻路,其实吧,如果是我们内网比较少的机器话,用静态路由还是比较好的,自动寻路适合机器多的情况。

下下一节ip的分片和icmp协议。

抓包整理————ip 协议四[十五]的更多相关文章

  1. 抓包整理————ip 协议一[十二]

    前言 简单介绍一下ip协议. 正文 先来看下ip协议在网络层的哪一层: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 ip 层就在网络层: 其实很好想象哈,就是因为每台机器起码有一个ip ...

  2. wireshark 抓包分析 TCPIP协议的握手

    wireshark 抓包分析 TCPIP协议的握手 原网址:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇 ...

  3. Wireshark数据抓包分析——网络协议篇

                   Wireshark数据抓包分析--网络协议篇     watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF4dWViYQ==/ ...

  4. 孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备

     孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天本来应当继续学习Python的数据库操作,但根据过去我自 ...

  5. NeHe OpenGL教程 第四十五课:顶点缓存

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. Gradle 1.12用户指南翻译——第四十五章. 应用程序插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  7. SQL注入之Sqli-labs系列第四十一关(基于堆叠注入的盲注)和四十二关四十三关四十四关四十五关

    0x1普通测试方式 (1)输入and1=1和and1=2测试,返回错误,证明存在注入 (2)union select联合查询 (3)查询表名 (4)其他 payload: ,( ,( 0x2 堆叠注入 ...

  8. SMB协议利用之ms17-010-永恒之蓝漏洞抓包分析SMB协议

    SMB协议利用之ms17-010-永恒之蓝漏洞抓包分析SMB协议 实验环境: Kali msf以及wireshark Win7开启网络共享(SMB协议) 实验步骤: 1.查看本机数据库是否开启,发现数 ...

  9. “全栈2019”Java第四十五章:super关键字

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  10. (十四--十五)数据库查询优化Part I

    (十四--十五)数据库查询优化Part I 如果理解的有问题.欢迎大家指出.这也是我在看课记得笔记..可能会有很多问题 查询优化的重要性 请记住用户只会告诉DMBS他们想要什么样的结果,而不会告诉他们 ...

随机推荐

  1. 4、StringBuilder类

    StringBuilder类 一个可变的字符序列,此类提供一个与StringBuffer 兼容的 API,但不保证同步(StringBuilder 不是线程安全). 该类被设计用作 StringBuf ...

  2. Django 使用Pycharm 创建工程

    一.Pycharm 创建Django 工程 事实上,我们一般不使用命令行,而是直接在Pycharm 中创建Django 项目. Pycharm 是进行Django 开发的最佳 IDE,请大家自行安装, ...

  3. Beats: 使用 Filebeat 进行日志结构化

    文章转载自:https://blog.csdn.net/UbuntuTouch/article/details/106688240 生产一个叫做 json_logs 的文件: {"user_ ...

  4. kubernetes中部署kube-prometheus项目解决ControllerManager与Scheduler无法监控问题

    文章转载自:https://www.kococ.cn/20210302/cid=697.html 一.问题描述 在部署 kube-prometheus 到 kubernetes 集群中总会遇到一个问题 ...

  5. Kibana: 运用Data Visualizer来分析CSV数据

  6. Elasticsearch:Elasticsearch SQL介绍及实例 (一)

    转载自:https://blog.csdn.net/UbuntuTouch/article/details/105658911

  7. Rust学习入门

    介绍 特性: 高性能,内存利用率高,没有运行时和垃圾回收 可靠 , 丰富的类型系统和所有权模型保证内存和线程安全,编译器可以消除各种错误 生产力, 包管理器.构建工具一流, 多编辑器支持自动补齐和格式 ...

  8. 高可用(vrrp)以及mysql主主备份部署

    高可用说起来感觉很高大上,我刚接触的时候也是一头雾水,但是需求的时候很容易理解的,当一台服务器挂了另一台能够马上顶上去继续提供服务,这就叫做高可用,需求其实不难理解,只是需要自身根据项目的实际需求还有 ...

  9. hive数据导出到linux本地

    方法1(hive下执行):insert overwrite local directory 'Linux本地目录' row format delimited fields terminated by  ...

  10. VideoPipe可视化视频结构化框架开源了!

    完成多路视频并行接入.解码.多级推理.结构化数据分析.上报.编码推流等过程,插件式/pipe式编程风格,功能上类似英伟达的deepstream和华为的mxvision,但底层核心不依赖复杂难懂的gst ...