zoukankan      html  css  js  c++  java
  • 初识网络协议:什么是IP地址

    在windows系统中,我们可以用ipconfig来查看本地IP地址。

    这里我们可以看到IP地址是192.168.1.7,可是当我们在浏览器查看自己IP地址的时候,却发现IP地址和上面的不一样:

    在这里,101.86.19.217192.168.1.7都是IP地址,只不过前者是公有IP地址,后者是私有IP地址。

    那到底什么是IP地址?

    IP由网络地址主机地址组成,都是32位二进制,每8位转换成十进制并且插入一个.来提高可读性。

    网络地址

    网络地址可用来识别设备所在的网络,网络地址位于IP地址的前段。当组织或企业申请IP地址时,所获得的并非IP地址,而是取得一个唯一的、能够识别的网络地址。同一网络上的所有设备,都有相同的网络地址。IP路由的功能是根据IP地址中的网络地址,决定要将IP信息包送至所指明的那个网络。

    主机地址

    主机地址位于IP地址的后段,可用来识别网络上设备。同一网络上的设备都会有相同的网络地址,而各设备之间则是以主机地址来区别。

    由于各个网络的规模大小不一,大型的网络应该使用较短的网络地址,以便能使用较多的主机地址;反之,较小的网络则应该使用较长的网络地址。为了符合不同网络规模的需求,IP在设计时便根据网络地址的长度,设计与划分IP地址。

    IP地址分为五类:

    A类  
    0 网络号(7位) 主机号(24位)
    B类   
    1 0 网络号(14位) 主机号(16位)
    C类    
    1 1 0 网络号(21位) 主机号(8位)
    D类    
    1 1 1 0 多播组号(28位)
    E类     
    1 1 1 1 0 留待后用(27位)

    常见的是A、B、C三类IP地址:

    类别IP地址范围最大主机数私有IP地址范围
    A 0.0.0.0-127.255.255.255 16777214 10.0.0.0-10.255.255.255
    B 128.0.0.0-191.255.255.255 65534 172.16.0.0-172.31.255.255
    C 192.0.0.0-223.255.255.255 254 192.168.0.0-192.168.255.255

    IP地址中第一个和最后一个主机号不可分配,所以最大主机数为2的主机号次平方减2,以C类为例:最大主机数 = 2^8 - 2 = 256 - 2 = 254。

    私有地址主要用于在局域网中进行分配,在 Internet上是无效的。这样可以很好地隔离局域网和 Internet。私有地址在公网上是不能被识别的,必须通过NAT将内部IP地址转换成公网上可用的IP地址,从而实现内部IP地址与外部公网的通信。公有地址是在广域网内使用的地址,但在局域网中同样也可以使用,除了私有地址以外的地址都是公有地址。

    不过大多数情况,我们不用A、B、C三类地址,而是用无类型域间选路(CIDR)。所谓CIDR,就是将32位的IP地址一分为二,前面是网络号,后面是主机号。

    192.168.1.9/24,这里有一个斜杠,这种地址表示形式就是CIDR。斜杠后面24的意思是32位中,前24位是网络号,后8位是主机号。伴随着CIDR存在的,一个是广播地址,192.168.1.255。如果向这个地址发送消息,那么这个网络(192.168.1)里面的所有机器都可以收到。一个是子网掩码,255.255.255.0。将子网掩码和IP地址进行AND计算,就可以得到网络号。二进制中1和任何数AND都是原来的数,0和任何数AND都是0,比如192 AND 255 = 11000000 AND 11111111 = 11000000 = 192,9 AND 0 = 1001 AND 0 = 0。所以知道IP地址192.168.1.9,知道子网掩码255.255.255.0,就可以知道网络号是192.168.1,主机号是9。

    那么我们再来计算一下13.144.163.91/22这个CIDR的第一个地址、子网掩码和广播地址。

    22不是8的倍数,只能转换成二进制来看,前16位可以不动,即13.144保持不变。163需要变成10100011,拆分成<101000><11>,网络号就是13.144.<101000>,主机号是<11>.91。第一个地址是13.144.<101000><00>.1,即13.144.160.1。子网掩码是255.255.<111111><00>.0,即255.255.252.0。广播地址为13.144.<101000><11>.255,即13.144.163.255。

     

    参考资料:《趣谈网络协议》

  • 相关阅读:
    Ubuntu-18.04 设置开机启动脚本
    香橙派PC Plus开发镜像制作
    Flurl使用Polly添加重试机制
    在Windows上远程调试Ubuntu-Arm上的.Netcore
    NAT
    关于visual studio 2019的参数信息快捷键无效
    spring cloud ip地址注册问题
    spring cloud sleuth集成问题
    spring boot admin 安装问题
    pm2+nuxt 自动重启问题
  • 原文地址:https://www.cnblogs.com/74percent/p/12364682.html
Copyright © 2011-2022 走看看