免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4008 | 回复: 5
打印 上一主题 下一主题

[内核入门] 请问如何让 数据包 携带自定义固定的时间戳? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-04-19 10:37 |只看该作者 |倒序浏览
本帖最后由 flash78910 于 2017-04-19 10:42 编辑

时间戳是我自己获取的(struct timeval),在发送端获取时间戳,要在接收端提取出来另作用处。有那么几个想法:

1、sk_buff 中的 tstamp 成员。
     我在发端可以修改,但是根据 sk_buff 时间戳的更新原理,这个成员在收端接收时就会更新。也就是说无法固定,想要在路由或传输过程中不更新这个成员能做到吗?这个貌似是内核通过检查 netstamp_needed 来确定时间戳的更新(参考处:http://cxw06023273.iteye.com/blog/867159)。关于这个成员我还有些疑问,是否在 skb 的传输过程中,tstamp成员不占空间?因为这个成员不属于一个完整数据包的某个字段,例如IP包等。所以说,我用这个成员承载固定的时间戳是否可行?

2、利用IP报头的选项字段。
     本身IP固定报头的话20字节,在选项字段里添加时间戳,然后在收端提取。我也查阅过IP选项时间戳的一些资料,貌似还会记录路径IP,其实我用不了这么复杂,就只添加个发端时间戳就行,而且能在收端提取就行。

对于第二种想法,我不太想改动报头,但只要能实现,其他方法也可以。第一个方法我只是先用netfilter在发端试了下,收端的skb时间戳肯定会更新,这个在验证之前也料到了。我内核模块编程也是入门小白,请大家多多指教,谢谢大家!

论坛徽章:
0
2 [报告]
发表于 2017-04-20 15:04 |只看该作者
顶上去,虚心求教谢谢大家!

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
3 [报告]
发表于 2017-04-25 18:06 |只看该作者
时间戳不是报文的一部分,只是接收方的meta data。

只能记在报文的payload里面,或者可选的ip option或者tcp opt,如果是局域网的话,还可以使用二层payload。
不过要注意收发两端的时钟不匹配的情况。

招聘 : c/c++研发
论坛徽章:
0
4 [报告]
发表于 2017-04-28 14:49 |只看该作者
RFC 1323 TCP Timestamp option 或者加在自己的payload里面

论坛徽章:
0
5 [报告]
发表于 2017-10-20 11:28 |只看该作者
回复 4# jerryhua_cu
感谢您的答复。请问如果我使用skb_put()对payload进行了扩展和插入,在接收端提取出插入的数据后,我想再删除插入数据该怎么操作?没找到关于skb_put()的反向操作资料。难道用memmove和skb_pull()配合实现?请不吝赐教,感谢!

招聘 : c/c++研发
论坛徽章:
0
6 [报告]
发表于 2018-04-02 17:41 |只看该作者
flash78910 发表于 2017-10-20 11:28
回复 4# jerryhua_cu
感谢您的答复。请问如果我使用skb_put()对payload进行了扩展和插入,在接收端提取出 ...

skb_trim()
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP