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 |
|
impact-eintr
|
365aebc353
|
端口编码、测试结束
网络协议号:传输层协议号:端口 这就是一个端口 一个端口可以绑定多个网络层地址 ipv4-tcp-9999:{192.168.1.1, 172.176.10.1}
也可以绑定空值 表示 0.0.0.0:9999 本机的所有网卡的所有ip的9999端口都为 tcp/udp 所占用
所有目标端口是9999的数据都会流向这个绑定了9999端口的传输层实现
|
2022-11-29 20:05:29 +08:00 |
|
impact-eintr
|
8a047726ca
|
端口管理器 和 传输层 基础框架
|
2022-11-28 20:51:26 +08:00 |
|
impact-eintr
|
c7c7374bbd
|
分片机制的单元测试 手动创建了两个ip报文分片 IP层从链路层获取这两个报文的时候会把它们合并成一个ip报文 这里我们不会继续分发给传输层
而是直接写回 将这个完整的ip报文整个包装 虽然这样在fdbase测试会触发错误(超过了1518),但在channel中并没有这个限制 测试通过 成功合并
|
2022-11-28 15:56:21 +08:00 |
|
impact-eintr
|
cd0d9492a0
|
分片机制开始实现 大致是使用了一个map管理+小根堆自动排序实现的
|
2022-11-28 11:31:46 +08:00 |
|
impact-eintr
|
553a16f655
|
ip报文的分片机制 解析中 学得胃疼。。。
|
2022-11-27 22:44:41 +08:00 |
|
impact-eintr
|
5e317b273a
|
ICMP实现 ip数据报分片机制还未实现
|
2022-11-27 20:34:34 +08:00 |
|
impact-eintr
|
5947778dfa
|
网络层的一些头文件 除去ipv4相关的 都是一些我不准备看的代码 直接复制了
|
2022-11-27 17:24:14 +08:00 |
|
impact-eintr
|
386afff633
|
链路层实现 接下来实现网络层
|
2022-11-26 19:49:41 +08:00 |
|
impact-eintr
|
d9c0633bf5
|
arp基本实现 创建一个网卡对象并绑定到ip1 网卡收到一个arp报文 链路层分发给arp网络端实现 arp到本地缓存中查找 该网卡是否绑定过目标ip地址ip1 没有直接放弃 有就新建一个源与目标逆置并添加了该网卡MAC的arp报文 并包装给链路层
|
2022-11-26 18:52:11 +08:00 |
|
impact-eintr
|
20b5b3415a
|
arp报文定义与基本介绍
|
2022-11-26 11:38:03 +08:00 |
|
impact-eintr
|
331b8bd3dd
|
向网络层写入数据后 需要使用arp协议(网络层协议)来找到目标主机地址 下一步实现arp
|
2022-11-26 10:46:37 +08:00 |
|
impact-eintr
|
2312813aac
|
网卡对象 绑定IP地址 然后向网卡对象写入数据 数据中将包含dst和src
|
2022-11-25 19:25:54 +08:00 |
|
impact-eintr
|
4589d971fd
|
NIC 对象绑定IP还未实现完成 明天继续
|
2022-11-24 21:32:04 +08:00 |
|
impact-eintr
|
e51d8ea721
|
处理sleep的链接问题
|
2022-11-24 19:35:26 +08:00 |
|
impact-eintr
|
8f1e045cfc
|
fdbased test
|
2022-11-23 15:41:57 +08:00 |
|
impact-eintr
|
990a0c2901
|
fdbased endpoint
|
2022-11-23 11:31:21 +08:00 |
|
impact-eintr
|
6011e0f8f3
|
链路层io coding
|
2022-11-22 17:49:19 +08:00 |
|
impact-eintr
|
ff4cde9809
|
tuntap test
|
2022-11-22 15:04:29 +08:00 |
|
impact-eintr
|
03c0e5427f
|
这个仓库代码量太大了 以读为主 不写了
|
2021-10-15 19:17:11 +08:00 |
|
impact-eintr
|
14862c4bb0
|
合并文档
|
2021-10-15 19:06:20 +08:00 |
|
impact-eintr
|
628ab11d65
|
链路层
|
2021-09-20 18:43:27 +08:00 |
|
impact-eintr
|
91012e5685
|
google永远的神
|
2021-09-08 21:54:54 +08:00 |
|
impact-eintr
|
a5683465e8
|
侵入式双向链表
|
2021-09-07 21:52:00 +08:00 |
|
impact-eintr
|
e02fb492fd
|
google永远的神
|
2021-09-06 21:54:27 +08:00 |
|
impact-eintr
|
b851ceba7f
|
google永远的神
|
2021-09-05 21:53:52 +08:00 |
|
impact-eintr
|
0a08ba8692
|
google永远的神
|
2021-09-03 21:50:49 +08:00 |
|
impact-eintr
|
b208476302
|
tcp
|
2021-09-03 11:48:39 +08:00 |
|
impact-eintr
|
293b15a309
|
太难了
|
2021-09-02 21:48:59 +08:00 |
|
impact-eintr
|
347bc5217b
|
tcp
|
2021-09-02 11:47:37 +08:00 |
|
impact-eintr
|
12014e60e5
|
太难了
|
2021-09-02 08:52:27 +08:00 |
|
impact-eintr
|
b571ce5d2e
|
太难了
|
2021-09-02 08:51:51 +08:00 |
|
impact-eintr
|
96c0bfa867
|
README.md
|
2021-09-01 11:55:34 +08:00 |
|
impact-eintr
|
769040cb81
|
tcp 经典应用
|
2021-08-09 20:54:57 +08:00 |
|
impact-eintr
|
843f2fe80a
|
README.md
|
2021-08-06 11:51:05 +08:00 |
|
impact-eintr
|
337ac0dbe5
|
link
|
2021-07-26 21:58:11 +08:00 |
|
impact-eintr
|
5414cd9ce6
|
link'
|
2021-07-25 16:21:21 +08:00 |
|