network
文章平均质量分 62
HeathXian
嵌入式 分布式后端 网络安全 主机安全
展开
-
网络中地址端口连写方法
::1111 (错误写法,因为没有区分1111究竟是地址的一部分,还是表示端口)[::]:1111 (正确写法)原创 2022-08-13 07:38:41 · 377 阅读 · 0 评论 -
https客户端与服务端认证过程详解
Go和HTTPS四月 30, 2015 27 条评论近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行搭建ngrok服务,在那个过程中照猫画虎地为服务端生成了一些私钥和证书,虽然结果是好 的:ngrok服务成功搭建起来了,但对HTTPS、数字证书等的基本原理并未求甚解。于是想趁这次的机会,对HTTPS做一些深度挖掘。主要途 径:翻阅网上资料、书籍,并利用golang转载 2021-11-30 17:53:30 · 3321 阅读 · 0 评论 -
unix domain socket
man 7 unixunix domain socket 是一种用于本机进程间通信的socket用法#include <sys/socket.h>#include <sys/un.h>unix_socket = socket(AF_UNIX, type, 0);error = socketpair(AF_UNIX, type, 0, int *sv);描述 AF_UNIX 也被称为AF_LOCAL 套接字家族中被用来本机进程间高效通信,u...原创 2021-10-08 10:00:33 · 567 阅读 · 0 评论 -
出现大量close_wait
近日遇到一个线上服务 socket 资源被不断打满的情况。通过各种工具分析线上问题,定位到问题代码。这里对该问题发现、修复过程进行一下复盘总结。先看两张图。一张图是服务正常时监控到的 socket 状态,另一张当然就是异常啦!图一:正常时监控图二:异常时监控从图中的表现情况来看,就是从 04:00 开始,socket 资源不断上涨,每个谷底时重启后恢复到正常值,然后继续不断上涨不释放,而且每次达到峰值的间隔时间越来越短。重启后,排查了日志,没有看到 panic ,..转载 2021-08-09 11:58:14 · 2676 阅读 · 3 评论 -
DPDK and XDP and ebpf
另外除了以下文章还有个ebpfhttps://qiita.com/sg-matsumoto/items/8194320db32d4d8f7a16图片上传有问题,原文参考https://cloud.tencent.com/developer/article/1484793预备知识tcp/ipTCP/IP网络模型链路层:负责封装和解封装IP报文,发送和接受ARP/RARP报...转载 2020-05-04 18:00:23 · 3465 阅读 · 1 评论 -
tcpdump简介
简介:tcpdump全称:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。名称:tcpdump - dump traffic on a ...转载 2020-05-04 17:43:06 · 5875 阅读 · 0 评论 -
基于scapy的tcp reset阻断
项目地址https://github.com/jin-long/how-does-a-tcp-reset-attack-work参考readmeInstall dependencies:virtualenv venv && source venv/bin/activate && pip install -r requirements.txt Setu...原创 2020-05-04 17:27:26 · 1188 阅读 · 0 评论 -
模拟reset包阻断tcp
一 RST攻击: A和服务器B之间建立了TCP连接,此时C伪造了一个TCP包发给B,使B异常的断开了与A之间的TCP连接,就是RST攻击了。实际上从上面RST标志位的功能已经可以看出这种攻击如何达到效果了。 那么伪造什么样的TCP包可以达成目的呢?我们至顶向下的看。假定C伪装成A发过去的包,这个包如果是RST包的话,毫无疑问,B将会丢弃与A的缓冲区上所有数据,强制关掉...转载 2020-05-04 16:07:26 · 3528 阅读 · 3 评论 -
ubuntu安装ipset准确姿势
ipset package in Ubuntuipset: administration tool for kernel IP setsipset-dbgsym: debug symbols for ipsetlibipset-dev: development files for IP setslibipset13: library for IP setslibipset13-dbgs...原创 2020-01-15 10:08:05 · 3278 阅读 · 0 评论 -
可靠udp之kcp
原文可靠UDP,KCP协议快在哪?WeTest 导读云真机已经支持手机端的画面投影。云真机实时操作,对延迟的要求比远程视频对话的要求更高(100ms以内)。在无线网络下,如何更实时、更可靠的传输视频流就成了一个挑战。通过websocket、RTMP、UDP的比较,最后选择了可靠的UDP协议KCP来进行实时音视频的传输。1 简介KCP是一个快速可靠协议,能以比 TCP...转载 2019-05-13 18:01:16 · 897 阅读 · 2 评论 -
udp多路复用
一个 UDP 多路复用,被用来处理共享同一个 UDP 端口的多个并发的 UDT 连接。UDP 多路复用,根据包头的目标 Socket ID, 将接收到的不同的 UDT 包分发给相应的 UDT Socket。换言之,多个 UDT Socket 绑定到不同的 UDP 端口时,必然被各自的 UDP 多路复用分发处理。一个 UDP 多路复用维护两个队列:发送队列和接收队列。发送队列...原创 2019-05-15 17:41:38 · 4241 阅读 · 4 评论 -
拥塞控制-DAIMD
1.拥塞控制为了更有效率地利用网络带宽,通过限制拥塞扩散和持续时间来减轻拥塞的一组操作。拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象, 严重时甚至会导致网络通信业务陷入停顿即出现死锁现象。造成拥塞的原因:1)多条流入线路有分组到达,并需要同一输出线路。此时,如果路由器没有足够的内存来存放所有这些分...原创 2019-05-16 20:35:59 · 790 阅读 · 0 评论 -
nginx安装与配置
一、Nginx简介Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤二、Nginx安装1、下载Nginx及相关组件Linux系统是Centos 6.5 64位,我直接切换到root用户下安装进入用户目录下载程序下载相关组件[root@localhost src]#...转载 2019-05-22 15:07:55 · 182 阅读 · 0 评论 -
UDP包丢失处理
包丢失处理虽然大多数基于丢包的拥塞控制在工作,包丢失被认为是一个简单的拥塞指示,但是这些控制很少在真实的网络环境里对包丢失的模式做过研究。因为一个包丢失可能造成乘性地速率的降低,所以包丢失处理显得非常重要。有3类涉及到包丢失的特别情形,需要被解决:1.失去同步。2.非拥塞的包丢失。3.包的重新排序。失去同步是一个条件。当所有的并发流几乎在同一时间发生丢包时,即失去同步。非拥...原创 2019-05-17 21:25:28 · 2121 阅读 · 0 评论 -
udt常见问题
常见问题UDT是基于UDP的数据传输协议,主要目的是针对“TCP在高带宽长距离网络上的传输性能差”的问题,尽可能全面支持BDP网络上的海量数据传输。udt在低速网络下,传输延迟较大? 1.重协议本身来看,udt协议本身设计就是针对高速光纤传输用。 2.udt在低网速网络下,据说可以通过设置,参数设置UDT_SNDBUFF和UDT_RCVBUFF接近于TCP协议的这两个参数值...原创 2019-05-18 19:50:22 · 1383 阅读 · 0 评论 -
IO事件处理模型 reactor proactor
两种高效的事件处理模型:Reactor模式和Proactor模式 随着IO多路复用技术的出现,出现了很多事件处理模式。同步I/O模型通常由Reactor模式实现,而异步I/O模型则由Proactor模式实现。 Reactor模式: Reator类图如上所示,Reactor模式又叫反应器或反应堆,即实现注册描述符(Handle)及事件的处理器(EventHandl...转载 2019-05-31 10:37:21 · 313 阅读 · 0 评论 -
turnserver
turnserver版本列表http://turnserver.open-sys.org/downloads/先安装libeventhttp://libevent.org/查看之前是否安装过libevent#ls -alh /usr/lib64/ | grep libevnet#wget https://github.com/libevent/libevent/releas...原创 2019-07-15 16:24:10 · 402 阅读 · 0 评论 -
p2p 网络基础 网络高并发
➊本文是《P2P理论详解》系列文章中的第2篇,总目录如下:《P2P技术详解(一):NAT详解——详细原理、P2P简介》 《P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解》 《P2P技术详解(三):P2P技术之STUN、TURN、ICE详解》(本文)➋P2P相关的其它资源:...原创 2019-04-18 15:58:37 · 391 阅读 · 1 评论 -
支持百万并发链接基础
著名的C10K 问题提出的时候, 正是 2001 年, 到如今 12 年后的 2013 年, C10K 已经不是问题了, 任何一个普通的程序员, 都能利用手边的语言和库, 轻松地写出 C10K 的服务器. 这既得益于软件的进步, 也得益于硬件性能的提高.现在, 该是考虑C1000K, 也就是百万连接的问题的时候了. 像 Twitter, weibo, Facebook 这些网站, 它们的同...转载 2019-05-18 17:11:42 · 238 阅读 · 0 评论 -
recv函数返回值
recv函数返回值说明recv函数int recv( SOCKET s, char FAR *buf, int len, int flags);不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符; 第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据; 第三个参数指明buf的长度; 第四个参数一般置0。转载 2013-01-25 11:02:20 · 700 阅读 · 0 评论 -
2013-7-15 socket study_1
#define FD_ZERO(set) (((fd_set FAR *)(set))->fd_count=0)/* * The new type to be used in all * instances which refer to sockets. */typedef u_int SOCKET;/* * Select uses arrays o原创 2013-07-15 16:40:06 · 852 阅读 · 0 评论 -
setsockopt()设置套接字的选项
setsockopt()简述设置套接字的选项。#include int PASCAL FAR setsockopt(SOCKET s,int level,int optname,const char FAR *optval,int optlen);s:标识一个套接字的描述符。level:选项定义的层次;目前仅支持SOL_SOCKET(基本套接口),IPPROTO_TCP转载 2013-08-10 15:08:44 · 1362 阅读 · 0 评论 -
#pragma comment(lib, "WSock32.lib")
#pragma 的使用尽管 C 和 C++ 都已经有标准,但是几乎每个编译器 (广义,包含连接器等) 扩展一些 C/C++ 关键字。合理地应用这些关键字,有时候能使我们的工作非常方便。下面随便说说 Visual C++ 中 #pragma指示符的使用。一、用#pragma导出DLL函数 传统的到出 DLL 函数的方法是使用模块定义文件 (.def),V转载 2013-02-25 09:00:35 · 3474 阅读 · 0 评论 -
Winsock API 函数大全
Winsock API 函数大全 3 本系统(WinKing)提供之 Windows Sockets API 介面乃是依照 1993年1月20日公布之 WINSOCK 第1.1版(如附录)中所定义之函式 (routine); 包括了30个Berkeley Software Distribu翻译 2013-01-25 16:11:12 · 1210 阅读 · 0 评论 -
网络穿透(nat-udp) 学习记录
穿透——网络地址解析的技术(network address translation)的出现在很多程度上减轻了对IPV4地址空间的需要。通过nat可以实现私有网络地址和公有网络地址之间的转换。原创 2015-04-18 14:52:21 · 916 阅读 · 0 评论 -
网搜
VideoNet.rar - 该程序可以用于两个人在LAN/Intranet(或者Internet)上进行视频会议。现在有许多视频会议程序,每个都有各自的性能提升技术。主要的问题是视频会议视频帧的尺寸对于传输来说太大。因此,性能依赖于对帧的编解码。 , This procedure may use in two people (or Internet) on carries on the vi转载 2015-05-11 20:38:23 · 2164 阅读 · 0 评论 -
DDNS
DDNS (Dynamic Domain Name Server) 是动态域名服务器的缩写。DDNS 是将用户的动态IP地址映射到一个固定的域名解析服务上。(为什么要这么做呢?)用户每次连接网络的时候 客户端程序 就会通过信息传递把该 主机的动态IP地址 传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。服务原理: 也就是转载 2015-06-27 17:12:06 · 578 阅读 · 0 评论 -
pppoe server 搭建
pppoe原创 2016-06-25 18:33:38 · 1139 阅读 · 0 评论 -
PPP用户认证和IP地址分配
当用户和接入服务器之间的PPPOE建立之后,就可以在上面建立PPP会话。PPP会话的建立分为三个阶段:LCP协商、认证、IPCP协商。 对于PPP终结和PPP续传,LCP协商阶段是相同的。认证和IPCP协商不同。LCP协商 LCP协商主要完成某些链路路特性和认证方式的协商,LCP协商成功后,用户根据协商的认证方式向接入服务器发起认证请求,用户认证的方式采用PAP或C转载 2016-06-17 14:36:03 · 8218 阅读 · 0 评论 -
PPP协议体系
PPP协议体系的实现2013-05-02 22:05 by zmkeil, 1765 阅读,0 评论,收藏,编辑 其实PPP不像是一种协议,而更像是一种应用,可以把它看成一个拨号上网的应用软件,拨号成功后,本地主机就可以正常上网了,可以使用TCP/IP等协议,而完全感觉不到PPP的存在。而实际上PPP在网络协议栈中增加了不少东西,但对上层透明。另外PPP一般需要底层工具来转载 2016-06-17 14:43:05 · 747 阅读 · 0 评论 -
UDP网络库的对比 Raknet,UDT,ENet,kcp
UDT库 https://sourceforge.NET/projects/udt/?source=directory C#包装:https://github.com/dump247/udt-net UDT协议是什么?是一种基于UDP的数据传输协议(UDP-based Data Transfer Protocol,简称UDT)。 UDT协议的主要作用是什么?UDT的主要目...转载 2019-03-21 16:57:14 · 1030 阅读 · 0 评论 -
NAT穿越
在P2P实时音视频领域,NAT穿越是一个非常重要的技术。NAT穿越技术使得客户端和客户端直接进行通讯,从而减少了端到端的延迟,并大大减轻了服务器的压力,降低成本。NAT是什么 NAT的全称Network Address Translation,通常指的是把内网地址转换成外网地址。一般家用的无线路由器就用到了NAT技术。NAT技术的出现是为了解决IPv4地址不够的问题,而且还能够避免来自网...转载 2019-03-21 16:59:59 · 1550 阅读 · 0 评论 -
P2P技术将直播带宽降低75%
实时直播经过去年的千播大战后已经成为互联网应用的标配技术,但直播平台的成本却一直居高不下,各个平台除了挖主播、挖网红以外,其背后高额的带宽费用也是他们最大的一块成本。现阶段直播技术在传输方面分为两块:CDN和连麦系统,CDN负责流媒体的分发传输,连麦系统负责解决同时多个主播间互动的实时通信传输问题。我们始终认为基于CDN+连麦系统的直播技术是一个高成本高消耗的技术,从各大直播平台纷纷亏损就验证了这...转载 2019-03-22 23:28:32 · 371 阅读 · 0 评论 -
tcp拥塞避免与控制
说到TCP原理,一般的人谈传输效率,也就是吞吐率,了解的人谈公平性,以及收敛性。本篇博文讲一下TCP为什么使用AIMD策略,为什么是收敛的?1.公平性和收敛性才接触网络协议的人可能会问:为什么要收敛和公平?TCP不是传输可靠、够快就行了吗?远远不够,因为TCP是端到端的,窗口增减也是试探性的“自适应”方式,网络是黑盒,这就有很多问题。你自己一个人发包发得快,侵略性强,没有太大问题。但是如果...转载 2019-04-16 10:35:15 · 346 阅读 · 0 评论 -
百万tcp并发测试
前言都说haproxy很牛x, 可是测试的结果实在是不算满意, 越测试越失望,无论是长连接还是并发, 但是测试的流程以及工具倒是可以分享分享。也望指出不足之处。100w的长连接实在算不上太难的事情,不过对于网上关于测试方法以及测试工具的相关文章实在不甚满意,才有本文。本文有两个难点,我算不上完全解决。后端代码的性能. linux内核参数的优化.环境说明下面所有的测试机器都是...转载 2019-04-21 22:58:56 · 4139 阅读 · 4 评论 -
recv()
说明我的想法之前,我先纠正一下上面我犯的几个错误,也许说明这些错误对楼主也有帮助。且听我慢慢道来,嘿嘿我的犯的最大错误是,没有搞清楚“模式”和“选项”,BLOCK是一种模式,而TIMEOUT只是一个在特定模式下的选项。先说模式,一般SOCKET默认是BLOCK(阻断)模式,这种模式对send函数来说是同步的,而NONBLOCK(非阻断)模式对send函数来说则是异步的。楼主说send函转载 2013-01-25 14:52:34 · 737 阅读 · 0 评论