当前位置:   article > 正文

学习笔记——网络参考模型——TCP/IP模型(网络层)_网络参考模型数据包分片

网络参考模型数据包分片

三、TCP/IP模型-网络层

1、IPV4报头

(1)IPV4报文格式

IP Packet(IP数据包),其包头主要内容如下∶

Version版本∶4 bit,4∶表示为IPv4; 6∶表示为IPv6。

Header Length首部长度∶4 bit,代表IP报头的长度(首部长度),如果不带Option字段,则为20,最长为60。

DS Field:定义优先级

DSCP:区分服务 后期结合QOS使用的 [不在QOS场景下 字段无意义]

Type of Service∶8 bit,服务类型。优先级,越高越先处理。只有在有QoS差分服务要求时,这个字段才起作用。

Total Length∶16 bit,总长度,整个IP数据包的长度(IP报头+上层数据 [总长度-IP报头长度=上层数据] )。

Identification∶ 16 bit,标识,分片重组时会用到该字段。

Flags∶ 3 bit,标志位。

Fragment Offset∶12 bit,片偏移,分片重组时会用到该字段。

TTL(Time to Live)∶8 bit,生存时间。

Protocol∶8 bit,协议∶下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。

常见值∶

1: ICMP, Internet Control Message;        2: IGMP, Internet Group Management;

6: TCP, Transmission Control Protocol;     17: UDP, User Datagram Protocol。

Header Checksum∶16 bit,首部检验和。

Source IP Address32 bit,源IP地址。

Destination IP Address32 bit,目的IP地址。

Options∶可变,选项字段。

Padding∶可变,填充字段,全填0。

(2)数据包分片

当数据包比链路MTU大时,将报文分割成多个片段的过程叫做分片

网络中转发的IP报文的长度可以不同,但如果报文长度超过了数据链路所支持的最大长度,则报文就需要分割成若干个较小的片段才能够在链路上传输。

Identification∶16 bit,发送主机赋予的标识,分片重组时会用到该字段。

Flags∶3 bit,标志位(标识)

DF:Dont’t fragment:不分片位[应用开发,本身制定了]

DF=0  代表该数据可以进行分片。保留段位∶0,保留。

DF=1  代表该数据不可以分片,数据大于MTU 单DF=1,则无法分片,数据丢弃。

不分段位∶1表示"不能分片"; 0表示"能分片"。

MF:更多分片

MF=1,表示"后面还有分片";

MF=0,表示"代表后方没有分片了,接受者可以重组"

Fragment Offset∶12 bit,片偏移,分片重组时会用到该字段。指出较长的分组在分片后,

该片在原分组中的相对位置,与更多段位组合,帮助接收方组合分段的报文。

>分片后,子分片会保留和原始分片相同的IP报头。

>分片后,除原始分片之外,其他的子分片都不会携带上层的协议报头[icmp-传输层][一般指最后一个]

(3)协议号(Protocol)

IP报文头中的协议号字段标识了将会继续处理该报文的协议。即指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上报给哪个进程处理。

目的端的网络层在接收并处理报文以后,需要决定下一步对报文如何处理。IP报文头中的协议字段标识了将会继续处理报文的协议。

该字段可以标识网络层协议,也可以标识上层协议,

- ICMP(Internet Control Message Protocol,因特网控制报文协议,对应值0x01)1=ICMP

- TCP(Transmission Control Protocol,传输控制协议,对应值0x06)      6=TCP

- UDP(User Datagram Protocol,用户数据包协议,对应值0x11)          17=UDP

- OSPF (Open Shortest Path First,开放式最短路径优先,对应值)          89=OSPF

(4)生存时间(Time to Live , TTL)

TTL字段设置了数据包可以经过的路由器数目(三层设备)[自带防环手断]。

防止IP数据包在网络内无休止的传输,一旦经过一个路由器(三层设备),TTL值就会减1,当该字段值为0时,数据包将被丢弃。

防环:规定特定数值255、128、64[不同的厂商不一样] 当TTL减为1后,数据会丢弃,并且向源端发送一个TTL超时。

破环:无法消除环路 -->结合 工程师在配置时合理化的配置

利用TTL特性,可以实现路由跟踪技术,排错的重要方法之一!

Ping -i   或   Tracert: ​​​​​​​

Time to Live∶8 bit,生存时间。可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。

报文在网段间转发时,如果网络设备上的路由规划不合理,就可能会出现环路,导致报文在网络中无限循环,无法到达目的端。环路发生后,所有发往这个目的地的报文都会被循环转发,随着这种报文逐渐增多,网络将会发生拥塞。

为避免环路导致的网络拥塞,IP报文头中包含一个生存时间TTL(Time To Live)字段。报文每经过一台三层设备,TTL值减1。初始TTL值由源端设备设置。当报文中的TTL 降为0时,报文会被丢弃。同时,丢弃报文的设备会根据报文头中的源IP地址向源端发送ICMP错误消息。(注意∶网络设备也可被配置为不向源端发送ICMP错误消息。)

Head checksum头部校验和 [E2=FCS] [类似]

FCS:所有                    Check-sum:校验IP报头的头部

2、IP地址

(1)IP地址介绍

IP地址在网络中用于标识一个节点(或者网络设备的接口)用于IP报文在网络中的寻址

IP地址:全局定位的作用 [工作在每一个需要网络层的设备上]

MAC地址:工作在链路上[工作在数据链路层环境下,实现在一个链路中定位某一个设备]

IP地址的作用是唯一标识网络中的一个节点,可以通过IP地址进行不同网段的数据访问。

在IP网络上,如果用户要将一台计算机连接到Internet上,就需要申请一个IP地址。IP地址就像现实中的地址,可以标识网络中的一个节点,数据就是通过它来找到目的地的。即我们通过IP地址实现全球范围内的网络通信。

IP地址是网络设备接口的属性,不是网络设备本身的属性。当我们说给某台设备分配一个IP地址时,实质上是指给这台设备的某个接口分配一个IP地址。如果设备有多个接口,通常每个接口都至少需要一个IP地址。

注∶需要使用IP地址的接口,通常是路由器和计算机的接口。

(2)IP地址表示

一个IPv4地址有32位二进制组成。IPv4地址通常采用"点分十进制"表示。

点分十进制表示法:IP地址表现形式能够帮助我们更好的使用和配置网络,但通信设备在对IP地址进行计算时使用的是二进制的操作方式,因此掌握十进制、二进制的转换运算非常有必要。

IPv4地址范围:00000000.00000000.00000000.00000000~11111111.11111111.11111111.1111111

即0.0.0.0~255.255.255.255。

进制,即表述数据的方法。进制类型:10进制、2进制、16进制

10进制:即组成数据的基本单元,包含了0-9。 主要是让人看的。

2进制:即组成数据基本单元,包含了0和1。 主要是让设备看的。

16进制:即组成数据基本单元,包含了0-9,a,b,c,d,e,f。 通常是用在“抓包软件”中,用于分析协议的数据包内容。

10进制的表示方法

127=1*10^2+2*10^1+7*10^0

2进制的表示方法

10101110=1*2^7+0*2^6+1*2^5+0*2^4+1*2^3+1*2^2+1*2^1+0*2^0

3、IP地址计算

2进制转换为10进制

常见应用场景:“IP地址”的识别和表示。

例如:IP地址的表示格式为:11000000.10101000.00000001.->192.168.1.1

2进制转换为10进制的核心精髓

牢记2^n的结果,n=0~7

1,2,4,8,16,32,64,128:10进制转换为2进制

常见应用场景:”IP地址”的识别、表示和判断。判断IP地址是否同网段。

例如:判断PC1(192.168.1.1/24)和(192.168.1.130/24)是否为同一个网段

10进制转换为2进制的核心精髓

通过将10进制数除以2,将最终的“余数”组合在一起,变成8个2进制,不足8位的用0补全。

计算机=二进制 010101011 方便计算机处理 "逻辑集成电路" 通=1 断=0

