
网络基础
文章平均质量分 72
swartz_lubel
这个作者很懒,什么都没留下…
展开
-
22
32bit和64bit切换:!wow64exts.sw查看进程运行的时间:vertarget查看依赖的动态库(包含dll的路径):lmf查看pdb文件:lm查看所有的线程堆栈:~*kbn切换线程:~20s切换线程上的栈信息:.frame x (x代表的堆栈)输出信息到日志:.logopen c:text.log &&.logclose自动分析:!analyze -v...原创 2018-07-26 11:01:56 · 1577 阅读 · 0 评论 -
hping3 使用详解
hping是面向命令行的用于生成和解析TCP/IP协议数据包汇编/分析的开源工具。作者是Salvatore Sanfilippo,界面灵感来自ping(8)unix命令,目前最新版是hping3,它支持TCP,UDP,ICMP和RAW-IP协议,具有跟踪路由模式,能够在覆盖的信道之间发送文件以及许多其他功能,支持使用tcl脚本自动化地调用其API。hping是安全审计、防火墙测试等工作的标配工具。...转载 2018-02-11 17:07:29 · 20433 阅读 · 1 评论 -
100万并发连接服务器笔记之处理端口数量受限问题
第二个遇到的问题:端口数量受限一般来说,单独对外提供请求的服务不用考虑端口数量问题,监听某一个端口即可。但是向提供代理服务器,就不得不考虑端口数量受限问题了。当前的1M并发连接测试,也需要在客户端突破6万可用端口的限制。单机端口上限为65536端口为16进制,那么2的16次方值为65536,在linux系统里面,1024以下端口都是超级管理员用户(如root)才可以使用,普转载 2018-01-25 09:24:02 · 786 阅读 · 0 评论 -
100万并发连接服务器笔记之1M并发连接目标达成
第四个遇到的问题:tcp_mem在服务端,连接达到一定数量,诸如50W时,有些隐藏很深的问题,就不断的抛出来。 通过查看dmesg命令查看,发现大量TCP: too many of orphaned sockets错误,也很正常,下面到了需要调整tcp socket参数的时候了。第一个需要调整的是tcp_rmem,即TCP读取缓冲区,单位为字节,查看默认值cat /proc/s转载 2018-01-25 09:22:23 · 442 阅读 · 0 评论 -
100万并发连接服务器笔记之测试端就绪
重新编写测试端程序测试端程序需要增加绑定本机IP和本地端口的功能,以尽可能的向外发出更多的tcp请求。需要对client1.c重构,增加参数传递。 下面是client2.c的代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849转载 2018-01-25 09:20:42 · 324 阅读 · 0 评论 -
Clumsy网络模拟工具
笔者最近因为需要在局域网内模拟一个实际情况(即存在丢包、延迟等情况)。网上搜了很多工具,大多基于linux。后来好不容易在网上搜索到一款2014年出现的网络模拟工具----Clumsy。(参考了http://jagt.github.io/clumsy/)Clumsy是基于C语言开发的一款开源网络模拟工具。它能在Windows平台下人工造成不稳定的网络状态,应用它转载 2017-10-13 15:15:16 · 1228 阅读 · 0 评论 -
tcp keepalive
部分信息可以看UNIX网络编程第157页,摘录过来:在一个正常的TCP连接上,当我们用无限等待的方式调用下面的Recv或Send的时候: ret=recv(s,&buf[idx],nLeft,flags); 或 ret=send(s,&buf[idx],nLeft,flags); 如果TCP连接被对方正常关闭,也就是说,对方是正确地调用了closesocke转载 2017-09-27 22:48:06 · 292 阅读 · 0 评论 -
HTTP的长连接和短连接
一、什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。 HTTP首部的Connection: Keep-alive是HTTP1.0浏览器和服务器的实验性扩展,当前的HTTP1转载 2017-09-27 22:00:30 · 1279 阅读 · 0 评论 -
windows下缩短time_wait的时间
最近线上遇到windows机器访问其他机器的时候失败的情况。实际就是本地的端口不够用造成的。D:\>netsh interface ipv4 show dynamicportrange protocol=tcpProtocol tcp Dynamic Port Range---------------------------------Start Port : 49152转载 2017-09-26 19:46:02 · 2697 阅读 · 0 评论 -
Linux系统调用Hook姿势总结
相关学习资料http://xiaonieblog.com/?post=121http://hbprotoss.github.io/posts/li-yong-ld_preloadjin-xing-hook.htmlhttp://www.catonmat.net/blog/simple-ld-preload-tutorial/http://os.51cto.com/art/201004/195...转载 2018-02-11 17:12:04 · 3750 阅读 · 0 评论 -
数据链路层学习之LLDP
一、LLDP协议概述 随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加自己特有的功能,这就导致在一个网络中往往会有很多具有不同特性的、来自不同厂商的设备,为了方便对这样的网络进行管理,就需要使得不同厂商的设备能够在网络中相互发现并交互各自的系统及配置信息。 LLDP(Link Layer Discovery Protocol,链路层发现协议)就是...转载 2018-02-28 14:05:27 · 1006 阅读 · 0 评论 -
firewalld
从CentOS7(RHEL7)开始,官方的标准防火墙设置软件从iptables变更为firewalld,相信不少习惯使用iptables的人会感到十分不习惯,但实际上firewalld更为简单易用。 大致用法就是:把可信任的IP地址添加到“trusted”区域,把不可信任的IP地址添加到“block”区域,把要公开的网络服务添加到“public”区域。 配置方式firewalld的配置文件一般存放...转载 2018-03-02 09:36:39 · 244 阅读 · 0 评论 -
网络建设、运维所有知识总结篇
OSPFOSPF的特点:1.无环路:AS内防环机制是通过SPF算法计算路由,从算法本身保证了不会生成环路。AS间防环:通过区域划分,非骨干区域简直的通讯只能靠骨干区域通讯。2.区域划分:优点减小了内存的消耗和CPU的负担。3.支持等价路由。4.路由等级:区域内、区域间、区域外(E1、E2) 自制系统(Autonomous System)一组使用相同路由协议且处于同一技术掌控的连续的路由范围。 一台...转载 2018-04-27 15:08:30 · 2972 阅读 · 0 评论 -
图解正向代理、反向代理、透明代理
套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理解代理服务技术。一、正向代理(Forward Proxy)一般情况下,如果没有特别说明,代理...转载 2018-03-13 10:36:48 · 316 阅读 · 0 评论 -
squid的简单介绍
squid的概念squid是一种用来缓存Internet数据的软件。接受来自人们需要下载的目标(object)的请求并适当的处理这些请求。也就是说,如果一个人想下载一web界面,他请求squid为他取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后,squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时, squid可以简单的从磁盘中读到它,那样数据...转载 2018-03-12 22:47:58 · 607 阅读 · 0 评论 -
Linux 下网络性能测试工具 iperf 的安装和使用
简介:Iperf是一个网络性能测试工具。可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。Iperf在linux和windows平台均有二进制版本供自由使用安装:下载地址:iperf-2.x.x.tar.gz 下载后解压tar xvf iperf-2.0.5.tar.gzcd iperf-2.0.5./configuremakem...转载 2018-03-12 21:30:51 · 2837 阅读 · 0 评论 -
UDP主要丢包原因及具体问题分析
UDP主要丢包原因及具体问题分析 一、主要丢包原因 1、接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv。 2、发送的包巨大丢包:虽然send方法会帮你做大包切割成小包发送的事情,但包太大也不行。例如超过50K的一个...转载 2018-03-12 11:23:49 · 1175 阅读 · 0 评论 -
TCP/IP编程之SO_REUSEADDR和SO_REUSEPORT套接字选项
基本概念:SO_REUSEADDR套接字选项能起到以下4个不同的功用:(1)SO_REUSEADDR允许启动一个监听服务器并捆绑众所周知端口,即使以前建立的该端口用作它们的本地端口的连接仍存在。这个条件通常是这样碰到的:a)启动一个监听服务器;b)连接请求到的,派生一个子进程来处理这个客户;c)监听服务器终止,但子进程继续为现有的连接上的客户提供服务;d)重启监听服务器。默认情况下,当监听服务器在...转载 2018-03-12 11:23:18 · 211 阅读 · 0 评论 -
一张图说明CDN网络的原理
1.用户向浏览器输入www.web.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS服务器请求;2.网站的DNS域名解析器设置了CNAME,指向了www.web.51cdn.com,请求指向了CDN网络中的智能DNS负载均衡系统;3.智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户;4.用户向该IP节点(CDN服务器)发出请求;5.由于是第一次访问,CD...转载 2018-03-02 14:49:57 · 165 阅读 · 0 评论 -
Linux实现的ARP缓存老化时间原理解析
一.问题众所周知,ARP是一个链路层的地址解析协议,它以IP地址为键值,查询保有该IP地址主机的MAC地址。协议的详情就不详述了,你可以看RFC,也可以看教科书。这里写这么一篇文章,主要是为了做一点记录,同时也为同学们提供一点思路。具体呢,我遇到过两个问题:1.使用keepalived进行热备份的系统需要一个虚拟的IP地址,然而该虚拟IP地址到底属于哪台机器是根据热备群的主备来决定的,因此转载 2017-09-23 21:11:18 · 7772 阅读 · 0 评论 -
多网卡的7种bond模式原理
Linux 多网卡绑定网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6常用的有三种mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。mode=6:平衡负载模式,有自动备援,不必”Switch”支援及转载 2017-09-03 21:27:58 · 347 阅读 · 0 评论 -
IO多路复用之epoll总结
1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口 epoll操作过程需要三个接口,分别如下:#inclu转载 2017-07-28 22:15:06 · 292 阅读 · 0 评论 -
Linux Socket Select说明
1、API详解(1)int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout); 确定一个或多个套接口的状态,本函数用于确定一个或多个套接口的状态,对每一个套接口,调用者可查询它的可读性、可写性及错误状态信息,用fd_set结构来表示一原创 2017-02-21 19:15:41 · 392 阅读 · 0 评论 -
Linux Socket poll
poll提供的功能与select类似,不过在处理流设备时,它能够提供额外的信息。#include int poll(struct pollfd fd[], nfds_t nfds, int timeout);参数:1)第一个参数:一个结构数组,struct pollfd结构如下: struct pollfd{ int fd; //文件描述符原创 2017-02-21 19:26:23 · 658 阅读 · 0 评论 -
windows IOCP模型
IOCP模型与网络编程一。前言: 在老师分配任务(“尝试利用IOCP模型写出服务端和客户端的代码”)给我时,脑子一片空白,并不知道什么是IOCP模型,会不会是像软件设计模式里面的工厂模式,装饰模式之类的那些呢?嘿嘿,不过好像是一个挺好玩的东西,挺好奇是什么东西来的,又是一个新知识啦~于是,开始去寻找一大堆的资料,为这个了解做准备,只是呢,有时还是想去找一本书去系统地学转载 2017-02-21 19:51:35 · 534 阅读 · 0 评论 -
select,poll,epoll的归纳总结区分
Select、Poll与Epoll比较以下资料都是来自网上搜集整理。引用源详见文章末尾。1 Select、Poll与Epoll简介Selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1 单个进程可监视的fd数量被限制2 需要维护一个用来存放大量fd的数据结构,这样会使得用户转载 2017-02-21 19:38:52 · 345 阅读 · 0 评论 -
Linux下select, poll和epoll IO模型的详解
一).Epoll 介绍Epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入,和 select 相似,其实都 I/O 多路复用技术而已 ,并没有什么神秘的。其实在 Linux 下设计并发网络程序,向来不缺少方法,比如典型的 Apache 模型( Process Per Connection ,简称 PPC ), T转载 2017-02-21 19:30:20 · 410 阅读 · 0 评论 -
windows route netstat arp命令
要显示 IP 路由表的完整内容,请键入:route print要添加默认网关地址为 192.168.12.1 的默认路由,请键入:route add 0.0.0.0 mask 0.0.0.0 192.168.12.1要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1 的路由,请键入:rout原创 2017-02-21 09:15:02 · 438 阅读 · 0 评论 -
windows Tracert命令
如果我们要测试某一个IP都经过哪些路由,用trcert命令即可,这是dos下的一个基本网络命令,具体使用方法:1,在windows系统下,打开 运行 ;输入 cmd ;在弹出的dos窗口中输入:tracert ip/domain;2,ip是您要查看的ip,域名就是您的域名;这个都是静态的IP,可以向主机提供商咨询,之所以可以使用域名,因为域名做了A记录,也是解析到了IP,所以其实也原创 2017-02-21 09:03:00 · 2649 阅读 · 0 评论 -
SO_REUSEADDR SO_REUSEPORT 解析
首先我们需要了解一些基本知识,一个TCP/UDP连接是被一个五元组确定的{源地址,源端口,协议,目的端口,目的地址}。因此,任何两个连接都不可能拥有相同的五元组,否则系统将无法区别这两个连接。当使用socket()函数创建套接字的时候,我们就指定了该套接字使用的protocol(协议),bind()函数设置了源地址和源端口号,而目的地址和目的端口号则由connect()函数设定。尽原创 2015-12-15 00:05:51 · 776 阅读 · 0 评论 -
Linux的SOCKET编程详解
Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX转载 2017-02-25 18:10:50 · 437 阅读 · 0 评论 -
IP地址的三种表示格式及在Socket编程中的应用
使用TCP/IP协议进行网络应用开发的朋友首先要面对的就是对IP地址信息的处理。IP地址其实有三种不同的表示格式: 1)Ascii(网络点分字符串)- 2) 网络地址(32位无符号整形,网络字节序,大头) 3)主机地址 (主机字节序) IP地址是IP网络中数据传输的依据,它标识了IP网络中的一个连接,一台主机可以有多个IP地址,I转载 2017-02-25 18:30:11 · 1040 阅读 · 0 评论 -
socket阻塞与非阻塞,同步与异步
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步/异步主要针对C端: 同步: 所谓同步,就是在c端发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步转载 2017-02-25 18:32:05 · 319 阅读 · 0 评论 -
套接字I/O模型-重叠I/O
重叠模型的基本设计原理是让应用程序使用重叠的数据结构,一次投递一个或多个WinsockI/O请求。针对那些提交的请求,在它们完成之后,应用程序可为它们提供服务。模型的总体设计以Windows重叠I/O机制为基础。这个机制可通过ReadFile和WriteFile两个函数,在设备上执行I/O操作。要想在一个套接字上使用重叠I/O模型,首先必须创建一个设置了重叠标志的套接字。主要有两种方法来管转载 2017-07-27 22:10:05 · 614 阅读 · 0 评论 -
snmpwalk命令常用方法
SNMPWALK是一个通过SNMP GET-NEXT类型PDU,实现对目标AGENT的某指定MIB分支信息进行完整提取输出的命令工作。命令行:[html] view plain copysnmpwalk [选项] agent [oid] 选项参数:由于SNMP协议中,不同的协议版本存在不同的参数选项,以下参数按协议分开说明。转载 2017-07-28 16:42:13 · 3884 阅读 · 0 评论 -
RCF - C ++的进程间通信
介绍RCF(远程调用框架)是一个C ++ IPC框架,提供了一种在C ++程序中实现进程间通信的简单而一致的方法。它基于强类型的客户端/服务器接口的概念,这是基于IDL的中间件(如CORBA和DCOM)的用户熟悉的概念。然而,通过仅适用于C ++,RCF可以利用C ++特定的语言特性,允许以更简单和更少的混乱方式来制定进程间调用。RCF通过支持压缩(zlib)和多个传输(TCP转载 2017-07-31 11:53:32 · 5707 阅读 · 0 评论 -
组播概述
1 概述1.1 产生背景传统的IP通信有两种方式:一种是在源主机与目的主机之间点对点的通信,即单播;另一种是在源主机与同一网段中所有其它主机之间点对多点的通信,即广播。如果要将信息发送给多个主机而非所有主机,若采用广播方式实现,不仅会将信息发送给不需要的主机而浪费带宽,也不能实现跨网段发送;若采用单播方式实现,重复的IP包不仅会占用大量带宽,也会增加源主机的负载。所以,传统的单播和广播转载 2017-07-17 09:31:05 · 1967 阅读 · 0 评论 -
linux C++实现ftp客户端
#ifndef CLIENT_H_#define CLIENT_H_#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define INV原创 2017-02-25 20:30:19 · 9410 阅读 · 3 评论 -
linux socket epoll
什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 epoll的转载 2017-02-25 20:24:24 · 746 阅读 · 0 评论 -
TCP连接的状态详解以及故障排查
我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助。(总结网络上的内容)1、TCP状态linux查看tcp的状态命令:1)、netstat -nat 查看TCP各个状态的数量2)、lsof -i:port 可以检测到打开套接字的状况3)、 sar -n SOCK 查看tcp创建的连接数4)、tcpdump -ian转载 2017-02-25 20:04:30 · 977 阅读 · 0 评论