程序员社区

IP地址是什么

在用TCP/IP通信时,用IP地址识别主机和路由器。为了保证正常通信,有必要为每个设备配置正确的IP地址,否则根本无法实现正常的通信

IPv4

IPv4地址由32位比特组成,共4个字节,人们更习惯用十进制表示,所以就把每个字节转换成十进制,中间用点号隔开,比如192.168.1.1

IP地址是什么插图

IPv4可分配的地址有多少个呢?2^32 = 4 294 967 296,差不多43亿个,也就是说最多允许43亿台设备同时接入网络,而在2019年IPv4地址就已经正式耗尽

IP地址是什么插图1

IP地址并不是根据主机配置的,也就是说一台主机不是只能有一个IP地址,而是根据网卡设置IP地址,但是,网卡也可以设置多个IP,还可以不配置IP地址。而像路由器,通常都有两块网卡

那你的电脑的IP地址是如何分配的呢?是随意分配的吗?全球网络这么多设备,IP地址是设备的唯一标识,不可能随意配置,重复了怎么办

IP地址由网络标识(网络地址)和主机标识(主机地址)组成

网络标识是数据链路的每个段的唯一的标识,换句话说,网络标识是局域网的唯一的网络地址,每个局域网都有的网段

主机标识是同一个局域网内的主机的唯一标识,在同一个局域网内的主机不可拥有相同的主机地址

由此:

一台主机的IP地址是由唯一的网络地址+唯一的主机地址组成了唯一的IP地址,保证了IP地址在全局网络中的唯一性

如何划分网络地址和主机地址?有两种方式

  • 192.168.1.1/24,表示网络地址有24个比特位

IP地址是什么插图2

192.168.1是网络地址,1是主机地址

  • 192.168.1.1,Netmask 255.255.255.0,用子网掩码netmask表示

IP地址是什么插图3

子网掩码是把IP地址的网络地址位全部置为1,主机地址位全部置为0,然后每8个比特为一组,用十进制表示

IPv4地址分为四类:

IP地址是什么插图4

  • A类地址

首位为0,前8位是网络地址,网络地址范围是0000 0000 - 0111 1111,可分配的A类网段为0.0.0.0 - 127.0.0.0

  • B类地址

前两位为0,前16位是网络地址,可分配的B类网段为128.0.0.1 - 191.255.0.0

  • C类地址

前三位为110,前24位是网络地址,可分配的C类网段为192.168.0.0 - 239.255.255.0

  • D类地址

前四位为1110,全部32位都是网络地址,可分配的D类网段为224.0.0.0 - 239.255.255.255,D类地址没有主机地址,适合做多播地址(为什么?)

如果你想给自己的主机网卡配置IPv4地址,主机地址除了不能重复以外,还不能全部为0或者全部为1,因为全0表示只有在IP地址不可获知的情况下使用,而全1表示广播地址

虽然IPv4地址做了分类,但是在实际使用中不可能这么死板,需要根据局域网内的主机数量灵活设置

比如C类地址的主机数量有255,而我想搭建的局域网内的主机只有50个,那我用C类地址会浪费资源,怎么办呢?可以把网络地址和主机地址位灵活划分,以满足实际使用。用什么划分?子网掩码

比如局域网内最多有50台主机,用C类地址浪费,可以适当缩短主机地址位,从C类的8个bit缩短为6个,2^6 = 63,最多可以配置63个主机,相应的网络地址位就是26位

IP地址是什么插图5

子网掩码是255.255.255.192

IPv6

为了解决IPv4地址枯竭的问题,IPv6应运而生

IPv6是IPv4的4倍,由128个比特位组成,共16个字节,和IPv4用10进制表示不同,IPv6以每16位为一组,用16进制表示,中间用冒号隔开,比如:DEAF:2780:3A4E:0189:C3D5:F728:6B23:1011

那IPv6可分配的地址有多少呢?2^128,听说可以给地球上的每一粒沙子都分配一个IPv6的地址

IPv6没有ABCD类地址之分,也没有子网掩码,它的寻址方式也不是ARP寻址,感兴趣的可以自己了解,我了解的也不多


赞(0) 打赏
未经允许不得转载:IDEA激活码 » IP地址是什么

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区