⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 105.htm

📁 unix高级编程原吗
💻 HTM
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://apue.dhs.org"><font face="黑体"><big><big>123</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center">               ● UNIX网络编程                       (BM: clown)                </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p   align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="index.htm">回到开始</a>][<a href="54.htm">上一层</a>][<a href="106.htm">下一篇</a>]
<hr><p align="left"><small>发信人: clown (梧桐叶), 信区: UNP <br>

标  题: unp第二十四章学习体会 <br>

发信站: UNIX编程 (2001年10月30日15:48:14 星期二), 站内信件 <br>

  <br>

本章介绍的是IP选项,其实早就看完了,但是测试程序一直不能 <br>

通过,另外又要忙字符设备驱动程序,以至于一拖再拖,到现在 <br>

测试程序也没有通过。:( <br>

  <br>

IPv4定义了10种不同的选项: <br>

1. NOP(为后续选项填充,从而对准4字节的边界) <br>

2. EOL(选项结束后,填充为4字节的整数倍) <br>

3. LSRR(loose source and record route) <br>

4. SSRR(strict source and record route) <br>

5. Timestamp <br>

6. Record route <br>

7. Basic security <br>

8. Extended security <br>

9. Stream identifier(已过时) <br>

10. Route alert(新增) <br>

  <br>

要设置IP选项,通过 <br>

setsockopt(socket_fd, IPPROTO_IP, IP_OPTIONS, buffer, buffer_length); <br>

设置,其中buffer为一个不超过44字节的缓冲区,里面保存了选项的内容,最后 <br>



一个参数是该缓冲区的大小。 <br>

  <br>

要得到IP选项,通过 <br>

getsockopt(socket_fd, IPPROTO_IP, IP_OPTIONS, buffer, &buffer_length); <br>

获取,其中buffer为接收该IP选项的缓冲区,buffer_length为一个值-结果参数, <br>

输入时表示缓冲区的大小,输出时表示所得到的IP选项的大小,如果为0,则表示 <br>

没有IP选项。 <br>

  <br>

由上面的介绍科知,要处理IP选项,最重要的是知道该选项的格式,然后填充一个 <br>

缓冲区,或者对接收到的缓冲区进行处理。 <br>

  <br>

下面对IPv4的源路径选项,即LSRR, SSRR进行介绍。 <br>

  <br>

传送格式: <br>

            NOP code len ptr route1 route2 ...... route9 dest_IP <br>

长度(Byte)  1B   1B  1B  1B   4B     4B             4B     4B <br>

  <br>

该缓冲区总共可以有44字节,因为route1在IP数据报离开主机时会从选项中挪出, <br>

因此实际传送的还是40字节。 <br>

其中code表示选项的类型,len表示选项的长度(不包含NOP),ptr指示选项中 <br>

第一个要处理的IP地址的偏移。 <br>

  <br>

  <br>

接受格式: <br>

  route1  NOP code len ptr route2 route3 ...... route9 dest_IP <br>

    4B    1B   1B  1B  1B   4B     4B             4B     4B <br>

  <br>

但是在其他资料上,我看到的发送格式与此并不完全相同,例如TCP/IP <br>

Illustrated volume 1中,Page77就不一样,少了一个NOP,觉得此格式 <br>

应该是错误的。另外,在谢希仁的“计算机网络”version 2中,其NOP放 <br>

在ptr之后, <br>

  <br>

我在程序中使用所有的这些格式进行了测试,结果服务器端总是接受不到任何数据, <br>

我使用tcpdump进行监听,发现客户端发送了到第一个route的SYN包,但是没有受到 <br>

任何回应,难道源路径选项的实现与路由器有关? <br>

  <br>

  <br>

  <br>

-- <br>

易朽的是生命,似那转瞬即谢的花朵;然而永存的,是对未来的渴望, <br>

是那生生世世传递下来的,不朽的,生的激情。每一朵勇敢开放的花, <br>

都是一个死亡唇边的微笑。 <br>

※ 修改:·clown 於 10月30日15:55:31 修改本文·[FROM: 211.69.205.23] <br>

※ 来源:·UNIX编程 apue.dhs.org·[FROM: 211.69.205.23] <br>

发信人: scz (小四), 信区: UNP <br>



标  题: Re: unp第二十四章学习体会 <br>

发信站: UNIX编程 (2001年10月30日16:54:52 星期二), 站内信件 <br>

  <br>

> 难道源路径选项的实现与路由器有关 <br>

  <br>

是的,几乎所有现代路由器都允许配置是否支持这个源路由选项。 <br>

很遗憾,很多现代路由器缺省配置都不支持。 <br>

  <br>

  <br>

【 在 clown (梧桐叶) 的大作中提到: 】 <br>

: 本章介绍的是IP选项,其实早就看完了,但是测试程序一直不能 <br>

: 通过,另外又要忙字符设备驱动程序,以至于一拖再拖,到现在 <br>

: 测试程序也没有通过。:( <br>

: IPv4定义了10种不同的选项: <br>

: 1. NOP(为后续选项填充,从而对准4字节的边界) <br>

: 2. EOL(选项结束后,填充为4字节的整数倍) <br>

: 3. LSRR(loose source and record route) <br>

: 4. SSRR(strict source and record route) <br>

: 5. Timestamp <br>

: 6. Record route <br>

: .................(以下省略) <br>

  <br>

  <br>

-- <br>

  <br>

            也许有一天,他再从海上蓬蓬的雨点中升起, <br>

            飞向西来,再形成一道江流,再冲倒两旁的石壁, <br>

            再来寻夹岸的桃花。然而,我不敢说来生,也不敢信来生...... <br>

※ 来源:·UNIX编程 apue.dhs.org·[FROM: 211.96.233.1] 发信人: clown (梧桐叶), 信 <br>

区: UNP <br>

标  题: Re: unp第二十四章学习体会 <br>

发信站: UNIX编程 (2001年10月30日17:50:06 星期二), 站内信件 <br>

  <br>

非常感谢,这个问题一直困扰了很久! <br>

今天晚上温习一下《Linux设备驱动程序》的最后一部分,就又可以 <br>

继续unp学习了。:) <br>

  <br>

【 在 scz (小四) 的大作中提到: 】 <br>

: > 难道源路径选项的实现与路由器有关 <br>

: 是的,几乎所有现代路由器都允许配置是否支持这个源路由选项。 <br>

: 很遗憾,很多现代路由器缺省配置都不支持。 <br>

: 【 在 clown (梧桐叶) 的大作中提到: 】 <br>

: : 本章介绍的是IP选项,其实早就看完了,但是测试程序一直不能 <br>

: : 通过,另外又要忙字符设备驱动程序,以至于一拖再拖,到现在 <br>

: : 测试程序也没有通过。:( <br>



: : IPv4定义了10种不同的选项: <br>

: : 1. NOP(为后续选项填充,从而对准4字节的边界) <br>

: : 2. EOL(选项结束后,填充为4字节的整数倍) <br>

: .................(以下省略) <br>

  <br>

-- <br>

易朽的是生命,似那转瞬即谢的花朵;然而永存的,是对未来的渴望, <br>

是那生生世世传递下来的,不朽的,生的激情。每一朵勇敢开放的花, <br>

都是一个死亡唇边的微笑。 <br>

※ 来源:·UNIX编程 apue.dhs.org·[FROM: 202.114.1.61] <br>

</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="54.htm">上一层</a>][<a href="106.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -