Linux 网络基础知识之IP地址和子网掩码详解
来源:互联网 发布:php的des加密解密 编辑:程序博客网 时间:2024/06/18 12:17
部分内容图片截自慕课网
1. TCP/IP四层模型会对数据逐层打包,其中网络层负责打包IP包头,而IP包头拆开内容格式如下图
注意:一般情况下IP包头为20个字节,160个bit大小,包括5行数据,但在IPV4协议下并非一定如此,可能包含其他信息,如图中选项和数据行,这也是ipv4通信慢于ipv6(固定包头长度)的原因,但是必定含有源IP地址和目的IP地址
2. 分析一下源IP地址和目的IP地址:
- 长度为32bit,也就是说ip地址最小为32个零:00000000.00000000.00000000.00000000,最大为:32个1
11111111.11111111.11111111.11111111 - 转化为十进制:0.0.0.0和255.255.255.255
- 但是并非在此范围内的所有地址均为有效地址,看下图:
注意:C类别地址最大为223开始,所以其实还有D、E类型,但是不对我们普通用户开放,其次A和B之间还有一个127,这就不用多说了,localhost和127.0.0.1应该都是用过(这两者不等,有区别的哦)
A类地址解析:
- 1.0.0.0代表网络本身,不能用来分配,1.255.255.255代表当前网络的广播地址,最后一个126.255.255.255也不能分配
- 第一个数字代表网段,所以最大网络数为126(2^7-2)个,不同的网段之间需要通过路由器来链接,同一网段内通过交换机链接
- 后三位数代表同一网段下不同的主机数,由于.0.0.0代表网络本身,.255.255.255代表当前网络的广播,不能用来分配地址,所以最大主机数为2^24-2
B类地址解析:
- 与A类不同,B类前两个数代表网段,后两个数代表主机,191.254和191.252不是同一个网段,需要路由器链接
C类地址解析:
- 同样,C类则是前三个数代表网段,后一个数代表主机
私有地址:
普通IP地址需要花钱购买,私有地址则是作为内网IP使用
子网掩码决定了A、B、C类地址拥有不同的网段数和主机数
3. 子网掩码:
什么是子网掩码:子网掩码是把大的网络划分成子网,即VLSM(可变长子网掩码),把小的网络归并成大的网络即超网。通俗的理解,子网掩码代表的是当前IP地址所在的网络编号
标准子网掩码的表示:
255.0.0.0 255.255.0.0 255.255.255.01. A类地址子网掩码默认为255.0.0.0 B类默认为255.255.0.0 C类默认为255.255.255.02. 子网掩码和ip地址必须共同存在否则没有意义
为什么必须共同存在:
首先假设有两个IP地址:A:192.168.1.1和B:192.168.2.1 并且A和B不在同一个子网下从A发送一条数据到B,如果没有子网掩码,计算机就无法确定A和B是否是同一个子网内的不同网段,因为根据IP地址已经知道该ip为C类,且属于不同网段,结果没有子网掩码,计算机会缺省认为A和B是属于同一个子网内,导致数据在本子网内循环,直到超时造成网络错误这也就是为什么说子网掩码是网络或者一个子网的重要属性
举个例子说明子网掩码是如何划分子网的:
以B类地址为例,其默认子网掩码为255.255.0.0,转化为二进制后为
11111111.11111111.00000000.00000000
前面八个连续的1代表ip地址中的网络位,而0则代表的是主机位,一般都是前面连续的1,后面连续的0,B类地址后面8位代表了主机位,看下表(固定长度子网):
表中数据的计算方法:
- 子网号位数:子网中连续1的个数,此处前提是B类地址,B类地址默认子网掩码为255.255.0.0,主机位从第三段数字开始,以子网号位数为2举例:转化为二进制为11111111.11111111.11000000.00000000 子网号位数指得就是从第三段开始连续1的个数
- 子网掩码:同样例子,讲二进制转化为十进制就是子网掩码255.255.192.0
- 子网数:2^N-2(每一位可能是0或1,所以有2^N中) N代表子网号位数,减2是因为在因特网标准RFC 950中,子网掩码不能全为1或0(无分类域间路由选择CIDR已经可以使用全0和1的子网掩码)
- 主机数:同例中,后14位0代表主机位,2^14=16383 由于主机位全1时代表当前网段的广播地址,所以主机数为16382
以上也就能再次解释为什么子网掩码必须同IP地址一起使用了,并且,子网掩码并不是可以随意设置的,如果设置大了,计算机会认为数据是发往和本机不在同一子网的目的机,而根据子网寻径规则,数据将在当前子网内循环,知道超时且数据被抛弃。如果设置小了,会将本在同一子网的计算机间数据传输当做是跨子网传输,数据交给了网关处理,从而降低了效率。所以子网掩码应该根据网络规模设置,假设一个网络规模不会超过254台电脑,那么子网掩码设置为255.255.255.0就行了,超过254而不超过16382的,假设1500,设置为255.255.0.0就行了
作用:将某个IP地址划分成网络地址和主机地址两部分。子网掩码一旦设置,网络地址和主机地址就固定了。
计算:
1. 将IP地址和子网掩码转换为二进制的形式,然后进行“与”计算。得到网络号,也就是该子网的首地址。2. 将转化为二进制后的子网掩码进行取反,然后再和ip地址进行与运算,就得到了主机地址
例如:
A的IP地址:192.168.1.1 子网掩码:255.255.255.0
由IP可知为C类地址
计算IP地址的网络号:
1 0
- Linux 网络基础知识之IP地址和子网掩码详解
- IP地址和子网掩码的基础知识
- IP地址和子网掩码的基础知识
- 网络基础 — IP地址和子网掩码
- IP地址、子网掩码详解
- IP地址、子网掩码详解
- IP地址和子网掩码
- IP地址和子网掩码
- IP地址和子网掩码
- IP地址和子网掩码
- IP地址和子网掩码
- IP地址和子网掩码
- IP地址和子网掩码
- IP地址和子网掩码
- IP地址和子网掩码
- 嵌入式linux获取网络IP和子网掩码
- ip地址、子网掩码、网络号
- 网络层——IP-V4地址详解及子网掩码
- Android开发之Genymotion安装第三方软件的“APP not installed”问题
- 【省赛个人选拔赛九补题】NBUT [1225] NEW RDSP MODE I (思路题)
- 【Java设计模式06】——装饰者模式
- 对一个整数按位反转和对字符反转
- 分享一种私有云车牌识别OCR技术
- Linux 网络基础知识之IP地址和子网掩码详解
- 面试不在懵比,如何修炼面向对象的六大原则大法
- 蓝桥杯2
- Android开发中,使用ViewFlipperh实现广告轮播
- 新的旅程
- genymotion faq 问题集锦
- ubuntu PATH 出错修复
- 蓝桥杯JAVA语言B组_方格填数
- android学习(十) 从其他应用接收简单数据