目录
1.认识IP地址
IP 地址(Internet Protocol Address)是指互联网协议地址。
它是分配给连接到互联网的设备(如计算机、服务器、智能手机、物联网设备等)的数字标签,用于在网络中识别和定位这些设备。就好像是每一个接入网络的设备的 "身份证号码",通过这个号码,数据就能准确地找到要发送的目标设备或者找到数据的来源设备。
1.IP地址是给因特网上的每个主机或路由器的每个接口分配的一个标识符
2.借助IP地址,就可以在网络中找到该IP标识的主机或路由器接口
3.IP地址分为IPv4(32位/4个字节)和IPv6版本(128位/16字节)
2的32次方大概约等于42亿多,也就是说可以给42亿多台主机和路由器接口分配IP地址,在IPv4刚出来的时候,这个数量是够用的,但是随着互联网的飞速发展,当前人们拥有多部手机以及电脑,各种网络设备,这个IP地址数量就显然不够用了。
IPv6可用的地址数大概是3.4乘以10的38次方,IPv4大概是4乘以10的9次方,所以使用IPv6在我们有生之年以及后面相当长的时间里是够用的
为什么到现在IPv6的普及率还这么低呢?
IP地址是由32比特构成的,这样的地址不方便人们阅读和记忆
IP地址为了方便记忆记录和使用采用点分十进制进行表示
每8比特转换为一个十进制,中间用 "." 分隔开
IPv4的IP地址由两部分组成:网络号和主机号
网络号:
标识主机或路由器接口所连接到的网络
如果主机或路由器接口的IP地址的网络号相同,表示他们属于同一段网络/段
主机号:
标识网络中的主机或路由器接口
同一网络中,不同主机或路由器接口的IP地址的主机号必须不同,以便区分各主机或路由器接口
在不同网络中,不同主机或路由器接口的IP地址的主机号可以相同
1.网络号相同的主机或路由器接口处于同一网段或同一局域网中
2.局域网之间通过路由器相连,形成互联网
3.因特网是最大的互联网
2.IP地址的分类
IP地址分为下面5类:
E类地址:保留为将来用的,所以不用管他
D类地址:多播地址,对于传统的通信来说,都是一个一对一的关系,也就是给一台主机分配一个IP地址,再给另外一台主机分配一个IP地址,两台主机之间通过这两个IP地址进行通信,而多播地址是将多个主机分配到一个组里,然后再给这个组分配一个多播地址,通过这个多播地址就可以给多台主机发送同一份数据
上面两种地址了解一下就行
我们重点学习ABC三中类型的地址
-
A类IP地址的网络号占8位。它的第一个字节是网络号,范围是1 - 126(0和127有特殊用途,0表示所有网络,127用于本地软件回环测试)。例如,一个A类IP地址10.0.0.1,其中"10"就是网络号部分,后面的三个字节(0.0.1)是主机号部分。
-
B类IP地址的网络号占16位。它的前两个字节是网络号,第一个字节的范围是128 - 191。例如,一个B类IP地址130.10.0.1,其中"130.10"是网络号部分,后面的两个字节(0.1)是主机号部分。
-
C类IP地址的网络号占24位。它的前三个字节是网络号,第一个字节的范围是192 - 223。例如,一个C类IP地址192.168.1.1,其中"192.168.1"是网络号部分,最后一个字节"1"是主机号部分。
1)只有A,B,C类地址可以分配给网络中的主机或路由器接口
2)主机号全0的地址是网络地址,不能分配给主机和路由器接口
3)主机号全1的地址是广播地址,不能分配给主机或路由器接口
4)在32比特中,0开头的是A类地址,10开头的B类地址,110开头的是C类地址
列如:
IP地址为192.168.1.1,将192十进制转二进制得到11000000,是110开头,所以是C类地址,那么192.168.1为网络号,最后的1为主机号;
主机号全0或全1是指主机号对应的比特全0或全1;
主机号全0:192.168.1.0,这个地址为网络地址
主机号全1:192.168.1.255,这个地址为广播地址
5)除去网络地址和广播地址,剩下的192.168.1.1~192.168.1.254就是可以分配的地址
1.对于A类地址,网络号为8位,由于第一位固定,0和127不可分配,所以可分配的网络号数量为2^7-2,剩下的24位为主机号,网络地址和广播地址不能分配,所以可以分配的主机数量为2^24-2
2.对于B类地址,网络号为16位,由于前两位位固定,所以可分配的网络号数量为2^14,剩下的16位为主机号,网络地址和广播地址不能分配,所以可以分配的主机数量为2^16-2
3.对于C类地址,网络号为24位,由于前三位固定,所以可分配的网络号数量为2^21,剩下的8位为主机号,网络地址和广播地址不能分配,所以可以分配的主机数量为2^8-2
缺陷:对于这种ABC类型的地址,此时IP地址的网络号和主机号是固定数,就会很容易造成大量的IP地址浪费
3.子网划分
子网划分可以有效的解决地址分类造成的IP地址浪费问题
子网划分能够让IP地址的网络号和主机号位数能够根据需求变化
划分子网的方法:从主机号中借用一些比特位作为子网号来划分出不同的子网
在C类IP地址中,我们借用主机号的第一位比特来划分出子网,主机号就从原来的主机号数量减少一半了,在一定程度上缓解了IP地址浪费的问题
对于划分子网,我们就无法知道原来的主机号是多少位了,这时候我们就有了子网掩码,他就可以划分出网络号和主机号有多少位
子网掩码:左起连续的1对应IP中的网络号和子网号,之后的0对应主机号
对于上述的子网1和子网2,网络号和子网号有25位,所以对应25个1,主机号有7位,所以对应7个0,然后再将子网掩码用点分十进制表示就得到子网掩码为255.255.255.128
在cmd中输入ipconfig可以查看自己电脑的IP信息
默认子网掩码:指未划分子网的情况下使用的子网掩码
A类地址子网掩码:255.0.0.0
B类地址子网掩码:255.255.0.0
C类地址子网掩码:255.255.255.0
IP地址和子网掩码得到网络地址:将IP地址和子网掩码按位与(对应的数字都为1才为1,否则为0),就能得到IP地址所在的网络地址
对于主机号,将除去子网号的部分转化为十进制就可以得到
CIDR:使用CRID可以简化IP地址和子网掩码的表达;
格式:IP地址/子网号的位数
列如:IP:200.10.0.10
子网掩码:255.255.255.128
CIDR:200.10.0.10/25
同一网络判断:
1.通信时,发送方主机用自己的IP地址和自己的子网掩码按位与
2.发送方主机再用目的主机的IP地址和自己的子网掩码按位与
3.两个按位与的结果对比,判断是否在同一网络
如果目的主机和自己在一个网络,可以直接向目的主机发送消息
如果目的主机和自己不在同一网络,需要将消息发送到网关(路由器)
4.公网IP和私网IP
主要是为了缓解IP地址不够用的问题
公网IP:用于广域网,各不相同
私网IP:用于局域网,不同网络中可以相同
私网IP:
A类:10.0.0.0/8~10.255.255.255/8
B类:172.16.0.0/16~172.31.0.0/16
C类:192.168.0.0/24~192.168.255.0/24
NAT
NAT(Network Address Translation)即网络地址转换。它是一种在 IP 网络中用于将私有 IP 地址转换为公有 IP 地址的技术。当内部网络(如企业内部局域网)中的主机要与外部网络(如互联网)通信时,NAT 设备(通常是路由器)会对数据包中的源 IP 地址进行转换。
工作原理:
私有 IP 和公有 IP:
在一个局域网内,设备通常使用私有 IP 地址,这些地址是在特定范围内预留的,不会在互联网上直接路由。例如,IPv4 中私有 IP 地址范围包括 10.0.0.0 - 10.255.255.255、172.16.0.0 - 172.31.255.255 和 192.168.0.0 - 192.168.255.255。公有 IP 地址是由互联网服务提供商(ISP)分配的、在互联网上唯一可路由的 IP 地址。
转换过程:
当内部网络中的主机(假设其 IP 地址为 192.168.1.10)向外部网络发送数据包时,NAT 设备会将数据包的源 IP 地址从私有 IP(192.168.1.10)转换为公有 IP(例如由 ISP 分配的 202.10.10.10)。同时,NAT 设备会记录这个转换关系,以便当外部网络的主机回复数据包时,能够将目的 IP 地址从公有 IP 转换回私有 IP,从而使内部网络的主机能够正确接收响应
类型:
静态 NAT:
在静态 NAT 中,内部网络中的每个私有 IP 地址都被映射到一个固定的公有 IP 地址。例如,内部网络中有一台服务器,其私有 IP 地址为 192.168.1.20,通过静态 NAT 将其映射到公有 IP 地址 202.10.10.20。这种方式适用于需要外部网络能够直接访问内部特定服务器的情况,如企业内部的 Web 服务器或邮件服务器。
动态 NAT:
动态 NAT 会根据需要从一个公有 IP 地址池中动态地分配公有 IP 地址给内部网络的主机。当内部主机请求访问外部网络时,NAT 设备从公有 IP 地址池中选择一个可用的公有 IP 地址进行转换。这种方式能够更有效地利用公有 IP 地址,适用于内部网络中有大量主机需要临时访问外部网络的情况。
端口地址转换(PAT):
这是最常用的一种 NAT 类型。PAT 也称为 NAT 重载(NAT Overload)。它不仅转换 IP 地址,还转换端口号。在 PAT 中,多个内部主机可以共享一个公有 IP 地址。例如,内部网络中有 3 台主机(IP 地址分别为 192.168.1.1、192.168.1.2 和 192.168.1.3)同时访问外部网络,NAT 设备可以将它们的源 IP 地址都转换为同一个公有 IP 地址(如 202.10.10.10),但通过不同的端口号(如 1024、1025、1026 等)来区分不同的内部主机,从而实现多个主机通过一个公有 IP 地址与外部网络通信。
优点:
节省公有 IP 资源:由于 IPv4 地址空间有限,通过 NAT 技术可以让多个内部私有 IP 地址的设备共享一个或少量的公有 IP 地址,从而大大节省了公有 IP 地址资源。这对于企业和家庭网络等内部网络规模较大,但只需少量对外访问的情况非常有利。
增强网络安全性 :NAT 对内部网络的 IP 地址进行隐藏,外部网络无法直接看到内部网络主机的真实 IP 地址。这使得外部攻击者难以直接访问内部网络中的设备,起到了一定的安全防护作用。例如,黑客想要攻击内部网络中的一台主机,如果没有 NAT,主机的私有 IP 地址在互联网上暴露,很容易成为攻击目标;而有了 NAT,黑客只能看到 NAT 设备的公有 IP 地址,增加了攻击的难度
5.IP协议
版本:目前主要使用的是 IPv4(版本号为 4)和 IPv6(版本号为 6)
首部长度:指示IP首部的长度,IP首部包含固定部分和可变部分,固定部分每行是4个字节,所以固定部分是20个字节,可变部分最大是40个字节;如果首部长度字段的值为 5,那么首部长度就是
5*4=20字节,正常情况下,没有可选字段时,IP 首部长度为 20 字节,此时该字段的值为 5
服务类型:不需要了解
总长度:它表示整个 IP 数据包(包括首部和数据部分)的长度,单位是字节。数据部分的长度=总长度-首部长度
标识符:用于标识从源主机发送的一个 IP 数据包所属的分组。当一个 IP 数据包过大需要分片传输时,所有属于同一个原始数据包的分片都具有相同的标识符。接收方可以通过这个标识符来判断哪些分片属于同一个原始数据包,以便进行重组
标志:标志有三个标志位,第一个标志位是保留位,不用管。第二个标志位是允不允许分片(0表示允许分片,1表示不允许分片),第三个标志位是是否是最后最后一个分片(0表示是最后一片,1表示不是最后一片)
片偏移:用于指示每个分片在原始数据包中的相对位置。它是以 8 字节为单位计数的。接收方可以根据片偏移量来确定各个分片在原始数据包中的位置,从而正确地重组分片。例如,一个原始数据包被分成 3 个分片,第一个分片的片偏移量为 0,第二个分片的片偏移量可能为某个值(取决于第一个分片的长度),第三个分片的片偏移量根据前两个分片的长度来确定,接收端根据这些偏移量将分片按顺序组合。
生存时间:定义了 IP 数据包在网络中可以经过的最大路由器跳数。每经过一个路由器,TTL 的值就会减 1。当 TTL 的值减为 0 时,路由器会丢弃该数据包,并向源主机发送一个 ICMP 超时消息。这可以防止数据包在网络中无限循环,避免网络拥塞。例如,一个数据包的 TTL 初始值为 64,经过 64 个路由器后如果还没有到达目的主机,就会被丢弃。
协议:用于指示 IP 数据包中数据部分所使用的协议类型。值为 6 表示传输层协议是 TCP,值为 17 表示传输层协议是 UDP。通过这个字段,接收方的网络层可以将数据部分正确地交给相应的传输层协议进行处理。
首部校验和:用于检查 IP 首部在传输过程中是否出现错误。它是对 IP 首部进行计算得到的校验和。发送方在发送数据包时计算首部校验和,接收方在收到数据包后重新计算校验和,并与收到的校验和进行比较。如果两者不同,就表示首部在传输过程中出现了错误,接收方可以选择丢弃该数据包。
源IP地址和目的IP地址:源IP地址用于标识发送数据包的主机的 IP 地址;目的 IP 地址用于标识接收数据包的主机的 IP 地址。
可选字段和填充:如果拥有可选字段,可选字段的长度不是4字节的倍数,就需要使用填充来使整个IP协议的首部为4字节的倍数
6.如何解决IP地址不够用
1.动态分配IP地址:只给接入网络的设备分配IP地址。因此同一个MAC地址的设备,每次接入互联网中,得到的IP地址不一定相同
2.NAT技术:在公网和私网有介绍
3.IPV6:IPv6与IPv4彼此不兼容,IPv6用16个字节128位来表示一个IP地址,现阶段全世界的普及程度还是比较低