第五章Internet协议

  • 引言:
    • IP是TCP/IP协议族中的核心协议,所有TCP,UDP,ICMP和IGMP数据都通过IP数据包传输,IP提供了一种尽力而为,无连接的数据报交付服务."尽力而为"的含义是不保证IP数据报能成功到达目的地,虽然IP不是简单丢弃所有不必要流量.但它也不对自己尝试交付的数据报提供保证.当某些错误发生时,例如一台路由器临时用尽缓冲区,IP提供一个简单的错误处理办法:丢弃一些数据(通常是最后到达的数据报).任何可靠性必须由上层(如TCP)提供.IPv4和IPv6都使用这种尽力而为的基本交付模式
    • "无连接"意味着IP不维护网络单元(即路由器router)中数据报相关的任何链接状态信息,每个数据报独立于其他数据报来处理,这也意味着IP数据报可不按顺序交付.如果一个源主机向同一目的地发送两个连续的数据报(第一个为A,第二个为B),每个数据报可以独立路由,通过不同路径,并且B可能在A之前到达.IP数据报也可能发生其他问题:它们可能在传输过程中被复制,可能改变内容从而导致错误,此外,IP智商的一些协议(如TCP)需要处理这些潜在问题,以便为应用提供无差错的交付

    •  
  • IPv4头部和IPv6头部
    • IP数据报采用的是高位优先字节序,32位4字节,是按0~7,8~15位,16~23位,24~31位,大多数PC都是使用低位优先字节序,在传输时必须将头部值转换为网络字节序,并在接收时再转换回来.
  • IP头部字段
    • 版本
      • IPv4和IPv6除开版本字段,再无相同字段.所以,主机或路由器必须分别处理IPv4和IPv6(称为双栈)
    • IHL(Internet Header Length,IPv4专属)
      • 4位
      • 记录了当前头部的32位字的数量,因为4位长度最大值是15,所以最多能表示当前头部记录了15个32位字符,也就是60字节,所以IPv4头部最大为60字节
    • DS和ECN
      • 原本为服务类型(ToS)字段,因没有广泛使用,最终将8位字段拆分成了区分服务字段(DS)和显示拥塞通知(ECN)字段
      • DS
        • DS字段在IPv4和IPv6内均为6位
        • DS内的代码被称为DSCP(区分服务代码点)
        • 原始结构
          • 结构 | 优先级(3位) | D | T | R | 保留(0) |
          • D,T,R分别表示数据报在延迟,吞吐量和可靠性方面得到良好的处理
          • 优先级字段从000到111,表示优先级依次递增
            • 000:常规,001:优先,010:立即,011:瞬间,100:瞬间覆盖,101:严重,110:网间控制,111:网络控制
        • 现在
          • 特定的DSCP路通知路由器对接受的数据报进行转发或者特殊处理,不同类型的转发处理表示为每跳行为(PHB)
          • DSCP以0结尾表适用于标准用途,以1结尾用于实验或本地用途,以01为结尾的DSCP最初打算用于实验或本地用途
          • DS的前3位基于原始结构的服务类型的优先级子字段,将流量分为不同类别
          • 第4位和第5位份分配了一个流量类别和丢弃优先级,
          • 本书不再细讲
    • 总长度(IPv4)
      • 16位
      • 总长度字段是IPv4数据报的总长度(包括头部文件),表示了该数据报的字节长度,所以是以字节为单位计算,16位能表示最大值为65536,所以IPv4数据报最大长度为65536
    • 负载长度(IPv6)
      •  
    • 标识长度
      • 16位
      • 当一个数据报超出最大长度时,会进行分片操作,而发送主机会将一个内部计数器加1,并将值赋值给该字段,避免分片混淆
    • 生存期(TTL)
      • 8位
      • 设置一个数据报可以经过路由器数量的上限,当一台路由器进行转发数据包操作时,会将该值减1,当字段值为0时,会被丢弃,并会使用一个ICMP消息通知发送方,该字段可以防止由于路由器环路导致数据报在网络中永远循环
    • 协议字段
      • 用来表示有效载荷的数据类型,如16表示UDP,6表示TCP,
    • 头部校验和
      • 该字段仅计算数据报头部的正确性,将不检查有效载荷部分的数据.
      • IPv6没有该字段(在IP投不中,更高层协议为了确定正确性,必须计算它们自己的校验和,这需要涵盖它们认为重要的数据,IP头部中的错误带来的后果是,数据被投递到错误的目的地,指示数据来源错误,或在交付过程中错位,由于位错误比较少见,而且其他字段提供了更有力的确保正确性的机制(更高层次的校验或其他检查),因此将该字段从IPv6头部删除)
      • 当路由器进行转发时,由于TTL字段会减1,所以会重新计算该字段
    • IP选项
      • 多数标准化选项在Internet中很少或从未使用.
      • IPv4
        • 如果选项存在,它在IPv4分组中紧跟着在基本IPv4头部之后,选项有一个8位类型字段标识,该字段被细分为3个子字段,复制(1位),类别(2位)和编号(5位)
    • 下一个头部字段(IPv6),IPv6扩展头部
      • IPv6头部不携带IP选项,如有需要,通常在IPv6头部之后增加扩展头部实现.
      • IPv4的特殊功能,将通过IPv6扩展头部实现,其他功能,很少在IPv6中使用,所以IPv6头部没有为这些特殊功能分配特殊的空间,所以头部固定为40字节,将通过扩展头部实现
      • 扩展头部的下一头部跳转必须按照标准的顺序进行处理,只有"目的地选项"头部可以使用两次
      • <---------------------------------------------------IPv6数据报------------------------------------------------->
      • <------------TCP段------------>
      • | IPv6头部(下一个头部=路由) | 路由头部(下一个头部=TCP) | TCP头部 | TCP数据 |
      • IPv6选项
        • 如果数据报需要IP选项,可以将其放入逐跳选项(路径上路由器相关选项)和目的地选项(接收方相关选项)内.
        • | 动作(2位) | chg | 类型子字段(5位) | 选项数据长度(8位) | 选项数据 |
        • 动作
          • 动作字段表示当该选项如果没有被识别,IPv6节点该如何处理,00:跳过选项,继续处理,01:丢弃数据报(无附加动作),10:丢弃数据报,并向源地址发送一个ICMPv6参数问题消息,11:与10相同,但仅当不是组播消息时,才发送该消息
        • chg(change)
          • 当选项数据在转发的过程中被修改的时候,该字段将被置为1
        • IPv6选项携带在逐条选项或目的地选项扩展头部中,选项类型字段包含来自"类型"列以及动作和改变子字段中的二进制值,"长度"列包含来自选项数据长度字节中的值
        • 选项 头部 动作 改变 类型 长度
        • 填充1 HD 00 0 0 N/A
        • 填充N HD 00 0 1 可变
        • 超大有效载荷 H 11 0 194 4
        • 隧道封装限制 D 00 0 4 4
        • 路由器警告 H 00 0 5 4
        • 快速启动 H 00 1 6 8
        • CALIPSO H 00 0 7 8+
        • 家乡地址 D 11 0 201 16
          • 填充1和填充N:
            • 由于IPv6选项需要与8字节偏移量对齐,所以该字段将作为填充
          • IPv6超大有效载荷
            • 当有效载荷超过IPv6头部最大容量时,将会用该选项表示65535~4294967295之间大小的数据报,如果启用改选项,正常的负载长度值将被设置为0.
          • 隧道封装限制
            • 将IP数据报封装在另一个数据报的有效载荷部分,用于形成虚拟的覆盖网络
          • 路由器警告
            • 用于包含路由器所需要处理的信息
          • 快速启动
            • 不适用于全球性的Internet,在现象中添加传送者需要的速率的编码之,QSTTL和一些额外信息,路径上的路由将会对该选项进行调整
          • CALIPSO
            • 专用网络的安全选项
          • 家乡地址
            • 移动IP实现的选项,会包含自己的地址
    • 路由头部
      • 可以控制数据报通过路由器的路径,更好的优化网络
      • 可以指定路径中的路由器,优化数据报在网络的传播
      • 由于(rh0)可以设置多个重复的路由器路径,会导致在多个路由器之间循环,可用于dos攻击已经被废除,接替的是rh2版本,该版本值允许填一个路径路由器
    • 分片头部(IPv4)
      • 当一个数据报超过最大MTU,将会对其进行分片操作
      • 分片过程中,原始数据报可以分成"可分片部分"和"不可分片部分",可分片部分指目的选项头部,上册头部和有效载荷部分,不可分片部分只包括路由头部之前的所有头部.
      • 当头部被分片之后,负载长度字段将会被重新计算
      • 标识符字段将会全置为相同值
      • 分片头部的偏移量将会以8字节为单位进行分割,除了最后一个字段,其他字段必须为8字节的倍数,偏移量的值即是计算总共便宜了多少个8个字节
      • 除了最后一个分片,其他分片内的M(更多分片字段)将置为1
  • IP转发
    • 除了直接相连的主机和共享网络(例如局域网),数据报能直接发送到目的地,其他情况下,数据报都将会交由路由器进行转发,来达到传输的目的.
    • 路由器转发无法保证目的地的地址,只能保证下一条的地址
    • 在路由器内有一张转发表,该表记录了一些如目的地,掩码,下一跳,接口等数值的条目,当路由器接收到数据报,如果目标非本机,将通过计算数据报和记录在本地的数据表得出最佳匹配条目进行转发
  • 移动IP
    • 双向隧道
      • 当MN移动到一个新的IP地址,会接受自己的CoA,并更新HA,当CN和MN进行通行时,将通过HA进行转发
      • 当MN和CN距离很近,但是与HA距离很远的时,效率很低
    • 路由优化
      • 可以通过优化使得MN和CN直接连接,而不用经过HA,大大提升数据传输效率
  • IP数据报的主机处理
    • 一台主机可能拥有多个地址,所以必须考虑一个数据报的目的地地址
    • 强主机模式:
      • 只有当数据报的地址与接口地址完全匹配的时候,才将数据报交付到本地
    • 弱主机模式
      • 当数据报的目的地地址与本地接口任意地址匹配,就将数据报交付到本地
    • 地址选择
      • 当两台主机存在双栈并进行沟通的时候,很容易出现复杂的问题,会出现地址选择失败情况,会导致非对称路由,不必要的过滤或丢弃分组.
  • 与IP相关的攻击
    • 与IP协议相关的攻击,通常是针对其选项操作,利用代码中的错误,由于一个或多个IP头部字段无效,简单的攻击就能让一台路由器性能下降或者崩溃.
    • 当没有身份认证或IP加密,IP欺骗攻击是可能发生的,攻击者可能伪装成本地的一台主机请求一些服务,可以通过入口过滤等技术手段来限制
    • IPv6由于使用的扩展头部,所以更容易利用,而且不能简单的过滤所有包含IPv6扩展头部和选项的分组,会严重限制其的使用,特别是移动IPv6将不能完全运行
  • 问题一:
    • 以太网协议和IP协议是什么关系?
      • 以太网协议是IP协议的底下一层,其解决了同一个局域网内主机相互通信的问题,而无法解决非同一个局域网内主机的交互问题,而IP协议就是为解决该问题而存在的,IP协议可以通过路由器链接两个不同局域网的主机,从而实现交互.

 

 

 

    • DSCP((Differentiated Services Code Poin):差分服务代码点
    • PHB(Per Hop Behavior):每跳行为
    • DS(Differenciated Service):区分服务
    • ECN(explicit congestion notification):显示拥塞
    • TTL(Time To Live):生存期
    • ICMP(Internet Control Message Protocol): Internet控制报文协议
    • MN(Mobile nod):移动节点
    • CN(communication  node):通信节点
    • HoA(home address):家乡地址
    • HA(Home Agent):家乡代理
    • CoA(Care of Address):转交地址
    • RO(Route optimization):路由优化
    • ESP(Encapsulate Security Payload):封装安全有效负载
    • IPsec(InternetProtocolSecurity):因特网安全协议
    • RRP(Return router program): 返回路由程序

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值