互联网协议套件中的服务类型(RFC 1349)技术解析与总结

news2025/2/11 21:29:45
1. 背景与核心目标
RFC 1349 是对 IP 协议头部 服务类型(Type of Service, TOS)字段语义的更新与澄清文档,发布于 1992 年。其主要目标包括:
  • 重新定义 TOS 字段的用途:明确 TOS 字段的语义,解决历史标准中的冲突。
  • 引入新的服务类型:例如“最小化经济成本”(Minimize Monetary Cost)。
  • 兼容性与扩展性:确保与现有协议(如 OSPF、IS-IS)兼容,并为未来实验预留空间。
  • 路由优化原则:主机使用 TOS 时不应被惩罚,网络应尽力满足请求,否则回退默认处理。

2. TOS 字段的重新定义
IP 头部的 服务类型字节包含三个字段:
0 1 2 3 4 5 6 7
| PRECEDENCE | TOS | MBZ |
  • PRECEDENCE(优先级):表示数据报的重要性(本文未详细讨论)。
  • TOS(服务类型):4 比特字段,用于请求网络在吞吐量、延迟、可靠性和经济成本之间优化路径。
  • MBZ(必须为 0):保留位,当前未使用。
关键变化:
  • TOS 字段从 3 比特扩展为 4 比特(兼容 RFC 1122)。
  • TOS 值定义为枚举值(而非独立位组合),禁止同时设置多个优化目标(例如不能同时要求“最小延迟”和“最大吞吐量”)。

3. 标准 TOS 值定义
二进制值
语义
1000
最小化延迟(Minimize Delay)
0100
最大化吞吐量(Maximize Throughput)
0010
最大化可靠性(Maximize Reliability)
0001
最小化经济成本(Minimize Monetary Cost)
0000
默认服务(Normal Service)
注意:
  • TOS 值为枚举值,非位组合(例如 1110 无意义)。
  • 未定义的 TOS 值保留供未来实验使用,主机和路由器不得阻止其使用。

4. TOS 在协议中的应用
4.1 ICMP 协议
  • 错误消息(如 Destination Unreachable)必须使用默认 TOS(0000)。
  • 请求消息(如 Echo Request)可自定义 TOS。
  • 响应消息(如 Echo Reply)需与请求的 TOS 一致。
4.2 传输层协议(如 TCP、UDP)
  • 根据应用需求选择 TOS 值(如 FTP 控制通道使用最小延迟,数据通道使用最大吞吐量)。
  • TCP 建议:控制报文与数据报文使用相同 TOS,避免影响往返时间估算。
4.3 应用层协议
  • 应用需根据流量特性选择 TOS 值(例如 SMTP 命令阶段用最小延迟,数据传输阶段用最大吞吐量)。
  • 用户应能覆盖应用的默认 TOS 选择(用于网络诊断等场景)。

5. TOS 对路由的影响
5.1 主机路由
  • 主机通过 ICMP Redirect 消息学习路由,区分 TOS 相关和无关的路由条目。
  • 路由缓存分为两类:
    • 类型 1:匹配目标地址和 TOS。
    • 类型 2:仅匹配目标地址(默认路由)。
5.2 路由器转发
  • 路由器优先选择与请求 TOS 完全匹配的路由,若无则使用默认 TOS(0000)。
  • 若无有效路由,返回 ICMP Destination Unreachable(代码 11/12 表示因 TOS 不可达)。

6. 限制与挑战
6.1 固有限制
  • 建议性机制:TOS 不提供服务质量(QoS)保证,仅作为优化提示。
  • 兼容性问题:旧设备可能忽略 TOS 字段,导致优化失效。
6.2 规范限制
  • 路由算法局限性:当前路由协议(如 OSPF、IS-IS)未完全支持复杂 TOS 语义(例如可靠性需链路概率乘积计算)。
  • 依赖网络管理:需合理配置路由策略,否则可能导致次优路径。

7. 总结与展望
RFC 1349 是 IP 服务类型机制演进的重要里程碑,解决了历史标准冲突并引入经济成本优化。然而,其本质仍是建议性机制,无法替代未来的 QoS 保障技术(如资源预留协议 RSVP)。随着网络商业化发展,TOS 在成本优化场景中的价值将愈发显著。
附录:
  • 更新影响的 RFC 包括:RFC 792(ICMP)、RFC 1122/1123(主机要求)、RFC 1195(IS-IS)、RFC 1247/1248(OSPF)。
  • 完整文档见:RFC 1349 - Type of Service in the Internet Protocol Suite

