当前位置: 首页 > news >正文

计算机网络学习(四、网络层)

目录

一、IPV4地址编址方法

1.分类编址方法

(1)概述

(2)A类网络地址具体

(3)B类网络地址具体

(4)C类网络地址具体

(5)总结

2.划分子网的编址方法

3.无分类编址方法

(1)概述

(2)做路由聚合

二、IPV4地址应用规划

1.使用定长子网掩码划分子网

2.使用边长的子网掩码划分子网

三、报文转发过程

1.地址解析协议ARP

2.报文转发过程

四、IPV4数据包格式

1.格式介绍

2.分片

五、路由表

1.静态路由

2.路由选择协议

(1)概述

(2)路由信息协议RIP

①:概念介绍

②:重要特点

③RIP的基本工作过程开始的时候,每个路由器知道自己和直连网络的距离为1。

④:缺点

(3)开放最短路径优先OSPF

①:边的权重

②:邻居关系的建立和维护

③具体过程

④OSPF扩展

(4)边界网关协议BGP

六、ICMP协议和VPN,NAT技术

1.ICMP协议

(1)差错报告报文

(2)ICMP请求报文

2.虚拟专用网VPN

(1)内联网VPN

(2)外联网VPN

3.NAT技术

七、IP多播技术

1.为什么有多播技术

2.多播地址相关

3.在局域网上进行硬件多播

4.因特网多播需要的协议

(1)IGMP网际组管理协议

①:加入多播组

②:查询多播组

③:退出多播组

(2)多播路由选择协议

①: 基于源树的多播路由选择

②:基于共享树的多播路由选择

八、移动IP技术


一、IPV4地址编址方法

1.分类编址方法

(1)概述

注意事项

A, B, C类地址都是单播地址,可以分配给路由器接口或者网络各个主机

主机号全0的地址是网络地址,不能分配给主机或者路由器接口

主机号全1的地址是广播地址,不能分配给主机或者路由器接口

(2)A类网络地址具体

(3)B类网络地址具体

(4)C类网络地址具体

(5)总结

   

2.划分子网的编址方法

由于一个C类网络地址,最大可分配的IP地址的数量是254,那么如果我的局域网只有10台设备,那么就会造成浪费,为了解决这个问题,引入了划分子网的编址方法。核心原理就是借一部分主机号给网络号。这样可以让可分配的网络号增加,可分配的主机号减少。

引入子网掩码,子网掩码和IP地址做与运算可以得到网络地址。所以也容易得到主机号。所以如果有了IP地址和子网掩码,就可以知道这个网络的全部信息。有了IP地址,根据前三位可以判断是A,B,C类网络地址。通过IP地址和子网掩码做与运算,可以得到网络地址。之后网络地址和IP地址比较,可以得到主机号。

3.无分类编址方法

(1)概述

这种编址方法已经不区分A,B,C类地址了。他有两部分组成,网络前缀和主机号。她又引入了叫做地址掩码的东西,这个和子网掩码效果是一样的,只是表示方法不同。比如255.255.255.0,ip地址是192.168.203.155。使用无分类编址方法是192.168.203.155/24。他和使用子网掩码的表示相同的信息。

(2)做路由聚合

二、IPV4地址应用规划

1.使用定长子网掩码划分子网

由于一共5个网络,那么可以借用3位主机号,可以8个子网,满足要求

每个子网还剩5个主机号,可以分配的主机数是32,满足要求

所有子网的子网掩码都是255.255.255.1110 000。

2.使用边长的子网掩码划分子网

首先得到每个网络中分配的地址数量,之后根据地址数量计算出需要借助一个主机号。

之后从低到高开始分配地址,先分配网络2的最多32个地址。

网络2:218.75.230.0000 0000 -》 218.75.230.0001 1111     0-》31      /27

网络1: 218.75.230.0010 0000-》218.75.230.0010 1111      32->47     /28

网络3:218.75.230.0011 0000 -》218.75.230.0011 1111      48-》63   /28

