- 博客(7)
- 收藏
- 关注
原创 用户态协议栈设计实现
创建一个ustack目录及ustack.c文件写入main()函数,复制Makefile文件到ustack目录下编译。make出现问题执行下面两行。
2024-12-11 02:02:40
539
原创 DPDK安装设置
支持多队列网卡(eth0)和用作ssh的网卡(eth1)不能都是桥接模式,否则请求eth0对应IP时,触发的是eth1的中断。warning报错ifconfig eth0 down 重新输入49。49:输入对应eth0 pci地址0000:03:00.0。添加多个配置器 相对增加到对应处理器数量 比如四个。5.ifconfig -a查看网卡 一般都未启动。找对对应网卡修改e1000为vmxnet3。桥接网卡用eth0用作多队列网卡。nat网卡eth1用作ssh连接。2.关闭虚拟机打开对应vmx文件。
2024-12-07 21:26:58
717
原创 协程调度器实现与性能测试
hook自定义dlsym创建一个read write代替系统库函数recv send ,调用poll函数判断是否可读 可读调用read 不可读将fd加到epoll继续监视是否就绪 执行swapcontext切换回mian_ctx 其他协程准备就绪再切换到对应ctx。epoll判断io是否就绪 就绪切换回ctx。io操作准备就绪 则恢复resume。io操作没用就绪 则切换yeild。
2024-12-02 23:52:02
222
原创 协程设计原理与汇编实现
异步:发送请求后可先执行其他任务 有结果后再通知继续执行、异步不利于代码理解 协程就是为了同步编程,异步性能。同步:发送请求必须等待结果到达才能继续执行。异步和同步的执行流程 通过增加线程池。同步与异步是两者之间的关系。
2024-11-28 20:56:20
229
原创 UDP的可靠传输协议QUIC
发送端发送了1.2.3.4.5几个包,收到远端的ACK:1.3.4.5 当收到ACK3时,KCP知道2被跳过一次,收到ACK4时,知道2被跳过了2次,此时可以认为2号丢失,不用等超时,直接重传2号,大大改善了丢包时的传输速度。ARQ模型响应有两种,UNA(此编号前所有包已收到,如TCP)和ACK(该编号包已收到),光用UNA将导致全部重传,光用ACK则丢失成本太高,以往协议都是二选一,二KCP协议中,除去单独的ACK包外,所有包都是UNA信息。KCP的ACK是否延迟发送可以调节。
2024-11-27 02:15:19
1112
原创 Posix API 与网络协议栈
POSIX API是一个IEEE标准系列,定义了操作系统应该为应用程序提供的接口。POSIX API是一组遵循POSIX标准的应用程序接口(API),它们使得应用程序能够在不同的UNIX和类UNIX操作系统上运行,而不需要修改。这些API定义了操作系统服务和系统调用,包括文件操作、进程控制、信号处理、终端控制等。
2024-11-22 18:37:42
861
原创 网络IO与IO多路复用 select/poll/epoll
不管任何语言 底层实现都是socketLinux命令:ifconfig可查看网络接口netstat -anop | grep 2000 (查看端口2000,22ssh,mysql3306)使用netassist连接端口2000结论:1.端口被绑定后,不能再次被绑定2.执行listen 可以在netstat查看io状态3.进入listen可以被连接 并且产生新的连接状态4.io与tcp连接。
2024-11-19 22:30:12
1002
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