自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(542)
  • 收藏
  • 关注

原创 openppp2 控制台回显窗口输出内容详解

大致为:ppp+tcp、ppp+ws、ppp+wss 等。我们这边绝大多数情况下,通常只会在LINUX下面使用客户端模式,并启用混杂模式,配置SNAT软路由转发,Windows 平台发行版本其实很少在用。本文介绍 openppp2 的控制窗口回显内容,以LINUX平台为例子,其它平台大同小异,区别只是多了一些额外的输出选项内容,本文会在下面补充。区别根客户端模式的控制台回显内容差距不大,只是额外会显示当前启用了那些服务的信息,且包包含配置的公共IP地址、接口IP地址等。

2024-06-21 13:32:03 293

原创 openppp2 命令行接口详解

-no-lsp 禁止指定程序加载,LSP/NSP网络分层驱动。--system-network-reset 重置系统网络设置,等效:netsh winsock reset。--block-quic 是否允许阻止:IETF/QUIC HTTP/3流量,根据实际需要评估,通常建议阻止。例子:--pull-iplist myip.txt/JP。

2024-06-21 12:59:46 619

原创 中国大陆IP段(含港澳)【2024-06-21】APNIC lasted 2024-06-21

1.0.1.0/241.0.2.0/231.0.8.0/211.1.0.0/241.1.2.0/231.1.4.0/221.1.8.0/241.1.9.0/241.2.0.0/231.2.2.0/241.2.4.0/241.2.5.0/241.2.6.0/231.2.8.0/241.2.9.0/241.3.0.0/161.4.1.0/241.4.2.0/23。

2024-06-21 11:50:35 174

原创 C/C++ 提取DNS请求/响应数据包之中的 Quesion 内容

它主要是提取DNS数据包之中查询问题的信息,如:问题类型、问题类别、问题内容(域/IP),我们如果想要对于某个DNS数据包需要进行遥测的时,或者进行NS缓存生命周期管理,那么就需要类似这样的函数实现了。

2024-06-20 01:12:29 181

原创 Linux/Windows/MacOS X 上面 C/C++ 程序添加路由表

关于 Windows 平台下面 C/C++ 通过WINAPI操作路由的实现,可以参考开源项目 openppp2 的实现。Windows 平台可以参考本人的这篇文章的实现,利用 Windows 路由WINAPI接口来实现。关于 Linux 平台下面 C/C++ 通过LIBC API操作系统路由的实现,可以参考下述的实现;三个平台通用的实现,可以参考 openvpn 的开源代码实现。

2024-06-20 01:06:51 271

原创 LINUX 内核网络参数配置选项调优设置(宽频大流吞吐)。

【代码】LINUX 内核网络参数配置选项调优设置(宽频大流吞吐)。

2024-06-19 17:18:11 149

原创 关于网络控制协议之中的慢启动。

慢启动存在一个致命的缺点是,当双方RTT过大时,启速是很慢的,因为慢启动需要往返RTT确认来逐步的提高窗口的大小,但这个时间,或许会过于漫长,而定向提前计算出来的窗口大小却不会存在这样的困扰,启速就非常接近最大链路宽频利用率了。发送端跟接收端只是形式上的区别,如果接收端收到发送端的PUSH/ACK,处理了背负段数据的入队,并且覆盖了发送窗口的大小,不可以忽略传递过来的WND的大小,否则会引发网络拥塞的问题。1、在TCP协议中,慢启动增加的窗口退让为次方运算,每次退让一个2的次幂,即 >> 1。

2024-06-11 12:48:35 333

原创 UCP实验性质的拥塞控制协议实现(存档)。

大体实现,缺省模拟双向各丢10%的情况,即折合在20%网络丢包率下工作。等等,感兴趣的童鞋,可以自行研究,这是个网络流控控制协议。4、SWS糊涂窗口综合征处理。10、指数平均加权退让。6、SACK选择确认。

2024-05-19 16:33:06 274

原创 VC++ 各种未处理异常的处理,并输出DUMP崩溃转储调试文件

信号处理器、STL标准库异常处理、STL未处理器异常处理、SEH结构化未处理异常处理、C++ 未定义虚函数异常处理、C/C++ 内存分配异常处理等。

2024-05-11 13:08:36 169

原创 中国大陆IP段(含港澳)【2024-05-10】APNIC lasted 2024-05-10

