首页 > 其他分享 >计算机网络14 Internet网络层主要功能 IP协议 路由协议 ICMP协议

计算机网络14 Internet网络层主要功能 IP协议 路由协议 ICMP协议

时间:2022-11-17 10:55:30浏览次数:82  
标签:协议 子网 14 ip IP地址 地址 分组 IP

1 主机、路由器网络层主要功能

 

2 IP数据报

2.1 图示

 

2.2 字段详细介绍

1)版本号

  占4位:IP协议的版本号。4表示IPv4,6表示IPv6。

 

2)首部长度

  占4位:表示IP分组首部长度。

  以4字节为单位。如值为5,则表示首部长度为20字节(5*4=20)

 

3)服务类型TOS

  占8位:指示期望获得哪种类型的服务

  1998 年这个字段改名为区分服务   只有在网络提供区分服务(DiffServ)时使用   一般情况下不使用,通常IP分组的该字段的值为00H   4)总长度   段占16位:IP分组的总字节数(首部+数据)   IP分组最大的总长度:65535B   最小的IP分组首部:20B   IP分组可以封装的最大数据:65535-20=65515B   5)生存时间   占8位:IP分组在网络中可以通过的路由器数(或跳步数)   路由器转发一次分组,TTL减1   如果TTL=0还没到达目标,路由器则丢弃该IP分组   6)协议   占8位:指示IP分组封装的是哪个协议的数据包   6为TCP,表示封装的为TCP段;   17为UDP,表示封装的是UDP数据报   7)首部校验和   占16位:实现对IP分组首部的差错检测   计算校验和时,该字段置为全0参与计算   采用反码算数运算求和,和的反码作为首部校验和字段   由于经过中间节点(路由器)会对首部进行设置,首部会发生变化,所以逐跳计算、逐跳校验   8)源IP地址、目的IP地址   各占32位:分别标识发送分组的源主机/路由器(网络接口)和接收分组的目的主机/路由器(网络接口)的IP地址   9)选项字段   长度可变,范围在1~40B之间:携带安全、源选路径、时间戳和路由记录等内容。实际上很少被使用   10)填充   长度可变,范围在0~3B之间:目的是补齐整个首部,符合32位对齐,即保证首部长度是4字节的倍数   11)标识、标志位、片偏移几个字段在下面IP分片重组进行说明  

3 IP分片和重组

3.1 最大传输单元

  网络链路存在MTU (最大传输单元),也就是链路层数据帧可封装数据的上限。   不同链路的MTU不同  

3.2 链路MTU不同引发的问题

  如下图,链路L1的最大输出单元MTU1大于L2的最大输出单元MTU2   主机H1向H2发送一个分组,大小为MTU1,经过L1,到达路由器   路由器要把它转发到L2这个接口,但是L2的最大输出单元MTU2是小于MTU1的,无法经过L2。可以通过分片和重组来解决这个问题。   

 

3.3 分片和重组

  大IP分组向较小MTU链路转发时,可以被“分片” (fragmented)

  1个IP分组分为多片IP分组IP分片到达目的主机后进行“重组”(reassembled)。注意,重组是到达目标主机后才进行的,在中间节点不会重组,原因很简单,如果分片了到达下一个路由器就重组,在下一次遇到最大输出单元较小的链路又得分片。

 

3.4 首部几个相关的字段

1)标识(ID)

  占16位:标识一个IP分组

  IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识。一个数据报文拆分的多个分组的ID相同   2)标志位   占3位。第一位保留,第二位是DF (Don't Fragment)。第三位是MF (More Fragment)   DF:     DF=1:禁止分片;     DF=0:允许分片   MF:     MF =1:非最后一片;     MF =0:最后一片(或未分片)   

 

 3)片偏移

  占13位:一个IP分组分片封装原IP分组数据的相对偏移量。片偏移字段以8字节为单位。

  如一个报文的大小为128,每个分组可以封装的数据为32,那么第一个分组的偏移量为0(32/8*(1-1)),第二个分组的偏移量为4(32/8*(2-1)),第三个分组的偏移量为8(32/8*(3-1)).......

 

3.5 分片过程

  假设原IP分组总长度为L,待转发链路的MTU为M

  若L>M,且DF=0,则可以/需要分片   分片时每个分片的标识复制原IP分组的标识   通常分片时,除最后一个分片,其他分片均分为MTU允许的最大分片   一个最大分片可封装的数据应该是8的倍数,   一个最大分片可封装的数据为(除法向下取整):减掉的20是首部的大小,实际上分片能存储的数据的大小是M-20,然后向下取8的倍数      需要的总片数为(除法向上取整):减掉的20是原IP分组的首部的大小,L-20就是它存储的数据大小,除以每个分片能存储的数据大小,向上取整

  

   每片的片偏移字段取值为:i表示第几个分片

  

  每片的总长度为:除了最后一个分片,其它分片都是d+20

   

  每片的MF标志位为:

 

