C_and_CPP 板


LINE

开发平台(Platform): (Ex: Win10, Linux, ...) Linux 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出) GCC 额外使用到的函数库(Library Used): (Ex: OpenGL, ...) 问题(Question): 我太无聊了想用两张网卡拿raw socket做bridge 至於这个可以做什麽就..嘿嘿 喂入的资料(Input): 开两个raw socket int sockin = socket(PF_PACKET, RAW_SOCK, htons(ETH_P_ALL); int sockout = socket(PF_PACKET, RAW_SOCK, htons(ETH_P_ALL); 注 promisc已经用其他方法处理好了 然後bind socket setsockopt(sockin, SOL_SOCKET, SO_BINDTODEVICE, "eth0", 4); setsockopt(sockout, SOL_SOCKET, SO_BINDTODEVICE, "eth1", 4); 然後recv资料 n = recvfrom(sockin, buf, 1500, (struct sockaddr *)&rcvaddr, &len); 稍微修改一下rcvaddr的资料: rcvaddr.sll_pkttype = 0; rcvaddr.sll_hatype = 0; rcvaddr.sll_ifindex = 3; //eth0的 index是2, eth1 的index是3 m = sendto(sockout, buf, 1500, (struct sockaddr *)&rcvaddr, sizeof(struct sockaddr); 至此编译完执行,一端就通了 预期的正确结果(Expected Output): 理论上另一端执行完应该也要能通, 但是却出现了怪事。从eth0收到的资料往eth1丢时 另一个eth1接收的软体觉得socket里面有东西又把它捞了出来,又丢回eth0 结果封包像是乒乓球一样在两个recv的socket中疯狂地转送 现在我是有用个判断,偷看ethernet表头让这个转送停下来, 但是相对效能就变差了。 想请问一下,这样的socket现象是正常的吗? 就是sendto的封包会被另外一只recvfrom从socket又收回来 有没有什麽flag可以强制他不要收送出的封包? 其他做过的测试,我试过不要bind, 这更可怕,recvfrom的指令两边都收的到根本大杂烩 所以bind是有用的, 至於没有bind的时候sendto会送给谁..我不知道,蛮难确认的 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.160.200.71 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1566287792.A.675.html
1F:推 Schottky: 区域网路怎麽接的 08/21 02:52
网路的话 设备总共有三台, eth0 eth1 PC1 <--------------> PC2 <----------------> PC3 IP: 192.168.1.200 192.168.1.105 192.168.1.100 NA 既然是bridge,其实PC2的eth0也可以不用IP 试过不用IP,但是封包还是在那乱弹 比较特别的是PC2的 ARP table 192.168.1.200 <MAC> on eth0 192.168.1.105 <MAC> on eth1 192.168.1.105 <incomplete> on eth0 <====????? 不过也有可能是程式乱跳让系统误以为那边也有一台105, 所以把ARP包往那边丢 但是想当然耳,那边什麽都没有 ※ 编辑: chigi (1.160.200.71 台湾), 08/21/2019 09:17:34







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP