当前位置: 首页 > news >正文

路由基础(一):IP地址规划

###IPv4地址

IPv4地址分成网络部分和主机部分
IPv4地址根据定义可分为:

  1. A类地址
    a. 第一字节的第一位为0
    b. 第一字节的数值范围为1-126
  2. B类地址
    a. 第一字节的第一和第二位为10的一组地址
    b. 第一字节的数值范围为128-191
  3. C类地址
    a. 第一字节的第一、第二和第三位为110的一组地址
    b. 第一字节的数值范围192-223

主网以及子网划分

主网采用自然掩码

  1. A类网络中使用8位掩码 1-126 255.0.0.0
  2. B类网络中使用16位掩码 128-191 255.255.0.0
  3. C类网络中使用24位掩码 192-223 255.255.255.0
    子网划分是把整个主类网络地址继续划分为更多的子网地址,属于在主网内部重新划分不同子网行为

IPv4报文

在这里插入图片描述

  1. 版本号(Version):长度4bit 标识目前采用的IP协议和版本号
    a. 0100代表IPv4
    b. 0110代表IPv6
  2. 报文头长度(Header Length):长度4bit 这个字段的作用是为了描述IP报文头的长度
    a. IP报文头的长度最长为60Byte 最小长度为20Byte
  3. 服务类型(Type of Service):长度8bit 用于实施QoS
    a. RFC 791中TOS的IP precedence将数据流分为8个优先级,取值越大优先级越高
    b. RFC 2474中又对TOS进行了重新的定义,把前6位定义成DSCP,可以标识64中等级,后两位保留
  4. 报文总长度(Total length):长度16bit 以Byte为单位计算IP报文的长度(包括报文头部和数据),所以IP报文最大长度位65535Byte
  5. 标识符(identifier):长度16bit 该字段与Flags和Fragment Offset字段联合使用,对较大的上层数据包进行分段操作,路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分那个包属于被拆分开的包的一部分
  6. 标记(Flags):长度3bit
    a. 该字段第一位不使用
    b. 第二位是DF(Don’t Fragment)位,DF位为1时表明路由器不能对该上层数据包分段。如果一个上层数据包无法在不分段的情况下进行转发,则路由器会丢弃该上层数据包并返回一个ICMP错误信息
    c. 第三位是MF(More Fragment)位,当路由器对一个上层数据包分段,则路由器会在除了最后一个分段的IP报文的头中将MF位设为1
  7. 片偏移(Fragment Offset):长度3bit 表示该IP报文在矮族分片中的位置,接收端靠此来组装还原IP报文
  8. 生存时间(TTL):长度8bit 当IP报文经过每一个沿途的路由器的时候,TTL值减一,如果TTL减少为0,则该IP报文会被丢弃。这个字段可以防止由于路由环路导致IP报文在网络中不停被转发
  9. 协议(Protocol):长度8bit 标识了上层所使用的协议。例如ICMP(协议号为1)、OSPF(协议号89)
  10. 头部校验(Header Checksum):长度16bit 用来做IP头部的正确性检测,但不包含数据部分
  11. 源和目标地址(Source and Destination Address):这两个字段都是32bit 标识了IP报文的源地址和目的地址
  12. 可选项(Options):一个可变长字段,该字段属于可选项
    a. 松散源路由(Loose Source Routing):给出一连串路由器接口的IP地址。IP包必须沿着这些IP地址传送,但是允许在相继的两个IP地址之间跳过多个路由器
    b. 严格源路由(Strict Source Routing):给出一连串路由器接口的IP地址。IP包必须沿着这些IP地址传送,如果下一跳不在IP地址表中表示发生错误
    c. 路有记录(Record Route):当IP包离开每隔路由器的时候记录路由器的出站接口的IP地址
    d. 时间戳(Timestamps):当IP包离开每隔路由器的时候记录时间
  13. 填充(Padding):因为IP报文头长度部分的单位为32bit,所以IP报文头长度必须为32bit的整数倍,因此,在可选项后面,IP协议会填充若干个0,以达到32bit的整数倍
http://www.xdnf.cn/news/1375669.html

相关文章:

  • 种草商城全链路技术实现指南
  • 【网络编程】NtyCo协程服务器的框架(轻量级的协程方案,人称 “小线程”)
  • 零后端、零配置:用 AI 编程工具「Cursor」15 分钟上线「Vue3 留言墙」
  • 【双指针- LeetCode】15.三数之和
  • python自学笔记14 NumPy 线性代数
  • anaconda本身有一个python环境(base),想用别的环境就是用anaconda命令行往anaconda里创建虚拟环境
  • 前端架构知识体系:css架构模式和代码规范
  • vscode 如何调试 python 2.7
  • springboot设计开发之基于springboot的校园社团管理系统/基于java的社团管理系统
  • UTXO 模型及扩展模型
  • Android -第二十一次技术总结
  • 海康相机的 HB 模式功能详解
  • Part 1️⃣:相机几何与单视图几何-第六章:相机模型
  • 【Redis 进阶】Redis 典型应用 —— 缓存(cache)
  • 【大前端】封装一个React Native与Android/IOS 端通用的埋点接口
  • 储能站运维管理一体化平台 | 图扑数字孪生
  • 《Linux 网络编程四:TCP 并发服务器:构建模式、原理及关键技术(以select )》
  • Linux 软件编程(十二)网络编程:TCP 并发服务器构建与 IO 多路复用
  • PPT处理控件Aspose.Slides教程:在.NET中开发SVG到EMF的转换器
  • 爬虫基础学习 - Xpath
  • 设计模式与设计原则简介——及其设计模式学习方法
  • 优选算法-常见位运算总结
  • uniapp中 ios端 scroll-view 组件内部子元素z-index失效问题
  • 基于 Node.js 的淘宝 API 接口开发:快速构建异步数据采集服务
  • 汽车电气系统的发展演进为测试带来了哪些影响?
  • DeFi协议Lombard能突破比特币生态原生叙事困境吗?
  • 图表可视化地理趋势-Telerik WPF Chart
  • 【Day 35】Linux-主从复制的维护
  • (LeetCode 面试经典 150 题 ) 637. 二叉树的层平均值(深度优先搜索dfs)
  • 亚马逊广告关键词排名提升的五大核心策略解析