网络4:218.75.230.0100 0000 -》 218.75.230.0100 1111    64-》 79  /28

网络5:  218.75.230.0101 0000 -》 218.75.230.0101 0011  80-》83  /30

按照这种划分方法,你会发现所有的子网都不同,而且每个子网分配的IP数量不同。上面的定长的子网掩码划分每个子网的IP数量一样,相比之下比较浪费资源。

三、报文转发过程

1.地址解析协议ARP

每个计算机本地都维护了一个ARP表,他记录了在局域网中,IP和MAC地址的对应关系。

下面介绍ARP表的产生过程。

在局域网中,当A想要和B通讯的时候,需要传递的信息有A的IP地址,A的MAC地址,B的IP地址,B的MAC地址,但是开始的时候不知道B的MAC地址。

之后A在局域网中发布ARP请求报文,是一个广播,包括A的ip和MAC地址,以及想要知道MAC地址的IP地址。

对于非目标IP的主机,不理会该广播。对于目标主机,接收到ARP请求报文。把A的IP和MAC地址记录在自己的ARP表中,之后发送ARP响应报文,由于知道了A的IP地址和MAC地址,所以是单播。

2.报文转发过程

比如A要向D发送报文。

第一步,先判断目标IP和当前主机是否处于同一个子网,很明显并不是。

之后A就需要将报文发送给A的默认网关,也就是路由器0接口。包括A的IP和MAC地址,D的IP地址,以及路由器0的MAC地址。

之后路由器查询路由表,将报文转发到路由器接口1对应的网络。包括A的IP和MAC地址,D的MAC和IP地址。

交换机接收到报文之后,发送给D

四、IPV4数据包格式

1.格式介绍

版本就是4,表示IPV4

首部长度表示这个IP数据包首部有多长,因为后面有40个变长字节,所以需要这个首部长度。

区分服务:没啥用

总长度:IP数据包首部加数据载荷的长度。

标识、标志、片偏移:分片的时候使用,下面介绍

生存时间:每经过一个路由器,生存时间--,减到0路由器就不再对其进行转发

协议:

首部校验合:校验,看一下这个IP数据报的首部是否在传输过程中变化了,变化了就不要。

2.分片

由于数据链路层规范了每个数据帧的最大长度,所以如果当前IP数据报太长的话,就需要分几次分发。

五、路由表

1.静态路由

手动配置路由表

0,0,0,0表示任意目标网络,如果路由表中没有其他网络满足条件,那么就执行这个对应的下一跳。

路由转发遵循最长前缀匹配。如果要转发到192.169.2.1,那么对于下面的这个路由表,第三个,第四个都满足条件。但是第四个的满足条件的前缀更长,所以转发到第四个。

2.路由选择协议

(1)概述

因特网上的网络被划分成了一个一个的自治系统,自治系统之内的路由使用内部网关协议IGP,自治系统之间的路由使用外部网关协议EGP。

(2)路由信息协议RIP

①:概念介绍

RIP要求自治系统内的路由器都要维护一个自己到其他路由器的距离记录。他到直连网络的距离为1,每经过一个路由器,距离+1。

RIP最大距离为15,超过15认为不可达,所以适用于小型互联网。

RIP的报文使用UDP进行封装,端口号为520

②:重要特点

RIP有下面三个重要特点

③RIP的基本工作过程
开始的时候,每个路由器知道自己和直连网络的距离为1。

相邻路由器之间交换路由信息,比如R1和R2,R1和R3,中间只有一个网络的。

之后不断的交流路由信息,最后所有路由表都会收敛。

下面介绍具体工作过程

D接收到C的路由表,把整个路由表的RIP距离全部+1.

之后如果D本来没有的,新的路由表有,那么直接加入新的条目。

对于都有的,如果新的条目比较短,那么加入。