版权声明:本文内容基于 RFC 1349 翻译整理,仅供技术交流,转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2296515.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux系统】—— 简易进度条的实现

【Linux系统】—— 简易进度条的实现 1 回车和换行2 缓冲区3 进度条的准备代码4 第一版进度条5 第二版进度条 1 回车和换行 先问大家一个问题:回车换行是什么,或者说回车和换行是同一个概念吗?   可能大家对回车换行有一定的误解&#xff0…

一文学会:用DeepSeek R1/V3 + AnythingLLM + Ollama 打造本地化部署的个人/企业知识库,无须担心数据上传云端的泄露问题

文章目录 前言一、AnythingLLM 简介&基础应用1.主要特性2.下载与安装3.配置 LLM 提供商4.AnythingLLM 工作区&对话 二、AnythingLLM 进阶应用:知识增强使用三、AnythingLLM 的 API 访问四、小结1.聊天模式2.本地存储&向量数据库 前言 如果你不知道Olla…

开源身份和访问管理方案之keycloak(一)快速入门

文章目录 什么是IAM什么是keycloakKeycloak 的功能 核心概念client管理 OpenID Connect 客户端 Client Scoperealm roleAssigning role mappings分配角色映射Using default roles使用默认角色Role scope mappings角色范围映射 UsersGroupssessionsEventsKeycloak Policy创建策略…

C++STL(六)——list模拟

目录 本次所需实现的三个类一、结点类的模拟实现构造函数 二、迭代器类的模拟实现为什么有迭代器类迭代器类的模板参数说明构造函数运算符的重载- -运算符的重载和!运算符的重载*运算符的重载->运算符的重载引入模板第二个和第三个参数 三、list的模拟实现3.1 默认成员函数构…

HTML5--网页前端编程(下)

HTML5–网页前端编程(下) 9.常用标签下 (1)表格标签 用来展示数据,显示数据,规整条理,可读性好 基本语法 <table><tr> <td>单元格内的文字</td> <td>单元格内的文字</td>… </tr> <tr> <td>单元格内的文字&l…

Git 分布式版本控制工具使用教程

1.关于Git 1.1 什么是Git Git是一款免费、开源的分布式版本控制工具&#xff0c;由Linux创始人Linus Torvalds于2005年开发。它被设计用来处理从很小到非常大的项目&#xff0c;速度和效率都非常高。Git允许多个开发者几乎同时处理同一个项目而不会互相干扰&#xff0c;并且在…

linux部署ollama+deepseek+dify

Ollama 下载源码 curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz sudo tar -C /usr -xzf ollama-linux-amd64.tgz启动 export OLLAMA_HOST0.0.0.0:11434 ollama serve访问ip:11434看到即成功 Ollama is running 手动安装deepseek…

torch_bmm验算及代码测试

文章目录 1. torch_bmm2. pytorch源码 1. torch_bmm torch.bmm的作用是基于batch_size的矩阵乘法,torch.bmm的作用是对应batch位置的矩阵相乘&#xff0c;比如&#xff0c; mat1的第1个位置和mat2的第1个位置进行矩阵相乘得到mat3的第1个位置mat1的第2个位置和mat2的第2个位置…

CTFHub-RCE系列wp

目录标题 引言什么是RCE漏洞 eval执行文件包含文件包含php://input读取源代码远程包含 命令注入无过滤过滤cat过滤空格过滤目录分隔符过滤运算符综合过滤练习 引言 题目共有如下类型 什么是RCE漏洞 RCE漏洞&#xff0c;全称是Remote Code Execution漏洞&#xff0c;翻译成中文…

从大规模恶意攻击 DeepSeek 事件看 AI 创新隐忧:安全可观测体系建设刻不容缓

作者&#xff1a;羿莉&#xff08;萧羿&#xff09; 全球出圈的中国大模型 DeepSeek 作为一款革命性的大型语言模型&#xff0c;以其卓越的自然语言处理能力和创新性成本控制引领行业前沿。该模型不仅在性能上媲美 OpenAI-o1&#xff0c;而且在推理模型的成本优化上实现了突破…

