impact-eintr
|
94e12c1f21
|
RTT 还是没整明白
|
2022-12-21 17:46:16 +08:00 |
|
impact-eintr
|
1e7321ec92
|
抄了一遍reno算法 慢启动还是没找到在哪里实现了成倍增长
|
2022-12-20 16:34:24 +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
|
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
|
56a6639730
|
可视化发送端滑动窗口
|
2022-12-15 19:49:54 +08:00 |
|
impact-eintr
|
971eaa8e6d
|
加下来看滑动窗口的流程
|
2022-12-14 23:24:26 +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
|
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
|
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
|
de9a9295b5
|
issues1
|
2022-12-07 19:43:27 +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 |
|