十进制=192.168.1.111 4组十进制数 点分十进制 共4组成

1组十进制=8位二进制 4组=4*8=32位,每一组十进制数都可以用8个二进制数来表达。

如果某一位无法表达当前的数值时,则触发进位进制;进位时,原来的位数要置为0。

位数:每一个数在不同的位表达的含义不一致的,自后向前表达,自后是小值,向前为大值。

规则:二进制的0/1 在不同的位表达的含义不一致,0永远代表不取值,1则表达的信息要具体与不同位进行对应。

1111=8+4+2+1=15

11111=16+8+4+2+1=31

111111=32+31=63

1111111=64+63=127

11111111=128+64+32+16+8+4+2+1=255

255.255.255.255

最大:所有可变的二进制位都置为1。

1111=8+4+2+1=15

11111=16+8+4+2+1=31

111111=32+31=63

1111111=64+63=127

11111111=128+64+32+16+8+4+2+1=255

最小:所有可变的二进制位都置为0。

0000 0000=0          0.0.0.0

例∶172.16.10.1/16这个B类地址的网络地址、广播地址以及可用地址数分别是

网络地址∶将IP地址的主机位全设为0,所得结果是该IP地址所在网络的网络地址。

广播地址∶将IP地址的主机位全设为1,所得结果是该IP地址所在网络的广播地址。

IP地址数∶2",n为主机位位数。

可用IP地址数∶2"-2,n为主机位位数。

179 划分10次方

1*10的3-1次方 1*100=100

7*10的2-1次方 7*10=70

9*10的1-1次方 9*1=9

100+70+9=179

179 十进抽划分二进制

179 128 51 32 19 16 2 1

10110011

二进制和 十进制转换

二进制:用0和1,单位是:bit

十进制

128

64

32

16

8

4

2

1

二进制

10000000

1000000

100000

10000

1000

100

10

1

(1)累加法

3=11

6=110

10=1010

12=1100

20=10100

128=10000000

192=11000000

224=11100000

calc-----计算器---查看  程序员型

(2)凑数法

将每一组用8位二进制数表达出来,最终按照先后顺序,依次进行排列,得到最终的结果。

192.168.1.111

1100 0000. 1010 1000. 0000 0001. 0110 1111 === 192.168.1.111   //2进制 10进制

二进制转换成十进制

101=5

1100=12

1001=9

10010=18

128    64  32  16  8   4   2   1

3=11

7=111

15=1111

31=11111

63=111111

127=1111111

奇数:最后一个bit 一定是1   7=111  5=101

偶数:最后一个bit 一定是0   6=110  12=1100

一个网段可用地址数量计算∶

一个网段的主机位为n位,则P地址数为∶2",可用IP地址数为∶2"-2(减去网络地址0 -和广播地址)。

一个子网包含的可用的主机ip数量(一个网段有多少个ip 地址)

192.168.1.0 /24      254=2^m-2 (m代表主机位的个数)

192.168.1 .xxxxxxxx     后8bit主机位192.168.6.0  255.255.248.0 /21

可用IP地址数量 = 2^11-2=2046

192.168.1.0      255.255.255.252   可用IP地址数量 = 2^2-2=2

192.168.1.000000

00  主机位全0

192.168.1.000000

01

192.168.1.000000

10

192.168.1.000000

11 主机位全1

注意:主机位全0 或者全1 不能配置在任何PC或者路由器上面(即非法的主机ip)

主机位全0:网络地址代表整个网段 子网 

主机位全1:广播地址 子网广播地址

例如:192.168.1.128 255.255.255.128   /25 非法192.168.1.1      0000000

前25bit网络位 后面7bit主机位

例如:192.168.1.255 255.255.255.0 非法

例如:192.168.1.0       255.255.255.0 非法

例如:192.168.1.0       255.255.128.0 合法

4、IP地址分类

IP地址分为有类和无类。

有类(主类)IP地址:主要分为A、B、C类,每种类型固定的掩码。

无类IP地址:无论哪种类型的IP地址都没有固定掩码。

