计算机网络基础之IP地址详解
计算机网络基础之IP地址详解
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.IP地址概述
1>.什么是IP地址
我们为什么要使用逻辑地址(IP地址)来标识网络设备,而不采用网卡设备本身就有的世界唯一标识物理地址(MAC地址)呢?IP地址的使用到底是基于什么考虑呢? 因此使用IP地址作为设备的唯一标识并不是它们的唯一理由,或者说这个理由并不充分,因为MAC地址已经可以标识设备唯一了,何必再来一个IP地址呢?(虽说ipv4写起来比较简单,但是ipv6,ipv9写起来可都不简单啊)
IP地址可唯一标识IP网络中的每台设备的所在位置,这才是它真正存在的意义,而MAC地址顶多能标识它是哪个厂家生产的,并不能标识它所处于网络架构的网络位置。
每台主机(计算机、网络设备、外围设备)必须具有唯一的地址
IP地址由两部分组成
网络ID:
标识网络
每个网段分配一个网络ID
主机 ID:
标识单个主机
由组织分配给各设备
2>.IPv4地址格式:点分十进制记法
3>.将IP地址转换成十进制并ping它
[root@node101.yinzhengjie.org.cn ~]# ping -w 192.168.30.1 #我们ping一个物理机的IP地址
PING 192.168.30.1 (192.168.30.1) () bytes of data.
bytes from 192.168.30.1: icmp_seq= ttl= time=0.800 ms
bytes from 192.168.30.1: icmp_seq= ttl= time=1.30 ms
bytes from 192.168.30.1: icmp_seq= ttl= time=0.572 ms --- 192.168.30.1 ping statistics ---
packets transmitted, received, % packet loss, time 2049ms
rtt min/avg/max/mdev = 0.572/0.891/1.302/0.305 ms
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# echo "ibase=2;11000000" | bc #紧接着我们将以点分割的4个数字再转换成二进制。 [root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# echo "ibase=2;10101000" | bc [root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# echo "ibase=2;00011110" | bc [root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# echo "ibase=2;00000001" | bc [root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# echo "ibase=2;11000000101010000001111000000001" | bc #将上面转换成功的二进制合并在一起换算成十进制 [root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# ping -w #使用上面计算的数字去ping,发现照样ping的是"192.168.30.1"这个IP地址。
PING (192.168.30.1) () bytes of data.
bytes from 192.168.30.1: icmp_seq= ttl= time=0.631 ms
bytes from 192.168.30.1: icmp_seq= ttl= time=1.25 ms
bytes from 192.168.30.1: icmp_seq= ttl= time=1.38 ms --- ping statistics ---
packets transmitted, received, % packet loss, time 2002ms
rtt min/avg/max/mdev = 0.631/1.090/1.382/0.328 ms
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#
二.IP地址分类
1>.A类地址计算方式
第一个字节(最高字节)为网络位,最高位是""。第一个字节变化二进制表示为:"0000 0001"到"0111 1111",共127个地址减去回环地址,剩余126个。 地址范围"1.0.0.0"到"127.255.255.255",二进制表示为:"00000001 00000000 00000000 00000000"到"01111111 11111111 11111111 11111111"。 最后一个IP地址是广播地址。默认子网掩码(占32bits,对应于网络ID位为1,对应主机ID位为0)是"255.0.0.0"。 一个网络中主机最大数公式 = ^主机ID位数(-网络ID位数) - = ^(-网络ID位数) - A类地址每一个网络中主机个数等于 ^ - = - = .即2^ - = 私网地址:10.0.0.0
2>.B类
前2个字节为网络位,最高位是"",其变化为128.~191.255,相当于"10000000 00000000"到"10111111 11111111",实际上就是最后14为变化,共2^ = 16834个网络。 B类地址范围128.0.0.~191.255.255.255。二进制表示为:"10000000 00000000 00000000 00000000"到"10111111 11111111 11111111 11111111"。 最后一个IP地址是广播地址,默认子网掩码是255.255.0. B类地址每一个网络中主机个数等于256^ - = - = ,即2^ - = 私网地址:172.16.0.0-172.31.0.0
3>.C类
前3个字节为网络位,最高位是"",其变化位192.0.0~223.255.,相当于"11000000 00000000 00000000"到"11011111 11111111 11111111",实际上就是后21位变化,共2^ = 2097152个网络。 C类IP地址地址范围192.0.0.0到223.255.255.。二进制表示为:"11000000 00000000 00000000 00000000"到"11011111 11111111 11111111 11111111"。 最后一个是广播地址,默认子网掩码是255.255.255. C类地址每个网络中主机个数等于256 - = ,即2^ - = 。 私网地址:192.168.0.0-192.168.255.0
4>.D类
多播地址,或组播地址。
多播地址最高4位必须是1110,那么地址范围就是:"224.0.0.0"到"239.255.255.255"。 224.0..1特质所有主机。
5>.E类
实验室使用地址,即保留未使用,那么地址范围就是:"240.0.0.0"到"255.255.255.255"
6>.无类别域间路由(Classless Inter-Domain Routing、CIDR)
网络id位数不确定,CIDR表示法:IP/网络ID位数。 子网掩码(netmask)由32bits构成,对应于网络ID位为"",对应于主机位为""。 温馨提示:(无类域间路由和子网划分的区别)
子网划分可以增加网段数量并减少主机数量。
无类域间路由能够分配多个符合条件的IP地址,然后抽离出这些地址中公共的部分来表示聚合成一个网络号,这样能够减轻路由表的大小减少路由通告。
一个网络中主机最大数公式 = ^主机ID位数(-网络ID位数) - = ^(-网络ID位数) -
网络ID计算公式 = IP地址与子网掩码做与("&")运算(和""做与运算都是0,和""做与运算就保留原状) 举例:
"203.110.200.124/20"是用CIDR表示法。请分别说明主机数,子网掩码和网络ID。
主机数为 : (-)- =
子网掩码 : 255.255.252.0
网络ID为 : 203.110.200.0/ "100.123.199.124/20"是用CIDR表示法。请分别说明主机数,子网掩码,网络ID,最小IP和最大IP地址。
主机数为 : 2^(32 - 20) - 2
子网掩码为 : 255.255.240.0
网络ID为 : 100.123.192.0/20
最小和最大IP : 100.123.192.1~100.123.207.254 遇到类似上面的题不要慌,先把十进制转换成二进制,答案就迎刃而解啦~
7>.公共IP地址
8>.私有IP地址
9>.特殊地址
0.0.0.0
0.0..0不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络 255.255.255.255
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机 127.0.0.1~127.255.255.254
本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为“127.0.0.1”的 数据包 224.0..0到239.255.255.
组播地址,224.0..1特指所有主机,224.0..2特指所有路由器。224.0..5指OSPF 路由器,地址多用于一些特定的程序以及多媒体程序 169.254.x.x
如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主机分配这样地址
10>.保留地址(网络ID和广播地址)
三.子网划分
想要将一个大网划分成多个小网,网络ID位变多,主机ID位变少,即网络ID向主机ID借N位,分成2^N个小网。 举例:
将"172.0.0.0/8"分配给公司32个部门,请对其进行子网划分。
>.算出子网的子网掩码
由于想要划分32个子网,根据公式2 ^ N >= ,因此这个N为5,因此在网络位ID为8的基础上增加5位,此时网络位共计13位,最终算出子网掩码位:"255.248.0.0"。
>.每个子网的最小,最大子网的网络ID
最小子网的id为:"172.0.0.0/13",最大的子网为:"172.248.0.0/13"。
>.每个子网主机数
^(--)- = ^ -
>.第20个子网分给"人事部门"使用,求出最小IP,最大IP范围。
我们很容易发现第20个子网的网络ID为"172.152.0.0/13",第21个子网为"172.160.0.0/13",因此第二十个子网的最小IP为"172.152.0.1/13",第二十个子网的最大IP为"172.159.255.254"。 将"192.152.0.0/13"为某公司使用,现在需要将其划分成15个业务线,划分各自子网。
>.算出子网掩码
^N >= 算出N为4,因此网络位需要向主机位借4个主机位,即实际网络位为17位,得子网掩码为"255.255.128.0"。
>.最小子网,最大子网的网络ID
最小子网为:"192.152.0.0/17",最大子网为:"192.159.128.0/17"
>.每个子网的主机数
( - ) - = ^ -
>.最大子网的最小IP,最大IP范围
最小IP,最大IP范围为:192.159.128.1~192.159.255.254。
四.合并超网
把多个小网合并成一个大网,主机位ID需要向网络ID借位。 方法就是写出需要合并超网的IP地址并转换成二进制,找到最大公约数就是新的网络位。 举例:
如下图所示,请将220.78.168./,220.78.169.0/,220.78.175.0/24合并成一个网段。
分析(取相同点作为网络ID,将不同点部分转换成二进制):
220.78.168.0 转换成二进制为 : 220.78.10101 000.0
220.78.169.0 转换成二进制为 : 220.78.10101 001.0
220.78.175.0 转换成二进制为 : 220.78.10101 111.0
挑完相同点,不难发现转换成二进制的三个数字前5位是相同的,因此取这前5位相同的作为网络位ID,算出最得为"220.78.168.0/21",因此下图的路由表写的8条记录太过繁琐,直接使用计算的"220.78.160.0/21"一条记录来来替代图中的8条记录即可。
五.跨网络通信
跨网络通信:
跨网络通信就需要使用路由,通过路由器将数据包从一个网络发往另一个网络。
路由器上维护者路由表,它知道如何将数据发往另外的网络。路由表由三部分组成:
目标网络ID :目标IP所在的网络ID。
接口 : 本设备要发送数据包到目标,从哪个接口发送出来,才能到达。
网关 : 到达目标网络,需要将数据交给下一个路口哪个接口的对应的IP。
路由器所有端口都有自己的IP地址,这些IP地址往往处在不同的网络,所以,路由器连接了不同网络。
路由表记录着路由设备所有端口对应的网络,分为静态,动态配置。
静态路由 : 由管理员手动配置的固定路由信息。
动态路由 : 网络中的路由器,根据实际网络拓扑变化,互相通信传递路由信息,利用这些路由信息通过路由选择协议动态计算,并更新路由表。常见的协议有RIP,OSPF等等。
路由分类:
主机路由
网络路由
默认路由 优先级:精度越高,优先级越高
[root@node101.yinzhengjie.org.cn ~]# route -n #在Linux操作系统查看路由表
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG enp0s3
0.0.0.0 172.30.1.254 0.0.0.0 UG enp0s8
10.0.2.0 0.0.0.0 255.255.255.0 U enp0s3
172.30.1.0 0.0.0.0 255.255.255.0 U enp0s8
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# route -n #在Linux操作系统查看路由表
C:\Users\yinzhengjie>route print #在windows操作系统查看路由表
===========================================================================
接口列表
... 0c c3 ......Realtek PCIe GbE Family Controller
...0a 0f ......VirtualBox Host-Only Ethernet Adapter
... a4 b7 ......Microsoft Wi-Fi Direct Virtual Adapter
...4a a4 b6 ......Microsoft Wi-Fi Direct Virtual Adapter #
... c0 ......VMware Virtual Ethernet Adapter for VMnet1
... c0 ......VMware Virtual Ethernet Adapter for VMnet8
... a4 b6 ......Intel(R) Wireless-AC
... a4 ba ......Bluetooth Device (Personal Area Network)
...........................Software Loopback Interface
=========================================================================== IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 192.168.124.1 192.168.124.14
127.0.0.0 255.0.0.0 在链路上 127.0.0.1
127.0.0.1 255.255.255.255 在链路上 127.0.0.1
127.255.255.255 255.255.255.255 在链路上 127.0.0.1
172.30.1.0 255.255.255.0 在链路上 172.30.1.254
172.30.1.0 255.255.255.0 在链路上 172.30.1.1
172.30.1.1 255.255.255.255 在链路上 172.30.1.1
172.30.1.254 255.255.255.255 在链路上 172.30.1.254
172.30.1.255 255.255.255.255 在链路上 172.30.1.254
172.30.1.255 255.255.255.255 在链路上 172.30.1.1
192.168.30.0 255.255.255.0 在链路上 192.168.30.1
192.168.30.1 255.255.255.255 在链路上 192.168.30.1
192.168.30.255 255.255.255.255 在链路上 192.168.30.1
192.168.124.0 255.255.255.0 在链路上 192.168.124.14
192.168.124.14 255.255.255.255 在链路上 192.168.124.14
192.168.124.255 255.255.255.255 在链路上 192.168.124.14
224.0.0.0 240.0.0.0 在链路上 127.0.0.1
224.0.0.0 240.0.0.0 在链路上 172.30.1.254
224.0.0.0 240.0.0.0 在链路上 192.168.124.14
224.0.0.0 240.0.0.0 在链路上 172.30.1.1
224.0.0.0 240.0.0.0 在链路上 192.168.30.1
255.255.255.255 255.255.255.255 在链路上 127.0.0.1
255.255.255.255 255.255.255.255 在链路上 172.30.1.254
255.255.255.255 255.255.255.255 在链路上 192.168.124.14
255.255.255.255 255.255.255.255 在链路上 172.30.1.1
255.255.255.255 255.255.255.255 在链路上 192.168.30.1
===========================================================================
永久路由:
无 IPv6 路由表
===========================================================================
活动路由:
接口跃点数网络目标 网关
::/ 在链路上
fe80::/ 在链路上
fe80::/ 在链路上
fe80::/ 在链路上
fe80::/ 在链路上
fe80::45c6:ef39:7a0f:/
在链路上
fe80::544d:9ad6:37db:ed12/
在链路上
fe80::78b3::f756:276a/
在链路上
fe80::a102:801f::59f6/
在链路上
ff00::/ 在链路上
ff00::/ 在链路上
ff00::/ 在链路上
ff00::/ 在链路上
ff00::/ 在链路上
===========================================================================
永久路由:
无 C:\Users\yinzhengjie>
C:\Users\yinzhengjie>route print #在windows操作系统查看路由表
六.动态主机配置协议DHCP
动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,基于UDP协议工作,端口默认是:67。 主要用途就是用于内部网或网络服务供应商自动给网络中的主机分配IP地址。
计算机网络基础之IP地址详解的更多相关文章
- IP地址和子网划分学习笔记之《IP地址详解》
2018-05-03 18:47:37 在学习IP地址和子网划分前,必须对进制计数有一定了解,尤其是二进制和十进制之间的相互转换,对于我们掌握IP地址和子网的划分非常有帮助,可参看如下目录详文. ...
- Windows Azure IP地址详解
Windows Azure上的IP地址有以下几种: 公网IP地址 VIP ILPIP Reserved IP 内网IP地址 DIP Static IP VIP是动态分配的公网IP,VIP可以被分配到云 ...
- 【整理】PHP获取客户端真实IP地址详解
php获取客户端IP地址有四种方法,这五种方法分别为REMOTE_ADDR.HTTP_CLIENT_IP.HTTP_X_FORWARDED_FOR.HTTP_VIA. REMOTE_ADDR 是你的客 ...
- 如何设置CentOS 7开机自动获取IP地址详解
本例中以CentOS 7举例说明如何设置Linux开机自动获取IP地址和设置固定IP地址. 自动获取动态IP地址 1.输入“ip addr”并按回车键确定,发现无法获取IP(CentOS 7默认没有i ...
- Vue实战041:获取当前客户端IP地址详解(内网和外网)
前言 我们经常会有需求,希望能获取的到当前用户的IP地址,而IP又分为公网ip(也称外网)和私网IP(也称内网IP),IP地址是IP协议提供的一种统一的地址格式,每台设备都设定了一个唯一的IP地址”, ...
- IP地址详解
讲之前了解一些网络设备的作用: 交换机:组建局域网 路由器:连接内外网 网关:一个网络的出口(Gate Way = GW)一般网关在路由器上 局域网(也称内网) 一个简单的局域网的基本组成设备:交换机 ...
- Day02_IP地址详解&进制转换&DOS基本命令与批处理
学于千峰教育开源课程 感谢 千峰教育官网 b站在线视频 IP地址详解 一.简单局域网的构成 局域网:一般称为内网 简单局域网的构成:交换机.网线.PC(其他IT终端) 交换机:用来组建内网的局域网的设 ...
- TCP/IP协议详解概述
TCP/IP协议详解卷1--第一章概述--读书笔记 作者:vpoet 日期:2015/06/25 注:本系列的文章只是作者对TCP/IP协议的理解,难免会出现纰漏或者不完整,当然也有可能很肤浅,希望大 ...
- Java基础-面向接口编程-JDBC详解
Java基础-面向接口编程-JDBC详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.JDBC概念和数据库驱动程序 JDBC(Java Data Base Connectiv ...
随机推荐
- ElasticSearch集群状态查看命令大全(转)
原文地址: https://blog.csdn.net/pilihaotian/article/details/52460747 Elasticsearch中信息很多,同时ES也有很多信息查看命令,可 ...
- Kafka限流
1. 客户端认证 如果kafka客户端是认证的,那么可以使用userId和clientId两种认证方式.如果没有认证只能使用clientId限流. bin/kafka-configs. --alter ...
- OpenShift 4.2 etcd operatorhub离线环境部署
本文记录在OperatorHub中存在界面但缺少镜像的环境下如何安装部署.感谢王征提供的大力支持和指导. 现在一个在线环境找到etcd所需要的镜像 quay.io/coreos/etcd-operat ...
- 初识IO流
输入输出流,用来进行设备之间的数据传输. 是我们IO传输的数据是以文件的形式体现的,所以Java给我们提供了一个类,Flie用来描文件和目录 File(File parent, String chil ...
- 初识Java及所要准备的工作
整个Java学习路线 Java特点: 开源:源代码开放 跨平台:由于各平台有差异型,java由JVM对源代码进行解释执行,一次编译到处运行 Java的学习框架如下: JavaSE包括: 数据库包括: ...
- 简述 高性能Linux服务器 模型架构 设计
主要从三个方面进行分析: 1.事件处理模式 2.并发模式 一.事件处理模式 1.Reactoor模式 定义: 主线程只负责监听文件描述符上是否有事件发生,有的话立即将该事件通知工作线程,除此之外,主线 ...
- 熟悉javaEE主流框架Spring boot,Spring Cloud,Mybatis,了解Servlet,JDBC
什么是Tomcat 阿帕奇提供的小型服务器软件,支持servet和jsp规范 lib包:存放jar包 WabApp:发布项目的目录 work:jsp编译生成.class的目录 LOgs:存放日志文件 ...
- Linux查看CPU信息计算CPU核数量
1. 物理CPU的个数: cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 2. 每个物理CPU的核心数量: ...
- Go基础编程实践(二)—— 类型转换
bool to string strconv包的FormatBool函数用于将bool转为string package main import ( "fmt" "strc ...
- 微信配置JS接口安全域名问题-Nginx配置
1.将下载的txt文件放入/usr/local/nginx/html/目录下面. 2.修改nginx.cong配置文件中的location标签 location / { root html; inde ...