当前位置:首页 » 网络连接 » 计算机网络数据生存时间
扩展阅读
usb如何连接电脑共享网络 2025-09-27 23:29:20
小熊苹果电脑 2025-09-27 23:28:32

计算机网络数据生存时间

发布时间: 2023-05-17 09:38:40

计算机网络

有两种含义

“带宽” 指信号具有的频带宽度。基本单位是赫。

“带宽”是数字信道所能传送的最高数据率的同义语,单位是比特/秒(bit/s)。

表示在单位时间内通过某个网络(或信道、接口)的数据量。
吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。
吞吐量受网络的带宽或网络的额定速率的限制。

指数据从网络(或链路)的一端传送到另一端所需的时间。

主机或路由器发送数据帧所需要的时间。

电磁波在信道中需要传播一定的距离而花费的时间。

结点缓存队列中分组排队所经历的时延。

交换结点为存储转发而进行一些处理所费的时间。

信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。
网络利用率则是全网络的信道利用率的加权平均值。

物理层的主要任务描述为确定与传输媒体接口的四个特性。

指明接口所用接线器的形状和尺寸、引线数目和排列等。

指明在接口电缆的各条线上出现的电压的范围。

指明某条线上出现的某一电平的电压表示何种意义。

指明对于不同功能的各种可能事件的出现顺序

发送器:将数据转换成可以在传输介质上传输的信号

数据:运送消息的实体。
信号:数据的电气的或电磁的表现。
模拟信号:代表消息的参数的取值是连续的。
数字信号:代表消息的参数的取值是离散的。
信道: 向某一个方向传递信息的通道。

单向通信(单工通信):只能有一个方向的通信
而没有反方向的交互。
双向交替通信(半双工通信):通信的双方都可
以发送信息,但不能双方同时发送、同时接收。
双向同时通信(全双工通信):通信的双方可以
同时发送和接收信息。

调制:使用载波进行调制, 把数字信号的频率范
围搬移到较高的频段,并转换成模拟信号,以便在模
拟信道中传输。
解调:把接收到的模拟信号还原成数字信号。

又称为编码,转换后依然是基带信号

利用载波低频转高频,更好的在模拟信道上传输,调制完的信号叫做带通信号

在任何信道中,码元传输的速率是有上限的,超过此上限,就会出现严重的码间串扰问题。

如果信道的频带越宽,则可以用更高的速率传送码元
而不出现码间串扰。

带宽受限且有高斯白噪声干扰的信道的极限信息传输速率

W 是信道的带宽(以 Hz 为单位);
S 为信道内所传信号的平均功率; N 为信道内部的噪声功率。
信噪比S/N通常用分贝(dB)来表示:

通过编码,可以增加每一个码元携带的信息量

将信道的可用频带分割成若干条较窄的子频带,每一条子频带传输一路信号。
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。

光的频分复用:波分复用

将时间划分为一段段等长的时隙,每一个用户占用固定序号的时隙传输数据。
每一个用户所占用的时隙是周期性地出现。

时分复用的所有用户在不同的时间占用同样的频带宽度

先进行统计,然后依次将需要发送的数据进行时分复用,但是因为每一个时间是不确定的,所以需要在数据帧上加上地址信息

每个用户被分配一个码片序列,这些码片序列是互相正交的,

当需要发送1的时候,则发送序列

当需要发送0的时候,则发送序列反码

所以用户的序列和其他用户的序列内积是0

而序列和序列的规格化内积是1,序列与序列的反码的规格化内积为-1

在原始的、有差错的物理传输线路的基础上,采取 差错检测、差错控制与流量控制 等方法,将有差错的物理线路改进成逻辑上无差错的数据链路,向网络层提供高质量的服务。

是从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换结点。

把实现通信协议的硬件和软件加到链路上,就构成了数据链路,也称为逻辑链路。

每个帧有最大长度限制

通过添加字符防止误判

在发送端:

数据分成组,每一组k个bit,然后在后面加上n位冗余码

接收端:

将这段数据除以P,看最后的余数

因为标志字段的0x7E用二进制标志为01111110,即中间是6个0,为了避免产生错误,所以采用 零比特填充 的方式,即发送方每遇到5个1则填充一个0,接收方每遇到5个1删除后面的一个0

信道并非在用户通信时固定分配给用户。

DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约,定义了以无源的电缆为总线的基带总线局域网。
IEEE 的 802.3 标准。

载波监听多点接入/碰撞监测

当发送数据的站一旦发现发生了碰撞

最先发送数据帧的站,在发送数据帧后至多经过时间(2τ)就可知道发送的数据帧是否遭受了碰撞。 以太网的端到端往返时延 2τ 称为争用期,或碰撞窗口。经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。

发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。

作用:

争用期的长度: 51.2 µs

最短有效帧长: 64 字节

帧间最小间隔: 9.6 µs

每一类地址都由 两个固定长度 的字段组成, 其中一个字段是 网络号 net-id , 它标志主机(或路由器) 所连接到的网络, 而另一个字段则是 主机号 host-id , 它标志该主机(或路由器) 。

用转发器或网桥连接起来的若干个局域网仍为一个网络, 因此这些局域网都具有同样的网络号 net-id。

A:网络数减2原因: 网络号全0表示本网络 127(01111111)表示本地软件环回测试地址

B、C:网络数减1原因:128.0.0.0和192.0.0.0都是不指派的

主机数减2原因:全0和全1都不指派

路由表需要配置,或者根据算法生成

下一跳指的是下一个路由器的地址

特定主机路由 :为特定的目的主机指明一个路由。

默认路由:没有特定设置则采用默认路由

作用: 从网络层使用的 IP 地址,解析出在数据链路层使用的硬件地址。

每一个主机都设有一个 ARP 高速缓存 ,保存着所在的局域网上的各主机和路由器的 IP 地址到硬件地
址的映射表。ARP把保存在高速缓存中的每一个映射地址项目都设置生存时间,凡超过生存时间的项目就从高速缓存中删除掉。

ARP的工作过程

当主机A欲向本局域网上的某个主机B发送 IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP 地址。

如果是不同网络之间的情况,就需要通过路由器来解决

例如:H1访问H3

一个 IP 数据报由首部和数据两部分组成。

首部分为固定部分和可变部分,固定部分长度为20个字节,可变部分长度是可变的。

版本ip协议版本:ipv4和ipv6

首部长度:占 4 位,可表示的最大数值是 15 (2 4 -1)个单位(一个单位为 4 字节)。因此 IP 的首部长度的最大值是 60 字节(15*4)。

区分服务:占 8 位,只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段。

总长度:占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。

进行数据报的分片的原因

标识:占 16 位,它是一个计数器,用来产生 IP 数据报的标识。

标志(flag):占 3 位,目前只有前两位有意义。

片偏移:占13 位,指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位

生存时间——占8 位,记为 TTL (Time To Live),表明数据报在网络中的寿命。表示为数据报在网络中 可通过的路由器数的最大值

协议:占8 位,指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给哪个处理过程。

首部检验和:占16 位,只检验数据报的首部,不检验数据部分

❷ IP数据报设置的生存时间TTL只有255跳,因特网上的路由不只这些吧!