如果新的条目并比较长,比如到N2,原来通过C到N2的距离是2,现在变成了5,也是通过C,这说明网络变化了,这种需要更新。因为两个都是C。如果是不同的,那么不用更新。

④:缺点

坏消息传的慢,如下图,N1突然故障,那么R1到N1距离瞬间变成16。但是此时R2告诉R1,到N1的距离是2,那么R1就改变路由表为3.之后告诉R2到N1为3,之后R2改自己路由表为4.之后这样一直改来改去的,直到16,花费很长时间。

(3)开放最短路径优先OSPF

①:边的权重

两个路由器之间边有不同的权重,权重的计算方式如下。

②:邻居关系的建立和维护

不使用TCP,UDP那些协议。直接IP数据包协议号89。

问候每10s发送一次,如果40s没收到邻居的问候,认为邻居不可达。

链路状态更新依靠链路状态通告LSA,其实这个LSA发布的通过洪泛法发送,发送的是自己当前知道的图的信息。之后每个路由器都可以得到当前自己系统的所有图的信息。之后就可以寻路了。

③具体过程

首先进行问候

之后发送彼此的数据库描述,也就是彼此的图

之后每个路由器检查一下图是否有啥不一样,因为是摘要信息,所以没法直接更改。

如果有不一样的,那么发送链路状态请求,之后对方把链路状态需要更新的信息发过来。

之后接收到更新之后,反馈确认一下。

每30min,或者链路状态发生改变,就会发送链路状态更新报文,这个是每个路由器的详细的图的结构,数据库描述是摘要。

④OSPF扩展

由于交换信息泛洪发送,那么自治系统很大的话,导致网络很繁忙,为了解决这个问题,那么就把自治系统划分成一个一个区域,其中包括一个主区域。

每个区域都有一个区域标识符32位。主区域是0,0,0,0。

其中R3,R4,R7是区域边界路由器。区域内泛洪发送呢,之后区域内的图通过区域边界路由发送到主区域,主区域将自己的图 以及其他区域的图发送给区域边界路由器。最后自治系统的每个路由器都可以得到自治系统的图。

主区域还有一个路由器,如图中的R6,用来和其他自治系统链接。

(4)边界网关协议BGP

每个自治系统都有一个BGP发言人,这些路由器之间进行通讯

建立TCP链接,端口号是179,之后交换路由信息。

这种其实非常适合多级的网络结构

这个BGP报文从低级向高级传递。

所有的路由信息都发给主干网,主干网知道所有网络的路由信息。越低级的自治系统知道的信息越少。

比如AS4自己内部通讯,那么由于有图,直接查询路由表直接通讯就好了。

如果和AS5通讯,那么内部找不到对应的网络,之后发送给默认路由,默认路由就是AS2,AS2再把消息转发给AS5。这样实现多级的网络转发。

六、ICMP协议和VPN,NAT技术

1.ICMP协议

ICMP报文分为差错报告报文和询问报文两大类

(1)差错报告报文

终点不可达:比如在局域网中,向一个主机发送ICMP报文,但是这个主机关机了,就没办法回复。所以路由器就收不到ICMP回复信息。就会发送一个终点不可达的回复报文。

源点抑制

时间超过

参数问题

改变路由:每个主机有默认网关,但是也可以通过通讯改变这个默认网关。当默认网关路由器发贤有更短的路由的时候,他就会给主机发送改变路由ICMP差错报文,之后主机就改变自己的默认网关了。

(2)ICMP请求报文

下面介绍ICMP两个简单应用

ping命令测试连通性,这个不依赖TCP。

traceroute路由跟踪

原理就是从TTL=1,开始不断的递增。就可以知道下一步的路由器是谁了。因为TTL扣到0的时候就会发送一个时间结束的差错检测报文。

2.虚拟专用网VPN

本质是两个地方需要进行通讯,如果使用专线,那么成本太高。所以需要借助互联网,但是为了防止被监听,所以需要加密。

(1)内联网VPN

下面是整体过程

