互联网世界的门牌号
我们常说IP是互联网世界的门牌号,在上一章中提及当发送一次网络请求时,一般会根据域名去一个地址薄上找到目标机器的IP地址,其中还用到了DNS协议,也引出了今天的主角IP。
那什么是IP呢?
IP指网际互连协议,Internet Protocol的缩写,是[TCP/IP]体系中的网络层协议。来源自百度百科。
通俗来讲,为所有需要连接到Internet网络的设备提供一个数字地址,像电话号码一样,当有了IP以后,也具备了两种能力
- 能够被同样接入Internet网络的设备所识别
- 提供了接收和发送数据的能力,也就是通信
在早期的设计中,IP地址是以点分十进制来表示的,将整体分成了四部分,每部分站8个bit位,整体就是32位,比如我下图的一个IP地址
但是互联网高速发展,理论上能分配2^32大约40亿个IP地址,很快这些IP就用完了,从而也就是有了升级的方案IPV6
IPV6是以冒号分隔的十六进制数字,一共八部分,128位。理论上也存在数量的限制,但是远远比IPV4要多,但是主流的还是以IPV4为主。
公网IP与私有IP
我们在一片局域网内被分配的IP是私有IP,要想被全世界各地的人能访问到,就需要公网的IP。
不同操作系统下如何查看IP地址
在Linux或者Mac系统下,可以通过ifconfig命令查看,如果在windows系统下可以通过ipconfig查看 。但是在执行命令后,会显示很多的信息,哪些信息是我们需要关注的呢?
当执行完这个命令后,可以看到如下的信息,找到en0处
我们的inet也就是代表着IPV4的地址,也就是我们常说的那个地址,而上面的inet6也就是IPV6,可以看到这部分的一个简要信息。
同样的,除了ifconfig还可以用其他的命令来查看吗?有的,那就是ip addr。
各部分含义
回到我们的这部分来继续看,可以看到这里面有很多的信息,具体都是什么含义呢,我把他们粘出来逐一解释
en0: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=6463<RXCSUM,TXCSUM,TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
ether b0:be:55:9e:v9:d9
inet6 fe80::26:e2fc:8ee9:a4b3%en0 prefixlen 64 secured scopeid 0xb
inet 192.168.0.106 netmask 0xffffff00 broadcast 192.168.0.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
MAC地址
也就是上面的ether后面的地址,是一个网卡的物理地址,用十六进制表示。
网络设备的状态标识
<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST>
- UP 表示网卡处于启动状态
- BROADCAST 表示这个网卡有广播地址,可以发送广播包
- MULTICAST 表示网卡可以发送多播包
- mtu 1500 表示最大传输单元 这是以太网的默认值
IPV4地址
inet 192.168.0.106 可以看到私有IP地址。
IPV6地址
inet6 fe80::26:e2fc:8ee9:a4b3
结语
本篇主要了解IP地址的含义以及在查找IP地址时所涉及的一些信息。
参考
《TCP/IP网络编程》尹圣雨
《趣谈网络协议》 刘超
《深入理解TCP协议:从原理到实战》 挖坑的张师傅