Classful IP Address Structure

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0mdNeYWQ-1639587068858)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center.png)]

  • network size(host数量): A>B>C

    类别 主机数
    A 2^(24)-2
    B 2^(16)-2
    C 2^(8)-2
  • network number : C>B>A

类别 网络数
A 2^(7)-2 [0.和127.不可]
B 2^(14)-1 [128.0被保留]
C 2^(21)-1 [192.0被保留]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eZuOuL3M-1639587068860)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-16393962919744.png)]

为什么IP地址分配给**network interface**而不是物理设备:一个物理设备可能有多个network interface(比如router)(识别物理设备的是MAC address)

Private IP addresses

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GTHNs1ln-1639587068861)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-16393962775182.png)]

  • 10.0.0.0- 10.255.255.255
  • 172.16.0.0- 172.31.255.255
  • 192.168.0.0- 192.168.255.255

NAT:实现公网和私网的转换

169.254.0.0 -169.254.255.255实现自动私有IP寻址


Router——connect different network

一个Router需要两种路由协议

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

Internet Protocol(Routable Protocol)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MlxhSYUC-1639587068863)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-16393971336136.png)]

Two main function:

  1. packet forwarding to their destination
  2. 分割PDU(project data unit)

IP Datagram Structure

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tLA7ep4B-1639587068865)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-16393972123968.png)]

IHL: Internet header length。表明data起始位置(因为header里有可选内容,header的长度并不固定,所以需要记录length, 20 B-60 B)

Total length:总长度(header+data,最小20 B)

TTL: 当前datagram的有效时长(每经过一个router减一)

Protocol: Transport layer中适用哪种协议(TCP【Transmission Control Protocol】/ UDP【User Datagram Protocol】)

上面是protocol, 不是Type of service

Fragmentation

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hr5N4rIK-1639587068866)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163939780307212.png)]

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

图中33是id,紧跟的是offset, 然后是MF, 之后的是数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z9ovyNd3-1639587068868)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163939730106810.jpeg)]

IP的特点:

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

优势:

  • 更少的overhead
  • 上层可以构建更可靠的服务
  • 已经足够用于许多网络

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9qWroFii-1639587068870)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163939842064714.png)]

EGP: (以BGP为代表)

自治系统(Autonomous System),即AS

根据实现方法分类:

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

**Default Route **(默认路由):默认连接的路由

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

static routing (静态路由 ): 管理员手动配置的路由信息。但是当路由结构发生变化的时候,需要手动修改。

dynamic routing (动态路由): 路由器能够自动地建立自己的路由表,并且能够根据实际实际情况的变化适时地进行调整。动态路由机制的运作依赖路由器的两个基本功能:对路由表的维护;路由器之间适时的路由信息交换。

Convergence

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DQUqMoLT-1639587068871)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163939870122816.png)]

1. Distance Vector Protocols 距离向量协议

DV Algorithms

特点

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XYBEAjAG-1639587068873)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzUyNTQyNw==,size_16,color_FFFFFF,t_70-163948714681730.png)]

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

Routing Table
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TqeYUSK1-1639587068874)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163939928197920.png)]Updates
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U88xn7fJ-1639587068876)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163939932397422.png)]

Routing Information Protocol (RIP)

  • 通过提供输入参数信息,提供了网络中路由器发送更新的途径借此每个路由器生成routing table

  • 是一种 interior gateway protocol (IGP),实现了DV Algorithms

  • 最多15跳 (16代表不可用/ 无限远)(因此适用于小型网络)

format
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qpPjASVK-1639587068878)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163939949490024.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wShXP7kY-1639587068880)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AUri2UVs-1639587068881)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163939957442327.png)]

  • 通常以广播的形式发送

  • 一条信息最大512 B (entry< dest , cost>)

  • 每个RIP响应最大25条entries(25个相邻节点),大于25需要更多的RIP

  • 当一个初始化的路由器出现,它将向邻居路由器发送request请求RIP信息,计算自己的routing table

  • 路由器定期向邻居发送自己包含routing table entries的响应;当收到请求,也会发送响应(即使没到发送周期)

  • 从相邻节点获得信息的途径:定期广播/ 发送请求(事件驱动)

RIP相关周期

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

Four-Step Routing Table Update

  • 检查更新的有效性,如果无效则忽略
  • 寻找对应的目的地
  • 如果目的地已经存在,RIP中的matric更小,更新条目,并重置Timeout
  • 如果目的地未找到,添加目的地信息

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. 主动Active Gateways:周期性广播
  2. 被动Passive Hosts:不发送更新

RIP的建立和更新过程:

  1. 最开始,每个节点连接的都只与自己的neighbors相连接。以A为例,它只知道B和F节点的相关路由表信息,最多也就只能整合成上图那样。(其中距离邻居初始都是 1 hop)
  2. RIP广播request去请求RIP的的相关信息。
  3. 路由器比较收到的RIP表和它自己的表。如果已有节点的跳数较少,更新已有目的地的路由;如果节点记录中没有,路由器增加新的入口。
  4. RIP广播响应数据包定期发送

收敛时间的改进4种方式

  • Split Horizon Update(水平分割)
    路由器不会把从某个对象那里接受到的内容重新发给那个对象。
  • Poison Reverse(毒性逆转)
    对于不可到达的节点,路由器在其表中保留这个不可到达的路由的信息两个广播周期(broadcast
    periods),并将目标广播为不可到达。
  • Triggered Updates(触发更新)
    当发生重大变化的时候,会选择触发更新方式,而不是单纯的周期性更新
  • Hold-Down Timer(抑制计时)
    当被通知某个节点不可到达的时候,router不改变这个信息,存下这个信息(持续60秒)

Summary of RIP

  • 广播,不可拓展Broadcasts (not scalable)
  • 跳数限制Infinity of 16
  • 会成环
  • 鲁棒性差。只存储一条路径
  • 无安全保障
  • 收敛过慢

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LJhU2KwH-1639587068883)(D:\photo\photolibrary\image-20211214211417658.png)]

如果c发来路由表,B中如果下一跳就是C的项对于C的此项信息直接更新。如上面的N2,因为B的下一条就是C,所以C发来的信息虽然更大了,但是直接更新。

2. Link State Protocols 链路状态协议

  • 每个节点都知道直接邻居的成本(链接状态)
  • 每个节点的链路状态泛洪(flood)到网络中的所有路由器
  • 节点有足够的信息来使用链接度量构建完整的网络拓扑
  • 链接状态要求:
    • 可靠的广播
    • 最低成本路径的计算

OSPF与RIP的区别:

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

OSPF工作步骤

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

LSA包括:

  1. node ID:谁生成的LSA
  2. Sequence number:判断是否首次收到当前LSA
  3. Dijkstra’s shortest path algorithm
  • Destination IP地址的不同导致发送对象类型的不同

4张表:

  • 邻居表: 主要记录形成邻居关系路由器
  • 链路状态数据库: 记录链路状态信息
  • OSPF路由表: routers分别通过链路状态数据库得出
  • 全局路由表: OSPF路由与其他比较得出

OSPF packet 结构

OSPF 更新

  • LSA只发送一次,拓扑结构变化时才更新
  • OSPF十分“安静”,发送消息的频率更低(30mins)
  • 所有路由器广播完毕后,开始各自SPF

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6jrBFiCP-1639587068885)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163948939963840.png)]

Hello Messages

  • 周期广播
  • 建立邻接

五种报文

  • Hello 问候:建立并维护邻居关系
  • Database Description 数据库描述: 以汇总形式交换拓扑信息
  • Link State Request 链路状态请求:把从Database Description中找出需要的链路状态头部信息传给邻居,要求更新——例如当数据库信息被认为太旧时
  • Link State Update 链路状态更新:发送LSA(link state advertisements)
  • LSACK(Link State Acknowledgement) 链路状态确认应答:收到LSU报文后确认该报文

Scaling缩放

每个链路转换都会导致广播和 SPF 运行

**can build OSPF hierarchy to segregate broadcasts**对OSPF加入层次结构

Subnet

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

子网掩码Subnet Masks

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

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

Variable Length Subnet Mask(VLSM)

支持不同大小的子网


Address Resolution Protocol (ARP)地址解析协议

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4jgJUimO-1639587068886)(D:\photo\photolibrary\image-20211215170558255.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bjqhas4n-1639587068888)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzUyNTQyNw==,size_16,color_FFFFFF,t_70-163953232779344.jpeg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A8STUXbf-1639587068889)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzUyNTQyNw==,size_16,color_FFFFFF,t_70-163953234086946.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-10Skzf8e-1639587068891)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70#pic_center-163955938451950.png)]

  • IP数据包需要放入一个带有 MAC 地址的以太网帧中
  • 地址解析协议 (ARP) 发送**广播**请求 MAC 地址
  • 通常目标(host)会**单播**回复它自己的 MAC 地址
  • cached in arp table 缓存在 ARP表中

情景二:不同子网通信

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8g48sxFn-1639587068892)(D:\photo\photolibrary\image-20211215171429634.png)]

  • 通过子网掩码,得知subnet ID不同,所以属于不同子网
  • IP 数据包需要像之前一样放入带有 MAC 地址的以太网帧中
  • 不同的子网,因此需要通过路由器
  • routing table provides address of router– (138.37.35.254 here)此处为了获得router的MAC地址。发送时目的地IP还是之前的目的地,目的地MAC换成router的MAC,将此ARP数据报发给router
  • 如果在cached ARP table表中没有找到,ARP 将查找路由器的 MAC 地址。

RARP

RARP是将MAC物理地址转换成IP地址。

与DHCP的区别:RARP在功能上有点类似于DHCP协议,都是给设备分配IP地址。确切的说DHCP是BOOTP协议的升级,而BOOTP在某种意义上又是RARP协议的升级。BOOTP和RARP的区别在于RARP是在数据链路层实现的,而BOOTP实在应用层实现的,作为BOOTP的升级版DHCP也是在应用层实现的。

RARP工作原理:

  1. 将源设备和目标设备的MAC地址字段都设为发送者的MAC地址和IP地址,发送主机发送一个本地的RARP广播,能够到达网络上的所有设备,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址
  2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;
  3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;如果不存在,RARP服务器对此不做任何的响应;
  4. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Njhjd0vL-1639587068894)(D:\photo\photolibrary\watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlcm1pX2hidw==,size_16,color_FFFFFF,t_70-163955814127948.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xwi0JA94-1639587068895)(D:\photo\photolibrary\image-20211215170745142.png)]

request请求报文只有发送方MAC, 其他全部未知

感谢学姐Dear Slim.和学姐/长Hermi_Mire分享的自己的笔记!!!本文是他们的再整理, 感谢!!

3InternetProtocol相关推荐

最新文章

  1. kde重启_在Linux系统中出现KDE Plasma面板崩溃问题的解决方法
  2. 各种大型网站技术架构
  3. 项目架构开发:数据访问层之Cache
  4. C#如何解决对ListView控件更新以及更新时界面闪烁问题
  5. Flink】FLink 通讯组件 RPC
  6. 2018年宝鸡市三检文科数学题目解答
  7. 项目经理要提升需求分析的能力
  8. @TableField注解使用(忽略扫描)
  9. 转【input type=file 标签禁止让用户手动输入】
  10. 【Python】Python网络爬虫-电视剧《平凡的荣耀》数据爬取与分析
  11. C# 把汉字转换成拼音(全拼)
  12. mxGraph画图区域使用鼠标滚轮实现放大/缩小
  13. 虚拟麦克风音频输入_塑电竞强音 为专业而声 全新职业级罗技G PRO X游戏耳机麦克风震撼上市...
  14. RSAC2019观察 | 全球网络安全市场的12个“小趋势”
  15. 张朝阳的硬核物理课,给知识直播打了样
  16. python存储mp3信息_【Python】 获取MP3信息replica
  17. 基于UG电动汽车传动系统减速器方案优化设计【说明书(论文)+任务书++CAD图纸+答辩稿】
  18. mathtype分隔符显示与隐藏
  19. 摆的频率公式_单摆周期的公式推导
  20. 4、福尔摩斯到某古堡探险

热门文章

  1. 智能家居传感器:BME680--树莓派3B+ 搭配BME680的数据读取温湿度和气压。树莓派IIC BME680算法库完整版
  2. Linux下的开源免费杀毒软件Clamav
  3. 微信公众平台推文内可以添加文件了吗?
  4. 苹果cms官网源码下载
  5. 也是这个道理的飞秋下载
  6. 电感 温升电流和饱和电流 MAX小于TYPE值
  7. electron隐藏默认菜单
  8. Linux下如何播放CSF格式视频
  9. 实例渲染(Instanced Rendering)
  10. React - Initial Rendering(初始化渲染)