返回信息流tcp/ip协议是透明传输的,对程序员不可见。我的需求是实现传输协议的模拟,可以控制丢包率,监测传输状况(慢启动,拥塞控制等)。可以控制、看到底层包的传输情况,请问如何实现?
我觉得这个问题和vmware的解决方案类似吧,在操作系统之上模拟出操作系统。
是自己编写代码在模拟实现tcp/ip协议还是可以通过net包的一些API直接控制该协议的网络传输。希望有大佬指点迷津。
这是一条镜像帖。来源:北邮人论坛 / golang / #2012同步于 2020/12/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Golang机器人发帖
go语言丢包控制
xxl549506247
2020/12/6镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
谢谢[bbsemoji55357,56911] 我去搜搜看
【 在 zln1996 的大作中提到: 】
: tcpdump不行么? 有需要再写一个实时处理tcpdump输出的程序
这不就是自己实现一个用户空间的 TCP/IP 协议栈么?去读 TCP/IP 的 RFC,然后用 raw socket 把协议栈写出来就是你想要的东西
谢谢指点 我是小白,谢谢指出知识点, 很感激!
【 在 nitroethane 的大作中提到: 】
: 这不就是自己实现一个用户空间的 TCP/IP 协议栈么?去读 TCP/IP 的 RFC,然后用 raw socket 把协议栈写出来就是你想要的东西
谢谢大家的回复,现在有一点头绪,类unix系统下的libpcap是数据抓包的函数,Linux中的dump就是基于libpcap写的,windows的wincap也是类似的,go语言中基于libpcap有Google的GoPacket可以实现抓包、注入、分析功能。我研究了一段时间tcpdump,现在准备学习GoPacket,希望可以帮到之后有相同问题的同学。