A类    1-126      例如:8.200.1.1      默认掩码: 255.0.0.0   1700W

第一个8位组的第一位 一定取值0 /8 == 255.0.0.0

00000000.xxxxxxx.……          01111111.1111111……

最小:0.0.0.0                  最大:127.255.255.255

B类 128-191    例如:172.16.1.1     默认掩码: 255.255.0.0     65536

第一个8位组的前两位 一定取值10 /16 == 255.255.0.0

10000000.xxxxxxx.……          10111111.1111111……

最小:128.0.0.0                最大:191.255.255.255

C类 192-223    例如:192.168.1.1    默认掩码: 255.255.255.0   256

第一个8位组的前三位 一定取值110 /24 == 255.255.255.0

11000000.xxxxxxx.……          11011111.1111111……

最小:192.0.0.0                 最大:223.255.255.255

D类 224-239    例如:224.5.5.5       组播地址

第一个8位组的前四位 一定取值1110。 //组播地址 //逻辑地址

11100000.xxxxxxx.……          11101111.1111111……

最小:224.0.0.0                最大:239.255.255.255

E类 剩下       实验地址

第一个8位组的前四位 一定取值1111。 //军事 保留地址

11110000.xxxxxxx.……          11111111.1111111……

最小:240.0.0.0                 最大:255.255.255.255

注意:A B C类地址属于单播地址,可以配置在PC上面。D E类无法配置在PC上面。

为了方便IP地址的管理及组网,IP地址分成五类∶

A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。

A、B、C三类地址是单播IP地址(除一些特殊地址外),只有这三类地址才能分配给主机接口使用。

D类地址属于组播IP地址。只能作为逻辑地址存在,不能配置在设备接口上。

E类地址专门用于特殊的实验目的。

A、B、C类地址比较∶

1)使用A类地址的网络称为A类网络;使用B类地址的网络称为B类网络;使用C类地址的网络称为C类网络。

2)A类网络的网络号为8 bit,个数很少,但所允许的主机接口的个数很多;首位恒定为0,地址空间为∶0.0.0.0~127.255.255.255。

3)B类网络的网络号为16 bit,介于A类和C类网络之间;首两位恒定为10,地址空间为∶128.0.0.0~191.255.255.255。

4)C类网络的网络号为24 bit,个数很多,但所允许的主机接口的个数就很少;首三位恒定为110,地址空间为∶192.0.0.0~223.255.255.255。

注∶主机(Host),通常指路由器和计算机的统称。并且常把主机的某个接口的IP地址简称为主机IP地址。

组播地址∶组播能实现一对多传递消息。

我们通常把一个网络号所定义的网络范围称为一个网段

网络地址:网络号为X,主机号的每个比特都为0。不能分配给具体的主机接口使用。

广播地址:网络号为X,主机号的每个比特都为1。不能分配给具体的主机接口使用。

可用地址:又称主机地址,可用分配给具体的主机接口使用。

一个网段可用地址数量计算:一个网段的主机位为n位,则IP地址数为:2",可用IP地址数为:2"-2 (减去网络地址和广播地址)。

5、私网地址和公网地址

(1)私网IP地址

私网IP地址:任何人都可以使用的地址,一般用于局域网(内网),私网地址无法在公网上(运营商)被路由(传输)。

实际上一些网络不需要连接到Internet,比如一个大学的封闭实验室内的网络,只要同一网络中的网络设备的IP地址不冲突即可。在IP地址空间里,A、B、C三类地址中各预留了一些地址专门用于上述情况称为私网IP地址

例如:192.168.1.3   >7.7.7.7   202.1.1.1------>7.7.7.7

私有地址范围

A类   10.0.0.0 /8          10.0 0.0~10.255.255.255

B类   172.16.0.0 /12       172.16 0.0~172.31.255.255

C类   192.168.0.0 /16      192.168.0.0~192.168.255.255

(2)公网IP地址

公网IP地址:IP地址是由IANA统一分配的,以保证任何一个IP地址在Internet上的唯一性,这里的IP地址是指公网IP地址。全球独一无二 ,可以在公网上被路由。

