Ad Hoc Networks TOPIC THREE <IP Addressing and Internet Protocol>【Personal Notes】
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)
- 情景一:相同子网通信(通过链路层)
- 情景二:不同子网通信
- 情景三
- 其他资料
- 知乎传送门:IP 基础知识全家桶
- 距离矢量和链路状态的对比
正文:
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
- 两种路由协议
- routable protocol:可路由协议,也被称为路由协议,是那些封装信息和数据到包(比如IP)
- routing protocol:路由器会寻找每个packet最佳的路由路径
Internet Protocol(Routable Protocol)
- 在不同的network中传输信息
- Two main function:
- packet forwarding
- 分割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所处理
- ID:所有片段ID要相同
- offset:
- MF:表示当前片段的last unit是否是原数据的尾部(而不是:是否还有片段,因为片段到达顺序不确定),1表示否;0表示是
- 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
- 主动:周期性广播
- 被动:不发送更新
4. 存在的问题
场景一
B与C的连接断开,B将C修改为unreachable,在B广播更新前,B收到了A的过时的更新。
出错原因:发出的更新信息只包含目标和cost
解决办法:Split Horizon 和 hold down
5. 解决办法
- 减缓错误更新传播速度的方法,促进收敛(仍然无法完全避免成环)
- Split Horizon 水平分割:更新信息不包括接收方作为下一跳的条目
- Poison Reverse 毒性逆转:推迟unreachable的广播(两个广播周期)
- Triggered Updates 触发更新:发生事件时马上更新(不再等待30秒)
- 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所发送的LSA(link state advertisements)只包含link(到邻居的cost)——RIP发送的routing table包含了dest和cost
- LSA只包含邻居的信息,而不是整个网络的路由信息
- RIP选择跳数少的,OSPF选择代价小的
工作步骤
- 结识邻居neighbours(连接到同一个链路的路由器) – discovery mechanism
- 邻接(虚拟的点对点连接)(从邻居关系中选出的为了交换路由信息而形成的关系)
- 发送LSA到邻接
- 在link state database中记录LSA并原封不动转发
- 通过将LSA泛洪,所有路由器将构建相同的链路状态数据库
- 每个路由器使用SPF算法计算一个无环图(SPF树),描述到每个已知目的地的最短(最低成本)路径
- 根据SPF树构建自己的routing table
两个相邻的路由器通过发报文的形式成为邻居,邻居再相互发送链路状态信息形成邻接,之后各自根据SPF算出路由,放在OSPF路由表
1. OSPF 结构
LSA包括:
- node ID:谁生成的LSA
- Sequence number:判断是否首次收到当前LSA
- 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在内部分割
- 优点
- 提供额外的灵活性,减少拥塞
- 使多个物理网络共享net ID
- 隐藏复杂性
- 对外界隐蔽,相对安全,隐私
子网掩码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替代
如何应用
- 估计subnet数量或host数量
- 保留掩码bits
- 查找网络范围(也就是每个子网的host数量)
Variable Length Subnet Mask(VLSM)
支持不同大小的子网
情景一:分配子网【20+20+50】
将subnet No.2再分
情景二:已知IP求子网掩码
- 首先通过第一个字节的大小判断属于哪一类(ABC),得到net ID长度
- 斜线后的数等于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】相关推荐
- Ad Hoc Networks TOPIC FIVE <Multicast Routing>【Personal Notes】
Ad Hoc Networks TOPIC FIVE 有线网络的多播 Source-based multicast Core-based multicast 移动网络的多播 分类 1. ODMRP(O ...
- Ad Hoc Networks TOPIC FOUR <MANET Routing>【Personal Notes】
Ad Hoc Networks TOPIC FOUR 为什么不用有线MANET Routing? Hidden terminal Exposed terminal MANET的组成分类 一.DSDV( ...
- Ad Hoc Networks TOPIC TWO <Wireless Network>【Personal Notes】
Ad Hoc Networks TOPIC TWO Wireless Network GSM: FDD+TDMA GSM network architecture 情景一:网络如何识别新用户 情景二: ...
- 计算机等级怎么查ip地址,ip查地址方法是什么【图文教程】
现在电脑在我们的日常生活中已经非常普遍了.随着科学技水平和人们生活水平的不断提高,人们对于电脑的要求也越来越高.有的时候我们在工作的时候会发现电脑信号不稳定,这个时候很多人都会去查询自己电脑或者手机的 ...
- 子网ip和子网掩码不匹配_【详解】你知道什么是IP路由查找的“最长匹配原则”吗?...
最长匹配原则是CISCO IOS路由器默认的路由查找方式. 当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的表项进行bit by bit的逐位查找,直到找到匹配度最长的条目, ...
- ping ip 端口_学生会私房菜【20200305期】——Ping命令及其常用参数详解
一命令原理 Ping是ICMP的一个典型应用.Ping是检测网络连通的常用工具,同时也能收集其他相关信息.用户可以在Ping命令中指定不同参数,如ICMP报文长度.发送的ICMP报文个数.等待回复响应 ...
- 频谱仪的更改ip_【正点原子FPGA连载】第五十一章 基于FFT IP核的音频频谱仪-摘自【正点原子】开拓者 FPGA 开发指南 (amobbs.com 阿莫电子论坛)...
本帖最后由 正点原子 于 2020-10-24 15:19 编辑 203429z6c3os33t8albi33.png (66.36 KB) 2019-7-28 15:14 上传 第五十一章 基于FF ...
- 【正点原子FPGA连载】第十五章 IP核之FIFO实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...
- 【正点原子MP157连载】 第十四章 IP核之RAM实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
最新文章
- 眠眠interview Question
- mvcc原理_MySQL MVCC原理
- Unity3D笔记 GUI 二 、实现选项卡一窗口
- Python 引用全局变量提示:local variable referenced before assignment. 问题解决办法,global使用方法介绍
- 全面的GC原理及调优
- java依赖_java 依赖、组合、聚合与继承
- 在线社交媒体信息冗余现象建模与实证研究
- [iOS]swift版内购
- 怎么把php网站变灰,CSS效果,让网站全部变成灰色(黑白)
- 使用jvisualvm通过JMX的方式监控远程JVM运行状况
- js高级学习笔记(b站尚硅谷)-10-instanceof
- Java复习 day_01
- WiFi远程监控,监控摄像头只有在WiFi环境才能使用吗
- 【集合论】偏序关系 ( 偏序关系定义 | 偏序集定义 | 大于等于关系 | 小于等于关系 | 整除关系 | 包含关系 | 加细关系 )
- 高斯公式(三重积分和第二类曲面积分互相转换)
- Oracle RAC集群安装,从零开始
- Stylized NeRF 水记(NeRF的风格化)
- 古月居ROS暑期学校无人机部分学习笔记
- NBS的N把“瑞士军刀”——产品解读之规则设计器
- $.ajax 的使用方法及参数说明