网络层的作用从表面上看,就是将分组从一台发送主机移动到另一台接收主机。为此,需要两种重要的网络层功能:转发和选路。转发是指分组从一个输入链路接口转移到适当的输出链路接口的路由器本地动作。选路是指分组从源到目的地时,决定端到端路径的网络范围的进程。
网络层的分组称为数据报(datagram)。
每台路由器具有一张转发表。路由器通过检查到达分组首部中的一个字段的值,然后使用该值在转发表中索引查询来转发一个分组。查询转发表的结果是分组将被转发的路由器的链路接口。选路算法决定了插入路由器的转发表中的值。
路由器体系结构输入端口需要执行几项功能:
- 将一条输入的物理链路端接到路由器的物理层功能。
- 需要与位于入链路远端的数据链路层进行交互的数据链路处理功能。
- 完成查找与转发功能,以便转发到路由器交换结构部分的分组能出现在适当的输出端口。
- 控制分组从输入端口转发到选路处理器。
交换结构将路由器的输入端口连接到它的输出端口。交换结构完全包容在路由器中。交换可以通过多种方式完成:
- 经内存交换。
- 经一根总线交换。
- 经一个互联网络交换。
输出端口存储经过交换结构转发给它的分组,并将这些分组传输到输出链路。因此,输出端口执行与输入端口顺序相反的数据链路层和物理层功能。
选路处理器执行选路协议,维护选路信息与转发表,并执行路由器中的网络管理功能。
因特网的网络层有三个主要的组件:第一个组件是IP协议。第二个组件是选路组件,它决定数据报从源到目的地所流经的路径,即选路协议。最后一个组件是报告数据报中的差错和对某些网络层信息请求进行响应的设施,即IMCP协议(互联网控制报文协议)。
IPv4数据报格式IPv4中定义的字段:
- 版本号。这4比特规定了数据报的IP协议版本。通过查看版本号,路由器可确定如何解释IP数据报的剩余部分。
- 首部长度。因为包含一些可选项,所以需要用这4比特来确定IP数据报中的数据部分实际的开始位置。一般的IP数据报都有20字节的首部。
- 服务类型。服务类型比特用来使不同类型的IP数据报能相互区别开来。提供具体的服务等级是一个由路由器管理员确定的策略问题。
- 数据报长度。这是IP数据报的总长度(首部加上数据),以字节计。因为该字段长位16比特,所以IP数据报的理论最大长度位65535字节。
- 标识、标志、片偏移。这三个字段与IP分片有关。因此并非所有的链路层都能承载相同长度的网络层分组,所以需要进行数据切割传输,也就是所谓的分片。IPv6不允许在路由器上分片。
- 寿命。寿命(Time-To-Live,TTL)字段用来确保数据报不会永远在网络中循环。每当数据报经过一台路由器时,该字段的值减1。若TTL字段减为0,则该数据报必须丢弃。
- 协议。该字段仅在一个IP数据报到达最终目的地时才会用到。该字段值指明了IP数据报的数据部分应交给哪个传输层协议。6代表TCP,17代表UDP。
- 首部校验和。首部校验和用户帮助路由器检测收到的IP数据报中的比特错误。
- 源和目的IP地址。通常源主机经DNS查找决定目的地址。
- 选项。选项字段允许IP首部被扩展。由于各种不确定原因,选项在IPv6中已不再采用。
IPv6的重要变化:
- 扩大的地址容量。IPv6将IP地址长度从32比特增加到128比特,这就确保全世界不会用尽IP地址。
- 简单高效的40字节首部。40字节定长首部允许更快地处理IP数据报。一种新的选项编码允许进行更灵活的选项处理。
- 流标签与优先级。IPv6有一个难以捉摸的流定义。该字段可用于“给属于特殊流的分组加上标签,这些特殊流是发送方要求进行特殊处理的流,如一种非默认服务质量或需要实时服务的流”。为高优先级用户承载的流量(如某些用户为他们的流量得到更好服务而付费)也可能被当作一种流。
IPv6中定义的字段:
- 版本号。这4比特字段用于标识IP版本号。
- 流量类型。这8比特与IPv4中的服务类型含义相似。
- 流标签。这20比特用于标识一个数据报的流。
- 有效载荷长度。这16比特值作为一个无符号整数,给出了IPv6数据报中跟在定长的40字节数据报首部后面的字节数量。
- 下一个首部。该字段标识该数据报中的内容需要交付给哪个协议,如TCP和UDP。
- 跳限制。转发数据报的每台路由器将对该字段内容减1。如果跳限制计数到达0,则该数据报将被丢弃。
- 源和目的地址。IPv6地址是128比特。
- 数据。这是IPv6数据报的有效荷载部分。当数据报到达目的地时,该有效荷载就从IP数据报中移出,并被交给下一个首部字段中指定的协议处理。
IPv4中有几个字段在IPv6中已不复存在:
- 分片/重新组装。IPv6不允许在中间路由器上进行分片与重新组装。这种操作只能在源与目的地上执行。如果一台路由器收到的IPv6数据报太大而不能转发到出链路上,则该路由器只需丢掉该数据报,并向发送方返回一个“分组太大”的ICMP差错报文即可。于是发送方使用较小长度的IP数据报重发数据。分片与重新组装是一个耗时的操作,将该功能从路由器中删除被放到端系统中,大大加快了网络中的IP转发速度。
- 首部检验和。因为因特网中的传输层和数据链路层协议执行了校验操作,所以IP设计者基于提高IP分组的处理效率的思想,认为网络层的校验操作纯属多余,故而在IPv6中去掉了校验操作。
- 选项。选项字段并没有消失,而是可能出现在IPv6首部中由下一个首部指出的位置上。也就是说,就像TCP或UDP协议首部可在IP分组中有下一个首部字段指出一样,选项字段也可在下一个首部字段中指出。删除选项字段得到了一个定长的40字节的IP首部,使得IP数据报处理更快。
网友评论