1.0.1.0/241.0.2.0/231.0.8.0/211.1.0.0/241.1.2.0/231.1.4.0/221.1.8.0/241.1.9.0/241.2.0.0/231.2.2.0/241.2.4.0/241.2.5.0/241.2.6.0/231.2.8.0/241.2.9.0/241.3.0.0/161.4.1.0/241.4.2.0/23。

2024-05-10 13:41:08 391

原创 C++ 模板字典操作工具类

用来操作,map、unordered_map、hash_map 等字典类型集合,用这个单纯是为了代码阅读起来更好一点。

2024-05-10 13:37:22 171

原创 C++ NetworkToHostOrder、HostToNetworkOrder 模板函数

其作用类型:ntohl、htonl、ntohs、htons 函数的作用,因为要考虑兼容 int128、int64 等数据类型。IPV6 肯定是 int128 了,使用这两个函数可以帮助人们计算IPV6的地址范围等。

2024-05-10 13:32:48 222

原创 boost 1.76 版本及以下兼容实现:hash<boost::asio::ip::address_v4>、hash<boost::asio::ip::address_v6>、hash<boost:

为了保证 boost 库版本的代码兼容性,这是为了在多个平台上面跨平台编译的兼容性,所以我们通常需要去兼容打上这些补丁。

2024-05-10 13:30:39 196

原创 常见公共DNS服务器IP地址

【代码】常见公共DNS服务器IP地址。

2024-05-10 13:26:58 103

原创 C/C++ StringToAddress(字符串转 boost::asio::ip::address)

为什么不推荐 boost::asio::ip::address::from_string、boost::asio::ip::address::make_string 函数来把字符串转换为 ip 地址呢?这是因为有平台、编译器兼容性,在 android 平台上面,使用这两个函数会导致崩溃问题,在一些 clang 编译器上面也会导致崩溃问题。所以人们必须实现这两个函数。

2024-05-10 13:24:09 297

原创 C/C++ 协同程式切换潜在存在的一些致命性风险问题

A协同程序内部发起一个异步操作,并且 yield 让出CPU,但传入回调函数到异步操作内,异步操作失败,直接丢弃异步操作的上下文,而不驱动异步回调函数的调用,导致协同程序根本无法 resume,有非常多煞笔、智障、且偷懒,不是个人的东西,就很喜欢这么整,这种人是需要深恶痛绝的,即便是异步编程这样的下三滥行为都是不被允许的,试问:谁家会这么教育人这么干?这样的多核并行驱动架构,可以显著的提高整个应用系统的吞吐能力,至于多线程带来的复杂性,这并不可怕,合适的架构并不会导致这些致命性问题的产生。

2024-05-10 13:01:59 1443

原创 VC++ PDH/性能计数器

PID=0,缺省为当前进程,但最好是获取当前进程ID传递进去,当然也可以选择其它进程的ID。

2024-05-10 12:20:54 129

原创 VC++ VARINAT(可变量类型)操作

提供可变数组封装、可变类型数值/字符串获取等。

2024-05-10 12:11:39 177

原创 VC++ DCOM BSTR字符串转 std::string 标准库字符串

BSTR 字符串转 std::string 字符串。std::string 字符串转 BSTR字符串。

2024-05-10 12:06:53 106

原创 VC++ 获取指定进程ID(PID)的父进程ID

通过查询进程的 PBI信息(进程基础信息)来获取该进程的父进程ID。PEB(进程环境信息)

2024-05-10 12:02:50 118

原创 VC++ FindAllFilesWithNoRecursive 函数(查找目录下的全部文件,但不要递归步入到子目录)

【代码】VC++ FindAllFilesWithNoRecursive 函数(查找目录下的全部文件,但不要递归步入到子目录)

2024-05-10 11:58:14 67

原创 VC++ SYSTEMTIME、FILETIME、ULONGLONG 类型相互转换

【代码】VC++ SYSTEMTIME、FILETIME、ULONGLONG 类型相互转换。

2024-05-10 11:56:37 123

原创 C++ 利用标准库多字节转宽字节字符

std::wstring_convert 模板来实现,它可能导致程序崩溃的风险,如果字符集不是 utf8、或 unicode 字符时。在 C/C++ 之中,通常建议使用:mbstowcs (C语言函数库)来实现多字节字符转宽字节字符,这是因为如果使用。举个例子:一些特殊的中文字符,可能没法编译为 unicode 字符,那么就会导致发生异常,而且必须是 utf8 编码。可通过:setlocale 设置地区函数影响。

2024-05-10 11:53:31 386

