一、IP地址

  1、IP地址就是给互联网上每一台主机 (或路由器)每一个接口分配一个在全世界范围内是唯一的32位二进制的地址标识符。现在由互联网名字和数字分配机构ICANN进行分配。

  2、转换成十进制

二、分类IP

   分类IP就是将IP分成若干个固定类,每一类地址都是由两个固定长度的字段组成,其中第一个字段为网络号,必须是唯一的。第二个字段为主机号。

  1、A类地址

    A类地址网络号占一个字节,只有7bit位可供使用,可指派的网络号为(2的7次方-2)

      a、网络号全0的IP地址是一个保留地址,意思是“本网络”;

      b、网络号为127的保留作为本地软件的环回测试

    A类地址主机号占3个字节,每一个A类网络最大主机数是(2的24次方-2 = 16777214)

      a、全0表示这个网络,5.1.2.3 => 5.0.0.0

       b、全1表示这个网络所有主机,5.1.2.3 => 2.255.255.255

    IP地址一共(2的32次方 = 4294967296),A类地址占了(2的31次方)50%。

  2、B类地址

    B类地址网络号占2个字节,可指派的网络号为(2的14次方-1)

      a、网络号为128.0.0.0保留

    B类地址主机号占2个字节,每一个B类网络最大主机数是(2的16次方-2 = 65534)

      a、全0表示这个网络,5.1.2.3 => 5.1.0.0

      b、全1表示这个网络所有主机,5.1.2.3 =>5.1.255.255

    IP地址一共(2的32次方 = 4294967296),B类地址占了(2的30次方)25%。

   3、C类地址

    C类地址网络号占3个字节,可指派的网络号为(2的21次方-1)

      a、网络号为192.0.0.0保留,最小网络号为192.0.1.0

    C类地址主机号占1个字节,每一个C类地址最大主机数是(2的8次方-2 = 254)

      a、全0表示这个网络,5.1.2.3 => 5.1.2.0

      b、全1表示这个网络所有主机,5.1.2.3 => 5.1.2.255

    IP地址一共(2的32次方 = 4294967296),C类地址占了(2的29次方)12.5%

  4、总结

三、IP保留地址

  1、0.0.0.0
    严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。
  2、255.255.255.255
    限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。
  3、127.0.0.1
    本机地址,主要用于测试。用汉语表示,就是“我自己”。在Windows系统中,这个地址有一个别名“Localhost”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。

  4、224.0.0.1

    组播地址,注意它和广播的区别。从224.0.0.0到239.255.255.255都是这样的地址。224.0.0.1特指所有主机,224.0.0.2特指所有路由器。这样的地址多用于一些特定的程序以及多媒体程序。如果你的主机开启了IRDP (Internet路由发现协议,使用组播功能)功能,那么你的主机路由表中应该有这样一条路由。
  5、169.254.x.x
    如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Wingdows系统会为你分配这样一个地址。如果你发现你的主机IP地址是一个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。
  6、10.x.x.x, 172.16.x.x~172.31.x.x, 192.168.x.x

    私有地址,这些地址被大量用于企业内部网络中。一些宽带路由器,也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连,因而可能使用随意的IP地址。保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱。使用私有地址的私有网络在接入Internet时,要使用地址翻译(NAT),将私有地址翻译成公用合法地址。在Internet上,这类地址是不能出现的。

四、子网划分

  1、简单点说子网划分就是把一个网段划分成很多更小的网段。如图,把一个两级(B类)地址通过子网号划分成很多三级地址。

  2、为什么要划分子网
    a、IP地址利用率很低,资源日益紧张解决了IP地址资源紧张的局面;
    b、在企业内网中为了更好地管理网络,网管人员也利用子网掩码的作用,人为地将一个较大的企业内部网络划分为更多个小规模的子网。

  3、与运算、或运算、异或运算

    a、按位与运算符(&)
      参加运算的两个数据,按二进制位进行“与”运算。
      运算规则:0&0=0;  0&1=0;   1&0=0;    1&1=1;
           即:两位同时为“1”,结果才为“1”,否则为0。

    b、按位或运算符(|)
      参加运算的两个对象,按二进制位进行“或”运算。
      运算规则:0|0=0;  0|1=1;  1|0=1;   1|1=1;
           即 :参加运算的两个对象只要有一个为1,其值为1。

    c、异或运算符(^)
      参加运算的两个数据,按二进制位进行“异或”运算。
      运算规则:0^0=0;  0^1=1;  1^0=1;   1^1=0;
         即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。    

  4、为什么需要子网掩码
    用在路由器寻址上,确定IP属于哪个网段

  5、根据子网掩码计算网段

    例:IP地址为145.13.3.10,子网掩码为255.255.255.0,路由器如何计算145.13.3.10所属的网段

