ip地址详解

1、网络层协议

1、ip协议

  • 指的标识不同设备的地址,网卡的ip地址

  • 实现数据包的寻址和转发,寻址就是根据目标Ip这条路来进行转发

2、ip报文格式

  • ip头部,最小是20byte,最大是40byte

img

  1. 20个字节包含了以下字段

    • ip协议的版本号,4,version

    • 包头长度+可选长度的总大小,header length

    • 服务类型字段,type of service,做Qos用的,将报文做一个等级分类,等级高的,转发效率就快一点,等级低的,就慢一点,根据优先级来判断,网络优化

    • 报文的总长度,就是ip头部,tcp头部,用户数据这些长度

      • 用总长度-ip头部 = 段的大小(用户数据+tcp)
    • TTL值,生存时间,源主机到目标主机的时间,默认值64,128,255,每经过一次路由器的话,就会减1,最终为0的时候,就会丢弃,避免了带宽的占用,就是解决了环路产生之后的问题,不能防止环路,只能发生环路之后最终解决的问题

      • 路由环路,就是报文在一系列路由之间进行转发,但是无法到达目的主机

      • ttl值没有到0,会一直环下去

      • 正常情况下,ttl的值不会为0

    • protocol,协议号,这个ip报文的上层协议,tcp是6,udp是17,icmp是1,传输的时候,目标端根据这个协议号,就交给对应的协议进程进行处理

    • 包头校验格,目标主机算出来的值与原值不同的话,直接进行丢弃

    • 源ip地址和目的ip地址

    img

  2. ip分片

    • 网络层中的ip,来进行分片,因为从应用层数据下来的数据太长了,所以的话,进行分片传输,在各个链路上面进行传输
    1. 分片流程
      • 在一个链路上面规定链路层数据帧的最大长度,称为链路层MTU

      • 就是ip数据包+帧头和帧尾,大于链路层的mtu的话,就将这个数据报文进行分片的操作从而进行传输,适配链路传输的大小

      • 第一个分片包含了完整的传输层协议头,tcp或者udp,后面的分片包含数据部分,不会重复发送传输层的头信息

      • 最后的接受者,进行重组分片的数据

    • identification,flags,fragment offset,这三个字段进行ip报文的分片

    • identification 标识这一组唯一的id

    • Fragment Offset 表示当前分片在原始数据包中的位置,单位是8字节,如果是值为2的话,就是2*8距离原始数据包的距离

    1. flags 就是3个位的字段

      • bit0(Reserved bit) 保留未使用,必须为0

      • bit1(DF - Don’t Fragment) ,设置为1 数据包不应被分片,若无法进行传输,则丢弃数据包;0的话则代表可以分片;由上层的应用来决定的

      • bit2(MF - More Fragments) 设置1 ,后面还有更多的分片,就不是最后一个分片;如果是最后一个的话,则设置为0

img

2、ip地址介绍

1、ip地址基础

  1. 作用

    • 用于标识一个节点,或者网络设备的接口,网卡上面有地址

    • 用于ip报文在网络中寻址

  2. 计算

    • ip地址的长度为32bit,4个字节,总的长度为2^32,所以的话,不够用,每一个都有2个选择,总共有32位,

    • ipv6,2^128次方,128比特,16个字节,完全够用

    1. 点分十进制

      • 11000000 .10101000 .00001010 .00000001 二进制

      • 192.168.10.1 十进制,相乘

      • 有一个非常简单计算,用于简单的计算

      128 64 32 16 8 4 2 1
      
      22转换为二进制因为16+4+2=22所以话,对应的话就为1  = 00010110
      转换为10进制的话,
      
      
      # 上面是简单的算法,下面是常用的算法
      
      100转换为二进制的话
      # 100-128 不能减,所以为0
      # 100-64=36
      # 36-32=4,可以减,所以为1
      # 到4才能减,所以为1
      最后的结果为 01100100 
      
      # 转换为10进制的话,1*2^2+1*2^5+1*2^6等于100
      
      
    2. ip地址取值范围

      • 0.0.0.0~255.255.255.255,也就是32个0或者32个1