原创 VC++ 不适用 atlconv.h(ATL字符集转换)实现 A2W、W2A、_UnicodeToUtf8、_Utf8ToUnicode 函数

CP_ACP 为缺省当前系统所在的语言字符集的宏(可在系统地区/语言之中修改)操作系统内部通常只带对应地区/语言的字符集,其它地区/语言字符集需要安装的。932(为鬼子日文 shift_jis)936(为简体中文GBK字符集)详情:可以自行查阅代码页号。949(为阿西八韩文)950(为繁体中文)

2024-05-10 11:42:07 201

原创 C/C++ IPV6服务器socket绑定在::,接受ipv4链接(双栈)

5、使用 struct sockaddr_in6 结构接受套接字,而不是用缺省使用 “sockaddr”,否则 10014(WSAEFAULT)错误,并导致套接字句柄泄漏。1、 创建IPV6套接字。3、禁用仅限 IPV6。2、打开套接字可重用。

2024-05-08 10:48:04 400

原创 Microsoft Edge 浏览器始终会显示光标问题

这是因为打开了 Edge 的插入光标浏览功能,打开 Edge 浏览器,按下F7,可以启用或关闭该功能,关闭该功能后,就不会出现烦人的插入光标闪烁问题。

2024-05-06 18:55:00 295

原创 Linux mount 挂载出现疑难问题;mount can‘t find in /etc/fstab

命令全盘搜索一下,该文件是否被移动到其它目录里面去了,如果确认不是自己移动的,就把找到的 fstab 文件复制一份到 /etc/fstab 里面去,否则就 ln -s 建立软链接到 /etc/fstab。如果是文件你就删除它,并且在重建为目录类型,如果这样都无法解决,那么说明问题需要更进一步尝试分析处理。在尝试看看,如果还是不能解决,那么就要比这个步骤在深入一步进行处理,这就是个小问题来着,不用过于惊慌。检查 /etc/fstab 文件是否存在,如果不存在就需要用。保存文件并且退出,并且执行命令;

2024-05-02 13:33:21 2112 1

原创 LINUX TCP/IP内核参数调优(适用于拉大流场景,但延迟、抖动会增大)

【代码】LINUX TCP/IP内核参数调优(适用于拉大流场景,但延迟、抖动会增大)

2024-05-02 12:13:11 429

原创 ubuntu 卸载docker

3、若你之前通过脚本安装了 Docker,那么还需要删除 Docker 的启动脚本。4、移除所有与docker相关的依赖包。2、删除所有相关的配置文件和数据目录。6、清除 iptables 规则。

2024-05-02 11:34:24 658 2

原创 C99 linkedlist 容器实现

【代码】C99 linkedlist 容器实现。

2024-04-27 19:38:57 451

原创 中国大陆IP段(含港澳)【2024-04-25】APNIC lasted 2024-04-25

1.0.1.0/241.0.2.0/231.0.8.0/211.1.0.0/241.1.2.0/231.1.4.0/221.1.8.0/241.1.9.0/241.2.0.0/231.2.2.0/241.2.4.0/241.2.5.0/241.2.6.0/231.2.8.0/241.2.9.0/241.3.0.0/161.4.1.0/241.4.2.0/23。

2024-04-25 23:11:47 398

原创 闲聊:最近想要做一个用在网络游戏领域的网络控制协议小玩具,大体聊聊构思的想法

但,我们通常预期目标都是为了减少网络抖动、只要产生丢包,那么网络抖动就会非常严重,而且在现代网络之中,因为路由跃点之间的不同,客户端到服务器之间的网络路由是随时波动的,即便路由没有变动,也会因为路由本身的QOS管理策略,导致帧的先后顺序发生改变(即乱序问题)产生抖动问题,因为若客户端需要排序,那么在收到来自未来帧时,是先缓存在接收方队列之中,等待确认帧(包)的到达,在这个空窗期就会产生抖动问题。我在上篇文中没有着重的探讨这个问题,而是说推迟确认(延迟1毫秒)都是为了解决,类似如这个SWS糊涂窗口问题。

2024-04-24 12:07:45 636

原创 如何正确设计 TCP/IP 流式应用层网络协议

