![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络
文章平均质量分 86
xuejianxinokok
这个作者很懒,什么都没留下…
展开
-
在 Rust 中实现 TCP : 4. 完成握手
继续看on_packet方法,我们进入了 TCP 三次握手的关键时刻。发送 SYN-ACK 后,服务器在等待客户端的 ACK 时使用此方法。如果收到 确认信息 连接会从状态推进到状态,完成握手并正式打开通信通道。on_packet方法完成了完成三次握手的繁重工作,它检查来自客户端的 ACK 响应。如果正确接收到 ACK,该方法会将连接状态更改为,表示 TCP 连接已建立 并且可以开始数据传输。在接着实现之前,增加一个“write”方法,在on_accept和on_packet中使用。此方法 将。原创 2024-03-06 10:26:20 · 1172 阅读 · 1 评论 -
在 Rust 中实现 TCP : 3. TCP连接四元组
到目前为止,已经确保接收到正确的 IPv4 数据包,并且已经实现了一种机制,将传入数据包与其各自的状态相关联,并由唯一的连接四元组作为键。从最初的握手到数据传输和最终的断开,连接的状态都会被仔细跟踪,以保证可靠和有序的数据交换。脚本来启动程序,该脚本将构建并执行二进制文件并为其提供必要的提升网络访问权限,接下来,将使用 Netcat 尝试与应用程序建立 TCP 连接,最后为了可视化,将使用 tshark 通过运行 tshark -I tun0 来监视和捕获 tun0 接口上的数据包。这是我们下一个目标。原创 2024-03-05 11:48:16 · 1117 阅读 · 0 评论 -
在 Rust 中实现 TCP : 2.解析原始字节
前 2 个字节是 flags ,可以提供有关收到的数据包的更多信息,例如,内核设置的“TUN_PKT_STRIP”,用于向用户空间程序发出信号,表明数据包因缓冲区太小而被截断。现在已经解析了内核在以太网帧前添加的前 4 个字节,剩下的就是 TCP 数据,需要解析它。为了理解 proto 字段的含义,可以查看这张将 ether 类型 映射 到协议的表,可以查到我们解析的 proto 字段的值对应于互联网协议版本 6 (IPv6)。方法读取数据包的前 2 个字节,并获取人类可读的flags 值。原创 2024-03-04 11:39:28 · 1035 阅读 · 0 评论 -
在 Rust 中实现 TCP : 1. 联通内核与用户空间的桥梁
构建自己的 TCP栈是一项极具挑战的任务。通常,当**用户空间**应用程序需要互联网连接时,它们会调用操作系统内核提供的高级 API。这些 API 帮助应用程序 连接网络创建、发送和接收数据,从而消除了直接处理原始数据包的复杂性。这是开发标准应用程序的绝佳选择。原创 2024-03-01 15:48:58 · 1216 阅读 · 0 评论 -
用信鸽解释HTTPS
密码学可能是一门很难理解的学科。它充满了数学证明。但是,除非您实际上正在开发密码系统,否则大部分的复杂性对于理解高层次上发生的事情都是不必要的。如果您打开这篇文章希望创建下一个 HTTPS 协议,很抱歉,鸽子是不够的。否则,冲泡咖啡并欣赏这篇文章。原创 2023-03-03 09:25:46 · 329 阅读 · 0 评论 -
windows 下编译 nginx-quic
编译过程,需要在 mingw64.exe 命令行中编译,不能直接在 msys2.exe 中执行。下载 https://github.com/openssl/openssl#download。下载 https://sourceforge.net/projects/pcre/导航到 msys2 安装目录 D:\soft\msys2\home\xueji。安装完成后执行以下命令更新包 在msys2 控制台中执行。下载 http://www.zlib.net/在这个控制台执行gcc。原创 2022-10-27 11:50:25 · 1759 阅读 · 0 评论 -
一些可以参考的文档集合8
记录自己平常看到的比较好的文章原创 2022-08-24 09:08:03 · 599 阅读 · 0 评论 -
一些可以参考的文档集合6
一些可以参考的文档集合6原创 2022-06-29 08:49:59 · 1379 阅读 · 0 评论 -
docker 入门
docker 入门一 .实验环境配置1. 配置网络共享外网(如果虚拟机中不能 ping 通 baidu 先取消共享,然后重新设置共享)配置host-only网卡ip (如果虚拟机中不能 ping 通 baidu 请重新设置此步骤)确认配置是否正确2. 从debian0复制虚拟机 注意修改以下配置3. 修改ip#编辑配置文件vi /etc/network/interfaces内容如下auto enp0s3iface enp0s3 inet..原创 2022-05-05 16:00:42 · 3211 阅读 · 0 评论 -
一些可以参考的文档集合4
20220419Redis是怎样通讯的?_redis_ooooooh灰灰_InfoQ写作平台模型Redis 协议模型就是简单的请求-响应模型,和平常的 Http 协议有点类似。客户端发送 Redis 命令,然后服务端处理命令并返回结果给客户端。Redis 官方说这可能是最简单的网络协议模型了https://xie.infoq.cn/article/0496d06df156ad6a9ff365d08MySQL 是怎样通讯的?_Go_ooooooh灰灰_InfoQ写作平台前言我们平常使用数据库的场景一般是程原创 2022-04-19 13:58:38 · 976 阅读 · 0 评论 -
一些可以参考的文档集合3
20211021一篇带你用 VuePress + Github Pages 搭建博客前言最近完成了 TypeScript 最新官方文档 Hanbook 的翻译,一共十四篇,堪称国内的最好 TypeScript4 入门教程之一。为了方便大家阅读,我用 VuePress + Github Pages 搭建了博客,博客效果如下:博客地址如下:Githubhttps://mqyqingfeng.github.io/learn-typescript/Giteehttp://mqyqingfhtt...原创 2021-12-21 09:11:20 · 598 阅读 · 1 评论 -
github加速
GitHub(国内)加速 - Jay's - 博客园https://www.cnblogs.com/faqbug/p/13387493.html?ivk_sa=1024320u我的本地配置添加到C:\Windows\System32\drivers\etc\hosts 文件140.82.113.4 github.com185.199.108.153 assets-cdn.github.com185.199.109.153 assets-cdn.github.com.原创 2021-11-24 10:22:44 · 395 阅读 · 0 评论 -
windows10 配置NFS在debian 访问
1. 安装服务器 haneWIN 服务器,安装完成后最好重启电脑,以管理员权限打开软件, 否则有些功能不可操作2. 设置共享文件: 输出->编辑输出文件 ,点击重启服务器D:\vmware -name:soft3.设置防火墙,如果不设置的话可以直接关闭防火漆选择本地端口输入 ...原创 2021-11-11 15:06:17 · 1070 阅读 · 0 评论 -
iptables 命令
列出所有规则iptables -L -n --line-numbers参考文档https://www.jianshu.com/p/ee4ee15d3658ptables详解及一些常用规则原创 2021-08-18 14:34:06 · 530 阅读 · 0 评论 -
linux Tun/Tap 原理
tun0是一个Tun/Tap虚拟设备,从上图中可以看出它和物理设备eth0的差别,它们的一端虽然都连着协议栈,但另一端不一样,eth0的另一端是物理网络,这个物理网络可能就是一个交换机,而tun0的另一端是一个用户层的程序,协议栈发给tun0的数据包能被这个应用程序读取到,并且应用程序能直接向tun0写数据。这里假设eth0配置的IP是10.32.0.11 (外网地址),而tun0配置的IP是192.168.3.11 (内网地址).这里列举的是一个典型的tun/tap设备的应用场景,发到192..原创 2021-08-10 16:27:40 · 1544 阅读 · 0 评论