阿龙的学习笔记---计算机网络知识点总结---四、网络层

1. 概述

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

2. IP地址编址方式

  • 分类

    • A类地址:前8位是网络地址,后24位是主机地址;前8位的首位是0,所以是00000000-01111111,即1.x.x.x到127.x.x.x,但127一般作为本地地址,所以A类地址是1.x.x.x-126.x.x.x
    • B类:前16位是网络部分,首位是10,;所以网络部分的范围是1000000:00000001-10111111:11111111,即128.1.x.x ~ 191.255.x.x.x
    • C类:前24位是网络部分,即110 00000:0:1 ~ 110 11111:255:255,即192.0.1 ~ 223.255.255。
      阿龙的学习笔记---计算机网络知识点总结---四、网络层
    • 几个特殊地址
      • 本地环回地址: 127.0.0.1
      • Windows自动分配地址: 169.254.0.0
      • 保留的私网地址:
        10.x.x.x:1个A类地址
        172.16.x.x-172.31.x.x : 16个B类地址
        192.168.0.x-192.168.255.x: 256个C类地址
  • 子网划分: 从ISP那里分配到B类地址之后,我需要把这个地址再划分成好几个子网络,那么则需要子网划分。

    • IP 地址 = { < 网络号 >, < 子网号 >, < 主机号 >}
    • 假如获得的地址是 128.1.x.x。那么子网号要从后面16位主机号中提取,因为前面16位以及定了。根据具体需求分配子网号的位数。
    • 分配了位数之后,子网掩码 = 16 + 分配的位数。
  • 无分类编址CIDR

    • 无分类编址 CIDR 消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用 网络前缀和主机号来对 IP 地址进行编码,网络前缀的长度可以根据需要变化。
    • CIDR 的记法上采用在 IP 地址后面加上网络前缀长度的方法,例如 128.14.35.7/20 表示前 20 位为网络前缀。

3. IP数据报格式

阿龙的学习笔记---计算机网络知识点总结---四、网络层

  • 如上图所示
    • 每一行4个字节,32位。固定长度为20字节,可变部分不定,用的很少,IPV6直接取消了可变部分。
    • 版本: IPV4 还是IPV6。
    • 首部长度: 0~15,代表有多少行,最少为固定部分,数值为5。
    • 区分服务:是否给数据报特权,让路由器优先转发等,少用。
    • 总长度: 首部+数据部分的总长度。
    • 标识: 分片用,一个数据报的多个分片标识一样。
    • 标志: 分片用,3位。
    • 片偏移: 分片用,表示数据部分第一个字节是整个数据报的第几个字节。8字节为一个单位。
    • 生存时间: TTL,每过一个路由器就减1,到0丢弃。防止进入环路无限循环。
    • 协议:表示是什么协议。ICMP还是IGMP还是TCP还是UDP。
    • 首部校验和: 校验首部用的。
    • 目标、源地址:32位的IP地址。

4. 地址解析协议 ARP(Address Resolution Protocol)

  • 网络层是两个IP地址主机之间的通信,但是在传递过程中,每一条链路上,我都需要从链路这头的MAC地址,到那边的MAC地址。所以MAC地址是在变化的,而IP地址是不变的。
  • ARP协议实现:由IP地址找到MAC物理地址。
  • 每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。
  • 在本地ARP缓存中找不到目标IP地址的MAC地址时,就会在本网段中广播ARP,告诉大家:“我是ip地址x.x.x.x,MAC地址时 xx:xx:xx:xx:xx:xx,我在找ip地址为z.z.z.z的MAC地址”。然后IP地址对上的主机接收到后,会回复说“我是IP地址z.z.z.z,我的MAC地址是 xx:xx:xx:xx:xx:xx”。
  • RARP发出要反向解析的物理地址并希望返回其对应的IP地址

5. 网际控制报文协议 ICMP (INTERNET CONTROL MESSAGE PROTOCOL)

  • ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会。它封装在 IP 数据报数据部分中,但是不属于高层协议。
    阿龙的学习笔记---计算机网络知识点总结---四、网络层
  • 报文类型有两种:ICMP差错报告报文,ICMP询问报文
    • ICMP差错报告报文 :终点不可达(路由器不知道怎么走);时间超时;参数问题;改变路由(重定向Redirect)
    • ICMP查询报文:(Echo)回送请求和回答报文;时间戳请求和回答报文。
  • Ping命令:
    • 用到的就是ICMP查询报文中的Echo报文,向目标主机发送回送请求报文,目标主机回复回答报文,通过延迟和成功响应次数来测试往返时间和丢包率。还可以查看TTL。
  • Traceroute
    • Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。
    • 发送多个数据报,TTL依次设置为1,2,3,4···。那么TTL减到0时,目标路由器就会回复一个时间超时差错报文,就可以依次知道路径上的节点了。

6. IGMP-网路组播管理协议(Internet Group Management Protocol)

  • IGMP协议管理网络中的组播/多播功能。可以广播局域网内发送,也可以通过多播地址进行多播。

7. IP协议

  • 路由器

    • 路由器是一个网络层设备,有路由选择分组转发两大功能。
    • 路由选择则是根据目标IP地址选择下一跳的方向。
    • 分组转发是将收到的分组转发至这个方向。
  • IP协议: 一些路由器中有管理员管路的静态的路由表决定路由选择,而现在一般是路由器动态的自主学习,这样的路由选择协议统称为IP协议

  • 互联网可以划分为许多较小的自治系统 AS,一个 AS 可以使用一种和别的 AS 不同的路由选择协议。可以把路由选择协议划分为两大类:

    • 自治系统内部的路由选择:RIP 和 OSPF
    • 自治系统间的路由选择:BGP
  • RIP协议(Routing Information Protocol)

    • RIP协议是一种基于距离向量的路由选择协议。距离是指跳数,直接相连的路由器跳数为 1。跳数多为 15, 超过 15 表示不可达。
    • 路由器周期性广播路由表。周围的路由器接收到了,则如果没有这个地址或者路径更短,则保存下来。路由选择时,选择跳数少为优。跳数最多为15,所以不支持大型的网络。
  • 开放短路径优先协议 OSPF

    • OSPF 具有以下特点:
      • 向本自治系统中的所有路由器发送信息,路由器保存的也是整个区域网络的链路信息。
      • 发送的信息就是与相邻路由器的链路状态,链路状态包括与哪些路由器相连以及链路的度量,度量 用费用、距离、时延、带宽等来表示。
      • 所有路由器都具有全网的拓扑结构图,并且是一致的,路由选择时采取“最短路径优先算法(Shortest Path First, SPF)”。
      • 相比于 RIP,OSPF 的更新过程收敛的很快。
  • BGP(Border Gateway Protocol,边界网关协议)

    • BGP是一个外部网关协议,是在多个自治系统间的协议,而AS 之间的路由选择很困难,主要是由于:
      • 互联网规模很大; 各个 AS 内部使用不同的路由选择协议,无法准确定义路径的度量;
      • AS 之间的路由选择必须考虑有关的策略,比如有些 AS 不愿意让其它 AS 经过。
    • 所以 BGP 负责寻找一条比较好的路由,而不一定是最佳路由。每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。

8. NAT 网络地址转换

  • 网络地址转换 NAT: 专用网内部的主机使用本地 IP 地址,想和互联网上的主机通信时,可以使用 NAT 来将本地 IP 转换为全球 IP。