五、路由寻址

  Step1:主机A将自己的IP地址和子网掩码作“与运算”,主机A的IP地址为192.168.0.5,将这个IP地址转换为二进制就是:11000000 10101000 00000000 00000101

    主机A的子网掩码为255.255.255.0,将该掩码转换为二进制就是:11111111 11111111 11111111 00000000 将主机A二进制形式的IP地址和子网掩码作“与运算”的结果是:  11000000 10101000 00000000 00000000

    为了方便查看将这个“与运算”的结果再转换为点分十进制的数就是:192.168.0.0

  Step2:将目标主机(主机B)的IP地址与发送方(主机A)的子网掩码作“与运算”,比如本例中,主机B的IP地址为1.1.1.5,将这个IP地址转换为二进制就是:00000001 00000001 00000001 00000101

    主机A的子网掩码为255.255.255.0将该掩码转换为二进制就是:11111111 11111111 11111111 00000000 将以上两组二进制的数进行“与运算”的结果是:00000001 00000001 00000001 00000000 将这个“与运算”的结果转换为点分十进制的数就是:1.1.1.0 这样我们就得到了两组“与运算”的结果,分别是:192.168.0.0和1.1.1.0

  Step3:对于主机A来说,经过这样一番“与运算”后,如果两个“与运算”结果相同,则说明目标主机B和自己在同一个网络内,即目标主机B在本地网络。相反地,对于主机A来说,经过这样一番“与运算”后,如果两个“与运算”结果不同,则说明目标主机B和自己不在同一个网络内,即目标主机B在远程网络。在这里,很显然目标主机B对于发送方(主机A)来说在远程网络——也就是在网络B。

  Step4:查询本机保存的路由表,主机A路由表的输出显示中我们没有找到与目标主机B所在1.1.1.0这个网络相匹配的具体路由,路由表第一列的输出说明主机A在没有找到能够到达目标网络的具体路由的情况下,会将发往目标网络的数据包发送到默认/缺省网关(192.168.0.1),由这个默认/缺省网关再将该数据包转发到目标网络。

  Step5:路由器进行网络比对,路由器的F0/0接口上的IP地址192.168.0.1与F0/0接口的子网掩码255.255.255.0作“与运算”得到“结果1”;目标地址1.1.1.5与路由器F0/0接口的子网掩码255.255.255.0作“与运算”得到“结果2”;“结果1”与“结果2”并不相同,证明目标地址1.1.1.5并不处在路由器的F0/0接口所在的网络A。

    路由器的另一个接口F0/1的IP地址1.1.1.1与F0/1接口的子网掩码255.0.0.0作“与运算”得到“结果3”;目标地址1.1.1.5与F0/1接口上的子网掩码255.0.0.0作“与运算”得到“结果4”;“结果3”与“结果4”相同,证明目标地址1.1.1.5处在路由器的F0/1接口所在的网络B。这也就意味着路由器B只需将发送给1.1.1.5的数据包从F0/1接口发出去就OK了。