ping命令详细帮助 校验与远程计算机或本地计算机的连接。只有在安装 TCP/IP 协议之后才能旦蔽使用该命令。 ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list 参数 -t 校验与指定计算机的连接,直到用户中断。 -a 将地址解析为计算机名。 -n count 发送由 count 指定数量的 ECHO 报文,默认值为 4。 -l length 发送包含由 length 指定数据长度的 ECHO 报文。默认值为 64 字节,最大值为 8192 字节。 -f 在包中发送“不分段”标志。该包将不被路由上的网关分段。 -i ttl 将“生存时间”字段设置为 ttl 指定的数值。 -v tos 将“服务类型”字段设置为 tos 指定的数值。 -r count 在“记录路由”字段中记录发出报文和返回报文的路由。指定的 Count 值最小可以是 1,最大可以是 9 。 -s count 指定由 count 指定的转发次数的时间邮票。 -j computer-list 经过由 computer-list 指定的计算机列表的路由报文。中间网关可能分隔连续的计算机(松散的源路由)。允许的最大 IP 地址数目是 9 。 -k computer-list 经过由 computer-list 指定的计算机列表的路由报模并州文。中间网关可能分隔连续的计算机(严格源路由)。允许的最大 IP 地址数目是 9 。 -w timeout 以毫秒为单位指定超时间隔。 destination-list 指定要校验连接的远程计算机。 关于 Ping 的详细信息 Ping--注意 Ping 命令通过向计算机发送 ICMP 回应报文并且监听回应报文的返回,以校验与远程计算机或本地计算机的连接。对于每个发送报文, Ping 最多等待 1 秒,并打印发送和接收把报文的数量。比较每个接收报文和发送报文,以校验其有效性。默认情况下,发送四个回应报文,每个报文包含 64 字节的数据(周期性的大写字母序列)。 可以使用 Ping 实用程序测试计算机名和 IP 地址。如果能够成功校验 IP 地址却不能成蔽纯功校验计算机名,则说明名称解析存在问题。这种情况下,要保证在本地 HOSTS 文件中或 DNS 数据库中存在要查询的计算机名。 下面显示 Ping 输出的示例:(Windows用户可用:开始->运行,输入"command" 调出command窗口使用此命令) C:\>ping ds.internic.net Pinging ds.internic.net [192.20.239.132] with 32 bytes of data: Reply from 192.20.239.132: bytes=32 time=101ms TTL=243 Reply from 192.20.239.132: bytes=32 time=100ms TTL=243 Reply from 192.20.239.132: bytes=32 time=120ms TTL=243 Reply from 192.20.239.132: bytes=32 time=120ms TTL=243回答者:匿名 11-9 13:14Ping是测试网络联接状况以及信息包发送和接收状况非常有用的工具,是网络测试最常用的命令。Ping向目标主机(地址)发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间和本机是否与目标主机(地址)联通。 如果执行Ping不成功,则可以预测故障出现在以下几个方面:网线故障,网络适配器配置不正确,IP地址不正确。如果执行Ping成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面,Ping成功只能保证本机与目标主机间存在一条连通的物理路径。 命令格式: ping IP地址或主机名 [-t] [-a] [-n count] [-l size] 参数含义: -t不停地向目标主机发送数据; -a 以IP地址格式来
IP数据报设置的生存时间TTL只有255跳,因特网上的路由不只这些吧!

传奇十年典藏账号注册 offe.bokee.com 电脑常识

❸ TTL=128和TTL=64的区别是什么

TTL是IP协议包中的一个值,指定数据报被路由器丢弃之前允许通过的网段数量。

区别一:指定数据报被路由器丢弃之前允许通过的网段数量不同,一个是128,一个是126。

区别二:方式不同;TTL=128 说明直接和对方可以进行通信。TTL=64 跨多个路由器进行通信。

区别三:生效时间不同;64的生效时间比128的快。

(3)计算机网络数据生存时间扩展阅读:

TTL用于限制IP数据包在计算机网络中存在的时间,避免网络中的无限循环和发送接收,节省网络资源,并使IP数据包的发送者能够接收到报警消息。最大TTL值为255,推荐的TTL值为64。

虽然TTL字面上翻译为生存时间,但实际上TTL是计算机网络中IP数据包可以转发的最大跳数。TTL字段由数据包的发送方设置。在从源到目的地的整个IP数据包转发路径上,路由器在转发IP数据包之前会将每个路由器的TTL值减少1。

如果在数据包到达目的地之前,网络时间限制值降低到0,路由器将丢弃接收到的网络时间限制值为0的数据包,并向数据包的发送方发送一条超过ICMP time exceeded消息。

❹ 计算机访问网络时延平均值是什么意思

