网络
文章平均质量分 81
L_XRUI
one day one day one day......
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
select服务器
unix下,可将I/O分为五种模型:阻塞I/O非阻塞I/OI/O复用(多路转接:select、(e)poll)信号驱动异步I/O其中前四种I/O模型为同步I/O,最后一个为异步I/O,而一个I/O操作可分为两步:等待数据就绪;数据的搬移.而高性能I/O则体现在如何减少等待的时间,即在I/O模型中的I/O复用则是通知底层I/O就绪的高效方法。 系统提供select函数来实现多路复用原创 2017-07-08 14:22:57 · 717 阅读 · 0 评论 -
epoll服务器
相比select、poll,epoll是I/O多路转接最高效的手段,它几乎具备了之前select、poll的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。epoll实现只有epoll_create()、epoll_ctl()、epoll_wait()三个系统调用函数。1、epoll_create()函数:int epoll_create(int size);含义:创建一个e原创 2017-08-17 17:03:25 · 1107 阅读 · 1 评论 -
TCP四次挥手后的TIME_WAIT状态
首先查看TCP建立连接与断开连接的两对端的状态图,如下: 由图可知客户端在收到服务端的请求断开连接带有的FIN位结束报文段,并发送ACK确认以后,其并没有直接关闭,进入到CLOSED状态,而是转变为TIME_WAIT状态。TIME_WAIT状态是做什么的? 在这个状态,顾名思义,即客户端连接要等待一段长为2MSL(报文段最大生存时间)的时间,才能关闭连接,在标准文档RFC 1122的MS原创 2017-07-14 15:45:31 · 2031 阅读 · 0 评论 -
TCP三次握手与四次挥手
TCP建立连接与断开连接的过程如下图: TCP连接断开其状态转移路线如下: 其中以上1,2,3段则代表的为TCP建立连接的时的三次握手,过程如下:客户端client主动发起请求连接,发送携带SYN标志同步报文段1,并包含一个ISN值为1000的序号,并指定自己的最大段尺寸mss为1460等; 其代表含义为:序号是1000,这个序号在⽹网络通讯中⽤用作临时的地址,每发一个数据字节,这个原创 2017-07-13 16:14:05 · 671 阅读 · 0 评论 -
多进程多线程TCP服务器
在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”称为(套接字)socket。在TCP协议中,建立连接的两个进程各自有一个socket来标识,这两个socket组成的socket pair就唯一标识一个连接。 TCP/IP协议最早在BSD UNIX上实现,为TCP/IP协议设计的应用层编程接口称为socket API。此处使用socket A原创 2017-07-04 10:18:07 · 1184 阅读 · 0 评论 -
CRC校验
数据链路层有三个基本问题:(1)封装成帧;(2)透明传输;(3)差错检测:在差错检测中,传输差错中分为两大类:1.比特差错:比特在传输过程中产生差错:1可能变为0,0可能变为1. 在一段时间内,传输错误的比特占所传输总数的比特总数的比率称为误码率.2.帧丢失、帧重复或帧失序:如//3个帧 [#1]-[#2]-[#3][#1]-[#3]原创 2017-06-20 23:34:12 · 2082 阅读 · 0 评论 -
端口分类调研
目的主机收到数据包后,经过各层协议栈最后到达应用程序的过程:(1)以太网驱动程序首先根据以太网首部中的“上层协议”字段确定该数据帧的有效载荷(payload,指除去协议首部之外实际传输的数据)是IP、ARP还是RARP协议的数据报;(2)交给相应的协议处理:假如是IP数据报,IP协议再根据IP首部中的“上层协议”字段确定该数据报的有效载荷是TCP、UDP、ICMP还是IGMP;(3)再原创 2017-06-21 23:02:50 · 1635 阅读 · 0 评论 -
arp脚本
在网络的分层中,网络层最重要的协议为IP协议,与IP协议配套使用的还有四个协议:(1)ARP(地址解析协议);(2)RARP(逆地址解析协议);(3)ICMP(网际控制报文协议);(4)IGMP(网际组管理协议).如图:原创 2017-06-24 19:44:30 · 1502 阅读 · 0 评论 -
poll服务器
poll是I/O复用多路转接的另一种方法,其优化了select两个缺点:poll服务器支持的文件描述符数目没有上限;poll服务器函数接口的参数与select不同,其将输入与输出参数进行了分离(用结构体实现).函数如下:#include <poll.h>int poll(struct pollfd* fds,nfds_t nfds,int timeout);参数含义:fds:结构体数组,(原创 2017-07-10 21:31:11 · 897 阅读 · 0 评论 -
webbench剖析
webbench:其为linux上一款web性能压力测试工具,它最多可以模拟3万个并发连接数来测试服务器压力,其原理为fork多个子进程,每个子进程都循环做web访问测试,子进程将访问的结果通过管道告诉父进程,父进程做最终结果统计。其主要原理如下图: 其代码实现中主要运用4个函数:getopt_long()系统命令行解析函数,build_request()函数,bench()函数,benchcor原创 2017-07-27 18:57:10 · 8088 阅读 · 2 评论
分享