impact-eintr
|
94e12c1f21
|
RTT 还是没整明白
|
2022-12-21 17:46:16 +08:00 |
|
impact-eintr
|
1c3355b9fc
|
明天找一下什么时候算一个RTT 然后倍增Cwnd
|
2022-12-20 18:59:06 +08:00 |
|
impact-eintr
|
1e7321ec92
|
抄了一遍reno算法 慢启动还是没找到在哪里实现了成倍增长
|
2022-12-20 16:34:24 +08:00 |
|
impact-eintr
|
c2dccc5c49
|
慢启动 倍速增长在哪里实现的?
|
2022-12-19 18:40:12 +08:00 |
|
impact-eintr
|
7c7b745482
|
reno算法 快速重传
|
2022-12-19 16:50:48 +08:00 |
|
impact-eintr
|
9fa4a0b87f
|
开始研究拥塞算法
|
2022-12-19 12:39:28 +08:00 |
|
impact-eintr
|
07e2e09adb
|
一个简单的注册式netstack
|
2022-12-18 18:52:33 +08:00 |
|
impact-eintr
|
5b66b2f42d
|
emmm 注册式网络栈不太好写
|
2022-12-18 11:17:06 +08:00 |
|
impact-eintr
|
682299e895
|
keepalive 成功解决 ZWP 问题 当接收端不理发送端的时候 每 idleTime 就会重发一个询问报文
|
2022-12-17 19:02:24 +08:00 |
|
impact-eintr
|
cca8ccd914
|
明天实现 keepalive 来解决发送端的 零窗口问题
|
2022-12-16 20:11:06 +08:00 |
|
impact-eintr
|
1c11c2ed4c
|
是时候该了解什么是keepalive了
|
2022-12-16 19:49:07 +08:00 |
|
impact-eintr
|
81839177f6
|
Sleep Waker 这两个库写得好啊 通过注册事件 让事件发生与事件处理变成异步过程
|
2022-12-16 18:38:05 +08:00 |
|
impact-eintr
|
479afd0737
|
终于知道怎么调试了 显示发送端的snd 和 接收端的 rcv即可 同时让应用层延迟读或者不读 就可以看到非常明显的窗口滑动
|
2022-12-16 15:55:25 +08:00 |
|
impact-eintr
|
407f4c0b42
|
发送接收窗可视化Debug
|
2022-12-16 12:23:30 +08:00 |
|
impact-eintr
|
c16d437fb8
|
添加对接收窗口的可视化注释
|
2022-12-15 20:03:36 +08:00 |
|
impact-eintr
|
56a6639730
|
可视化发送端滑动窗口
|
2022-12-15 19:49:54 +08:00 |
|
impact-eintr
|
f1d0311303
|
拆分测试主函数
|
2022-12-15 18:22:05 +08:00 |
|
impact-eintr
|
eb69911120
|
亿脸懵逼
|
2022-12-15 17:55:09 +08:00 |
|
impact-eintr
|
971eaa8e6d
|
加下来看滑动窗口的流程
|
2022-12-14 23:24:26 +08:00 |
|
impact-eintr
|
7f3002f5bc
|
数据没有截取已消费头部 导致了bug 已经修复
|
2022-12-14 22:22:48 +08:00 |
|
impact-eintr
|
57fcf28f83
|
好难好难好难 窗口控制失效 主要表现为 segment.data.Size() 在 cap操作后进入下个循环时恢复初始值 截取失败
|
2022-12-14 21:45:51 +08:00 |
|
impact-eintr
|
0b6ffaa995
|
数据发了65536 但是其他数据怎么办 还有对端怎么收到了却不打印?
|
2022-12-13 18:53:48 +08:00 |
|
impact-eintr
|
5a9042d890
|
tcp可靠性实现 抄了一堆东西 信息量太大了 看不过来
|
2022-12-13 16:17:57 +08:00 |
|
impact-eintr
|
fb578a6f9e
|
FIXBUG 没有清理sender.writeNext 导致客户端又发送了一次 ack|fin
|
2022-12-13 10:26:14 +08:00 |
|
impact-eintr
|
07fb40bb6a
|
FIXME!!! 为什么客户端会重复发送 fin|ack
|
2022-12-12 20:33:50 +08:00 |
|
impact-eintr
|
0eff0e912f
|
增加本地环回网卡设备实现
|
2022-12-12 15:46:00 +08:00 |
|
impact-eintr
|
5324cb00cd
|
tcp太痛苦了 功能好多流程还都杂糅在一起
|
2022-12-09 18:57:51 +08:00 |
|
impact-eintr
|
e287d86855
|
先写四次挥手 我已经预感到前面是什么修罗场了。。。
|
2022-12-09 12:00:42 +08:00 |
|
impact-eintr
|
be9e2e53e4
|
使用logger尝试控制日志输出级别
|
2022-12-09 09:29:44 +08:00 |
|
impact-eintr
|
478d7cbc71
|
尝试写一个日志管理 以协议为控制粒度
|
2022-12-08 19:33:21 +08:00 |
|
impact-eintr
|
9a46ec9db5
|
可以把协议栈读到的数据发给用户层应用了! 下一步把用户层应用的数据写给客户端
|
2022-12-08 18:39:11 +08:00 |
|
impact-eintr
|
c025408041
|
年轻人的第一条tcp数据 xdm终于拿到客户端送过来的数据了 果然是之前挖的坑 接收窗口初始化了个0 还以为握手没成功在重试...
|
2022-12-08 12:38:46 +08:00 |
|
impact-eintr
|
7a7c5649a3
|
添加了对tcp新建连接的理解 ListenLoop只用于处理新连接
|
2022-12-08 10:29:16 +08:00 |
|
impact-eintr
|
bea1fd210b
|
好难 好难 好难 ListenLoop的Sleeper为什么没有被唤醒
|
2022-12-07 21:28:51 +08:00 |
|
impact-eintr
|
de9a9295b5
|
issues1
|
2022-12-07 19:43:27 +08:00 |
|
impact-eintr
|
d4d5c61a83
|
Hi 加个好友呀?❤
Fixes #1
|
2022-12-07 19:39:09 +08:00 |
|
impact-eintr
|
3617794e76
|
有bug tcp客户端在没有获取服务端回应的时候发送的报文在服务端接收后会引发goroutine阻塞
|
2022-12-07 09:54:15 +08:00 |
|
impact-eintr
|
5ca7a1858b
|
哇...tcp真的好复杂
目前网络层分发了数据包到tcp端,tcp的handlepacket把数据存到一个队列中并提醒事件驱动机制来取数据
取到数据后先进行一个解析 确认他是一个SYN包 然后解析SYN的相关选项
对于合法的数据包 开启一个goroutine去执行三次握手的第二步:返回确认包 TODO 返回确认包的实现
|
2022-12-06 18:02:18 +08:00 |
|
impact-eintr
|
5aa21b7820
|
解析tcp segment 报文与tcp配置
|
2022-12-05 19:34:33 +08:00 |
|
impact-eintr
|
c7fe592b0f
|
tcp报文头结构可视化解析;优化IP udp报文的可视化解析
|
2022-12-05 18:20:21 +08:00 |
|
impact-eintr
|
f3ceda183b
|
tcp基本框架
|
2022-12-05 11:28:59 +08:00 |
|
impact-eintr
|
b576c7e261
|
fix bugs:udp write之前需要检查其状态 prepareWrite()
|
2022-12-05 10:12:46 +08:00 |
|
impact-eintr
|
2d9434d260
|
fix bug: udp write 提供了对外封装的Write()
表现为一个阻塞操作,如果本地arp缓存失效,就会重新发起一次arp广播,更新目标ip地址的MAC 更新后将再次尝试写数据
|
2022-12-02 21:59:13 +08:00 |
|
impact-eintr
|
050d5fec97
|
udp基本写完了 关于socket的不少细节还没看 另外在网络栈静置一段时间后再次发起连接将无法找到路由
|
2022-12-02 21:11:41 +08:00 |
|
impact-eintr
|
ab3705960a
|
fix bug: 分片机制应该使用vv.ToViews()获取全部的数据而非First()的第一片区
|
2022-12-02 14:21:50 +08:00 |
|
impact-eintr
|
98bccec410
|
封装对udp链接的读操作 将其对外暴露为一个阻塞操作
|
2022-12-02 12:35:52 +08:00 |
|
impact-eintr
|
be40f904fc
|
udp通信的Connect 和 Read 结束 明天看Waiter 这相当于linux内核的事件驱动机制
当有某种事件就绪后通知waiter 监听着waiter的监听者就能通过waiter得知事件已经发生 从而不再阻塞
|
2022-12-01 22:36:40 +08:00 |
|
impact-eintr
|
3d8ca3c0c8
|
尝试整个网络代理 以netstack为代理服务器,想实现网络通信的server调用特殊的api代理,要如何避开内核网络栈呢?
|
2022-11-30 18:38:50 +08:00 |
|
impact-eintr
|
7b3086540d
|
wsl code edit
|
2022-11-30 11:31:44 +08:00 |
|
impact-eintr
|
8d8c8fca1d
|
开坑UDP
|
2022-11-29 20:20:34 +08:00 |
|