3.6 示例

 

 

4 IP编址

  分为IPV4和IPV6,此处将IPV4

  

4.1 简介

  IPV4地址长度是32位。由两部分组成,网络号和主机号。

  通常写成10进制的200.221.222.101这种形式,便于使用和记忆。200.221.101就是网络号,101就是主机号。

  

4.2 IP子网

  IP地址具有相同网络号的设备接口,不跨越路由器(第三及以上层网络设备)可以彼此物理联通的接口。   如下图,黄色框起来的就是一个个的子网。

  

 

5 有类IP编址

5.1 IP分类

  如下图,采用二分法把ip地址分为5类

  A类地址,第一位是0的所有IP,占了全部IP的50%。它的前8位是网络号,后24位是主机号

  B类地址,第一位是1,第二位是0的所有IP,占了全部IP的25%。它的前16位是网络号,后16位是主机号

  C类地址,第一位是1,第二位是1,第三位是0的所有IP,占了全部IP的12.5%。它的前24位是网络号,后8位是主机号

  D类地址,第一、二、三位是1,第四位是0的所有IP,占了全部IP的6.5%。不区分网络号和主机号。用来命令或标识Internet网络中一组主机。只能作为IP分组中的目的地址,不能作为发送地址。也叫作多波地址

  E类地址,第一、二、三、四位是1的所有IP,占了全部IP的6.5%。不区分网络号和主机号。作为研究使用。

  

 

5.2 特殊的IP

 

5.3 私有IP地址

  地址按用途分为私有地址和公有地址两种。所谓私有地址就是在A、B、C三类IP地址中保留下来为企业内部网络分配地址时所使用的IP地址。   私有地址主要用于在局域网中进行分配,在 Internet上是无效的。这样可以很好地隔离局域网和 Internet。私有地址在公网上是不能被识别的,必须通过NAT将内部IP地址转换成公网上可用的IP地址,从而实现内部IP地址与外部公网的通信。   公有地址是在广域网内使用的地址,但在局域网中同样也可以使用,除了私有地址以外的地址都是公有地址。
  私有ip属于非注册地址,专门为组织机构内部使用。RFC1918定义了私有IP地址范围:     A:10.0.0.0~10.255.255.255 即10.0.0.0/8     B:172.16.0.0~172.31.255.255即172.16.0.0/12     C:192.168.0.0~192.168.255.255 即192.168.0.0/16

  

6 IP子网划分和子网掩码

6.1 子网再划分的原因

  A类的网络号有8位,且第一位固定是0,所以A类的子网可以有2^7-1个。每个子网下面可以分配的ip数为2^24-1

  B类的网络号有16位,且前两位固定是10,所以B类的子网可以有2^14-1个。每个子网下面可以分配的ip数为2^16-1=65535

  C类的网络号有24位,且前三位固定是110,所以C类的子网可以有2^21-1个。每个子网下面可以分配的ip数为2^8-1=255

  由此可见,A的子网数最少,但是每个子网可分配的ip最多

  现在一个组织,有2000台主机,给他C类ip,才可以分配255个ip,肯定是不够的,给它一个B类ip,又太浪费,B类可分配65565个,而他只需要2000个,大量的ip浪费了。

  所以,需要一种手段,把子网分成更小的子网。

 

6.2 子网号

  在之前,ip地址分为网络号和主机号。现在,加上一个子网号。它占用原来的主机号的前几位来表示子网号,具体占用几位不固定。 

  通过网络号+子网号来表示一个更小的子网。

  

6.3 子网掩码

6.3.1 简介

  子网掩码也是32位,形式和ip一样。

  取值NetID、SubID位全取1,HostID位全取0

  例如:A网的默认子网掩码为:255.0.0.0,B网的默认子网掩码为:255.255.0.0,C网的默认子网掩码为:255.255.255.0

        借用3比特划分子网的B网的子网掩码为:255.255.224.0(11111111 11111111 11100000 00000000)

 

6.3.2 子网划分示例

  子网201.2.3.0,255.255.255.0被子网掩码255.255.255.192(11111111 11111111 11000000 00000000)划分为4个等长的子网

    201.2.3.0-201.2.3.63

    201.2.3.64-201.2.3.127

    201.2.3.128-201.2.3.191

    201.2.3.192-201.2.3.255

  

 