首先封装IP数据包,源地址和目标地址都是专用地址。

之后在路由器哪里把这个IP数据包作为数据载荷加密后重新封装IP数据包。源地址和目标地址都是两个专用网的地址。

在专用网络路由器把数据报进行解密,之后再发送给对应的主机。

(2)外联网VPN

如果我在家想要访问学校的网站,那么就不是处于两个专用网之间了,所以需要使用外联网VPN,借助专用的VPN软件。

本质上就是通过VPN软件实现数据的加密,之后发送到学校的VPN服务器里,之后学校的VPN服务器解密,之后帮助我们访问学校的网站。

3.NAT技术

针对于IPV4地址不够用的问题, 提出了NAT地址转化技术,将端口号给利用起来。

七、IP多播技术

1.为什么有多播技术

为什么要有IP多播技术,就是有多个用户向服务器请求视频把,服务器不能把视频发送很多份,这样比较占流量,解决办法就是使用多播技术,服务器发送几份,后面让路由器转发。

2.多播地址相关

3.在局域网上进行硬件多播

导致不同多播IP地址可能映射相同的多播MAC地址。

为了解决不同的多播IP地址对应相同的多播MAC地址,所以需要利用网际层过滤。

当一个多播数据报发送过来的时候,前两个主机检测到MAC地址符合条件,传递给网际层,之后第一个网际层IP地址不符合条件抛弃,只有第二个接受。

4.因特网多播需要的协议

想要多播,必须要设计因特网上路由转发和局域网上的转发问题。

(1)IGMP网际组管理协议

这个协议的主要目的是让路由器知道局域网下都有那些多播地址。

①:加入多播组

开始的时候AB希望加入226.0.9.26多播组,C属于226.128.9.26多播组,D不属于任何多播组

之后B发送IGMP成员报告报文,由于是共享总线,所有主机和路由器都可以接收到。主机D没有多播,主机C多播地址不同,所以两个主机都抛弃该数据包。主机A发现和自己的多播地址相同,于是它撤销准备发送的IGMP成员报告报文。路由器接收到IGMP成员报告报文后,将其加入到自己的多播组列表里面。

②:查询多播组

路由器发送IGMP成员查询报文。报文内容0.0.0.0表示查询所有的多播组。比如一个主机可能属于多个多播,那么把所有的多播组都给我回复过来。

224.0.0.1表示在局域网中,所有属于多播组的都要听到请回复。

主机在接收到IGMP成员查询报文的时候,每个主机随机生成一个回复时间。比如B在2s后相应,相应之后数据总线广播。C,D直接抛弃。A接收到之后,发现和自己多播地址一样,那么撤销自己将要发送的相应报文。路由器接收到响应报文之后,加入到自己的多播组列表。

路由器每隔125s发送一次查询报文,来更新自己的多播组列表。也可以查询特定的多播组,把0.0.0.0换成特定的多播组就可以了。

网络中的多播路由器可能不止一个,所以需要选举一个当多播路由器都可以了。选举方法是,每个多播路由器发送IGMP成员查询报文,如果其他的路由器看到比自己IP地址更小的多播路由器,那么这个路由器就退出选举,那么最后只有IP地址最小的路由器是多播路由器。

③:退出多播组

发送IGMP退出报文。报文的内容是要退出的多播组,目的地址固定为224.0.0.2。路由器收到后,发送一个多播组查询报文,更新自己的多播组列表。

(2)多播路由选择协议

①: 基于源树的多播路由选择

假设:

  • 源 S 在校园网出口路由器 R1

  • 三个接收者 H2、H3、H4 分别在 R2、R3、R4 的 LAN 里

建树过程:

  1. H2、H3、H4 各自向本地路由器 IGMP 加入组 G。

  2. R2、R3、R4 向源 S 方向发起 “我要 G” 的请求。

  3. R1 收到这些请求后,沿着 S→R2、S→R3、S→R4 的最短路径,建立树。

  4. 树的根是 S,分支点可能是 R1(因为它连着三条出接口)。

