免费注册 查看新帖 |

Chinaunix

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

[网络子系统] tcp协议 发送数据跟踪 [复制链接]

论坛徽章:
2
天秤座
日期:2014-01-09 21:41:17双鱼座
日期:2014-02-20 21:50:54
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-02-15 12:51 |只看该作者 |倒序浏览
本帖最后由 duoniK 于 2014-02-15 17:03 编辑

在看tcp进行socket传输时,里面提到 tcp_sendmsg() 和 tcp_sendpage() 都是发送数据的,发送的数据来自用户空间和页缓存,这里不清楚“用户空间”和“页缓存”到底是什么概念,还请大家把忙解答下。谢谢
原文:
tcp_sendmsg() and tcp_sendpage() gather up data (either from userspace or the page cache) into SKB packets and tack them onto the sk_write_queue() of the TCP socket.

另外 上层的数据怎样进行跟踪测试呢?

如下所示 因为tcp_transmit_skb 是 同一个数据出口,理论上 发送的数据在此处都应该可以打印出来,自己将skb中的
线性存储区的数据(不支持TSO)全部打印,但并不能全部显示,不知道是哪里出错了?
tcp_transmit_skb 添加了如下代码
{
        ....
        tail_data = nskb->tail - nskb->data;
        memcpy(buffer, nskb->data, tail_data);
        buffer[tail_data] = '\0';
        printk("nskb->data:%s, tail_data:%d", buffer, tail_data);
        ....
}  

通过ftp协议传输一个文件,但是文件内的内容无法 全部打印出,想知道命令数据和文本数据分别走哪条路径传输的?谢谢

论坛徽章:
0
2 [报告]
发表于 2014-02-15 17:43 |只看该作者
是不是你这样只能打印出命令不能打印出数据?

论坛徽章:
2
天秤座
日期:2014-01-09 21:41:17双鱼座
日期:2014-02-20 21:50:54
3 [报告]
发表于 2014-02-15 21:58 |只看该作者
打出的是文本中的部分数据.没有看到命令     回复 2# jasonsungblog


   

论坛徽章:
0
4 [报告]
发表于 2014-02-15 22:45 |只看该作者
印象中skb->data中开始是报文协议头,报文数据不放在这里。

论坛徽章:
2
天秤座
日期:2014-01-09 21:41:17双鱼座
日期:2014-02-20 21:50:54
5 [报告]
发表于 2014-02-16 11:26 |只看该作者
我也这样想,但是skb->data中目前只有部分文本的数据, 不知道命令数据和 文本数据是怎样传输的。哪位大神来解答下啊回复 4# jasonsungblog


   

论坛徽章:
0
6 [报告]
发表于 2014-02-18 12:28 |只看该作者
还有什么命令数据和文本数据之分么?你有没有抓包看看?

论坛徽章:
2
天秤座
日期:2014-01-09 21:41:17双鱼座
日期:2014-02-20 21:50:54
7 [报告]
发表于 2014-02-19 08:40 |只看该作者
测试成功了,上述代码会同时打印出所有 命令和文本数据。将printk改为 printk(1 "nskb->data:%s, tail_data:%d", buffer, tail_data);即可。
谢谢回复
回复 6# jasonsungblog


   

论坛徽章:
0
8 [报告]
发表于 2014-02-19 10:37 |只看该作者
回复 7# duoniK 是要添加printk的级别吗?你是自己编译内核测试的吗?


   

论坛徽章:
2
天秤座
日期:2014-01-09 21:41:17双鱼座
日期:2014-02-20 21:50:54
9 [报告]
发表于 2014-02-19 18:06 |只看该作者
是的, 不然的话 printk打印不全,推测应该是会不中断回复 8# jasonsungblog


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP