Ad Hoc Networks TOPIC THREE

  • Classful IP Address Structure
    • Private IP addresses
  • Router——connect different network
  • Internet Protocol(Routable Protocol)
    • IP Datagram Structure
      • Fragmentation
    • Summary
  • IP Network Routing
    • 一. Distance Vector Protocols 距离向量协议
      • DV Algorithms
      • Routing Information Protocol (RIP)
        • 1. 一些周期
        • 2. routing table 更新
        • 3. routing table 结构
        • 4. 存在的问题
          • 场景一
        • 5. 解决办法
        • 6. Summary of RIP
    • 二. Link State Protocols 链路状态协议
      • Dijkstra’s Algorithm
      • 例子协议——Open Shortest Path First(OSPF)
        • 1. OSPF 结构
        • 2. OSPF 更新
        • 3. Hello Messages
        • 4. 五种报文
        • 5. Scaling
    • Subnet
      • 子网掩码Subnet Masks
        • Construct
      • 如何应用
      • Variable Length Subnet Mask(VLSM)
        • 情景一:分配子网【20+20+50】
        • 情景二:已知IP求子网掩码
    • Layer 2 / Layer 3 Address Usage
      • MAC Address
      • Address Resolution Protocol (ARP)
      • Reverse Address Resolution Protocol(RARP)
      • 情景一:相同子网通信(通过链路层)
      • 情景二:不同子网通信
      • 情景三
  • 其他资料
  1. 知乎传送门:IP 基础知识全家桶
  2. 距离矢量和链路状态的对比

正文:

Classful IP Address Structure

  • network size: A>B>C
  • network number : C>B>A


IP地址:用来识别network interface的唯一地址

为什么IP地址分配给network interface而不是物理设备:一个物理设备可能有多个network interface(比如router)(识别物理设备的是network point of attachment (NPA) address, or MAC address or data link identifier.)

Private IP addresses

  • intro net IP address
  • Internet IP address

Router——connect different network


  • 两种路由协议

    1. routable protocol:可路由协议,也被称为路由协议,是那些封装信息和数据到包(比如IP)
    2. routing protocol:路由器会寻找每个packet最佳的路由路径

Internet Protocol(Routable Protocol)

  • 在不同的network中传输信息

  • Two main function:

    1. packet forwarding
    2. 分割PDU

router在network layer增加header时做了什么


IP Datagram Structure

IHL: Internet header length。表明data起始位置(因为header里有可选内容,header的长度并不固定,所以需要记录length)
Total length:总长度(总长度最大64kb,因为最多记录216bits;最小20bytes)
TTL: 当前datagram的有效时长(现实中的设备时钟可能不同步,所以不使用时间戳而是规定可在不同network中传播的次数)
Protocol:Transport layer中适用哪种协议(TCP【Transmission Control Protocol】/ UDP【User Datagram Protocol】)


Fragmentation

保证IP datagram 能被所有网络中的network所处理

  1. ID:所有片段ID要相同
  2. offset
  3. MF:表示当前片段的last unit是否是原数据的尾部(而不是:是否还有片段,因为片段到达顺序不确定),1表示否;0表示是
  4. DF:表示当前数据能否被分段(设置选项1的原因是:可用来检测network最大容量),0表示可以分段;1表示不能

Summary

IP的特点:

  • 两大功能:发送数据表/ 分割数据表
  • 不受MTU(Maximum Transmission Unit)影响
  • 不能保证服务质量
  • 独立于物理网络:与终端结构(mechanism)无关
  • 是逻辑地址

IP Network Routing

自治系统(Autonomous System),即AS

根据实现方法分类:

  • source routing:每个节点根据预先选择的节点路径经行跳跃。
  • next-hop routing:每个节点只关心下一个

在计算机网络中,源路由允许数据包的发送者部分或完全指定数据包在网络中的路线。相反,在非源路由协议中,网络中的路由器根据数据包的目的地确定路径。

Default Route

  • end-system:出入经由一个router(该router为默认router)
  • 其他:出入经由不只一个router(此时需配置一个默认router)

Static Routing

Dynamic Routing


Convergence

整个网络中的路由器拥有统一的关于网络连接的更新信息


一. Distance Vector Protocols 距离向量协议