6.3.3 路由怎么确定转发到哪个子网

  将IP分组的目的IP地址与子网掩码按位与运算,提取子网地址

  如:目的ip地址为172.32.1.112,子网掩码255.255.254.0

   

  子网地址:172.32.0.0(子网掩码:255.255.254.0)

  地址范围:172.32.0.0~172.32.1.255   可分配地址范围:172.32.0.1~172.32.1.254   广播地址:172.32.1.255      不用位与运算来分析一下     172.32.1.112是B类ip,默认掩码是255.255.0.0     现在掩码是255.255.254.0(11111111 11111111 11111110 00000000)     借用了7位来划分子网,也就是把172.32这个B类子网划分为2^7个小的子网     第一个小的子网就是172.32.0.0-255 以及172.32.1.0-255,第而个小的子网就是172.32.2.0-255 以及172.32.3.0-255,.......     现在,目标地址是172.32.1.112,属于第一个子网  

6.4 一个C类子网借用3位划分子网举例

    注意,第四位组取值范围中,红色起始值和绿色终止值都属于特殊ip

 

7 CIDR和路由聚合

7.1 简介

  无类域间路由(CIDR: Classless InterDomain Routing)   消除传统的 A 类、B 类和 C 类地址界限,之前采用NetID+SubID来划分子网,现在采用Network Prefix (Prefix)来划分子网,Prefix可以任意长度   融合子网地址与子网掩码,方便子网划分   无类地址格式:a.b.c.d/x,其中x为前缀长度   

 

7.2 示例

  原先的表示:子网201.2.3.64,255.255.255.192→201.2.3.64/26  

7.3 CRID的优点

  由于Prefix可以任意长度,所以可以简单的自由划分任意大小的子网。也可以把多个子网合并成一个大的子网。

    提高IPv4 地址空间分配效率     提高路由效率  

7.4 路由聚合示例

  如下图,转发表中有三条记录。223.1.0.0/23,223.1.2.0/24,223.1.3.0/24,它们的接口都是2,那么就可以合并为223.1.0.0/22。这样子,路由转发表就把三条合并为一条了,减少了记录数。   223.1.0.0/23包含下面这些ip     223.1.00000000.0-255     223.1.00000001.0-255   223.1.2.0/24包含下面这些ip     223.1.00000010.0-255   223.1.3.0/24包含下面这些ip     223.1.00000011.0-255   223.1.0.0/22包含下面这些ip,刚好是上面三个合并的范围     223.1.00000000.0-255     223.1.00000001.0-255     223.1.00000010.0-255     223.1.00000011.0-255      

 

7.5 最长前缀匹配优先

  如果,在路由转发表中匹配到多条记录,选取最长前缀(最具体)的那个范围

  如路由转发表有下面两条记录

  200.23.16.0/20  接口1

  200.23.18.0/23  接口2

  目标ip200.23.18.1,两个都可以匹配上,有限选择最长前缀的,所以选择接口2

 

8 DHCP协议

8.1 简介

  DCHP(Dynamic Host  Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网

 

8.2 主机获取ip地址

  主机获取ip地址有两种方式

    硬编码-静态配置

    动态主机配置协议-DHCP: Dynamic Host ConfigurationProtocol,从服务器动态获取

 

8.3 静态配置

  默认网关就是注意直接连接的路由器的公网ip地址,通过它可以连接网络

 

8.4 DHCP动态获取

8.4.1动态主机配置协议-DHCP简介

  它是从服务器动态获取的,主要有下列内容     IP地址     子网掩码     默认网关地址     DNS服务器名称与IP地址   “即插即用”   允许地址重用   支持在用地址续租(服务器分配的ip是有时限的)   支持移动用户加入网络   8.4.2 动态获取过程   1)主机广播 “DHCP discover”(发现报文)   2)DHCP服务器利用 “DHCP offer” (提供报文) 进行响应   3)主机请求IP地址: “DHCP request” (请求报文)   4)DHCP服务器分配IP地址: “DHCP ack” (确认报文) 

  

 

 8.4.3 路由器和DCHP

  现在的家用路由器都具备提供DHCP服务的能力,可以说现在的家用路由器是DHCP服务器、DNS 服务器、NAT服务器的集合体。

  默认情况下路由器的DHCP服务器是启动的,并不需要用户进行配置。DHCP服务器给你连接该路由器上面的计算机分配IP地址、DNS服务器地址和默认网关地址。

 

9 网络地址转换NAT

9.1 简介

  现在,我们日常生活中,计算机连接网络都是在一个路由器下的子网,且分配的都是私有ip,私有ip是不能直接和公网ip进行通信的,需要进行网络地址转换

  如下图,右侧本地家庭网络都是采用的私有ip,想要与Internet进行通信,需要路由器进行一次网络地址转换。

  10.0.0.1,10.0.0.2,10.0.0.3全部转换为138.76.29.7。那么,怎么区分来自哪台计算机呢,采用端口号来区分

 

 