2、ip地址的构成,计算

  1. 网络部分和主机部分组成

    • 网络部分用来标识一个网络,主机部分标识一个网络中的不同主机

    • 网络号代表所属的网段,主机号代表网段里面的主机

    • 对于不同的网段来说,主机号可以重复的使用

    • 子网掩码就是区分ip地址的网络号,从而区分网段

  2. 子网掩码

    • 子网掩码的相同,就是相同的网段

    • 有连续的0和1组成

    • 0代表主机位,1代表网络位

    192.168.45.120/25 --- 
    
    # 进行与运算 1跟1才为1,其余全为0
    25 -----  10000000
    
    120 ----  01111000
    
    # 计算值
    00000000 
    
    得出网络地址为192.168.45.0/25
    可用地址为 2^7 - 2(广播地址和网络地址) = 126个可用地址
    算出了网络地址,直接将主机位后面全部为1,就能算出广播地址
           
    01111111 = 127
    
    192.168.1.100/16
    
    网络地址为192.168.0.0/16
    广播地址为192.168.255.255/16
    总的地址数量为2^16
    可用的地址数量为2^16-1
    
    172.16.10.80/26
    
    网络地址为172.16.10.64/26
    广播地址为172.16.10.127/26
    
    
  3. 网络地址和广播地址

    • 网络地址,主机位全为0

    • 广播地址,主机位全为1,网络地址算出来,就可以算出广播地址

    • 只要主机位不是全0或者全1的话,其余的都可以用,192.168.1.255/16可以用,因为主机位不全是0或者不全是1,根据子网掩码进行划分

3、ip地址分类

  1. A类地址

    • 第一个bit为0,前8位是网络位

    • 所以的话,A类地址的范围,0.0.0.0 ~ 127.255.255.255/0

    • 全0就是最小,全1就是最大的

  2. B类地址

    • 前2个bit位10,前16位为网络位

    • 范围,128.0.0.0 ~ 191.255.255.255/16

  3. C类地址

    • 前3个bit位110,前24位网络位

    • 范围,192.0.0.0 ~ 233.255.255.255/24

  4. D类地址

    • 组播地址,前面4个位1110

    • 一对多的通信

  5. E类地址

    • 前面4个1111
  6. 总结

    • ABCE类地址,是单播地址,一对一的通信

    • 全部都分配完了,2011年

    • 在多链路中,一个网段被分配出去了,另外一个链路就不能使用这个分段了,避免主机位重复,但是这样会造成一个原因,就是会造成大量的浪费

    • 有类地址,就是根据ip的类别进行地址规划

    • 无类地址,没有严格的类的概念,可变长度的子网掩码

    • ABC类单播地址中分为公网地址或者私网地址

    • 公网地址必须由IANA(分配机制)进行分配,保证在互联网内唯一性

    • 私网地址是由用户自行使用,可以重复使用,提高地址的利用率,缓解了公网Ipv4地址不足

    • 在同一个私网网络中保证私有地址的唯一性,不同的私有网络可以重复使用私有地址

4、单播地址的特点

  • 一对一的通信的

  • 主机位全为0的主机,是代表的一个网段,不能分配给主机使用,用来区分不同网段的

  • 主机位全为1的主机,是代表的一个广播地址,代表了这个网段的所有主机,所以不能分配给主机使用

  • 之前访问这个广播地址,所有的主机有回应的,就会获得这些活动主机,现在的话不会进行回应,这个就是漏洞攻击;所以的话,现在就是直接进行丢弃即可

5、地址规划

  • 企业内部的话,私有地址尽量不要在同一个网段,避免冲突,如果2个公司没有通信的要求的话,私网地址可以相同

  • 私网地址,然后通过nat转发可以到公网,通过这个公网进行访问

img

6、特殊的ip地址

  • 255.255.255.255 广播地址,发往该网段的所有主机,全网广播地址,代表了任意主机,但是路由器不会转发,目标ip为255.255.255.255的广播报文,有限广播地址

  • 默认的情况下,路由器不转发任意的广播地址的报文,用于隔离广播域,路由器的一个接口就是一个广播域

  • 子网广播地址,192.168.1.31/27 ,代表了这个网段的所有主机

  • 0.0.0.0 代表了任意的主机,可以作为报文的源地址使用,但是不能作为目标地址使用

  • 环回地址,127.0.0.0 ~ 127.255.255.255 用于系统内部通信使用,目标ip为127开头的所有报文,但是不会发送到链路上面,这个地址访问不了的话,就是网卡驱动出现了问题

    • 所以的话,A类地址中的1.0.0.0 到 126.255.255.255 这些才能使用,127.0.0.0到127.255.255.255保留用于其他用途
  • 169.254.0.0/24 当主机自动获取地址失败后,可以使用该网段中的某个地址进行临时通信,就是dhcp获取失败时,可以使用这个地址