DV Algorithms

特点

  • 让每个路由器通过邻居路由器得知network中的其他节点
  • 获取全部信息后,根据DV Algorithms更新Routing Table,计算通向每个可能目的地的最短路径和下一跳
  • 信息将被广播,耗费时间
  • 难以“收敛”(整个网络中的路由器拥有统一的关于网络连接的更新信息)
  • 难以保留正确信息


方框:路由器
实线:network
数字:cost(在本图中,跳数不是评判cost的唯一标准,可能还包括电缆长度和带宽)

Routing Table

Updates

输入和输出

Routing Information Protocol (RIP)

  • 通过提供输入参数信息,提供了让网络中路由器发送更新的途径。借此每个路由器生成routing table
  • 是一种 interior gateway protocol (IGP),实现了DV Algorithms
  • 最多15跳 (16代表不可用/ 无限远)(因此适用于小型网络)

format

  • 一条信息最大512bytes (entry<dest, cost>)
  • 每个RIP响应最大25条entries(25个相邻节点),大于25需要更多的RIP
  • 当一个初始化的路由器出现,它将向邻居路由器发送request请求RIP信息,计算自己的routing table

UDP:User Datagram Protocol

  • 路由器定期向邻居发送自己包含routing table entries的响应;当收到请求,也会发送响应(即使没到发送周期)
  • 从相邻节点获得信息的途径:定期广播/ 发送请求(事件驱动)
1. 一些周期


  • 每隔30s路由器向邻居广播自己的路由表信息
  • 180秒未收到RIP更新:标为无限远
  • 又过了60秒:从routing table中删除
2. routing table 更新

如果收到的更新dest比已有的dest更大:将其标为无限远

3. routing table 结构
  • Destination IP Address(只包含net ID部分,因此不被网络内部的结构改变所影响)
  • Metric (hop count 1-15, 16 unreachable)(cost)
  • Next Hop, Advertising Router – split horizons
  • Timeout (seconds)

  • 两种RIP routers
  1. 主动:周期性广播
  2. 被动:不发送更新

4. 存在的问题
场景一

B与C的连接断开,B将C修改为unreachable,在B广播更新前,B收到了A的过时的更新。



出错原因:发出的更新信息只包含目标和cost
解决办法:Split Horizon 和 hold down


5. 解决办法
  • 减缓错误更新传播速度的方法,促进收敛(仍然无法完全避免成环)

    1. Split Horizon 水平分割:更新信息不包括接收方作为下一跳的条目
    2. Poison Reverse 毒性逆转:推迟unreachable的广播(两个广播周期)
    3. Triggered Updates 触发更新:发生事件时马上更新(不再等待30秒)
    4. Hold-Down Timer:等60秒再修改路由消息
6. Summary of RIP
  • 广播耗能
  • 跳数限制
  • 会成环
  • 只存储一条路径
  • 无安全保障
  • 收敛过慢
  • • Broadcasts (not scalable)
    • Infinity of 16 (not large enough)
    • Routing loops
    • Poor robustness – only one path to a destination is stored
    • Does not use variable length subnet masks - classful
    • Insecure
    • Reliance on fixed metrics to calculate routes
    • Slow convergence – instability when routes change rapidly

subnet masks:RIP不交换子网掩码信息
根据跳数计算距离,限制了route selection mechanism
timer ?


二. Link State Protocols 链路状态协议

Dijkstra’s Algorithm

  • Dijksra的算法是一个贪婪算法,时间复杂度是O(VLogV)(使用最小堆)。但是迪杰斯特拉算法在有负权值边的图中不适用,Bellman-Ford适合这样的图。在网络路由中,该算法会被用作距离向量路由算法。

  • Bellman-Ford也比迪杰斯特拉算法更简单和同时也适用于分布式系统。但Bellman-Ford的时间复杂度是O(VE),这要比迪杰斯特拉算法慢。(V为顶点的个数,E为边的个数

例子协议——Open Shortest Path First(OSPF)

  • OSPF所发送的LSAlink state advertisements)只包含link(到邻居的cost)——RIP发送的routing table包含了dest和cost
  • LSA只包含邻居的信息,而不是整个网络的路由信息
  • RIP选择跳数少的OSPF选择代价小的