在我多年打黑工的职业生涯之中,除了在盛大游戏出身的半个老师(做游戏服务器的)曾今深入的教过我,关于正确的 TCP/IP 流式应用层网络协议的设计理念,前往其它公司打黑工、包括一些的开源项目,见识到的 TCP/IP 应用层网络协议设计似乎都有一些潜在问题。正确的 TCP/IP 协议读入是片段读入的,而不是直接读入一个完整帧头,这是不正确的,因为你并不知道这个帧是否为伪造的,如果你完整读入,那么在这个帧头没有完整被读取完毕之前,程序都将处于 pending 状态,而持有的资源也没有办法得到释放。

2024-04-20 13:29:19 1020 1

原创 Windows 平台上面管理服务器程式的高级 QoS 策略

在 Windows 平台,自进入 Windows Vista / Windows 2008 Server 开始就不允许用户通过,标准SOCKET API 接口来设置链路 QOS 策略了,但 Vista/7/2008/8 好歹对系统注册表解禁重启,还能用,但是 Windows 2012 RC2、Windows 8.1(build 9200)开始根本就不行,只能通过 QoS2 接口调用来设置。9、策略命随便写,DSCP值(0~63)写 26 就可以(它就是:FLASH 报文优先级)4、点击基于策略的 QoS。

2024-04-19 13:53:13 493 1

原创 C/C++ 性能非常高效的伪随机数算法实现

【代码】C/C++ 性能非常高效的伪随机数算法实现。

2024-04-18 16:08:28 130

原创 如何合理利用多个中国大陆小带宽服务器?

我们要做的轻量的控制算法,即:只需要保证帧的序及帧缓存积压的问题,就可以,另外我推荐用TCP/IP作为下一层,因为KCP这些协议不适合传输大包,它们是为了小包及时性设计的,所以可以容忍20~30%的带宽损失。但积压大量的帧缓存,可能会产生很高的网络延迟,这是控制协议的弊端,但是你还真的自己好好做下控制协议,若你不在自己这层控制,让UDP/IP的应用去自己去处理这些问题,它们的传输效率就会非常慢的。带宽退让是滑块窗口与重传这部分关联的算法,目的是为了平衡链路拥塞层度,这些可以用成熟现成的控制算法来实现它们。

2024-04-18 12:47:24 624

原创 Linux 软路由命令行配置(参考)

允许任何地址到任何地址的确认包和关联包通过。# 默认丢弃转发,所有内网流量不能访问外网卡。# 开放某个ip的转发,允许上网。# 仅允许访问223.5.5.5。# SNAT 源地址转换。# 仅允许访问80端口。

2024-04-13 14:24:16 327

原创 Linux 上面模拟网络丢包率(命令)

1、模拟20%入站丢包率。1、模拟30%入站丢包率。3、模拟20%出站丢包率。4、模拟30%出站丢包率。

2024-04-13 13:21:14 349

原创 openppp2 组网(虚拟子网)

但是它可以更快,在网络延迟很大的情况下,亦可获得非常不错的效果,类似它们在40 PING延迟下,想要吞吐三百兆都是很困难的,但40 PING延迟上,openppp2 是仍旧是可以网络千兆上行吞吐的。openppp2 可被应用于网络游戏加速,人们在技术这块足够的情况下,可自行搭建配置并剔除 “网易UU”、“迅游”、“奇游”、“雷电” 这些网络游戏加速器的使用。2、在运行 openppp2 客户适配器命令行上,打开 --tun-vnet=yes 子网选项(CLI接口)在查阅本文之前,务必:查阅以下关联文章。

2024-04-12 11:10:35 1041

原创 openppp2 开源项目编译方法

重新 cmake 一下,在 make 就可以编译 io_uring 版本了,但需要注意一点,在 Ubuntu 18.04 LTS 上面需要修改内核版本定义的宏,以支持 io_uring 版本程式的编译,否则无法编译,这个在上面给出的参考文献之中已经明确提到了。准备就绪之后,修改 openppp2 的 CMakeFiles.txt 文件,但需要注意:liburing 库必须安装到操作系统,或者你可以自行编辑 liburing 库在 openppp2 CMakeFiles.txt 配置之中的依赖设置。

2024-04-12 10:11:02 809

serverspeeder2 锐速(TCP/IP单边加速)

支持:“Windows XP/2003” 操作系统平台(含:32/64位程序)

2022-09-20

serverspeeder 锐速

serverspeeder 锐速, 一:支持 “Windows Server 2016/2012/2008” x86_64 服务器平台。 二:支持 “Windows Desktop 7/8” x86_64 桌面平台

2022-09-20

sscli20.zip

Microsoft .NET Framework 2.0 FCL/BCL/RUNTIME,.NET虚拟机实现源代码!

2022-09-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除