zoukankan      html  css  js  c++  java
  • 网络层

    网络层

    职责

    • 向上只提供简单灵活的、无连接的、尽最大努力交互数据报服务
      • 无连接的: 事先不建立固定的连接(虚连接/虚电路)
      • 尽最大努力: 不保证可靠传输,不进行拥塞控制
      • 数据报: 网络层传输的数据单位

    IP地址—有分类、无分类

    • IP协议——规定地址格式,统一不同网络
      • 网络层地址格式(4Byte 32bit): 网络地址 + 主机地址(不包含全0、全1)
    • 子网划分
      • 结构: 网络号+子网号+主机号
      • 子网掩码: 网络号部分为1、主机号部分为0
    • CIDR(无类域间路由)
      • 结构: IP地址(网路前缀+主机号)/前缀长度
      • 路由聚合(超网):
        • 目的: 将多个子网汇聚到同一个网段(超网),以便减小路由表规模
        • 方式: 将各子网IP展开为2进制,从头检查直到第一个不相同的比特开始置为0直到末尾,最后得到该网段IP。前缀长度为比特值相同的最长公共前缀长度
    IPv4地址分类 网络地址 主机地址 范围 私有/保留地址
    A类 1 Byte, 0~126 3 Byte 1.0.0.1~126.255.255.254 10.x.x.x(私有), 127.x.x.x(保留)
    B类 2 Byte, 128.0~191.255 2 Byte 128.0.0.1~191.255.255.254 172.16.x.x~172.31.x.x(私有), 169.254.x.x(保留)
    C类 3 Byte, 192.0.0~223.255.255 1 Byte 192.0.0.1~223.255.255.254 192.168.x.x(私有)
    D类 224.0.0.1~239.255.255.254
    E类 240.0.0.1~255.255.255.254
    • IP数据报结构(首部(固定部分20B + 可变部分) + 数据)
      • 首部固定部分
        • 版本(IPv4 or IPv6)
        • 首部长度(以word(4B)为单位,至少为5(固定部分), 最多为15)
        • 区分服务(区分服务优先级别)
        • 总长度(数据包总长)
        • 分片
          • 标识(分片情况下用以区分分片是否属于同一数据报)
          • 片偏移(该分片相对于数据报头部的偏移长度,以8字节为单位)
        • 生存时间(TTL, 最多几跳后丢弃)
        • 协议(为哪个上层协议服务: ICMP、TCP、UDP。。。)
        • 首部校验和(每次经过一个路由器都要重新校验)
        • 源IP
        • 目的IP
    • 网络地址转换(NAT/NAPT)
      • NAT将专用网内部IP(私有/保留)转换为可以与互联网中主机通信的全球IP
      • NAPT将IP地址与端口号结合,能够使专用网内多个IP公用外部一个全球IP。

    路由/转发

    • 路由器结构: 上层路由选择、下层分组转发(进出端口、交换结构)
    • 转发流程:
      • 提取目的IP的网络号,查询路由表(目的网络、下一跳)
      • 路由器处于目的网络内(有端口与其相连),则直接发送给目的主机
      • 若目的网络有特定路由, 则转发给特定路由
      • 若无特定路由且路由表中有对应的下一跳地址,则转发下一跳
      • 若存在默认路由,则转发给默认路由
      • 报告转发分组出错
    • 路由选择协议——自适应、以自治系统AS为单位
      • 自治系统内部: RIP、OSPF
      • 自治系统之间: BGP

    相关协议—ARP/ICMP

    • ARP协议—为数据报的链路传输寻找正确的目的物理地址(MAC)

      • ARP缓存: 保存主机已知的同一网络内主机IP和MAC地址的映射。
      • ARP请求分组/响应: 对于ARP缓存中不存在的IP,源主机使用广播的方式发送ARP请求分组,目的主机收到请求后单播回送ARP请求响应,源主机将其记录到ARP缓存
    • ICMP协议—向上层汇报传输中的错误、回送的请求,提高转发的可靠性

      • 格式: 将ICMP报文(数据报)直接封装到另一个数据报中(作为数据部分)返回给源IP地址
      • 差错报告报文
      • 询问报文
      • Ping—测试两台主机间的连通性
        • 向目的主机发送ICMP Echo请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率
      • TraceRoute—追踪IP数据报从源IP到达目的IP的路由
        • 源IP向目的IP发送一系列TTL递增、内容为不可交付UDP数据报的IP数据报,转发路径上一系列路由节点依次接收并回送终点不可达的ICMP差错报告报文
  • 相关阅读:
    Django(72)Django认证系统库--djoser
    Django(71)图片处理器django-imagekit
    python进阶(21)typing模块--类型提示支持
    Jmeter 参数化-文件和参数同时上传的场景
    Java线程监控之 jvisualvm 和 jstack
    操作系统监控
    Redis安装部署
    Mac下charles安装及配置
    Prometheus 监控平台部署
    Nginx配置(九)
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13549600.html
Copyright © 2011-2022 走看看