工作步骤

  1. 结识邻居neighbours(连接到同一个链路的路由器) – discovery mechanism
  2. 邻接(虚拟的点对点连接)(从邻居关系中选出的为了交换路由信息而形成的关系)
  3. 发送LSA到邻接
  4. 在link state database中记录LSA并原封不动转发
  5. 通过将LSA泛洪,所有路由器将构建相同的链路状态数据库
  6. 每个路由器使用SPF算法计算一个无环图(SPF树),描述到每个已知目的地的最短(最低成本)路径
  7. 根据SPF树构建自己的routing table
    两个相邻的路由器通过发报文的形式成为邻居,邻居再相互发送链路状态信息形成邻接,之后各自根据SPF算出路由,放在OSPF路由表
1. OSPF 结构


LSA包括:

  1. node ID:谁生成的LSA
  2. Sequence number:判断是否首次收到当前LSA
  3. Dijkstra’s shortest path algorithm
  • Destination IP地址的不同导致发送对象类型的不同
2. OSPF 更新
  • LSA只发送一次,拓扑结构变化时才更新
  • OSPF十分“安静”,发送消息的频率更低(30mins)
  • 所有路由器广播完毕后,开始各自SPF
3. Hello Messages
  • 周期广播
  • 建立邻接
4. 五种报文
  • Hello 问候:建立并维护邻居关系
  • DBD 数据库描述:发送链路状态头部信息
  • LSR 链路状态请求:把从DBD中找出需要的链路状态头部信息传给邻居,请求完整信息
  • LSU 链路状态更新:将LSR请求的头部信息对应的完整信息发给邻居
  • LSACK 链路状态确认应答:收到LSU报文后确认该报文
5. Scaling
           To be continued

Subnet

  • 定义:将network在内部分割
  • 优点
    1. 提供额外的灵活性,减少拥塞
    2. 使多个物理网络共享net ID
    3. 隐藏复杂性
    4. 对外界隐蔽,相对安全,隐私

子网掩码Subnet Masks

  • 表明了network中是否有subnet
  • 让路由器识别subnet ID
Construct


对于ABC三种IP的子网掩码:net ID全为1,host ID全为0

其他类型网络的子网掩码:

对外为一整体,所以net ID不变;使用host ID中的一部分作为subnet bits

为什么是2046个而不是2048:保留全1和全0的地址作为特殊用途(255.255.255.255/ 0.0.0.0)
主机号全为 1 指定某个网络下的所有主机,用于广播
主机号全为 0 指定某个网络

如何用IP地址表示整个网络/子网:将host ID部分用0替代

如何应用

  1. 估计subnet数量host数量
  2. 保留掩码bits
  3. 查找网络范围(也就是每个子网的host数量)


Variable Length Subnet Mask(VLSM)

支持不同大小的子网

情景一:分配子网【20+20+50】


将subnet No.2再分

情景二:已知IP求子网掩码

  1. 首先通过第一个字节的大小判断属于哪一类(ABC),得到net ID长度
  2. 斜线后的数等于net ID+subnet bits

Layer 2 / Layer 3 Address Usage

网络/子网里没有路由器,packet到达网络/子网后怎么找到目标主机:通过硬件地址(network point of attachment (NPA) address, or MAC address or data link identifier)

MAC Address

由设备制造商分配


Address Resolution Protocol (ARP)


ARP请求是广播的;ARP应答是单播

为什么请求要广播:不知道目标IP的MAC;让其他设备记录发送者的IP和MAC,以备不时之需

Reverse Address Resolution Protocol(RARP)



RARP请求包被广播;RARP应答包被单播


情景一:相同子网通信(通过链路层)

情景二:不同子网通信

设备如何知道目标是否在同一subnet下:通过子网掩码,得知subnet ID不同,所以属于不同子网

情景三

