IP数据包的格式

一. 网络层回顾
路由器是属于三层设备(网络层)设备。
网络层的功能是来进行逻辑地址(IP地址)寻址,实现不同网络(网络地址不等或者说是内网和外网的分割,注意内网的IP地址是无法在外网上进行路由)直接的路径选择。
逻辑地址寻址就是去查找目的是否可以到达,如果可以到达,选择一条最优的路径,如果不能到达,直接返回给发送方一个消息
网络层所传输的PDU(传输数据单元)是数据包(IP数据包)
二. 网络层IP数据包的格式
1. IPV4格式
它由两个部分组成,首部和数据部分。
首部单单由源IP地址和目的IP地址组成,它还有其他东西
(1) 版本
版本里面主要包含了,你当前使用的IP版本是什么。版本是4就是叫做IPV4,版本是6就叫做IPV6
它占了4个字节
(2) 首部长度
由于IP数据报文的首部有一个 “可选字段” 的存在,导致首部长度是可变的,所以需要去定义一下首部长度
(3) 区分服务(服务质量/优先级和服务类型)
为了保障更好的服务,主要是在IP层做QoS
QoS指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来说是十分重要的,特别是对于流多媒体应用,例如VoIP和IPTV等,因为这些应用常常需要固定的传输率,对延时也比较敏感。
在一个公司的网络中,这个公司网络总共从运营商那面拉过来的带宽是50M,但是公司员工可能有100位。经常有员工在上班的时候摸鱼,比如打游戏,下载奇奇怪怪的东西,看1080P的电影,整的公司网络特别卡。这个时候老板正在会议室开视频会议,卡的要死,网络有特别大的延迟和堵塞。
向上面说的视频会议这种,还有客服电话等,是需要一个固定的能稳定通信的带宽,我们可以通过QoS来设置对应的服务质量。
这个通常是运维来干的。
(4) 总长度
主要用来标识整个数据包的长度
前面的是首部长度,这个是包括了首部和数据部分的
(5) 标识、标志、片位移(段偏移量)
这三个是连在一起的,主要是用于标识上层来的数据到IP层会被分片,这几个字段用来对数据包进行标识,使数据到达目的端重组的时候不会乱序
(6) 生存时间(TTL值)
TTL这个感觉有点熟悉哈,好像在哪里看见过
就是这个东西
这里TTL我们称之为生命周期或者叫生存时间,他是为了防止这个数据包一直永远的传。如果没有TTL或者TTL为0的时候,只要目的可到,他就会一直传递数据
这个TTL还有一种说法是:数据包在路由器转发消耗时间的如果小于1秒,TTL就会减1,减没了就会丢掉
(7) 协议
标识上层数据用的是什么协议,网络层的上一层就是传输层,这个协议就是TCP或UDP。
TCP用6标识,UDP用17标识
(8) 首部校验和
这个主要是校验数据报文的首部
(9) 源地址
发送方的IP地址
(10) 目的地址
接收方的IP地址
(11) 可选字段
一般根据实际情况来定,咱们就不用管他
(12) 其他
我这里是简单介绍以下,想要具体的可以看这个
2. IPV6格式
由于IPV6还未完全普及,而且和IPV4也差不多,就是有些地方不大一样,我这里放一个HTML里面讲的挺详细的,各位了解一下。