且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

重学计算机网络(二) - 曾记否,查IP地址(上)

更新时间:2021-08-06 17:54:32

1.1.1.1 不是测试用的,原来一直没分配,现在被用来做一个DNS了,宣传是比谷歌等公司的DNA服务更保护用户隐私

255.255.255.255,代表有限广播,它的目标是网络中的所有主机

0.0.0.0,通常代表未知的源主机。当主机采用DHCP动态获取IP地址而无法获得合法IP地址时,会用IP地址0.0.0.0来表示源主机IP地址未知

NID不能以数字127开头。NID 127被保留给内部回送函数,作为本机循环测试使用

例如,使用命令ping 127.0.0.1测试TCP/IP协议栈是否正确安装。在路由器中,同样支持循环测试地址的使用。

1 ip

1.1 ifconfig V.S ip addr

  • Windows - ipconfig
  • Linux上- ifconfig

还有— ip addr


net-tools起源于BSD,自2001年起,Linux社区已经对其停止维护,而iproute2旨在取代net-tools,并提供了一些新功能。一些Linux发行版已经停止支持net-tools,只支持iproute2。

net-tools通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。net-tools中工具的名字比较杂乱,而iproute2则相对整齐和直观,基本是ip命令加后面的子命令。

虽然取代意图很明显,但是这么多年过去了,net-tool依然还在被广泛使用,***还是两套命令都掌握吧。

ip addr

重学计算机网络(二) - 曾记否,查IP地址(上)

显示这台机器上所有的网卡,大部分的网卡都有一个IP地址。


IP地址是一个网卡在网络世界的通讯地址,相当于门牌号码

既然是门牌号,不能大家都一样,不然就会冲突。所以,有时候咱们的电脑弹出网络地址冲突,出现上不去网的情况,多半是IP地址冲突。


ip地址被点分隔为四个部分,每个部分8bit,总共32位。这样产生的IP地址的数量很快就不够用了。于是就有了IPv6,即inet6 fe80::…

这个有128位,现在看来是够的。


1.2 分类

32位IP地址被分为5类:

重学计算机网络(二) - 曾记否,查IP地址(上)

重学计算机网络(二) - 曾记否,查IP地址(上)

构成

重学计算机网络(二) - 曾记否,查IP地址(上)

A、B、 C类主要分为两部分:

  • 前部分 - 网络号
  • 后部分 - 主机号

可以理解成大家都是1单元1号,但我是Java小区的,而你是PHP小区的。

C网广播地址一般为: 192.XXX.XXX.255 ( 比如:192.168.1.255 )

A、B、C三类地址所能包含的主机的数量:

重学计算机网络(二) - 曾记否,查IP地址(上)

  • C类地址能包含的最大主机数量实在太少了,只有254个。当年设计恐怕也没想到,现在估计一个网咖都不够用。
  • B类地址能包含的最大主机数量又太多。6万多台机器放在一个网络下面,一般的企业基本达不到这个规模,闲着的地址就是浪费。

2 无类型域间选路(CIDR)

这打破了原来设计的几类地址的做法,将32位的IP地址分为:网络号+主机号。

10.100.122.2/24,这个IP地址中有一个斜杠,斜杠后面有个数字24,这种地址表示形式,就是CIDR

24表示32位中前24位是网络号,后8位是主机号。

伴随着CIDR存在的

  • 广播地址
    10.100.122.255 若发送这个地址,则所有10.100.122网络里面的机器都可以收到
  • 子网掩码
    255.255.255.0

将子网掩码和IP地址进行AND计算,得到网络号

  • 前面三个255,转成二进制都是1
    1和任何数值取AND,都是原来数值,前三个数不变:10.100.122
  • 后面一个0,转换成二进制是0
    0和任何数值取AND,都是0,因而最后一个数变为0,合起来就是10.100.122.0

3 公/私有IP地址

日常工作,几乎不用划分A类、B类或者C类,很多人就忘记了这个分类,只记得CIDR

但是有一点还是要注意的,就是公有IP地址和私有IP地址

重学计算机网络(二) - 曾记否,查IP地址(上)

上面的表格。表格最右列是私有IP地址段

平时看到的数据中心里,办公室/家/学校的IP地址,一般都是私有IP地址段

因为这些地址允许组织内部的IT人员自己管理、分配,而且可重复

因此,你学校的某个私有IP地址段和我学校的可以是一样的。


这就像每个小区有自己的楼编号和门牌号,你们小区可以叫6栋,我们小区也叫6栋,没有任何问题

但是一旦出了小区,就需要使用公有IP地址。就像人民路888号,是国家统一分配的,不能两个小区都叫人民路888号。


公有IP地址有个组织统一分配,你需要去买

如果你搭建一个网站,给你学校的人使用,让你们学校的IT人员给你一个IP地址就行

但是假如你要做一个类似网易163这样的网站,就需要有公有IP地址,这样全世界的人才能访问。


表格中的192.168.0.x是最常用的私有IP地址

你家里有Wi-Fi,对应就会有一个IP地址。一般你家里地上网设备不会超过256个,所以/24基本就够了

有时候我们也能见到/16的CIDR,这两种是最常见的,也是最容易理解的。


不需要将十进制转换为二进制32位,就能明显看出192.168.0是网络号,后面是主机号

而整个网络里面的第一个地址192.168.0.1,往往就是你这个私有网络的出口地址

例如,你家里的电脑连接Wi-Fi,Wi-Fi路由器的地址就是192.168.0.1

一旦发送这个地址,整个192.168.0网络里面的所有机器都能收到。

但是也不总都是这样的情况。因此,其他情况往往就会很难理解,还容易出错。