Posts

Showing posts from July, 2022

C语言简单实现一个 压力测试模拟程序

最近在做一个功能模块,目前功能上已经实现,但是性能暂时没有做过测试。 我的功能主要是接收 udp 消息,并将 udp 消息进行封装处理,发送到后端处理模块进行处理。 简单写一个小的 udp 客户端程序,去模拟压力测试。 # include <stdio.h> # include <stdlib.h> # include <unistd.h> # include <errno.h> # include <string.h> # include <arpa/inet.h> # include <sys/types.h> # include <sys/socket.h> int main ( int argc, char **argv) { if (argc != 3 ) { printf ( "Usage: %s $SUM $RATE\n" , argv[ 0 ]); exit ( 1 ); } struct sockaddr_in server_addr ; memset (&server_addr, 0 , sizeof (server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = inet_addr( "127.0.0.1" ); server_addr.sin_port = htons( 4020 ); int fd = socket(AF_INET, SOCK_DGRAM, 0 ); if (fd < 0 ) { printf ( "create socket failed: %s\n" , strerror(errno)); exit ( 2 ); } struct timeval start ; gettimeofday(&start, NULL

Kcptun 基于 KCP 协议的 UDP 隧道,是一个非常简单和快速的隧道,它可以将 TCP 流转换为 KCP+UDP 流,降低延时,增加吞吐量

Image
本博客曾经发布了通过 Finalspeed 加速 Shadowsocks 的教程,大家普遍反映能达到一个非常不错的速度。Finalspeed 虽好,就是内存占用稍高,不适合服务器内存本来就小的用户;而且现在 Finalspeed 停止维护,就需要寻找一个能替代 Finalspeed 的工具。 今天我就给大家介绍这么一个能替代 Finalspeed 的项目 — Kcptun。 Kcptun 介绍 Kcptun 是一个非常简单和快速的,基于 KCP 协议的 UDP 隧道,它可以将 TCP 流转换为 KCP+UDP 流。而 KCP 是一个快速可靠协议,能以比 TCP 浪费 10%-20% 的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。 Kcptun 是 KCP 协议的一个简单应用,可以用于任意 TCP 网络程序的传输承载,以提高网络流畅度,降低掉线情况。由于 Kcptun 使用 Go 语言编写,内存占用低(经测试,在 64M 内存服务器上稳定运行),而且适用于所有平台,甚至 Arm 平台。 Kcptun 工作示意图: KCP 协议: https://github.com/skywind3000/kcp Kcptun 项目地址: https://github.com/xtaci/kcptun 相关项目 以下为 Kcptun 的相关项目,如果有兴趣,可以了解一下。 1.Kcp-server: https://github.com/clangcn/kcp-server Kcp-server 是在 Kcptun 的基础上,添加了配置文件的支持,并简化了安装过程,一条命令即可配置完毕。 如果你是小白,而且看了后面的教程也看不懂的话,推荐直接使用 Kcp-server 吧,就是更新较原版略慢。 2.Shadowsocks-Plus: https://github.com/shadowsocks-plus/shadowsocks-plus 基于 Shadowsocks Go 版本,加入了以下特性: 启动后降低权限至 nobody , 增强安全性; 与 kcptun 集成,配合相应客户端可加速传输; 网页控制面板。 部署 Kcptun 2016.08.19 添加客户端可视化配置工具 Kcptun-GUI 2016.08.13 发布一键安装脚本  https