9.2 网络地址转换(NAT)

  IPv4地址耗尽,为了能够让计算机都能有ip可以,ipv4中设置了一些ip为私有ip,它们可被重复使用。再结合NAT技术就可以让使用私有ip的用户上网了。   本地网络设备IP地址的变更,无需通告外界网络   变更ISP时,无需修改内部网络设备IP地址   内部网络设备对外界网络不可见,即不可直接寻址(安全)   

9.3 NAT的实现

1)替换   使用(IP地址,新端口号)替换每个外出IP数据报的(源IP地址,源端口号)   2)记录   将每对(IP地址, 新端口号) 与(源IP地址, 源端口号)的替换信息存储到NAT转换表中   3)替换   根据NAT转换表,使用(源IP地址, 源端口号)替换每个进入内网IP数据报的(目的IP地址,目的端口号),即(NAT IP地址, 新端口号)

  

9.4 示例

 

9.5 NET端口号范围

  tcp/udp端口仅仅是个标识数字,没有硬件上的意义,范围0-65535,NAT就利用它解决IP地址不足的问题。

  所以NET可以同时支持605535个多并行连接

 

9.6 NET穿透问题

9.6.1 说明

  如下图,在内网有个服务,这个内网外的其它用户想要访问它,该怎么访问呢

  

 

 9.6.2 解决方法

1)静态配置NAT

  将特定端口的连接请求转发给服务器 ,如配置(138.76.29.7, 2500) 总是转发给(10.0.0.1, 25000)

 

2)中继(如Skype) 

  NAT内部的客户与中继服务器建立连接

  外部客户也与中继服务器建立连接

  中继服务器桥接两个连接的分组 

  除了上面两种方法,还有其它的一些方法就不介绍了

标签:协议,子网,14,ip,IP地址,地址,分组,IP
From: https://www.cnblogs.com/jthr/p/16896555.html

相关文章

  • kubeadm修改kube-controller-manager和kube-scheduler的bind ip
    kubeadm部署k8s集群,kube-controller-manager和kube-scheduler的监听IP默认为127.0.0.1,如果需要将其改为0.0.0.0用以提供外部访问,可分别修改对应的manifest文件。kube-cont......
  • JavaScript语法-与html结合方式、注释和数据类型
    JavaScript语法-与html结合方式与HTML结合方式:1、内部JS:定义<script>,标签体内容就是js代码2、外部JS:定义<script>,通过src属性引入外部的js文件注意:1、<script>可以......
  • 场效应管SI7114DN-T1-GE3(11.7A)SM3323NHQAC-TRG(54A)MOSFET NCH 30V
    1、型号:SM3323NHQAC-TRGSM3323NHQAC描述:N沟道30V54A封装:DFN3x3D-82、型号:SI7114DN-T1-GE3SI7114DN描述:MOSFETN-CH30V11.7APPAK1212-8FET类型:N通道技术:MOSFET(金......
  • vue3的<setup script>中使用異步函數
    由於vue3的setup一般情況下不允許為async,如果要將setup變成async,則要引入異步組件 <Suspense> <template#default> <SwitchMaintenanceUpdate/> </template> </S......
  • JavaScript语法变量一元运算符以及算数和比较运算符
    JavaScript-语法-变量-一元运算符运算符:一元运算符:只有一个运算数的运算符++  --  +(正号)++  --  :自增(自减)++(--)......
  • NOTE_vanilla+typescript
    E:\song\threejs_learn\vite-project\index.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><linkrel="icon"type="image/svg+xml"......
  • Day14.1:递归
    递归理解:当A方法调用A方法,也就是方法自身调用自身。案例:定义阶乘的方法,并求出5!。publicclassDemo{publicstaticvoidmain(String[]args){System.out......
  • Day14:可变参数
    可变参数我们在定义变量的时候,有时候会遇到功能相似,但参数个数不相同的情况,如果我们每种情况都定义方法,会很麻烦且多余,于是我们使用到了另外一种方式:可变参数。可变参数,顾......
  • HP服务器修改IPMI密码
    今天发现1台HPDL380G9服务器IPMI密码忘记了,不能重启服务器,只能在操作系统层进行重置密码了。HP服务器修改IPMI密码找管理员要来root权限,登录后发现已经安装IPMITool工......
  • ACV1引擎寻找ScriptHook地址
    ACV1引擎寻找ScriptHook地址0x00前言为了实现不封包即对游戏的脚本文件进行修改此处需要Hook相关位点Hook功能已经在ACV1FileHook中实现但是需要寻找两个地址第一个......