计算机访问网络时延平均值其实就是看到的ping时间。
生存时间(time-to-live)指定数据包被路由器丢弃之前允许通过的网段数量。
它是IP(中文全称:网络协议)协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。

ping的概念:
Ping是Windows下的一个命令,在Unix和Linux下也有这个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令卖闭颤可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:Ping空格IP地址。该命令还可以加许多中败参数使用,具体是键入Ping按回车即可看到详细说明。
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命态拿令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。
ping指的是端对端连通,通常用来作为可用性的检查, 但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。通常的情况下你如果不用作服务器或者进行网络测试,可以放心的选中它,保护你的电脑。

❺ ttl是什么意思


ttl两个意思,一是网络词语,二是专业名词缩写。
1、网络用语:意为“太甜了”,多用于粉丝见到自己喜欢的明星互动或其他场景时。
2、名词缩写:TTL是TimeToLive的缩写,中文名为“生存时间”,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IP数据包在计算机网络中可以转发的最大跳数。TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。TTL的作用是限制IP数据包在计算机网络中的存在的时间。TTL的最大值是255,TTL推荐值是64。

❻ 计算机网络的主要性能指标有哪些

计算机网络常用性能指标有:
1、速率:连接在计算机网络上的主机在数字信道上传送数据的速率。
2、带宽:网络通信线路传送数据的能力。
3、吞吐量:单位时间内通过网络的数据量。
4、时延:数据从网络一端传到另一端所需的时间。
5、时延带宽积:传播时延带宽。
6、往返时间RTT:数据开始到结束所用时间。
7、利用率信道:数据通过信道时间。


(6)计算机网络数据生存时间扩展阅读:
计算机网络中的时延是由一下几个不同的部分组成的:
(1)发送时延
发送时延是主机或路由纳模器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也叫做传输时延。发送时延的计算公式是:
发送时延=数据帧长度(bit)/发送速率(bit/s)
(2)传播时延
传播时延是电磁波在信道中传播一定的距离需要花费的时间。传播时延的计算公式是:
传播时延=信道长度(m)/电磁波在洞扰缓信道上大的传播速率(m/s)
电磁波在自由空间的传播速率是光速。即3.0*10^5km/s。
发送时延发生在机器内部的发送器中,与传输信道的长度没有任何关系。传播时延发生在机器外部的传输信道媒体上,而与信道的发送速率无关。信号传送的距离越远,传播时延就越大
(3)处理时延
主机或路由器在收到分组时需要花费一定时间进行处理,例如分析分组的首部,从分组中提取数据部分、进行差错检验或查找合适的路由等,这就产生了处理时延。
(4)排队时延
分组在进行网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待,在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延的长短取决于网络当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延无穷大。
这样数据在网络中经历的总时延就是以上四种时延之和:总时延=发送时延+传播时延+处理时李亩延+排队时延。
一般来说,小时延的网络要优于大时延的网络。

❼ 计算机网络通信中为什么要在数据封装时加上报头,有什么作用

简单说,IPV4报头是把上一层的数据加上了源IP地址和目标IP地址,详见如下

