图解TCPIP---第四章---IP协议

数据链路层的主要作用是在互连同一种数据链路的节点之间进行包传递
一旦跨越多种数据链路 就需要借助网络层

主机 配置有IP地址 但是不进行路由控制的设备
路由器 配置有IP地址 具有路由控制能力的设备
节点 主机和路由器的统称

IP大致分为三大作用模块

  • IP寻址
  • 路由(到最终节点为止的转发)
  • IP分包与分组

网络层对数据链路层的某些特性进行抽象
比如数据链路的类型对IP地址形式就透明

MAC是同一个数据链路中的不同站的识别码
不同数据链路通过IP寻址

不同数据链路有一个最大的区别 各自的最大传输单元不同 Maximum Transmission Unit
MTU在以太网是1500字节 FDDI是4352字节 ATM则为9180字节
IP上层可能会要求传送比这些MTU更多字节的数据 为了解决这个问题 IP进行分片处理 将较大的IP包分为多个较小的IP包 然后在对端接收时进行组合传递给上一层
即在IP层上看可以忽略数据链路的MTU

IP面向无连接 不保证可靠性 又上层的TCP提供可靠传输

IP地址

IPv4 32位
IP地址由 网络标识(网络号) 与 主机标识(主机地址) 两个部分组成

  • IP地址分类 根据IP地址中的第一位到第四位的比特列
    • A类地址
      • 0开头 1-8位时网络号 0.0.0.0-127.0.0.0 表示A类
    • B类地址
      • 10开头 1-16位是网络号 128.0.0.0-191.255.0.0 表示B类
    • C类地址
      • 110开头 1-24位是网络号 192.0.0.0-223.255.255.0 表示C类
    • D类地址
      • 1110开头 1-32位是网络号 224.0.0.0-239.255.255.255 表示D类
      • D类没有主机标识 通常用于多播
  • IP地址分配注意事项 用比特位表示主机地址时 不可以全部为0或全部为1
    • 全部为0通常表示地址不可获取
    • 全部为1通常表示广播地址

广播地址

广播地址用于在同一个链路中互相连接的主机之间发送数据包 将IP地址中的主机地址部分全部设置为1就成为了广播地址

  • 本地广播
    • 在本网络内的广播叫本地广播 例如在网络地址为192.168.0.0/24的情况下 广播地址为192.168.0.255 这个广播地址的IP包会被路由器屏蔽不会到达其他链路
  • 直接广播
    • 在不同网络之间的广播叫做直接广播 比如192.168.0.0/24的主机向192.168.1.255/24的目标地址发送IP包 那么收到这个包的路由器会将这个数据包转发给192.168.1.0/24 使得所有的192.168.1.1~192.168.1.254主机都能收到这个包
  • 直接广播具有一定的安全问题 大多数路由器会设置为不转发

IP多播

广播无法穿透路由器 想给其他网段发送同样的广播包就做不到
但是多播可以穿透路由器 如下图
多播使用的是D类地址 IP地址分类也有说明

  • D类224.0.0.0-239.255.255.255都是多播地址
  • 224.0.0.0-239.0.0.255 范围内不需要路由控制 同一个链路内也能实现多播
  • 在上述范围之外设置多播地址会给全网所有组内成员发送多播包
  • 对于多播 所有的主机(路由器以外的主机和终端)都必须属于224.0.0.1的组 所有的路由器必须属于224.0.0.2的组

在这里插入图片描述

子网掩码

ABC类的地址浪费严重 现在使用子网掩码细分出比ABC类更小粒度的网络
实际是将ABC的主机地址 部分 用作子网地址 这样可以将原网络分割多个物理网络

0 10 127 开头的A类地址都是具有特殊意义的保留地址

用来处理IP用尽的手段

  • 私有网络的IP地址 原本是不接入互联网的 后来可以通过NAT连接网络

    • 10.0.0.1~10.255.255.255 A类 10/8
    • 172.16.0.0~172.31.255.255 B类 172.16/12
    • 192.168.0.0~192.168.255.255 C类 192.168/16 私有IP很像路由器的网址
  • 全局IP地址 基本需要保持互联网唯一

    • 使用任播时 多台主机或路由器可以配置一个IP
  • CIDR 无类型域间选路 放弃IP地址的分类 采用任意长度分割IP地址的网络号和主机号 固定长度的掩码机制

  • VLSM 可变长的掩码

  • NAT 转换私有IP和全局IP

在这里插入图片描述

  • 代理服务器
  • 等等…

路由控制

实现IP通信的主机和路由器都必须有一张路由控制表

  • 手动设置 静态路由控制
  • 自动交换信息学习刷新 动态路由控制
    • 为了让动态路由及时刷新路由表 网络上互联的路由器必须设置好路由协议来交换信息

在这里插入图片描述

IP协议本身没有定义制作路由控制表的协议 即IP没有制作路由控制表的协议
路由控制表是由一个路由协议的协议制作而成的

  • 默认路由 0.0.0.0/0或default 指路由表中的任何一个地址都可以与之匹配的记录
  • 主机路由 IP地址/32 意味着基于主机的网卡上配置的IP地址本身 而不是基于该地址的网络地址部分进行路由 多用于不希望通过网络地址路由的情况
  • 环回地址 同一台计算机程序之间进行网络通信时使用的默认地址 127.0.0.1 该地址有一个同意义的 localhost 的主机名 使用这个IP或者主机名时数据包不会发向网络

路由控制表的聚合

在这里插入图片描述