在建立树的过程中,每个路由器会维护一个表。这个表里面是那个路由器发送请求,源是哪里,多播地址是什么。 当源路由器发送多播的时候,这个路由器,就根据源路由器和多播地址,查询表得到需要转发给哪些路由器。

②:基于共享树的多播路由选择

首先很多路由器选举出来一个中心路由器

所有的其他路由器像上面的方法一样,在中心路由器注册。

之后中心路由器在和源路由器连接在一起。

当源路由器发送的时候,直接向中心路由器发送,中心路由器转发。

这样做的好处是,对于一个源路由器,只需要建立一个树就行了,发给中心路由器。而第一种方法,每个多播地址都要建立一个多播转发树。

八、移动IP技术

当一个设备在不同的WIFI之间穿梭的时候,如何保证这个设备与其他设备的通讯。本质上需要保证这个设备的IP地址不变,但是不同局域网下,肯定被分配了不同的IP地址,所以移动IP技术就是用来解决这个问题。

简单来说,移动设备初始属于218.75.230.3/24这个网络,IP是218.75.230.16/24

之后跑到了175.1.0.0/16这个网络,之后他就会在这个网络注册一个IP地址叫做IP1吧。并向外地代理路由器表明,IP1和他的218.75.230.16/24对应关系。以及归属代理的IP地址。

之后外地代理和归属代理之间进行通讯,主要就是高速归属代理,A现在归我管,你记录一下我的IP以及A的新的IP。归属代理同时发起ARP广播,高速交换机发送给A的IP现在都发送给我。

当向A发送信息的时候,被归属代理接收到,之后它把这个消息发送给外地代理。外地代理再发送给移动主机A。

当A要个外部通讯的时候,直接用a的永久地址,之后交给外地代理转发,直接给固定主机B通讯。

http://www.dtcms.com/a/392271.html

相关文章:

  • 开启科学计算之旅:《MATLAB程序设计》课程导览
  • MATLAB | 数学模型 | 传染病 SIR 模型的参数确定
  • MATLAB基本运算(2)
  • 小红书数据分析面试题及参考答案
  • SpringCloudStream:消息驱动组件
  • ret2text-CTFHub技能树
  • VirtualBox 7 虚拟机的硬盘如何扩大?
  • React新闻发布系统 权限列表开发
  • 23种设计模式之【策略模式】-核心原理与 Java 实践
  • 前端实战从零构建响应式井字棋游戏
  • Java中的equals()与hashCode()
  • 【绕过open_basedir】
  • 如何用户细分
  • 福彩双色球第2025109期篮球号码分析
  • 思考:客户端负载均衡和服务器负载均衡有什么区别?
  • 网络编程day04/05原始套接字
  • Yarn命令与npm命令的区别与联系(npm:Node.js的官方包管理工具;Yarn:Facebook开发的JavaScript包管理工具)
  • 【大语言模型 67】梯度压缩与稀疏通信
  • LeetCode第365题_水壶问题
  • OpenCV:DNN 模块实现图像风格迁移
  • 锤子助手插件功能六十四:禁用视频前置摄像头镜像
  • OpenHarmony NFC Tag驱动深度剖析:从HDF框架到NDEF读写全流程实战
  • 黑马头条_SpringCloud项目阶段四:多媒体短文章提交功能实现详解
  • TraceID串联数据孤岛:勤源全链路可观测性平台破解微服务“黑箱困境”
  • 随机梯度下降(SGD)算法及其在机器学习中的应用
  • 趣谈bug - the Norway problem
  • $attrs 和 $listeners 的使用场景和用法是什么?
  • [Linux]学习笔记系列 -- lib/radix-tree.c 基数树(Radix Tree) 整数键到指针的高效映射
  • Scikit-learn Python机器学习 - 回归分析算法 - 线性回归 (LinearRegression SGDRegressor)
  • ts的内置工具类型