IPV4报头有12个必需的字段和可选IP选项字段,位于要发送的数据之前。如果使用IP层已有的库或其他组件,一般不必考虑报头中的大多数字段,但程序代码需要提供源端和目的端地址。
1、版本(4比特)
IP协议版本已经经过多次修订,1981年的RFC0791描述了IPV4,RCF2460中介绍了IPV6。
2、报头长度(4比特)
报头长度是报头数据的扒如长度,以4字节表示,也就是以32字节为单位。报头长度是可变的。必需的字段使用20字节(报头长度为5,IP选项字段最多有40个附加字节(报头长度为15)。
3、服务类型(8比特)
该字段给出发送进程建议路由器如何处理报片的方法。可选择最大可靠性、最小延迟、最大吞吐量和最小开销。路由器可以忽略这部分。
4、数据报长度(16比特)
该字段是报头长度和数据字节的总和,以字节为单位。最大长度为65535字节。
5、标识符(16比特)
原是数据的主机为数据报分配一个唯一的数据报标识符。在数据报传向目的地址时,如果路由器将数据报分为报片,那么每个报片都有相同的数据标识符。
6、标志(3比特)
标志字段中有2为与报片有关。
位0:未用。
位1:不是报片。如果这位是1,则路由器就不会把数据报分片。路由器会尽可能把数据报传给可一次接收整个数据报的网络;否则,路由器会放弃数据报,并返回差错报文,表示目的地址不可达。IP标准要求主机可以接收576字节以内的数据报,因此,如果想把数据报传给未知的主机,并想确认数据报没有因为大小的原因而被放弃,那么就使用少于或等于576字节的数据。
位2:更多的报片。如果该位为1,则数据报是一个报片,但不是该分片数据报的最后一个报片;如果该位为0,则数据报没有分片,或者是最后一个报片。
7、报片偏移(13比特)
该字段标识报片在分片数据报中的位置。其值以8字节为单位,最大为8191字节,对应65528字节的偏移。
例如,将要发送的1024字节分为576和424字节两个报片。首片的偏移是0,第二片的偏移是72(因为72×8=576)。
8、生存时间(8比特)
如果数据报在合理时间内没有到达目的地,则网络就会放弃它。生存时间字段确定放弃数据报的时间。
生存时间表示数据报剩余的时间,每个路由器都会将其值减一,或递减需要数理和传递数据报的时间。实际上,路由器处理和传递数据报的时间一般都小于1S,因此该值绝虚没有测量时间,而是测量路由器之间跳跃次数或网段的个数。发送数据报的计算机设置初始生存时间。
9、协议(8比特)
该字段指定数据报的数据部并此燃分所使用的协议,因此IP层知道将接收到的数据报传向何处。TCP协议为6,UDP协议为17。
10、报头检验和(16比特)
该字端使数据报的接收方只需要检验IP报头中的错误,而不校验数据区的内容或报文。校验和由报头中的数值计算而得,报头校验和假设为0,以太网帧和TCP报文段以及UDP数据报中的可选项都需要进行报文检错。
11、源IP地址(32比特)
表示数据报的发送方。
12、目的IP地址(32比特)
表示数据报的目的地。

❽ TTL=128,TTL=64这有什么区别,是什么意思

TTL=128 说明你直接和对方可以进行通信。
TTL=64 跨多个路由器进行通信。

ping发出的是 hello 报文,基于ICMP的协议,如果跨的路由器很多那就说拿悉明TTL(time to live) 值就减了多少,每跨一个路由器就减1。

在IPv4包头中TTL是一个8 bit字段,如下图所示:

(8)计算机网络数据生存时间扩展阅读:

TTL的作用是限制IP数据包在计算机网络中的存在的时间,避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息。TTL的最大值是255,TTL的一个推荐值是64。首伍

虽然TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数。

TTL字段由IP数据包的发送者者敏或设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送 ICMP time exceeded消息。

网络-TTL

❾ 在ping命令中,TTL的用途是什么

在ping命令中,睁仿TTL(生存时间值)的主要作用是标示IP数据包在计算机网络中可以转发的最大跳数。

TTL由IP数据包的发送者设置,在IP数据包从源到目的的整个转发悉键纤路径上,每经过一个路由器,则把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包,并向IP包的发送者发送 ICMP time exceeded消息,以防止数据包不断在IP互联网络上永不终止地循环。

【注意事项】:TTL的值在本机可以修改,TTL值的注册表位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255。Windows系亮猛统设置后重启才生效。

❿ 计算机网络:网络层(2)

如图,一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。

(1)版本
占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。也有使用IPv6的(即版本6的IP协议)。
(2)首部长度
占4位,可表示的最大十进制数值是15。 这个字段所表示数的单位是32位字(1个32位字长是4字节),因此,当I的首部长度为1111时(即十进制的15),首部长度就达到最大值60字节。当分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。 因此数据部分永远在4字节的整数倍时开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。
(3)区分服务
占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年ITF把这个字段改名为区分服务DS( Differentiated Services。只有在使用区分服务时,这个字段才起作用。在一般的情况下都不使用这个字段。
(4)总长度
总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。
在IP层下面的每一种数据链路层都有其自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU( Maximum Transfer Unit)。当一个IP数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。虽然使用尽可能长的数据报会使传输效率提高,但由于以太网的普遍应用,所以实际上使用的数据报长度 很少有超过1500字节 的。为了不使IP数据报的传输效率降低,有关IP的标准文档规定,所有的主机和路由器必须能够处理的IP数据报长度不得小于576字节。这个数值也就是最小的IP数据报的总长度。当数据报长度超过网络所容许的最大传送单元MTU时,就必须把过长的数据报进行分片后才能在网络上传送。这时,数据报首部中的“总长度”字段不是指未分片前的数据报长度,而是指分片后的每一个分片的首部长度与数据长度的总和。
(5)标识 (identification)
占16位。软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
(6)标志(flag)
占3位,但目前只有两位有意义。
标志字段中的最低位记为 MF ( More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若千数据报片中的最后一个。
标志字段中间的一位记为 DF (Dont Fragment),意思是“不能分片”。只有当DF=0时才允许分片。
(7)片偏移
占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。
(8)生存时间
占8位,生存时间字段常用的英文缩写是TTL( Time To live),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子(例如从路由器R1转发到R2,再转发到R3,然后又转发到R1),因而白白消耗网络资源。最初的设计是以秒作为TTL值的单位。每经过一个路由器时,就把TTL减去数据报在路由器所消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值减为零时,就丢弃这个数据报然而随着技术的进步,路由器处理数据报所需的时间不断在缩短,一般都远远小于1秒钟,后来就把TTL字段的功能改为“跳数限制”(但名称不变)。路由器在转发数据报之前就把TTL值减1。若TTL值减小到零,就丢弃这个数据报,不再转发。因此,现在TTL的单位不再是秒,而是跳数。 TTL的意义是指明数据报在因特网中至多可经过多少个路由器 。显然,数据报能在因特网中经过的路由器的最大数值是255。若把TTL的初始值设置为1,就表示这个数据报只能在本局域网中传送。因为这个数据报一传送到局域网上的某个路由器,在被转发之前TTL值就减小到零,因而就会被这个路由器丢弃。
(9)协议
占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。

过程大致如下:
(1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。
(2)若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付给目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧);否则就是间接交付,执行(3)。
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
(4)若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(5)
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
(6)报告转发分组出错。

在进行更详细的转发解释之前,先要了解一下子网掩码:

上一篇说到了二级IP地址,也就是IP地址由网络号和主机号组成。

二级IP地址有以下缺点:
第一,IP地址空间的利用率有时很低每一个A类地址网络可连接的主机数超过1000万,而每一个B类地址网络可连接的主机数也超过6万。然而有些网络对连接在网络上的计算机数目有限制,根本达不到这样大的数值。例如10 BASE-T以太网规定其最大结点数只有1024个。这样的以太网若使用一个B类地址就浪费6万多个IP地址,地址空间的利用率还不到2%,而其他单位的主机无法使用这些被浪费的地址。有的单位申请到了一个B类地址网络,但所连接的主机数并不多,可是又不愿意申请一个足够使用的C类地址,理由是考虑到今后可能的发展。IP地址的浪费,还会使IP地址空间的资源过早地被用完。
第二,给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
每一个路由器都应当能够从路由表査出应怎样到达其他网络的下一跳路由器。因此,互联网中的网络数越多,路由器的路由表的项目数也就越多。这样,即使我们拥有足够多的IP地址资源可以给每一个物理网络分配一个网络号,也会导致路由器中的路由表中的项目数过多。这不仅增加了路由器的成本(需要更多的存储空间),而且使查找路由时耗费更多的时间,同时也使路由器之间定期交换的路由信息急剧增加,因而使路由器和整个因特网的性能都下降了。
第三,两级IP地址不够灵活。
有时情况紧急,一个单位需要在新的地点马上开通一个新的网络。但是在申请到一个新的IP地址之前,新增加的网络是不可能连接到因特网上工作的。我们希望有一种方法,使一个单位能随时灵活地增加本单位的网络,而不必事先到因特网管理机构去申请新的网络号。原来的两级IP地址无法做到这一点。

于是为解决上述问题,从1985年起在IP地址中又增加了一个“子网号字段”,使两级IP地址变成为三级IP地址,它能够较好地解决上述问题,并且使用起来也很灵活。这种做法叫作划分子网 (subnetting),或子网寻址或子网路由选择。划分子网已成为因特网的正式标准协议。

划分子网的基本思路如下:
(1)一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网 subnet)。划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。
(2)划分子网的方法是从网络的主机号借用若干位作为子网号 subnet-id,当然主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部就变为三级IP地址:网络号、子网号和主机号。也可以用以下记法来表示:
IP地址:=(<网络号>,<子网号>,<主机号>}

(3)凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付给目的主机。

简单来说就是原来的IP地址总长度不变,把原来由“网络号+主机号”组成的IP地址,变为了“网络号+子网号+主机号”,因为其他网络找当前网络的主机时,使用的还是网络号,所以外面的网看不见当前网络的子网。当本网的路由器在收到IP数据报后,按目的网络号和子网号找到目的子网,把IP数据报交付给目的主机。

现在剩下的问题就是:假定有一个数据报(其目的地址是145.133.10)已经到达了路由器R1。那么这个路由器如何把它转发到子网145.3.3.0呢?
我们知道,从IP数据报的首部并不知道源主机或目的主机所连接的网络是否进行了子网的划分。这是因为32位的IP地址本身以及数据报的首部都没有包含任何有关子网划分的信息。因此必须另外想办法,这就是使用子网掩码( (subnet mask)。

子网掩码,简单来说就是把除了主机号设置为0,其他位置的数字都设置为1。
以B类地址为例:

把三级IP地址的网络号与子网号连起来,与子网掩码做“与”运算,就得到了子网的网络地址。

在因特网的标准规定:所有的网络都必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏。如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。
那么既然没有子网,为什么还要使用子网掩码?
这就是为了更便于査找路由表。
默认子网掩码中1的位置和IP地址中的网络号字段 net-id正好相对应。因此,若用默认子网掩码和某个不划分子网的IP地址逐位相“与”(AND),就应当能够得出该IP地址的网络地址来。这样做可以不用查找该地址的类别位就能知道这是哪一类的IP地址。显然,

子网掩码是一个网络或一个子网的重要属性。在RFC950成为因特网的正式标准后,路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。在路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。
以一个B类地址为例,说明可以有多少种子网划分的方法。在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的。

表中的“子网号的位数”中没有0,1,15和16这四种情况,因为这没有意义。虽然根据已成为因特网标准协议的RFC950文档,子网号不能为全1或全0,但随着无分类域间路由选择CIDR的广泛使用,现在全1和全0的子网号也可以使用了,但一定要谨慎使用,要弄清你的路由器所用的路由选择软件是否支持全0或全1的子网号。这种较新的用法我们可以看出,若使用较少位数的子网号,则每一个子网上可连接的主机数就较多。
反之,若使用较多位数的子网号,则子网的数目较多但每个子网上可连接的主机数就较少因此我们可根据网络的具体情况(一共需要划分多少个子网,每个子网中最多有多少个主机)来选择合适的子网掩码。

所以,划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数。

在划分子网的情况下,分组转发的算法必须做相应的改动。
使用子网划分后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址。
所以之前的流程变成了下面这样:
(1)从收到的数据报的首部提取目的IP地址D。
(2)先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相“与”(AND操作),看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还需要把D转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行(3)。
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
(4)对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和D逐位相“与”(AND操作),其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行(5)。
5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)
(6)报告转发分组出错。