网络基础之IP地址的更多相关文章

  1. 网络基础之IP地址和子网掩码

    IP地址 IP是英文Internet Protocol的缩写,意思是"网络之间互连的协议",也就是为计算机网络相互连接进行通信而设计的协议.在因特网中,它是能使连接到网上的所有计算 ...

  2. 网络基础之IP地址与子网划分

    IP地址 Ipv4地址格式:点分十进制 IP地址的分类 A类 B类 C类: D类:组播 E类: 公共IP地址 私有IP地址 特殊地址 保留地址 子网掩码 什么是子网掩码 CIDR表示法 子网划分 为啥 ...

  3. linux 网络基础之IP地址

    IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议. IP地址类型分为:公有地址.私有地址. 公有地址 公有地址(Publ ...

  4. 网络基础:ip地址

    原文链接:http://blog.51cto.com/xiexiaojun/1882088 很棒的总结,概念+例题很清晰

  5. 计算机网络基础之IP地址详解

    计算机网络基础之IP地址详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.IP地址概述 1>.什么是IP地址 我们为什么要使用逻辑地址(IP地址)来标识网络设备,而不采 ...

  6. VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装

    VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装在阿里云开源镜像地址下载镜像Index of /centos/7.2.1511/isos/x86_64/http://mirro ...

  7. 网络基础tcp/ip协议四

    网络层的功能: 定义了基于ip协议的逻辑地址. 链接不同的媒介类型. 选择数据通过网络的最佳路劲. 数据包格式: 优先级与服务类型(8)位:优先级与服务类型 标识符,标志,段偏移量:这几个字用来对数据 ...

  8. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

    JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...

  9. 网络基础tcp/ip协议五

    传输层的作用: ip层提供点到点的链接. 传输层提供端到端的链接. 传输层的协议: TCP: 传输控制协议可靠的,面向链接的协议,传输效率低. UDP: 用户数据报协议,不可靠,无连接的服务,传输效率 ...

随机推荐

  1. 完全卸载MySQL完整图文流程

    想把mlsql卸载了重装,看了许多文章试了很多方法都没办法完全卸载,直到看到了这篇文章, 可以完全卸载mysql,在这里谢谢博主,也拿出来分享给大家 原文链接:https://blog.csdn.ne ...

  2. 面试题三十:包含min函数的栈

    定义一个栈的数据结构,请实现一个每次都能找到栈中的最小元素,要求时间复杂度O(1).意思就是说每次进栈出栈后,min函数总能在时间1的前提下找到.方法一:由于每次循序遍历栈的话时间复杂度为n,所以要想 ...

  3. IO—》File类

    IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据 ...

  4. HTML中div嵌套div的margin不起作用

    下面介绍一下div嵌套div时margin不起作用的解决方案. 顺便科普下margin的定义和用法. div嵌套的HTML代码: <!DOCTYPE html> <html lang ...

  5. 7-Pandas之索引调整方法

    一.调整索引.修改列标签 1.调整索引的两种情况: 重新索引 设置新的索引 (1)重新索引 在Pandas对象中,其实索引也是一个对象,所以可对其进行修改. 例如:df.index=['a','b', ...

  6. PHP array_udiff_assoc() 函数

    实例 比较两个数组的键名和键值(使用内建函数比较键名,使用用户自定义函数比较键值),并返回差集: <?phpfunction myfunction($a,$b){if ($a===$b){ret ...

  7. 大话Android中的Handler机制

    在Android的线程间通信中,Handler独当一面,无论是framework层还是app层中都出现的相当频繁,有必要好好的拿出来深挖一下它的实现原理.而要说Handler的通信机制,除了Handl ...

  8. .NETCore中实现ObjectId反解

    前言 在设计数据库的时候,我们通常需要给业务数据表分配主键,很多时候,为了省事,我都是直接使用 GUID/UUID 的方式,但是在 MonggoDB 中,其内部实现了 ObjectId(以下统称为Oi ...

  9. 31-关键字:final

    final:最终的 1.可以用来修饰:类.方法.变量 2.具体的: 2.1 final 用来修饰一个类:此类不能被其他类所继承. * 比如:String类.System类.StringBuffer类 ...

  10. Ubuntu定时执行任务(定时爬取数据)

    cron是一个Linux下的后台进程,用来定期的执行一些任务.因为我用的是Ubuntu,所以这篇文章中的所有命令也只能保证在Ubuntu下有效. 1:编辑crontab文件,用来存放你要执行的命令 s ...