zoukankan      html  css  js  c++  java
  • IP 协议

    IP协议它不能保证ip数据报能成功地到达目的地,IP协议仅提供最好的传输服务。
     
    错误处理
    • 丢弃该数据报
    • 发送ICMP消息给数据源,通知丢弃了该数据报
    • 任何可靠性必须由上层来提供(如TCP)
     
    IP首部

     
    IP首部,普通的IP首部长为20字节,除非含有选项字段。
    • 版本(4bit)
      • 目前协议版本号4,因此也叫IPv4
    • 首部长度(4bit)
      • 如果有选项字段,则包含选项字段
      • 有多少个32bits
      • 普通IP数据包(没有任何选项)该字段值是5 也就是20字节
    • TOS(服务类型,8bit)
      • 3bit优先权子字段(现在已经被忽略)
      • 4bitTOS,分别代表
        • 最小延时
        • 最大吞吐量
        • 最高可靠性
        • 最小费用
        • 4bit中只能置其中1bit
        • 如果所有4bit均为0,那么就是一般服务
      • 1bit未用但必须置0
    • 总长度(16bit)
      • 整个数据包的长度,以字节为单位
      • 利用首部长度,和总长度,就能知道数据内容的起始位置和长度。
    • 标识位(16bit)
      • 唯一的标识主机发送的每一份数据报
      • 通常每发送一份报文它的值就会加1
    • 标志字段(3bit)
    • 偏移字段(13bit)
    • TTL(time-to-live,8bit)
      • 数据报可以经过的最多路由器数
      • 默认32/64,没经过一个路由器减1,
      • 0时,丢弃数据报,并发送ICMP报文通知源主机。
    • 协议字段(8bit)
      • 识别哪个协议使用IP在传数据
    • 首部校验和(16bit)
      • 根据IP首部计算的校验和码。
      • 不对首部后的数据进行计算
        • 数据自有数据的校验位保证
      • 校验方法
        • 首先将首部校验和字段置0
        • 对首部每个16bit进行二进制反码,
        • 然后求和
    • 源IP地址(32bit)
    • 目的IP地址(32bit)
    • 选项字段
      • 安全和处理限制
      • 记录路径
      • 时间戳
      • 宽松的源站选路
      • 严格的源站选路
     
    不同应用间,建议使用不同TOS值;tcpdump输出即是这个值。
     
    0x10 --> 000 1000 0 
    三种颜色代表TOS 3bit优先权子字段,4bitTOS,1bit未用但必须置0
     
    IP路由选择

     
    概念上路由选择
    • 目标主机与源主机直接相通
      • 则IP数据报直接送到目标主机上
    • 否则
      • 主机把数据报发往默认的路由器上
      • 由路由器来转发该数据报
     
    IP层设置为路由功能:
    • 一般来讲
      • IP可以从TCP,UDP,ICMP,IGMP接收数据(本地生成的数据)并进行发送
    • 路由功能
      • IP还可以从一个网络接口接收数据报(待转发的数据报)并进行发送。
      • IP层在内存中维护一个路由表,路由表每一项包含
        • 目的IP地址
        • 下一站路由器的IP地址
        • 标志(两个)。
          • 1个指明目的IP地址是网络地址还是主机地址。
          • 2个指明下一站路由器是否为真正的下一站路由器。
        • 为数据报的传输指定一个网络接口
      • 主要完成的工作
        • 搜索路由表,完全匹配
          • 寻找能与目的IP地址完全匹配的条目。
          • 找到,则把报文发给该条目指定的下一跳路由
        • 搜索路由表,网络号匹配
          • 寻找能与目的网络号相匹配的条目
          • 找到,则把报文发给该条目指定的下一跳路由
        • 搜索路由表,寻找标为“默认”的条目
          • 则把报文发送给该表目指定的下一站路由器。
        • 上面三步都失败
          • 数据不能被传送,
        • 优先级 主机匹配-->网络匹配-->默认路由
     
    子网寻址

    不是把IP地址看成由单纯的一个网络号和一个主机号组成,
    而是把主机号再分成一个子网号和一个主机号。
     
    这样做的原因是因为 A类和B类地址为主机号分配了太多的空间,
    可分别容纳的主机数为2^24-2和2^16-2。
     
    主机好全0,全1 是无效地址。
     
    与30个C类地址相比,用一个包含30个子网的B类地址的好处是,它可以缩小路由表的规模。
     
    子网掩码
     
    • 32bit
    • 确定哪些是网络号(1),哪些是主机号(0);
    • 给定IP地址和子网掩码后
      • 主机就可以确定IP数据报的目的地
        • 本子网上的主机
        • 本网络中其他子网中的主机
        • 其他网络上的主机
  • 相关阅读:
    手起刀落-一起来写经典的贪吃蛇游戏
    同步、异步、回调执行顺序之经典闭包setTimeout分析
    起步
    设计模式之单例模式与场景实践
    青春是如此美好,又怎忍平凡度过
    nvm管理不同版本的node和npm
    起步
    基础
    调用wx.request接口时需要注意的几个问题
    微信小程序实现各种特效实例
  • 原文地址:https://www.cnblogs.com/Aiapple/p/7278025.html
Copyright © 2011-2022 走看看