IP协议解析
ip地址的查看
windows下在cmd中使用ipconfig命令。linux下使用ifconfig或者ip addr。
无线局域网适配器 WLAN:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::9f8:3aa8:2223:fc2%16
IPv4 地址 . . . . . . . . . . . . : 172.30.22.83
子网掩码 . . . . . . . . . . . . : 255.255.0.0
默认网关. . . . . . . . . . . . . : 172.30.0.1
ip的含义:
- ip是计算机在互联网中的地址,如上面的172.30.22.83就是本台计算机连接的校园网中所被分配的ip地址。每一个ip地址都有四个部分,每个部分8个比特,所以IPv4总共能分配2的32次方-1个地址。对与现在来说已经不够用了,所以有了IPv6,就是上面的fe80::9f8:3aa8:2223:fc2%16。(Ipv6的表示与IPv4略有不同,如果一个部分4位都是0,可以简写为一个0,如果连续几个部分都是0,可以简写为::,但只能出现一次。%后面的数字表示接口标识符,相当于网卡的编号。)
- IPv4总共分为了5类(A,B,C,D,E),前三类又能分为两个部分,分别是网络号和主机号,具体的地址由子网掩码来确定。
- A类:(1.0.0.0-126.0.0.0)(默认子网掩码:255.0.0.0或 0xFF000000)第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为“0”,所以地址的网络号取值于1~126之间。一般用于大型网络。最大主机数16777214。
- B类:(128.0.0.0-191.255.0.0)(默认子网掩码:255.255.0.0或0xFFFF0000)前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”,所以地址的网络号取值于128~191之间。一般用于中等规模网络。最大主机数65534。
- C类:(192.0.0.0-223.255.255.0)(子网掩码:255.255.255.0或 0xFFFFFF00)前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为“110”,所以地址的网络号取值于192~223之间。一般用于小型网络。最大主机数254。
- D类:是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。一般用于多路广播用户 。这类地址可以让所属组的每一个机器都能收到。
- E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于240~255之间。
- IP地址的分类在某种情况下并不合理。C类太少,而B类太多,某系场景会使得ip地址不足和浪费,所以有了另一个方式无类型域间选路,即CIDR。
无类型域间选路
将ip地址分为了两个部分,前一部分是网络号,后一部分是主机号。有的ip地址后面会有一个‘/’,后面有一个数字加设为a,意思就是在32的ip地址中,前a位是网络号,后a位就是主机号,用这种方式表达地址就是CIDR。与它一起的还有两种技术,广播地址和子网掩码。
- 广播地址:在发送地址的时候同一个网段所有机器都能收到
- 子网掩码:用来确定主机号和网络号,主机号也就是网段。确定过程是将子网掩码和IP地址都化为二进制然后进行AND运算,除去后面的0就可以得到网络号。
公有IP地址和私有IP地址
A,B,C三类都会包含一个私有的IP地址范围,分别是A(10.0.0-10.255..255.255),B(172.16.0.0-172.31.255.255),C(192.168.0.0-192.168.255.255)。私有的IP地址可以在搭建局域网,自由分配局域网内计算机的IP地址。公有的IP地址是计算机在整个互联网中的地址,是独一无二的。
MAC地址
windows下可以使用cmd运行ipconfig/all来查看mac地址。mac是网卡的物理地址,也是独一无二的,用十六进制,6个byte表示。网卡生产出来都会自带mac地址。与IP地址不同的是mac地址主要使用于现实世界,IP地址使用在互联网当中,而只有IP地址在网络传输数据的时候具有定位功能。mac地址主要是在组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突。从硬件角度,保证不同的网卡有不同的标识。
IP地址的使用和配置
在linux下,需要管理员权限,可以用ifconfig和ip addr。
```
$ sudo ifconfig eth1 10.0.0.1/24
$ sudo ifconfig eth1 up
或者
$ sudo ip addr add 10.0.0.1/24 dev eth1
$ sudo ip link set up eth1
```
配置IP地址会有一定的风险,在局域网内需要和其它机器有相同的网段,而且主机名不能重复。如果linux发现是一个网段的话可以发送ARP请求(根据目标设备的IP地址找到目标设备的MAC地址。),获取到其它机器的mac地址。如果不在同一个网段,Linux 默认的逻辑是,如果这是一个跨网段的调用,它便不会直接将包发送到网络上,而是企图将包发送到网关。但发送数据到对方机器时,对方机器会发现这个mac地址和自己的不一样,对方机器也不会接受这个数据。这就需要配置网关地址,而且网关地址要和当前网卡是同一个网段的。这样会非常麻烦且容易出错,一般情况下应该向局域网的网络管理员申请一个正确的IP地址。还有另外一直局域网分配IP的方法,就是动态主机配置协议(DHCP)
动态主机配置协议
DHCP协议可以通过网络管理员先配置一段共享的IP地址,然后每一个接入的机器在这个共享里面申请,然后自动配置。不需要的时候也可以还回去让其它的机器复用。
- DHCP的工作方式
- 新的机器加入局域网时没有ip地址,只知道mac地址,新机器会发起一个数据包,新来的机器使用IP地址 0.0.0.0 发送了一个广播包,目的IP地址为255.255.255.255,mac地址为ff:ff:ff:ff:ff:ff。广播包封装了 UDP,UDP 封装了 BOOTP。这一过程称为DHCP Discover。
- 网络管理员配置的DHCP Server会收到这个广播包,然后就可以租给新机器一个IP地址。这个过程是DHCP Offer。除了IP地址,DHCP Server还会发送子网掩码,网关,IP地址的租用时间等信息。
- 如果有多个DHCP Server服务器,新机器会选择最先到达的,并且会向网络发送一个 DHCP Request 广播数据包,包中包含客户端的 MAC 地址、接受的租约中的 IP 地址、提供此租约的 DHCP 服务器地址等,并告诉所有 DHCP Server 它将接受哪一台服务器提供的 IP 地址,让其它的Server撤销它们提供的租用IP。另外,新机器还需要等待DHCP Server的确认信息,所以客户端仍然使用 0.0.0.0 为源 IP 地址、255.255.255.255 为目标地址进行广播。在 BOOTP 里面,接受某个 DHCP Server 的分配的 IP。
- 当 DHCP Server 接收到客户机的 DHCP request 之后,会广播返回给客户机一个 DHCP ACK 消息包,表明已经接受客户机的选择,并将这一 IP 地址的合法租用信息和其他的配置信息都放入该广播包,发给新机器。这时新机器正式加入局域网中。
- IP地址的收回和续租
客户机会在租期过去 50% 的时候,直接向为其提供 IP 地址的 DHCP Server 发送 DHCP request 消息包。客户机接收到该服务器回应的 DHCP ACK 消息包,会根据包中所提供的新的租期以及其他已经更新的 TCP/IP 参数,更新自己的配置。这样,IP 租用更新就完成了。
预启动执行环境(PXE)
-
预启动执行环境是指计算机未安装操作系统,只有BIOS,通过BIOS安装操作系统这一过程。简称PXE。
-
PXE 协议分为客户端和服务器端,由于还没有操作系统,只能先把客户端放在 BIOS 里面。当计算机启动时,BIOS 把 PXE 客户端调入内存里面,就可以连接到服务端做一些操作了。
-
PXE客户端可以发送DHCP请求获取IP地址,除了IP地址,客户端好需要PXE服务器的地址,这个服务器的地址可以通过DHCP Server 获取到。
#DHCP Server 的一个样例配置 ddns-update-style interim; ignore client-updates; allow booting; allow bootp; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option subnet-mask 255.255.255.0; option time-offset -18000; default-lease-time 21600; max-lease-time 43200; range dynamic-bootp 192.168.1.240 192.168.1.250; #配置初始启动文件 filename,PXE 客户端收到这个文件后,就开始执行这个文件。这个文件会指示 PXE 客户端,向 TFTP 服务器请求计算机的配置信息 pxelinux.cfg。TFTP 服务器会给 PXE 客户端一个配置文件,里面会说内核在哪里、initramfs 在哪里。PXE 客户端会请求这些文件。然后就能启动linux内核。 filename "pxelinux.0"; #PXE服务器地址 next-server 192.168.1.180; }
PXE 客户端启动之后,发送 DHCP 请求之后,除了能得到一个 IP 地址,还可以知道 PXE 服务器在哪里,也可以知道如何从 PXE 服务器上下载某个文件,去初始化操作系统。另外,下载文件使用的是TFTP协议,PXE服务器上也要有TFTP服务器。
-
网卡
又称网络适配器。用于计算机和网络电缆之间的物理连接。网卡完成物理层和数据链路层的大部分功能。每块网卡都有一个唯一的MAC地址或物理地址,采用十六进制数表示,共六个字节(48位)。前三个字节是厂家编码,后三个字节由各厂家自行指派 -
路由器
路由器是网络层的互联设备,用于连接多个逻辑上分开的网段,所谓逻辑网段就是拥有独立网络地址的网段。路由器的工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据帧有效地传送到目的站点。路由器每个端口是一个冲突域,每个端口是一个广播域。