Fork me on GitHub

计算机网络 - 网络层

注意:所有文章除特别说明外,转载请注明出处.

[TOC]

计算机网络 - 网络层

概述

因为网络层是整个互联网的核心,因此应当让网络层尽可能简单。网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务。使用 IP 协议,可以把异构的物理网络连接起来,使得在网络层看起来好像是一个统一的网络。与IP配套的三个协议:

1.地址解析协议 ARP
2.网际控制报文协议 ICMP
3.网际组管理协议 IGMP

IP数据报格式

ip数据报在首部是固定的20字节,然后首部还包含可变部分,用于填充等。

1.版本:4 | 6 两个值

2.首部长度:占4位,最大值是15

3.区分服务:用来获取更好的服务,一般情况下不使用

4.总长度:包括首部长度和数据部分长度

5.生存时间(TTL):它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当TTL为0时放弃数据报。

6.协议:指出携带的数据应该上交给哪个协议进行处理,如:ICMP/TCP/UDP等。

7.首部校验和:因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量。

8.标识:在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。

9.片偏移:和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节。

IP地址编址方式

1.分类

由两部分组成,网络号与主机号,其中不同分类具有不同的网络长度,并且是固定的。

IP 地址 ::= {< 网络号 >, < 主机号 >}

2.子网划分

通过在主机号字段中拿一部分作为子网号,把两级 IP 地址划分为三级 IP 地址。

IP 地址 ::= {< 网络号 >, < 子网号 >, < 主机号 >}

如果需要使用子网,则需要配置子网掩码。一个 B 类地址的默认子网掩码为 255.255.0.0,如果 B 类地址的子网占两个比特,那么子网掩码为 11111111 11111111 11000000 00000000,也就是 255.255.192.0。

注意:外部网络看不到子网的存在。

3.无分类

无分类编址 CIDR 消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用网络前缀和主机号来对 IP 地址进行编码,网络前缀的长度可以根据需要变化。

IP 地址 ::= {< 网络前缀号 >, < 主机号 >}

CIDR 的记法采用在ip地址后面加上网络前缀长度的方法,如:128.14.35.7/20 表示前 20 位为网络前缀。

CIDR 的地址掩码可以继续称为子网掩码,子网掩码首 1 长度为网络前缀的长度。

一个 CIDR 地址块中有很多地址,一个 CIDR 表示的网络就可以表示原来的很多个网络,并且在路由表中只需要一个路由就可以代替原来的多个路由,减少了路由表项的数量。把这种通过使用网络前缀来减少路由表项的方式称为路由聚合,也称为 构成超网 。在路由表中的项目由“网络前缀”和“下一跳地址”组成,在查找时可能会得到不止一个匹配结果,应当采用最长前缀匹配来确定应该匹配哪一个。

地址解析协议 ARP

网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP数据报的源地址和目的地址始终不变,而MAC地址随着链路的改变而改变。

提示:ARP协议实现由IP地址得到MAC地址

每一个主机都有一个ARP高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。如果主机 A 知道主机 B 的 IP 地址,但是 ARP 高速缓存中没有该 IP 地址到 MAC 地址的映射,此时主机 A 通过广播的方式发送 ARP 请求分组,主机 B 收到该请求后会发送 ARP 响应分组给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。

网际控制报文协议 ICMP

ICMP目的是为了更有效转发IP数据报和提高交付成功的机会,其封装在IP数据报(封装在数据部分)中,但是不属于高层协议。

1.ping

ping命令是ICMP的一个重要应用,用来测试两台主机的连通性。Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。

2.Traceroute

Traceroute的作用是ICMP的另外一个应用,用来跟踪一个分组从源点到终点的路径,Traceroute发送的IP数据报封装的是无法交付的UDP用户数据报,并由目的主机发送终点不可达差错报告报文。

虚拟专用网 VPN

由于 IP 地址的紧缺,一个机构能申请到的 IP 地址数往往远小于本机构所拥有的主机数。并且一个机构并不需要把所有的主机接入到外部的互联网中,机构内的计算机可以使用仅在本机构有效的 IP 地址(专用地址)。

那么这里就有三个专用地址块:

10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255

VPN使用公用的互联网作为本机构个专用网之间的通信载体。

网络地址转换 NAT

专用网内部的主机使用本地IP地址又想和互联网主机通信时,可以使用NAT将本地iP转换为全球ip。

路由器结构

路由器从功能上划分为:路由选择和分组转发。分组转发结构由三部分构成:1.交换结构。2.一组输入端口。3.一组输出端口。

1.路由器转发分组流程

2.路由选择协议

路由选择协议都是自适应的,能随着网络通信量和拓扑结构的变化而自适应地进行调整。我们可以将路由选择协议分为两部分:

1.自治系统内部的路由选择:RIP | OSPF

2.自治系统间的路由选择:BGP

1.内部网关协议 RIP

RIP 是一种基于距离向量的路由选择协议。距离是指跳数,直接相连的路由器跳数为 1。跳数最多为 15,超过 15 表示不可达。RIP 按固定的时间间隔仅和相邻路由器交换自己的路由表,经过若干次交换之后,所有路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器地址。

提示:RIP 协议实现简单,开销小。但是 RIP 能使用的最大距离为 15,限制了网络的规模。并且当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器。

2.内部网关协议 OSPF

开放最短路径优先 OSPF,是为了克服 RIP 的缺点而开发出来的。

3.外部网关协议 BGP

BGP(边界网关协议):BGP 只能寻找一条比较好的路由,而不是最佳路由。每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。

本文标题:计算机网络 - 网络层

文章作者:Bangjin-Hu

发布时间:2019年10月15日 - 09:22:26

最后更新:2020年03月30日 - 08:19:50

原始链接:http://bangjinhu.github.io/undefined/计算机网络 - 网络层/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Bangjin-Hu wechat
欢迎扫码关注微信公众号,订阅我的微信公众号.
坚持原创技术分享,您的支持是我创作的动力.