IP协议、ARP以及子网划分合并超网

---------------------------------------------------------------------------------------------------------------------------------------

Internet层

Internet Protocol ip协议

ICMP协议:因特网控制信息协议,ping命令所用协议

ping 192.168.1.1 -s 64:指定数据包是64个字节去ping

image.png

icmp_seq:发出的数据包序号

ttl:数据包生命周期,数据经过路由器数据包生命周期会有减少

 

traceroute:相当于windows的tracert命令,也属于icmp协议

mtr:跟踪数据包命令,也属于icmp协议

image.png

上列地址改为1禁止ping命令

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all


IGMP协议:因特网组管理协议

ARP协议:地址解析协议,基于网段工作,不能跨越路由器,把ip地址翻译成mac地址,

向网络发广播寻找目标地址,将目标地址mac暂时设定为48个1,也就是ff:ff:ff:ff:ff发送的

数据包中包含有自己的地址,也就是源地址找到后将mac地址记录下,过段时间后如果不访问,arp表内该条记录将会自动删除,arp将信任第一次ip的mac地址


ARP发生在三次握手之前

Gratuitous ARP:免费ARP模式,不应答、不公布自己的地址,避免地址冲突

反向ARP:根据网络上的mac地址发送ip地址

DHCP服务器:给网络中的计算机分配地址


两台设备互相通讯,先路由表,再ARP,最后三次握手,三者有一处有问题,网络都会不通

 

Internet 协议特征

  运行于OSI 网络层

  面向无连接的协议

  独立处理数据包

  分层编址

  尽力而为传输,但不确保一定能到

  无数据恢复功能

 

IP PDU报头

image.png

 

版本 ipv4、ipv6、ipv9,32位,ipv4地址数:2^32个ip地址,ipv6地址数:2^128个ip地址,ipv9地址数:2^2048个ip地址;

首部长度:长度达到20个字节;

总长度:可以到达2^16个字节,即65536个字节;

标识:分片后的小包具有标识,表明这些小包来自于一个包片偏移:片处于整个包的哪个位置,以8个字节为偏移单位,抓包出来的数字均已经除过8计算的;

标志:占3位,第一位不起作用;第二位DF,当DF=0时候允许分片,df=1表明该包没有分片;第三位MF,当MF=1毕爱明后面还有分片,MF=0表示最后一个分片;

生存时间:ttl生命期,ttl生命期更改路径:/proc/sys/net/ipv4/ip_default_ttl;

协议:谁是上层,就写谁的协议

 

ip地址

ip地址本没有 .,只是为了书写简便、便于识别,而且每一位都是8位的二进制,比如0.0.0.0是00000000000000000000000000000000

它们可唯一标识IP 网络中的每台设备

每台主机(计算机、网络设备、外围设备)必须具有唯一的地址

IP地址由两部分组成:

网络ID:可以理解为电话区号

标识网络

每个网段分配一个网络ID

主机ID:可以理解为电话号

标识单个主机

由组织分配给各设备

IP地址:网络id+主机id


IP地址分类

A类:前8位网络ID,后24位主机id,最高位是0,全球才有126个A类网段,样式:0XXXXXXX.A.B.C,最高位不动,可变的只有0后面的7位,因此最多是127.A.B.C,网段数=2^可变的网络ID位数,即2^7=128,0-127.A.B.C,因为0和127网段特殊,因此只能使用1-126个网段可用,该网段内ip可分配10.0.0.0-10.255.255.255,10.0.0.0为网络id,10.255.255.255也为网络广播地址,因此ip数为2^24 -2,所以说一个A类网段存放主机数为16777214,子网掩码:255.0.0.0;

B类:前16位网络ID,后16位主机id,2^14个网段,一个B类网段有2^16 -2=65534个主机数,标识128.A.B.C-191.A.B.C,子网掩码:255.255.0.0;

C类:前3位110,前24位网络ID,后8位主机ID,2^21个网段,2^8 -2个主机数,11000000.A.B.C-11011111.A.B.C,即192.A.B.C-223.A.B.C,掩码:255.255.255.0;

D类:不能给主机分配,给多播地址分配ip,1110XXXX.A.B.C,范围11100000-11101111.A.B.C,即224-239.A.B.C;

E类:保留未使用,11110XXX.A.B.C

 

CIDR无类域名路由:网络id位数不确定,可能会出现无规则位的网络id,为了确定网络id位数,引用子网掩码进行规则

CIDR表示法:192.168.0.1/24,24个网络id段

 

子网掩码:确定网络ID位数,高位为1,低位为0,1和0只能连续出现,不能相互分隔,为1的位数即为网络id位,为0的位数为主机ID位,有多少个1就有多少个网络id位,有多少个0就有多少个主机id,比如说255.255.255.0,转换为二进制后有连续24个1,连续8个0,因此有24个网络id位,8个主机位


比如问ip192.168.200.100 子网掩码255.255.240.0 此ip所在网段有多少主机?255有8个1,240有4个1,所以网络id是8+8+4=20个,从而得出主机id=32-20=12个,因此主机数是2^12-2=4094

 

子网掩码只会出现

00000000    0

10000000    128

11000000    192

11100000    224

11110000    240

11111000    248

11111100    252

11111110    254

11111111    255


具体子网划分请查看练习题


公式总结:

1、网段数=2^可变的网络ID位数

2、ip数=2^主机id数-2,或者ip数=2^(32-网络id数)

3、CIDR无类域名路由:网络id位数不确定,可能会出现无规则位的网络id

4、网络id=ip与netmask(与运算)

5、判断目标主机是否和本主机在同一个网段,本机的子网掩码与双方相与,再比较

6、划分子网:将一个大网(主机多,主机id位数多)分隔成多个小网(主机少,主机id位数少),网络id向主机id借位,比如10.0.0.1-10.255.255.254划分子网,网络id向主机id借1位,此时子网范围是10.127.255.254/9,10.0 0000000.0.0.1变为10.0 1111111.0.0.1,借n位变成2^n个子网

7、合并超网:将多个小网合成一个大网,主机id向网络id借位,主机id变多,倒着找,共同点最多的位数做网络id位

220.78.168.0/24          220.78.10101 000.0

220.78.169.0/24  合并 220.78.10101 001.0   之后 220.78.10101000.0也就是220.78.168.0/21

220.78.175.0/24          220.78.10101 111.0

                                                      

A 192.168.32.1/16和B 192.168.33.1/24是否可以连通?

A通讯B不知道B的子网掩码,就用自己的子网掩码通讯,两者网络id都是192.168.0.0,可以通

B通讯A不知道B的子网掩码,也用自己的子网掩码通讯,一个是192.168.32.0,一个是192.168.33.0,无法通


公共IP地址

image.png

私有地址范围

image.png

A:10.0.0.0/8 ,1个网段

B:172.16.0.0/16

  172.17.0.0/16

  …

  172.31.0.0/16

16个网段

 

C:192.168.0.0/24

  192.168.1.0/24

  …

  192.168.255.0/24

  256个网段

 

特殊地址

a.0.0.0.0不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络

b.255.255.255.255限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机

c.127.0.0.1~127.255.255.254本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包

d.224.0.0.0到239.255.255.255组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址多用于一些特定的程序以及多媒体程序

e.169.254.x.x如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主机分配这样地址

 

跨网络通信

跨网络通信:路由

路由分类:

  主机路由

  网络路由

  默认路由

优先级:精度越高,优先级越高

connect: Network is unreachable,路由未设置会提示