计算机网络学习3—网络层

网络层

​ 网络层中的协议主要包括:IPARPICMPIGMP等,其中有些参考书将ARP协议归为数据链路层,将IGMP协议归为传输层,原因在于这两个协议均是处理两个层级之间的协议,此处笔者将他们归为网络层,从图1可以看出其大致关系。
在这里插入图片描述
图1 网络层各协议的关系


IP协议

  • IP(Internet Protocol, 网际协议),不可靠、无连接的协议。

  • IP 三大作用

    • IP寻址
    • 路由选择
    • IP分包和组包
  • IP首部格式(20~60字节)

    • 版本:目前为4,即 IPv4。
    • 首部长度:单位为4字节,首部长度设为 ”5“, 即IP首部长度为20字节.
    • 服务类型(Type Of Service, TOS):用来表明服务质量,包括服务优先度、最低延迟等。
    • 总长度(Total Length):表示IP首部与数据部分合起来的总字节数,该字段长16位,因此IP包的最大长度为 2 ^16 -1=65535 字节。
    • 标识(ID: Identification):用于分片重组,是一个计数器,用来产生数据包的标识,不是序号,每产生一个数据包,就加1。
    • 标志(Flags):表示包被分片的相关信息。
    • 片偏移(FO: Fragment Offset):用来表示备份篇的每一个分段相对于原始数据的位置。
    • 生存时间(Time To Live, TTL):记录中转的路由器个数,没经过一个路由器,TTL减少1,直到变成0,则丢弃改包。
    • 协议:表示的是上层协议编号,根据它可以识别是哪个协议向IP传送数据。
    • 首部校验和:根据IP首部计算的检验和码,只校验数据报的首部,不校验数部分。
    • 源IP地址、目的IP地址
      在这里插入图片描述
      图2 IP首部格式
  • IP数据包传输时两种情况

    • 若源主机和目的主机直接相连(如点对点链路),或是在一个共享网络上(在同一个网段), 那么IP数据报直接被发送到目的主机上;
    • 若源主机和目的主机在两个不同的网段,则主机把数据报发给一个默认的路由器(通过路由控制表查询获得)上,再由路由器转发该数据报,直到发送到目的主机。
  • IP路由选择

    • 路由控制表

      • 记录着网络地址和下一步应该发送至路由器的地址,换句话说,通过查询该表可以指明数据包下一步发往哪个路由器。

      • 路由表信息(如图3所示,来源于公众号 “小林coding”)每一条都包含如下信息:

        • Destination: 目的网段

        • Gateway: 网关地址(路由器的IP地址), 要想到达目的网段,需要先到此网关。

        • Genmask: 目的地址的子网掩码

        • Iface: 接口,去往目的地址的网络路径的出口
          在这里插入图片描述
          图3 路由表

    • 从路由表中选择下一跳(以上图为例,假设目标IP地址为192.168.10.200

      • step1: 将目标IP地址192.168.10.200与路由表条目1中的子网掩码(Genmask)与运算,得到的结果为192.168.10.0, 但是条目1的目的网段(Destination)192.168.3.0不匹配。
      • step2: 再将192.168.10.200与条目2中的子网掩码(Genmask)与运算,得到的结果为192.168.10.0,与条目2的目的网段192.168.10.0匹配,则选择下一条选择该接口(eth1)
      • 此外,条目3较特殊,其目的地址和子网掩码都是0.0.0.0,表示默认网关,如果其他条目都无法匹配,就会自动匹配这一条目。
  • IP分片(IP Fragmenttation)与重组

    • MTU(Maximum Transmission Unit,最大传输单元)

    • MSS(Maximum Segment Size,最大报文段长度)
      在这里插入图片描述
      图4
      在这里插入图片描述
      图5 IP分片和重组过程

  • IP地址标识及分类

    • IP地址标识(由32位表示)
      • 网络标识(网络地址)和主机标识(主机地址)两部分组成
      • 例如:192.168.128.10/24, 其中的 ”/24“ 表示前24位表示网路标识。现在基本上以子网掩码(网络前缀)来区分网络标识的个数。
    • IP地址分类
      • A类:首位以”0“开头,前8位为网络标识
      • B类:前两位以”10“开头,前16位为网络标识
      • C类:前三位以”110“开头,前24位为网络标识
      • D类:前四位以”1110“开头,32为全是网络标识,常被用于广播
        在这里插入图片描述
        图6 IP地址分类
        在这里插入图片描述
        图7 按照开头8位值来区分IP地址分类
  • 子网掩码

    • 使用前述几类IP地址中的主机地址的一部分作为子网号
  • 子网掩码(32为位)前多少位为1,表示前多少位相当于是总的网络号
    在这里插入图片描述
    图8 两种不同的B类地址子网掩码的例子

    • 可以通过变长或是变短来分隔或是合并子网
      在这里插入图片描述
      图9 变长子网

ARP协议

  • ARP(Address Resolution Protocol, 地址解析协议),以目标IP地址为线索,来定位下一个应该接受数据包的网络层设备的MAC地址。

  • ARP借助ARP请求ARP响应两种类型的包确定MAC地址。

  • ARP工作机制

    • 如图10所示,在同一链路层上的主机A向主机B发送数组,主机A为了获得主机B的MAC地址,起初要通过广播发送一个ARP请求包(包含有主机B的IP地址),当主机B发现请求包中的IP地址与自己的一致,则主机B将自己的MAC地址塞入APR响应包发送回主机A。
      在这里插入图片描述
      图10
      在这里插入图片描述
      图11 APR工作过程
  • ARP包格式(共28字节)

    • 前两个是以太网地址,其中目标地址为全1的特殊地址(即广播地址),电缆上的所有以太网接口都要接受广播的数据帧。
    • 以太网帧类型(2字节):表示后面数据的类型,对于ARP请求或应答来说,该字段的值为0x0806。
    • 硬件类型、协议类型、硬件地址长度、协议地址长度:指定了ARP请求或应答包中的后四个字段的类型和长度。
    • op操作字段,2字节):ARP请求(1)、ARP应答(2)、RARP请求(3)、RARP应答(4)。
      在这里插入图片描述
      图12 ARP请求或应答分组格式
  • ARP高效运行的关键

    • 若每发送一个IP数据报查找一次MAC地址,会造成网络流量浪费和效率低下,故通常的做法是把获取到的MAC地址缓存一段时间,每一个主机上都有一个ARP的高速缓存