Ad Hoc Networks TOPIC THREE <IP Addressing and Internet Protocol>【Personal Notes】相关推荐

  1. Ad Hoc Networks TOPIC FIVE <Multicast Routing>【Personal Notes】

    Ad Hoc Networks TOPIC FIVE 有线网络的多播 Source-based multicast Core-based multicast 移动网络的多播 分类 1. ODMRP(O ...

  2. Ad Hoc Networks TOPIC FOUR <MANET Routing>【Personal Notes】

    Ad Hoc Networks TOPIC FOUR 为什么不用有线MANET Routing? Hidden terminal Exposed terminal MANET的组成分类 一.DSDV( ...

  3. Ad Hoc Networks TOPIC TWO <Wireless Network>【Personal Notes】

    Ad Hoc Networks TOPIC TWO Wireless Network GSM: FDD+TDMA GSM network architecture 情景一:网络如何识别新用户 情景二: ...

  4. 计算机等级怎么查ip地址,ip查地址方法是什么【图文教程】

    现在电脑在我们的日常生活中已经非常普遍了.随着科学技水平和人们生活水平的不断提高,人们对于电脑的要求也越来越高.有的时候我们在工作的时候会发现电脑信号不稳定,这个时候很多人都会去查询自己电脑或者手机的 ...

  5. 子网ip和子网掩码不匹配_【详解】你知道什么是IP路由查找的“最长匹配原则”吗?...

    最长匹配原则是CISCO IOS路由器默认的路由查找方式. 当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的表项进行bit by bit的逐位查找,直到找到匹配度最长的条目, ...

  6. ping ip 端口_学生会私房菜【20200305期】——Ping命令及其常用参数详解

    一命令原理 Ping是ICMP的一个典型应用.Ping是检测网络连通的常用工具,同时也能收集其他相关信息.用户可以在Ping命令中指定不同参数,如ICMP报文长度.发送的ICMP报文个数.等待回复响应 ...

  7. 频谱仪的更改ip_【正点原子FPGA连载】第五十一章 基于FFT IP核的音频频谱仪-摘自【正点原子】开拓者 FPGA 开发指南 (amobbs.com 阿莫电子论坛)...

    本帖最后由 正点原子 于 2020-10-24 15:19 编辑 203429z6c3os33t8albi33.png (66.36 KB) 2019-7-28 15:14 上传 第五十一章 基于FF ...

  8. 【正点原子FPGA连载】第十五章 IP核之FIFO实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  9. 【正点原子MP157连载】 第十四章 IP核之RAM实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

最新文章

  1. 眠眠interview Question
  2. mvcc原理_MySQL MVCC原理
  3. Unity3D笔记 GUI 二 、实现选项卡一窗口
  4. Python 引用全局变量提示:local variable referenced before assignment. 问题解决办法,global使用方法介绍
  5. 全面的GC原理及调优
  6. java依赖_java 依赖、组合、聚合与继承
  7. 在线社交媒体信息冗余现象建模与实证研究
  8. [iOS]swift版内购
  9. 怎么把php网站变灰,CSS效果,让网站全部变成灰色(黑白)
  10. 使用jvisualvm通过JMX的方式监控远程JVM运行状况
  11. js高级学习笔记(b站尚硅谷)-10-instanceof
  12. Java复习 day_01
  13. WiFi远程监控,监控摄像头只有在WiFi环境才能使用吗
  14. 【集合论】偏序关系 ( 偏序关系定义 | 偏序集定义 | 大于等于关系 | 小于等于关系 | 整除关系 | 包含关系 | 加细关系 )
  15. 高斯公式(三重积分和第二类曲面积分互相转换)
  16. Oracle RAC集群安装,从零开始
  17. Stylized NeRF 水记(NeRF的风格化)
  18. 古月居ROS暑期学校无人机部分学习笔记
  19. NBS的N把“瑞士军刀”——产品解读之规则设计器
  20. $.ajax 的使用方法及参数说明

热门文章

  1. Java判断两个ListMap值是否相等(包括数据长度、存储的值)超实用工具类(亲测)
  2. 我正在建造一座大教堂
  3. 视频会议终端的主要功能和特点
  4. 梦龙LinkWorks协同办公平台 几处突破点
  5. 织梦cms下载游戏网站源码
  6. IBM T23系列U盘启动
  7. 阿里旺旺2012聊天获取(买家版)
  8. Android 为什么设置系统字体,应用字体会根据系统字体改变?
  9. Js常规检验、一些正则表达校验
  10. c语言创建局域网私人云盘,教你搭建个人/企业私有云盘-kodexplorer