4.1 网络层功能概述

功能:向上提供简单灵活,无连接的,尽最大努力交付的数据报服务

  1. 异构网络互联:使用相同的网际协议(Internet protocol,IP),让各网段在逻辑上看起来像是一个整体
  2. 路由和转发:routine and forward,路由选择,形成路由表,分组转发,从合适的端口发送
  3. 拥塞控制:在传输层有重点介绍

    4.2 IP协议

    解决用什么在网际间传送信息的问题

    4.2.1 IPv4

  4. IP数据报的格式:

    1. image.pngimage.png
  5. IP数据报分片:在以太网中,IP数据报的长度在46~1500字节之间(包含20字节的IP首部),在被封装成MAC帧之后,加上首尾18个字节,则就有了CSMA/CD最小帧长64字节;MTU,为IP数据报的最大长度,也即数据链路层能承载的最大数据量;因此需要对较大的数据进行分片,即对长IP数据报的数据部分单独拿出来,分成更小的IP数据报,偏移为8B的倍数
  6. IP地址的划分:

    1. 标准IPv4的地址:
      1. 第四章 网络层 - 图3
        1. 127开头的地址是环回地址,即发送后会直接从主机的另一个端口传回,不会出现在网络中
        2. 0.0.0.0表示未知主机,只用作源IP地址,表示只知道目的IP而不知道源IP的数据报
        3. 全1的IP地址表示整个网络广播,但是因为路由器的隔离,因此只是受限广播地址
    2. 子网划分:为了增加IP地址的利用率,因此出现的子网划分的机制,即在原先的两级IP变成“网络号,子网号,主机号”三级IP地址
      1. 子网掩码、逐位与操作,去除主机号,得出网络号
    3. CIDR:不再使用网络号和主机号的分类等概念,用后面的数字表示网络前缀
      1. 在进行子网划分时,需要将主机号为全1和全0的去除,因为全0的表示整个子网,全1表示广播,如果有主机选择了这两个IP地址,那么路由器将无法知道到底要发给主机还是发送给全网广播;但是用CIDR就不会有二义性,因为CIDR采用最长前缀匹配,主机的网络前缀更长,因此路由将选择这个主机而不是整个网络
      2. 划分地址有定长和不定长的区别,定长划分时直接用二进制位数去运算,比如要分成个7网络,则拿3位作为子网号,后面的用作主机号即可,注意这里需要减去全0和全1的两种情况;而不定长划分就有一定技巧了,可以选择如下的按需一一分配,也可以选择00000- 01111 ~ 10000- 10111 ~ 11000- 11111这种方法

        image.pngimage.png

  7. NAT:私有网络与共有网络分割开,由于私有网络的地址是可以重复的,因此这一操作将会大大增加IP地址的利用率;

    1. 具体操作为路由器中建立一个NAT转换表,当私有网络中的IP将访问互联网时,则将私有IP转换为对应的公有IP;
    2. 由此一般的路由器不改变IP地址,仅仅只工作在网络层,而NAT路由器还需要转换IP,因此需要传输层的参与

      4.2.2 IPv6

      image.png

      4.2.3 IP组播

  8. 概念:为了使一个IP分组能够发送给多个目的主机,而不是给每个目的主机发送一个单独的分组,因此采用IP组播技术;组播采用的是D类地址,范围为224~239;采用的是IGMP协议

  9. 组播IP与以太网MAC帧的映射:01-00-5E,MAC帧的前3个字节不能变,第4个字节的第一个比特为0,后23位比特照搬
  10. IGMP协议(Internet Group Management Protocol):构造以源节点为根节点的组播转发树

    4.2.4 移动IP

  11. 概念:解决主机IP移动至另一局域网后的数据传输问题;与DHCP动态分配IP不同

  12. 过程:在原先的网络中有一个归属代理,现在所处的网络中有一个外部代理,当现在有IP数据报要发送给主机时,数据路由至子网,子网内没有对应的主机号,此时数据包将转交给归属代理,外部代理和归属代理将通过隧道通信,主机与外部代理通信得到数据报

    4.2.5 DHCP协议

  13. 概念:新加入网络的计算机自动获得IP地址无需手动;应用层协议,使用UDP传送数据

  14. 过程:C/S服务,客户机先广播请求发现DHCP服务器,DHCP服务器收到后广播提供服务消息,客户机收到后发送请求IP地址消息,服务器收到后确认并分配IP地址
    1. 这样的C/S模型在应用层中用到,因此是应用层的协议,而且在主机没有IP地址的情况下也没办法仅通过IP层完成服务;至于为什么用UDP,因为TCP需要知道详细的IP地址以建立连接

4.3 路由协议

解决将IP数据报往哪发的问题

4.3.1 自治系统与层次路由

  1. 自治系统(Autonomy System):非同一自治系统的路由器无法直接连通
  2. 层次:根据路由选择协议是在自治系统内还是自治系统外,分为内部网关IGP和外部网关EGP

    4.3.2 路由选择协议

    4.3.2.1 RIP协议及算法

  3. routine information protocol细节

    1. 每30秒与相邻的路由器交换全部的信息,最终所有路由器中的路由转发表将完整;
    2. 定义下一跳为16时为不可到达
    3. 实现简单,但路由数量太多时会让路由表太长;而且一旦有故障会收敛很慢
    4. image.png

      4.3.2.2 OSPF协议及算法

  4. open shortest path first细节:

    1. 洪泛法向网络中的所有路由器发送自己的部分信息,同时将网络进一步分成更小的区域,减少了洪泛法带来的数据通信压力
    2. RIP只能找最短跳数,但是OSPF可以用迪杰斯特拉算法以其他条件作为度量
    3. 收敛快,只在发生改变时更新,收敛结束时,所有路由都会得到一个网络拓扑

      4.3.2.3 BGP协议

  5. border gateway protocol细节

    1. 只能找到比较好的路径,而非最优路径
    2. 三者比较
      1. image.png

        4.3.3 路由转发

        4.3.3.1 IP数据报的转发过程

  6. 网络层中的数据依靠IP地址进行传输,但是在向下封装的过程中,路由器仅仅知道下一跳路由器的IP地址是不够的,因为链路层的传输需要知道MAC地址,因此路由转发过程需要实现IP地址到MAC地址的映射

  7. 在路由转发过程中,需要增加IP数据报的成功交付的可能,因此需要差错报告和询问机制

    4.3.3.2 ARP协议

  8. Address Resolution Protocol细节

    1. 由于其能看见端口号,因此在传输层
    2. 通过比对主机中的ARP高速缓存,得到IP与MAC的映射;当高速缓存中没有时,就向全网发送全1的ARP请求,当某主机接收到后就响应请求,并将映射关系写进高速缓存

      4.3.3.3 ICMP 协议

  9. Internet Control Message Protocol细节:

    1. 差错报文以IP数据报的形式发送,因此是网络层协议
    2. 计算机网络中的各类错误都需要ICMP的参与
    3. 询问机制是个啥?

      4.3.4 路由设备

      路由器,交换机,集线器;因特网的路由选择