为了解决IP地址短缺的问题,提出了私有地址的概念。私有地址是指内部网络或主机地址,这些地址只能用于某个内部网络,不能用于公共网络。

公网IP地址∶连接到Internet的网络设备必须具有由ICANN分配的公网IP地址。

私网IP地址∶私网IP地址的使用使得网络可以得到更为自由地扩展,因为同一个私网IP地址是可以在不同的私有网络中重复使用的。

私有网络连接到Internet∶私有网络由于使用了私网IP地址,是不允许连接到Internet的。后来在实际需求的驱动下,许多私有网络也希望能够连接到Internet上,从而实现私网与Internet之间的通信,以及通过Internet实现私网与私网之间的通信。私网与Internet的互联,必须使用网络地址转换(NAT)技术实现。

注∶NAT(Network Address Translation)网络地址转换,其基本作用是实现私网IP地址与公网IP地址之间的转换。

IANA(Internet Assigned Numbers Authority),因特网地址分配组织。

(3)特殊IP地址

(A)127.0.0.0 ~ 127.255.255.255  本地环回,代表自己,用于设备内部的协议栈测试使用。

IP协议规定:如果数据的目的IP地址为127,该网络则无法发送出本设备的接口。

IP地址空间中,有一些特殊的IP地址,这些IP地址有特殊的含义和作用,举例如下。

255.255.255 这个地址称为有限广播地址,它可以作为一个IP报文的目的IP地址使用。

路由器接收到目的IP地址为有限广播地址的IP报文后,会停止对该IP报文的转发。

(B)0.0.0.0 //不可用   0.0.0.0--0.255.255.255

(1)如果把这个地址作为网络地址,它的意思就是"任何网络"的网络地址;

(2)如果把这个地址作为主机接口地址,它的意思就是"这个网络上主机接口"的IP地址。

0.0.0.0的作用:

1.未指定的地址  

2.路由层面:全网所有的地址

例如∶当一个主机接口在启动过程中尚未获得自己的IP地址时,就可以向网络发送目的IP地址为有限广播地址、源IP地址为0.0.0.0的DHCP请求报文,希望DHCP服务器在收到自己的请求后,能够给自己分配一个可用的IP地址。

127.0.0.0/8 这个地址为环回地址,它可以作为一个IP报文的目的IP地址使用。其作用是测试设备自身的软件系统。

一个设备产生的目的IP地址为环回地址的IP报文是不可能离开这个设备本身的。

169.254.0.0/16 如果一个网络设备获取IP地址的方式被设置成了自动获取方式,但是该设备在网络上又没有找到可用的DHCP服务器,那么该设备就会使用169.254.0.0/16网段的某个地址来进行临时通信。

注∶ DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,用于动态分配网络配置参数,如IP地址。

广播分为:

全向广播  255.255.255.255  针对发送者而言

定向广播

0.0.0.0所有 代表任何网段255.255.255.255   广播169.254.x.x   没获取到地址特殊mac地址

全F 的MAC地址     广播MAC

01-00-5e-xx-xx-xx    组播mac

6、IP地址构成

结构上分为网络位和主机位两部分∶

网络位,代表IP地址所属的网段。网络位一致的ip地址和掩码的组合称为同一个网段。

主机位,代表网段上的某个节点。由子网掩码决定分界点。

相同网段:前面的网络位相同!!

例如:192.168.1.1    255.255.255.0 ===/24

11000000.10101000.00000001. 00000001    前24个bit 是网络位,后8个bit是主机位。

IP地址是以网络号和主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络。网络号不相同的主机称之为远程网络主机,本地网络中的主机可以直接相互通信;远程网络中的主机要相互通信必须通过本地网关(Gateway)来传递转发数据。

网络地址:代表了本网段的所有地址,出现在路由表。

广播地址: 用于本网络内所有的主机通信的。


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun    暗号:CSDN】

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/978228
推荐阅读
相关标签
  

闽ICP备14008679号