IP分割处理与再构成处理

  • 路由器进行分片处理 路由器只要认为有必要就会周而复始的分片
  • 目标主机再构成 路由器不会重组 大致原因如下
    • 无法保证IP数据包报是否经由同一个路径发送
    • 分片可能丢失或无法到达
    • 经过下一站可能会再次分片
    • 如果重组工作交给路由器会给路由器带来多余负担 也会降低网络传送效率

路径MTU发现

分片机制也有不足之处 首先分片会增加路由器的负担 随着对路由器的性能以及其他要求越来越高 是不希望路由器进行IP数据包的分片处理的

路径MTU是指从发送端主机到接收端主机之间不需要分片的最大MTU的大小
然后发送主机就可以按照路MTU的大小自行将数据报分片发送

MTU的工作原理就如同下两图就不在详细描述

在这里插入图片描述

在这里插入图片描述

IPv6

128bit 一般写成8个16位字节

  • IP地址的扩大与路由控制表的聚合
  • 性能提升
  • 支持即插即用 其实没有HDCP服务器也可以实现自动分配IP
  • 采用认证和加密功能 IPsec
  • 多播 MobileIP成为扩展功能

IPv6类似IPv4 也是通过IP地址的前几位标识IP地址的种类

  • 使用一种全局的单播地址 互联网中的唯一一个地址 不需要分配IP
  • 限制型网络 即那些不与互联网接入的私有网络 可以使用唯一本地地址
    • 该地址根据一定算法生成随机数并且融合到地址当中可以像IPv4的私有地址一样使用
  • 在不使用路由器或者同一个以太网网段内进行通信时可以使用链路本地单播地址
  • 在构建允许多种类型的IP地址的网络时 在同一个链路上也可以使用全局单播地址以及本地唯一地址进行通信
  • 在IPv6的环境下可以同时将上述这些IP全部配置到同一个NIC(网卡)上 按需灵活使用

在这里插入图片描述

全局单播地址

64位网络标识 64位主机号
通常接口ID保存64位MAC地址的值 但是这样会暴漏信息 不太安全 所以有的接口ID会设置为一个与MAC无关的临时地址 这个临时地址通常随机产生 哈 这样从IPv6查看定位设备就没那么容易拉拉

在这里插入图片描述

链路本地单播地址

在通过一个数据链路内唯一的地址 用于不经过路由器在同一个链路中的通信
接口ID通常保存MAC地址

在这里插入图片描述

唯一本地地址

不进行互联网通信时的地址
但是也可以与IPv4类似通过NAT或网关(代理)进行联网
虽然唯一本地地址不会与互联网连接 但是也会尽可能生成一个唯一的全局ID

在这里插入图片描述

IPv6的分段处理

IPv6的分段处理只在作为起点的发送端主机上进行路由器不参与


IPv4首部

在这里插入图片描述
版本 version P147 可选IP IPv6 PIP 等等
首部长度IHL Internet Header Length P148 单位是4个字节 看图可以看出 没有可选字段时 大小应该是5 20个字节
区分服务TOS Type Of Service P149 表示服务质量 这个字段几乎没有使用 也有将这个区分为DSCP和ECN字段的
总长度 Total Length P150 IP首部与数据结合的总字节数 这个字段长16比特 因此最大IP包65535字节
标识 Identification P150 用于分片重组
标志 Flags P150 标识被分片的信息 参考如下
在这里插入图片描述
片偏移 FO Fragment Offset P151 单位为8字节 最大刚好为8*8192=65535个字节(上面IP包的总长度最大也为65535)
生存时间 TTL Time To Live P151 可以经过多少个路由器 经过一个TTL减1 为0时抛弃该数据包
协议 Protocol P151上层协议类型
首部校验和 Header Checksum P152 该字段只校验数据报的首部 不校验数据部分
源地址 目标地址 对应的IP地址 P152
可选项 Options P152 通常实验室或诊断时才用到

  • 安全级别
  • 源路径
  • 路径记录
  • 时间戳

填充 Padding P152 有可选项的时候首部长度可能不是32比特的整数倍 向字段填充0调整为32比特的整数被


IPv6首部

在这里插入图片描述

与IPv4相比省略了首部校验和字段 路由器不需要计算校验和 提高了包的转发效率 TCP和UDP在做校验和计算的时候会使用伪首部 所以可以验证IP地址或协议是否正确

  • 版本 Version IPv6的版本号为6 所以这个字段的值就是6 哈哈
  • 通信量类 Traffic Class 与 IPv4 的 TOS 类似
  • 流标号 Flow Lable 准备用于服务质量 Quality Of Service 控制 只有流标号和源地址目标地址完全一致时才认为是一个流 可理解为一种类似索引index的作用 当然还有一些其他功能
  • 有效荷载长度 Payload Length
    • IPv4的Total Length指的时首部和数据一起的长度
    • 有效荷载长度不包括首部 只表示数据部分的长度
    • 有效荷载长度包括可选项 因为可选项是指连接IPv6首部的数据
  • 下一个首部 Next Header 类似与IPv4的协议字段
    • 在有扩展首部的情况下 该字段表示后面第一个扩展首部的协议类型
  • 条数显示 Hop Limit 类似于IPv4的TTL
  • 源地址 目标地址 128个bit的IPv6地址

IPv6k扩展首部

  • IPv6首部长度固定
  • 扩展首部通常介于IPv6首部和TCP/UDP首部中间
  • IPv6没有标识以及标志字段 需要对IP数据包分片时可以使用扩展首部 如下图

在这里插入图片描述

发布了40 篇原创文章 · 获赞 0 · 访问量 2573

猜你喜欢

转载自blog.csdn.net/u010571102/article/details/104152735
今日推荐