1:引言

I P输入函数(i p i n t r)将在验证分组格式(检验和,长度等)之后,确定分组

是否到达目的地之前,对选项进行处理。这表明,分组所遇到的每个路由器以及最终的目的
主机都要对分组的选项进行处理。
RFC 791和11 2 2指定了I P选项和处理规则。本章将讨论大多数 I P选项的格式和处理。我们
也将显示运输协议如何指定I P数据报内的I P选项。
I P分组内可以包含某些在分组被转发或被接收之前处理的可选字段。 I P实现可以用任意
顺序处理选项;N e t / 3按照选项在分组中出现的顺序处理选项。图 显示,标准I P首部之后最多可跟4 0字节的选项。

2:代码介绍

两个首部描述了 I P选项的数据结构。选项处理的代码出现在两个 C文件中。图列出了相关文件。

3:选项格式

I P选项字段可能包含0个或多个单独选项。选项有两种类型,单字节和多字节,如图 中

所示。

所有选项都以1字节类型(t y p e)字段开始。在多字节选项中,类型字段后面紧接着一个长
度(l e n)字段,其他的字节是数据 (d a t a)。许多选项数据字段的第一个字节是 1字节的位移
(o f f s e t)字段,指向数据字段内的某个字节。长度字节的计算覆盖了类型、长度和数据字段。
类型被继续分成三个子字段: 1 bit 备份 (c o p i e d)标志、 2 bit 类(c l a s s)字段和 5 bit 数字
(n u m b e r)字段。

IP选项处理的更多相关文章

  1. 关于IP选项

    源:关于IP选项 校验和算法

  2. Linux内核分析 - 网络[十四]:IP选项

    Linux内核分析 - 网络[十四]:IP选项 标签: linux内核网络structsocketdst 2012-04-25 17:14 5639人阅读 评论(1) 收藏 举报  分类: 内核协议栈 ...

  3. Socket: Java Socket 几个重要的TCP/IP选项解析(转)

    Socket选择可以指定Socket类发送和接受数据的方式.在JDK1.4中共有8个Socket选择可以设置.这8个选项都定义在java.net.SocketOptions接口中.定义如下: publ ...

  4. TCP/IP协议栈--IP首部选项字段的分析

    IP输入函数(ipintr)将在验证分组格式(检验和,长度等)之后.确定分组是否到达目的地之前,对选项进行处理. 这表明分组所 遇到的每一个路由器以及终于的目的主机都对要分组的选项进行处理. IP分组 ...

  5. 【转】TCP/IP协议栈及OSI参考模型详解

    OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...

  6. socket选项总结(setsocketopt)

    功能描述:        获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选项位于的层和选项的名称必须给出.为了操作套接字层的选项, ...

  7. TCP/IP协议学习(二) LWIP用户自定义配置文件解析

    LWIP协议支持用户配置,可以通过用户裁剪实现最优化配置,LWIP默认包含opts.h作为系统默认配置,不过通过添加lwipopts.h文件并包含在opts.h头文件之前就可以对lwip进行用户裁剪, ...

  8. Linux下的ip命令,除了ifconfig还有很多

    linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...

  9. IP报文解析及基于IP 数据包的洪水攻击

    版本(4bit) 报头长度(4bit) 优先级和服务类型(8bit) 总长度(16bit) 标识(16bit) 标志(3bit) 分段偏移(13bit) 存活期(8bit) 协议(8bit) 报头校验 ...

随机推荐

  1. easyui-numberspinner实现双箭头效果

    效果图: 实现了 [点击左上角 输入框的值加 0.5] [ 左下角 值减0.5 ] [ 右上角点击 值加1] [ 右下角点击 值减1] 代码: <span style="positio ...

  2. java中创建线程的方式

    创建线程的方式: 继承thread 实现runnable 线程池 FurureTask/Callable 第一种:继承thread demo1: public class demo1 { public ...

  3. jQuery禁用input历史选择

    $("#id").attr("autocomplete", "off");

  4. 工作总结---CTO(张王岩)的笔记--

    1. 语言的基础:  变量.控制语句.方法 .数组 2. 面向对象  OOP 3. 容器  存储数据.分析数据  介绍[IO  File   字节流    字符流  CommonsIO] input  ...

  5. 微信公众号对接JS-SDK接口 调用微信内置地图

    微信js-sdk开发文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 1.页面配置 引用微信js- ...

  6. C++Primer 5th Chap3 Strings,Vectors, and Arrays

    使用名字空间成员的简单方法: using namespace ::name;例如:using std::cin; 头文件不应包含using声明 标准库类型string:(需要带有头文件#include ...

  7. MAC自带Apache配置python3

    进入终端 sudo apachectl start 直接访问localhost 解决Mac下apache 403的问题 网上查资料发现是因为Mac版本升级导致了apache策略发生变更了,所以我们修改 ...

  8. apache - storm - Setting Up a Development Environment

    Installing a Storm release locally If you want to be able to submit topologies to a remote cluster f ...

  9. MySQL5.7主从从配置

    主从从,也称为级联主从,数据流向:A(主)->B(从)->C(从从),主从从级联复制. 应用场景 在主从配置的基础上,再增加一个从库,进一步提高数据安全,容灾备份. 读写分离,从库只用于查 ...

  10. 轻松搭建CAS 5.x系列(8)-在CAS Server增加双因素认证(DUO版)

    概述说明 为了让系统更加安全,很多登录会加入双因素认证.何为双因素,如果把登陆作为开一扇门的话,那就是在原来的锁上再加一把锁,第二锁用新的钥匙,这样安全系数就更加高了. CAS是通过账号名和密码来认证 ...