ip基础---ipv4

前面学习了路由协议和路由控制,现在我们来重新回顾下基础的东西,ipv4和ipv6,就会觉得原来网工其实也不难,实际上现实工作中,网工需要用的协议是很少的,但再少ip也是最基础的知识。

一、背景

学习ip地址前,我们先来看看目前ipv4和ipv6占比情况,2025年:在中国:固网ipv6占27%,移动网络占70%,总体占45%;在世界:总体占比39%。所以呢,虽然ipv4地址2011年就用完了,但ipv6部署到现在20多年还没能完全取代ipv4,那么ipv4和ipv6估计得陪伴现有的网络工作者一辈子了。

二、ipv4是什么

ipv4是协议族tcp/ip中最为核心的协议,它工作在网络层,该层与osi中网络层相对应。而我们后面要学的ipv6则是网络层第二代标准协议,也被称为ipng(ip next generation)。

三、ipv4报文

由上图我们可以得知,ip头部(网络层)是在以太网(数据链路层)和tcp(传输层,udp也是常见传输层协议)中间,它固定长度20字节,可变长度0-40字节,接下来我们看下报文组成:

①、version: 4bit,4代表ipv4,6代表ipv6。

②、header length:4bit(取值5-15),首部长度,如果不带option字段,则是20,带了最长为60。(15*4,因为采用4字节为基本计数单位,上面一横排就是4字节,所以头部长度是4的倍数,又因为取值5-15,所以取值为20-60字节中4的倍数的整数,后面的填充字段padding也是在添加options后不够4字节倍数时填充)

③、type of service:8bit,服务类型,qos差分服务起作用。

传统tos:3位优先级,4位服务类型(延迟/吞吐量/可靠性/成本),1位保留位;

现代dscp:6位共64种服务等级标示优先级,最低2位用于ecn显式拥塞通知。

dscp编码规则:(4种)

兼容TOS(CS):CS0-CS8。CS:CSn:xxx000(二进制x组成10进制n),如cs7为111000=56

默认PHB(BE):dscp=0,尽力而为服务。BE:000000=0

加速转发(EF):dscp=46,低延迟,低抖动,低丢包。EF:101110=46

保证转发(AF):分为4类(AF1-AF4),每类分3个丢弃低中高优先级。AF:最低位固定为0,倒数第二位第三位01(1)代表低丢弃优先级,10(2)为中,11(3)为高,前3位则表示AF1-AF4(001,010,011,100).如AF32=011100=28,AF21=010010=18

④、total length:16bit,总长度,整个IP数据包的长度。理论范围为20-65535(2的16次方-1),实际在以太网中受MTU限制,一般不超过1500字节,报文太大了就需要分片了。

⑤、identification:16bit,标识符;flags:3bit,标志位 ;fragment oddset:13bit,片偏移

identification:标识同一原始数据的所有分片,每个原始数据报分配唯一的id值,每发送id递增1

flags:从左到右,位0保留位置0;位1DF(1禁止分片,0允许分片);位2MF(1后续还有分片,0最后一个分片)

fragment:指当前分片数据在原始数据报中的起始位置,以8字节为单位,例如:MTU为1500字节,原始数据报为3000字节(即20头部+2980数据),首包偏移量为0,二包偏移量为185(1480/8),尾包偏移量为370(2980/8)

⑥、time to live:8bit,生存空间。0-255;通过逐跳递减机制保证数据包不会永远在网络中存在,当为0时数据包将被丢掉。之前我们学过的ebgp使用router id作为源接口时就需要把next-hop值设为2,因为默认为1

⑦、protocol:8bit,协议,下一层协议,如上面的tcp。决定接收方将数据交付给tcp/udp等特定协议处理,2025年加了2个协议,144新型物联网实验性分配,153量子安全隧道(QSTP)。

⑧、header checksum:16位,首部校验和。用于检测头部在传输过程中是否发生错误,每跳更新,计算采用反码求和算法。

例:原始16进制数据为:E34F2396442799F3;

  1. 相加:E34F + 2396 = 106E5 → 06E5 + 1 = 06E6(进位不丢弃加到低位)
    06E6 + 4427 = 4B0D
    4B0D + 99F3 = E500
  2. 取反:~(E500) = 1AFF
  3. 最终校验和为1AFF
  4. 接收方验证时,将所有16bit字(包括1AFF)相加:

E34F + 2396 + 4427 + 99F3 + 1AFF = FFFF (验证通过)

⑨、source destination ipaddress:各32bit,源目ip地址。

⑩、options:可变,选项字段;padding:可变,填充字段,全填0。

options:在固定20字节之后,包括option type,option length(1字节或可变),option data(可变);padding:比如ihl取值为8,option实际长度10字节,则填充为8*4-20-10=2字节。

四、ip地址

1、表示:从上面的ipv4报文头部我们已经知道了ipv4地址有32bit(2^32约为43亿个),通常使用点分十进制表示。如常见的私网地址192.168.1.100,ipv4的地址范围为0.0.0.0-255.255.255.255。

2、构成(2部分):ipv4的地址由两部分构成,网络部分和主机部分,而网络掩码可以区分一个ip地址的网络部分和主机部分。

3、分类(5类):ABCDE共5类ip地址,A-C类分配主机,D类用于组播,E类用于研究。

A:掩码8bit,0.0.0.0-127.255.255.255/8。(32bit中最高位为0)

B:掩码16bit,128.0.0.0-191.255.255.255/16。(32bit中最高2位为10)

C:掩码24bit,192.0.0.0-223.255.255.255/24。(32bit中最高3位为110)

D:无掩码,224.0.0.0-239.255.255.255。(32bit中最高3位为1110)

E:无掩码,240.0.0.0-255.255.255.255。(32bit中最高3位为1111)

注意:子网掩码核心作用是划分网络位和主机位,而D类地址是组播组,E类地址为保留位,目前也只有255.255.255.255这个全网广播地址在用,这两类都不参与传统网络划分,所以无网络掩码

4、ip地址计算(网络地址,主机地址,广播地址,ip地址个数,可用ip地址个数)

例:192.168.1.100/24   24代表网络位24位,主机位为8位(32-24),用二进制表示为

11000000 10101000 00000001 01100100  (192.168.1.100)

11111111   11111111   11111111  00000000  (255.255.255.0即掩码为24)

网络地址:把ip地址的主机位全部设为0,结果就是ip地址网络地址即192.168.1.0

广播地址:把ip地址的主机位全部设为1,结果就是ip地址广播地址即192.168.1.255

ip地址数:2^n,n为主机位位数,即2^8=256个

可用ip地址数:2^n-2=254个,即减去以网络地址一广播地址

5、公私网地址

公网地址:由IANA统一分配的,以保证任何一个ip地址在Internet上的唯一性。

私网地址:一般指的是园区内部网络,不需要连接到Internet上。A-C类的私网地址如下:

A:10.0.0.0 - 10.255.255.255

B:172.16.0.0 - 172.31.255.255

C:192.168.0.0 -192.168.255.255

从上面就可以看出A类地址(2^24)太多了,C类地址(2^16)有点少,B类刚刚好。这时候会不会发现就算把整个最小一个C类地址(256个)用作一个广播域都有点浪费地址,所以为了不那么浪费,我们就得对网络进行再次划分。

6、子网划分(即VLSM可变长子网掩码)

1)、例:192.168.10.0/24,默认情况下这个C类地址的主机位有8位,可以组成2^8=256个ip地址,但我的网络只需要获取的ip地址数只有20个,分配给我256个ip地址太浪费了。主机位8位太多,那我就向主机位借3位,这时候主机位只有5位,可以组成2^5=32个ip地址,这时候组成的ip地址为:192.168.10.0/27。此时有没有发现借主机位3位,主机的ip地址个数就变成之前的1/8,每借1位变成之前的1/2。

2)、刚刚我们知道了子网的划分,那么新划分的ip地址计算要怎么计算呢,其实原理跟上面是一样的。比如192.168.10.0/27,这个的网络地址就是192.168.10.0,广播地址为192.168.10.31(5位主机位全取1),可用ip地址数位2^5-2=30个。注意:192.168.10.35/27,这个的ip地址网络地址为192.168.10.32,广播地址为192.168.10.63,搞明白了吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值