3、子网划分

  1. 需求,企业获得了C类地址,192.168.1.0/24,有5个部分,每个部门获取到主机为10~28台主机
2^n -2 >=29(加上一个网关地址)

# 所以的话n=5就非常的合适,8-5=3,2^3=8个子网   
# 可以划分8个子网,每个子网里面的地址为32个,可分配的地址为30个,满足29的需求

# 192.168.1.0~192.168.1.31/27
# 192.168.1.32~192.168.1.63/27  不同的网段

  • 上面的子网划分被称为等长子网划分,子网相同
  1. 需求,A部门100台主机,B部门58台主机,C部门27台主机,D部门10台主机
  • 从大的主机上面进行划分,然后依次在后面添加,192.168.1.0/24包含了192.168.1.0/25/26/27等等的网段
2^n - 2 >=100  n=7
192.168.1.0~192.168.1.127/25


2^n -2 >=58 n=6

192.168.1.128~192.168.1.191/26
  • 上面被称为可变子网划分

1、点到点的链路,划分掩码

  • 分配效率最高的话,2^n - 2 = 2,设置子网掩码30是最高的,255.255.255.252

  • 如果在路由器上面配置1.1.1.1/31的话,在链路点到点的话,2^1=2个地址,网段地址,广播地址,可以用,那是因为ip地址不够了,所以的话就使用网络地址和广播地址

  • 以太网链路上面,配置不同的网段,是不能进行通信的,也就是交换机的与其他的设备的链路上面

  • 但是ppp协议的点到点可以进行通信

2、路由汇总(子网的反运算)

  • 主机位相同的即可进行汇总

  • 将192.168.0.0/24和192.168.1.0/24 用一个网络号来表示所有的网络

# 换算成二进制
192.168.0000 0000. 00000000

192.168.0000 0001.00000000

# 相同的地方,也就是23
192.168.0.0/23可以全部包含地址

  • 路由汇总分为精确汇总和非精确汇总

    • 精确的汇总:汇总的地址和被汇总的地址范围一样

    • 非精确汇总:就是将汇总的和没有汇总的都包含在里面

# 比如
192.168.0.0/21包含了
 
192.168.0000 0 000 .0000 0000 192.168.0.0/24
 
192.168.0000 0 001 .0000 0000 192.168.1.0/24
 
192.168.0000 0 010 .0000 0000 192.168.2.0/24
 
192.168.0000 0 011 .0000 0000 192.168.3.0/24

192.168.0000 0 100 .0000 0000 192.168.4.0/24 # 还包含了其他的

  • 能精确的精确汇总,不能精确汇总的话,就不汇总,直接单独划分出来
# 规律的话就是2个网段可以汇总
192.168.0.0/24 
192.168.1.0/24   192.168.0.0/23

192.168.2.0/24
192.168.3.0/24   192.168.2.0/23 等等等   

# 下面的子网的距离,就可以直接进行汇总
0-1 2^1 2个子网  2-3 4-5 6-7 /23

0-3 2^2  4个子网 4-7 8-11 12-15 16-19 /22

0-7 2^3  8个子网 8-15 16-23 24-31  /21

0-15 2^4 16个子网

0-31 2^5 32个子网都能汇总 

# 这些子网都符合精确汇总
   
192.168.0.0/24到192.168.31.0/24   31-0+1=32=2^5,可以有一个网段来写出来
精确汇总的话就是192.168.0.0/19  2^5=32 所以的话,需要借5个主机位,24-5=19的网络位就代表了里面的所有地址


192.168.1.0/24~192.168.10.0/24

# 精确汇总
192.168.1.0/24
192.168.2.0/23
192.168.4.0/22
192.168.8.0/23        
192.168.10.0/24


192.168.8.0/23 # 里面一共有512个地址
192.168.8.0~192.168.8.255 # 有256个地址
192.168.9.0~192.168.9.255 # 256个地址

# 可用地址的话
192.168.8.1~192.168.8.254
192.168.9.1~192.168.9.254

172.16.5.0/24到172.16.20.0/24
# 精确汇总
192.168.5.0/24
192.168.6.0/23
192.168.8.0/21  包含了 192.168.8.0 ~ 192.168.15.0
192.168.16.0/22 包含了 192.168.16.0 ~ 192.168.19.0
192.168.20.0/24
  • 总结

    • 精确的划分,就能避免环路,避免不良的地址规划

    • 设备的lookbackup规划,采用的/32主机路由,172.16.1.0/24,是环回地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值