【学习笔记】企业数字化转型顶层设计与企业架构TOGAF9.2-第0章 导论

数据要素资产化迈入关键发展期 围绕发挥数据要素乘数作用&#xff0c;研究实施“数据要素x”行动:从供需两端发力&#xff0c;在智能制造、商贸流通、交通物流、金融服务、医疗健康等若干重点领域&#xff0c;加强场景需求牵引&#xff0c;打通流通障碍、提升供给质量&#xf…

SpringCloud - Sentinel服务保护

前言 该博客为Sentinel学习笔记&#xff0c;主要目的是为了帮助后期快速复习使用 学习视频&#xff1a;7小快速通关SpringCloud 辅助文档&#xff1a;SpringCloud快速通关 源码地址&#xff1a;cloud-demo 一、简介 官网&#xff1a;https://sentinelguard.io/zh-cn/index.h…

单片机上SPI和IIC的区别

SPI&#xff08;Serial Peripheral Interface&#xff09;和IC&#xff08;Inter-Integrated Circuit&#xff09;是两种常用的嵌入式外设通信协议&#xff0c;它们各有优缺点&#xff0c;适用于不同的场景。以下是它们的详细对比&#xff1a; — 1. 基本概念 SPI&#xff0…

03-DevOps-安装并初始化Gitlab

Gitlab可以理解为是自己搭建的GitHub&#xff0c;也就是自己的代码仓库。 开启macvlan 在192.168.1.10服务器上&#xff0c;构建Macvlan网络&#xff0c;这种网络模式可以为每个容器独立分配ip。 docker network create -d macvlan \--subnet192.168.1.0/24 \--ip-range192.16…

RabbitMQ 从入门到精通:从工作模式到集群部署实战(五)

#作者&#xff1a;闫乾苓 系列前几篇&#xff1a; 《RabbitMQ 从入门到精通&#xff1a;从工作模式到集群部署实战&#xff08;一&#xff09;》&#xff1a;link 《RabbitMQ 从入门到精通&#xff1a;从工作模式到集群部署实战&#xff08;二&#xff09;》&#xff1a; lin…

DFS+回溯+剪枝(深度优先搜索)——搜索算法

DFS也就是深度优先搜索&#xff0c;比如二叉树的前&#xff0c;中&#xff0c;后序遍历都属于DFS。其本质是递归&#xff0c;要学好DFS首先需要掌握递归。接下来咱们就一起来学习DFS涉及的算法。 一、递归 1.什么是递归&#xff1f; 递归可以这样理解把它拆分出来&#xff0…

使用PyCharm创建项目以及如何注释代码

创建好项目后会出现如下图所示的画面&#xff0c;我们可以通过在项目文件夹上点击鼠标右键&#xff0c;选择“New”菜单下的“Python File”来创建一个 Python 文件&#xff0c;在给文件命名时建议使用英文字母和下划线的组合&#xff0c;创建好的 Python 文件会自动打开&#…

Spring MVC 拦截器(Interceptor)与过滤器(Filter)的区别?

1、两者概述 拦截器&#xff08;Interceptor&#xff09;&#xff1a; 只会拦截那些被 Controller 或 RestController 标注的类中的方法处理的请求&#xff0c;也就是那些由 Spring MVC 调度的请求。过滤器&#xff08;Filter&#xff09;&#xff1a; 会拦截所有类型的 HTTP …

【零基础学Mysql】常用函数讲解,提升数据操作效率的利器

以耳倾听世间繁华&#xff0c;以语表达心中所想 大家好,我是whisperrrr. 前言&#xff1a; 大家好&#xff0c;我是你们的朋友whisrrr。在日常工作中&#xff0c;MySQL作为一款广泛使用的开源关系型数据库&#xff0c;其强大的功能为我们提供了便捷的数据存储和管理手段。而在…

防火墙安全综合实验

防火墙安全综合实验 一、拓扑信息 二、需求及配置 实验步骤 需求一&#xff1a;根据下表&#xff0c;完成相关配置 设备接口VLAN接口类型SW2GE0/0/2VLAN 10AccessGE0/0/3VLAN 20AccessGE0/0/1VLAN List&#xff1a;10 20Trunk 1、创建vlan10和vlan20 2、将接口划分到对应…