Commit Graph

29 Commits

Author SHA1 Message Date
impact-eintr
bda9357103 连接的建立 数据的收发 施工中。。。 2023-01-04 11:31:11 +08:00
impact-eintr
7526791053 笔记 echo server 2022-12-29 14:42:55 +08:00
impact-eintr
bf36d95d3a 正常结束 RST情况没有处理 2022-12-28 17:01:43 +08:00
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