ICMP协议

  • ICMP(Internet Control Message Protocol, 控制报文协议)

  • 主要功能

    • 确认IP包是否成功到达目标地址,通知在发送过程中IP包被废弃的具体原因
  • ICMP的两类消息

    • 差错报告报文
      • 目标不可达
      • 时间超过:如路由器TTL为0
      • 参数问题:路由器或是目的主机收到数据报的首部中欧协字段的值不正确
      • 改变路由(重定向):为了让主机知道下次将数据报发送给另一个路由器,即有更好的路由路径
    • 询问报文
      • 回送请求和回答:测试目的站是否可达以及了解其有关状态
      • 时间戳请求和回答:用于时钟同步和时间测量
  • 以下情况不会导致ICMP差错报文

    • ICMP差错报告报文
    • 第一个分片的数据报片的所有后续数据报片
    • 具有多播地址的数据报
    • 具有特殊地址(如127.0.0.00.0.0.0)的数据报

IGMP协议

  • IGMP(Internet Group Mangement Protocol, 网际组管理协议)

  • 主要功能

    • 用于支持主机和路由器进行多播的Internet组管理协议(IGMP)
  • 报告和查询
    在这里插入图片描述
    图13 IGMP的报告和查询


总结

  • IP地址和MAC地址关系
    • IP地址决定了数据最终传给谁,MAC地址决定了下一跳传给谁
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值