E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
linux网络编程
linux网络编程
之socket(十五):UNIX域套接字编程和socketpair 函数
一、UNIXDomainSocketIPCsocketAPI原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIXDomainSocket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIXDomainSocket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将
Simba888888
·
2013-06-12 16:00
socket
unix
domain
socketpair
linux网络编程
之socket(十四):基于UDP协议的网络程序
一、下图是典型的UDP客户端/服务器通讯过程下面依照通信流程,我们来实现一个UDP回射客户/服务器#include#includessize_tsend(intsockfd,constvoid*buf,size_tlen,intflags);ssize_tsendto(intsockfd,constvoid*buf,size_tlen,intflags,conststructsockaddr*de
s1mba
·
2013-06-12 09:05
linux网络编程
linux
环境网络编程
linux网络编程
之socket(十四):基于UDP协议的网络程序
一、下图是典型的UDP客户端/服务器通讯过程下面依照通信流程,我们来实现一个UDP回射客户/服务器#include#includessize_tsend(intsockfd,constvoid*buf,size_tlen,intflags);ssize_tsendto(intsockfd,constvoid*buf,size_tlen,intflags,conststructsockaddr*de
aspnetwinform
·
2013-06-12 09:00
socket
[置顶]
linux网络编程
之socket(十四):基于UDP协议的网络程序
一、下图是典型的UDP客户端/服务器通讯过程下面依照通信流程,我们来实现一个UDP回射客户/服务器 #include #include ssize_tsend(intsockfd,constvoid*buf,size_tlen,intflags); ssize_tsendto(intsockfd,constvoid*buf,size_tlen,intflags, conststructsockad
Simba888888
·
2013-06-12 09:00
UDP
sendto
recvfrom
linux网络编程
之socket(十三):epoll 系列函数简介、与select、poll 的区别
一、epoll系列函数简介#includeintepoll_create(intsize);intepoll_create1(intflags);intepoll_ctl(intepfd,intop,intfd,structepoll_event*event);intepoll_wait(intepfd,structepoll_event*events,intmaxevents,inttimeou
s1mba
·
2013-06-11 19:22
epoll
poll
select
linux网络编程
linux
环境网络编程
linux网络编程
之socket(十三):epoll 系列函数简介、与select、poll 的区别
一、epoll系列函数简介#includeintepoll_create(intsize);intepoll_create1(intflags);intepoll_ctl(intepfd,intop,intfd,structepoll_event*event);intepoll_wait(intepfd,structepoll_event*events,intmaxevents,inttimeou
Simba888888
·
2013-06-11 19:00
epoll
select
poll
linux网络编程
之socket(十二):select函数的并发限制和 poll 函数应用举例
一、用select实现的并发服务器,能达到的并发数,受两方面限制1、一个进程能打开的最大文件描述符限制。这可以通过调整内核参数。可以通过ulimit-n来调整或者使用setrlimit函数设置,但一个系统所能打开的最大数也是有限的,跟内存大小有关,可以通过cat/proc/sys/fs/file-max查看2、select中的fd_set集合容量的限制(FD_SETSIZE,一般为1024),这需
s1mba
·
2013-06-11 15:41
linux网络编程
linux
环境网络编程
linux网络编程
之socket(十二):select函数的并发限制和 poll 函数应用举例
一、用select实现的并发服务器,能达到的并发数,受两方面限制1、一个进程能打开的最大文件描述符限制。这可以通过调整内核参数。可以通过ulimit-n来调整或者使用setrlimit函数设置, 但一个系统所能打开的最大数也是有限的,跟内存大小有关,可以通过cat/proc/sys/fs/file-max查看2、select中的fd_set集合容量的限制(FD_SETSIZE,一般为1024),这
Simba888888
·
2013-06-11 15:00
select
poll
并发限制
linux网络编程
之socket(十一):套接字I/O超时设置方法和用select实现超时
注:如无特殊说明,sockfd原始状态都是阻塞的。一、使用alarm函数设置超时 C++Code 12345678910111213void handler(int sig){}signal(SIGALRM, handler);alarm(5);int ret = read(fd, buf, sizeof(buf));if (ret == -1 && errno == EINTR) errn
Simba888888
·
2013-06-11 10:00
select
套接字IO超时
linux网络编程
之socket(十):shutdown 与 close 函数 的区别
假设server和client已经建立了连接,server调用了close,发送FIN段给client(其实不一定会发送FIN段,后面再说),此时server不能再通过socket发送和接收数据,此时client调用read,如果接收到FIN段会返回0,但client此时还是可以write给server的,write调用只负责把数据交给TCP发送缓冲区就可以成功返回了,所以不会出错,而server
s1mba
·
2013-06-10 22:20
linux网络编程
linux
环境网络编程
linux网络编程
之socket(十):shutdown 与 close 函数 的区别
假设server和client已经建立了连接,server调用了close,发送FIN段给client(其实不一定会发送FIN段,后面再说),此时server不能再通过socket发送和接收数据,此时client调用read,如果接收到FIN段会返回0,但client此时还是可以write给server的,write调用只负责把数据交给TCP发送缓冲区就可以成功返回了,所以不会出错,而server
Simba888888
·
2013-06-10 22:00
close
shutdown
linux网络编程
之socket(九):使用select函数改进客户端/服务器端程序
一、当我们使用单进程单连接且使用readline修改后的客户端程序,去连接使用readline修改后的服务器端程序,会出现一个有趣的现象,先来看输出:先运行服务器端,再运行客户端,simba@ubuntu:~/Documents/code/linux_programming/UNP/socket$./echoser_recv_peek recvconnectip=127.0.0.1port=540
Simba888888
·
2013-06-10 19:00
并发
select
linux网络编程
之socket(八):五种I/O模型和select函数简介
一、五种I/O模型1、阻塞I/O我们在前面所说的I/O模型都是阻塞I/O,即调用recv系统调用,如果没有数据则阻塞等待,当数据到来则将数据从内核空间(套接口缓冲区)拷贝到用户空间(recv函数提供的buf),然后recv返回,进行数据处理。2、非阻塞I/O我们可以使用fcntl(fd,F_SETFL,flag|O_NONBLOCK);将套接字标志变成非阻塞,调用recv,如果设备暂时没有数据可读
s1mba
·
2013-06-10 15:53
linux
环境网络编程
linux网络编程
之socket(八):五种I/O模型和select函数简介
一、五种I/O模型1、阻塞I/O我们在前面所说的I/O模型都是阻塞I/O,即调用recv系统调用,如果没有数据则阻塞等待,当数据到来则将数据从内核空间(套接口缓冲区)拷贝到用户空间(recv函数提供的buf),然后recv返回,进行数据处理。2、非阻塞I/O我们可以使用fcntl(fd,F_SETFL,flag|O_NONBLOCK);将套接字标志变成非阻塞,调用recv,如果设备暂时没有数据可读
Simba888888
·
2013-06-10 15:00
select
IO模型
异步IO
同步IO
linux网络编程
之socket(七):一个进程发起多个连接和gethostbyname等函数
一、在前面讲过的最简单的回射客户/服务器程序中,一个客户端即一个进程,只会发起一个连接,只要稍微修改一下就可以让一个客户端发起多个连接,然后只利用其中一个连接发送数据。先来认识一个函数getsockname#includeintgetsockname(intsockfd,structsockaddr*addr,socklen_t*addrlen);利用此函数可以得到某连接sockfd的地址信息,如
s1mba
·
2013-06-09 12:36
linux
环境网络编程
linux网络编程
之socket(七):一个进程发起多个连接和gethostbyname等函数
一、在前面讲过的最简单的回射客户/服务器程序中,一个客户端即一个进程,只会发起一个连接,只要稍微修改一下就可以让一个客户端发起多个连接,然后只利用其中一个连接发送数据。先来认识一个函数getsockname #include intgetsockname(intsockfd,structsockaddr*addr,socklen_t*addrlen);利用此函数可以得到某连接sockfd的地址信息
Simba888888
·
2013-06-09 12:00
linux网络编程
之socket(六):利用recv和readn函数实现readline函数
在前面的文章中,我们为了避免粘包问题,实现了一个readn函数读取固定字节的数据。如果应用层协议的各字段长度固定,用readn来读是非常方便的。例如设计一种客户端上传文件的协议,规定前12字节表示文件名,超过12字节的文件名截断,不足12字节的文件名用'\0'补齐,从第13字节开始是文件内容,上传完所有文件内容后关闭连接,服务器可以先调用readn读12个字节,根据文件名创建文件,然后在一个循环中
Simba888888
·
2013-06-08 21:00
readline
recv
Linux网络编程
--7. TCP/IP协议
你也许听说过TCP/IP协议,那么你知道到底什么是TCP,什么是IP吗?在这一章里面,我们一起来学习这个目前网络上用最广泛的协议. 7.1网络传输分层 如果你考过计算机等级考试,那么你就应该已经知道了网络传输分层这个概念.在网络上,人们为了传输数据时的方便,把网络的传输分为7个层次.分别是:应用层,表示层,会话层,传输层,绮?数据链路层和物理层.分好了层以后,传输数据时,上一层如果要数据的话,就
liushuimpc
·
2013-06-08 09:00
linux网络编程
之socket(五):tcp流协议产生的粘包问题和解决方案
我们在前面曾经说过,发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序所看到的数据是一个整体,或说是一个流(stream),一条消息有多少字节对应用程序是不可见的,因此TCP协议是面向流的协议,这也是容易出现粘包问题的原因。而UDP是面向消息的协议,每个UDP段都是一条消息,应用程序必须以消
s1mba
·
2013-06-06 23:38
linux
环境网络编程
linux网络编程
之socket(五):tcp流协议产生的粘包问题和解决方案
我们在前面曾经说过,发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序所看到的数据是一个整体,或说是一个流(stream),一条消息有多少字节对应用程序是不可见的,因此TCP协议是面向流的协议,这也是容易出现粘包问题的原因。而UDP是面向消息的协议,每个UDP段都是一条消息,应用程序必须以消
Simba888888
·
2013-06-06 23:00
粘包
流协议
Python2.7 socket
linux网络编程
中,第一步接触的就是socket,对socket不了解的可自行学习>,本文只是熟悉python的socket模块用法,相信如果看过高级编程再看python的socket模块,会感觉十分容易的
China_OS
·
2013-06-06 15:00
python
socket
有用的博客
1.linux下判断网络是否连接 http://blog.csdn.net/hjx_1000/article/details/88437022.
linux网络编程
之socket(四):使用fork并发处理多个
hui523hui523hui523
·
2013-06-06 10:00
linux网络编程
之socket(四):使用fork并发处理多个client的请求和对等通信p2p
一、在前面讲过的回射客户/服务器程序中,服务器只能处理一个客户端的请求,如何同时服务多个客户端呢?在未讲到select/poll/epoll等高级IO之前,比较老土的办法是使用fork来实现。网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次accept一个新的客户端连接就fork出一个子进程专门服务这个客户端。但是子进程退出时会产生僵尸进程,父进程要注意处理SIGCHLD
s1mba
·
2013-06-05 22:32
linux
环境网络编程
linux网络编程
之socket(四):使用fork并发处理多个client的请求和对等通信p2p
一、在前面讲过的回射客户/服务器程序中,服务器只能处理一个客户端的请求,如何同时服务多个客户端呢?在未讲到select/poll/epoll等高级IO之前,比较老土的办法是使用fork来实现。网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次accept一个新的客户端连接就fork出一个子进程专门服务这个客户端。但是子进程退出时会产生僵尸进程,父进程要注意处理SIGCHLD
Simba888888
·
2013-06-05 22:00
并发
fork
linux网络编程
之socket(三):最简单的回射客户/服务器程序、time_wait 状态
下面通过最简单的客户端/服务器程序的实例来学习socketAPI。echoser.c程序的功能是从客户端读取字符然后直接回射回去。C++Code12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686
s1mba
·
2013-06-05 09:37
linux
环境网络编程
linux网络编程
之socket(三):最简单的回射客户/服务器程序、time_wait 状态
下面通过最简单的客户端/服务器程序的实例来学习socketAPI。echoser.c程序的功能是从客户端读取字符然后直接回射回去。 C++Code 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676
Simba888888
·
2013-06-05 09:00
回射客户服务器
linux网络编程
中select/poll/epoll的比较分析
一.select1.概述select本质是通过设置或检查存放fd标志位的数据结构来进行下一步的处理。会阻塞,直到有一个或多个I/O就绪。监视的文件描述符分为三类set,每一种对应不同的事件。readfds、writefds和exceptfds是指向描述符集的指针。readfds列出的文件描述符被监视是否有数据可供读取。(可读)writefds列出的文件描述符被监视是否有写入操作完成。(可写)exc
lianxiang_biancheng
·
2013-06-04 22:00
epoll
select
poll
linux网络编程
之socket(二):C/S程序的一般流程和基本socket函数
一、基于TCP协议的网络程序下图是基于TCP协议的客户端/服务器程序的一般流程:服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应答一个ACK段,服务器收到后从
Simba888888
·
2013-06-04 19:00
cs
socket函数
linux网络编程
之socket(一):socket概述和字节序、地址转换函数
一、什么是socketsocket可以看成是用户进程与内核网络协议栈的编程接口。socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信。socketAPI是一层抽象的网络编程接口,适用于各种底层网络协议,如IPv4、IPv6,以及以后要讲的UNIXDomainSocket。然而,各种网络协议的地址格式并不相同,如下图所示:IPv4和IPv6的地址格式定义在netinet/i
s1mba
·
2013-06-03 14:33
linux
环境网络编程
linux网络编程
之socket(一):socket概述和字节序、地址转换函数
一、什么是socketsocket可以看成是用户进程与内核网络协议栈的编程接口。socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信。socketAPI是一层抽象的网络编程接口,适用于各种底层网络协议,如IPv4、IPv6,以及以后要讲的UNIXDomainSocket。然而,各种网络协议的地址格式并不相同,如下图所示:IPv4和IPv6的地址格式定义在netinet/i
Simba888888
·
2013-06-03 14:00
socket
Proxy源代码分析--谈谈如何学习
linux网络编程
本文出自:http://www.china-pub.com作者:李培源(2001-08-1012:00:00) Linux是一个可靠性非常高的操作系统,但是所有用过Linux的朋友都会感觉到,Linux 和Windows这样的"傻瓜"操作系统(这里丝毫没有贬低Windows的意思,相反这应该是 Windows的优点)相比,后者无疑在易操作性上更胜一筹。但是为什么又有那么多的 爱好者钟情于Linu
fall221
·
2013-05-29 09:00
Linux网络编程
--10. 原始套接字 --11. 后记
10.原始套接字我们在前面已经学习过了网络程序的两种套接字(SOCK_STREAM,SOCK_DRAGM).在这一章里面我们一起来学习另外一种套接字--原始套接字(SOCK_RAW).应用原始套接字,我们可以编写出由TCP和UDP套接字不能够实现的功能.注意原始套接字只能够由有root权限的人创建.10.1原始套接字的创建intsockfd(AF_INET,SOCK_RAW,protocol)可以
天天向上_好好学习
·
2013-05-28 10:14
网络
linux
c
Linux入门总览
Linux内核及原理部分Linux系统编程部分)glibc相关
Linux网络编程
部分
jwf04
·
2013-05-27 10:10
Linux入门
Linux网络编程
之使用TCP传输文件
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8976263,作者:gqb666最近在写Linux网络方面的demo,用TCP实现了一个简单的传输文件程序,适用于网卡设备及TCP/IP协议栈及网络环境测试时使用。用法容易,代码简洁,已经测试成功。其功能是使用TCP协议从client端向server端传输文
gqb666
·
2013-05-26 14:19
Linux网络子系统
TCP/IP
Socket
Linux网络编程
Linux网络编程
之使用TCP传输文件
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8976263,作者:gqb666 最近在写Linux网络方面的demo,用TCP实现了一个简单的传输文件程序,适用于网卡设备及TCP/IP协议栈及网络环境测试时使用。用法容易,代码简洁,已经测试成功。其功能是使用TCP协议从client端向serve
gqb666
·
2013-05-26 14:00
socket
Linux网络编程
tcpip
Linux网络编程
之使用UDP传输文件
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8970207,作者:gqb666 接上篇博文
Linux
gqb666
·
2013-05-26 14:00
socket
Linux网络编程
tcpip
linux网络编程
之TCP/IP基础(五):分析一帧基于UDP的TFTP协议帧
下图是UDP的段格式:相比TCP段格式,UDP要简单得多,也没啥好说的,需要注意的是UDP数据长度指payload加上首部的长度。下面分析一帧基于UDP的TFTP协议帧:以太网首部0000:00055d67d0b100055d6158a80800 IP首部0000:45000010:005393250000801125ecc0a80037c0a80020:0001UDP首部0020:05d4004
Simba888888
·
2013-05-24 11:00
TFTP
UDP
linux网络编程
之TCP/IP基础(四):TCP连接的建立和断开、滑动窗口
一、TCP段格式:TCP的段格式如下图所示源端口号与目的端口号源端口号和目的端口号,加上IP首部的源IP地址和目的IP地址唯一确定一个TCP连接。序列号序号表示在这个报文段中的第一个数据字节序号。确认号仅当ACK标志为1时有效。确认号表示期望收到的下一个字节的序号。头部长度4位,TCP头部最多60个字节,最少20个字节保留位6位,必须为06个标志位URG-紧急指针有效ACK-确认序号有效PSH-接
Simba888888
·
2013-05-23 22:00
tcp协议
滑动窗口
主机地址
linux网络编程
之TCP/IP基础(二):利用ARP和ICMP协议解释ping命令
本篇文章朋友在深圳吃饭的时候突然想到的...最近就有想写几篇关于主机地址的博客,所以回家到之后就奋笔疾书的写出来发布了 一、MTU 以太网和IEEE802.3对数据帧的长度都有限制,其最大值分离是1500和1492字节,将这个限制称作最大传输单元(MTU,MaximumTransmissionUnit)如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就要停止分
·
2013-05-23 21:00
TCP/IP
Linux网络编程
-TCP(留个笔记,以后方便查阅)
原文来自:http://blog.sina.com.cn/s/blog_50571b1f010082pg.html
linux网络编程
常用函数详解与实例(socket-->bind-->listen-->
NewThinker_wei
·
2013-05-23 17:00
linux网络编程
之TCP/IP基础(三):IP数据报格式和IP地址路由
一、IP数据报格式IP数据报格式如下:注:需要注意的是网络数据包以大端字节序传输,当然头部也得是大端字节序,也就是说:Themostsignificantbit isnumbered0attheleft,andtheleastsignificantbitofa32-bitvalueisnumbered31ontheright.The4bytesinthe32-bitvaluearetransmit
Simba888888
·
2013-05-23 12:00
ip数据报
IP地址和路由
linux网络编程
之TCP/IP基础(二):利用ARP和ICMP协议解释ping命令
一、MTU以太网和IEEE802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,将这个限制称作最大传输单元(MTU,MaximumTransmissionUnit)。如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就要进行分片(Fragmentation),把数据报分成若干片,这样每一片都小于MTU。当网络上的两台主机互相进行通信时,两台主机之间要经过多
s1mba
·
2013-05-22 21:17
linux
环境网络编程
linux网络编程
之TCP/IP基础(二):利用ARP和ICMP协议解释ping命令
一、MTU以太网和IEEE802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,将这个限制称作最大传输单元(MTU,MaximumTransmissionUnit)。如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就要进行分片(Fragmentation),把数据报分成若干片,这样每一片都小于MTU。当网络上的两台主机互相进行通信时,两台主机之间要经过多
s1mba
·
2013-05-22 21:17
linux网络编程
linux
环境网络编程
linux网络编程
之TCP/IP基础(二):利用ARP和ICMP协议解释ping命令
一、MTU以太网和IEEE802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,将这个限制称作最大传输单元(MTU,MaximumTransmissionUnit)。如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就要进行分片(Fragmentation),把数据报分成若干片,这样每一片都小于MTU。当网络上的两台主机互相进行通信时,两台主机之间要经过多
Simba888888
·
2013-05-22 21:00
ping
ARP
ICMP
linux网络编程
之TCP/IP基础(一):TCP/IP协议栈与数据报封装
一、ISO/OSI参考模型OSI(opensysteminterconnection)开放系统互联模型是由ISO(InternationalOrganizationforStandardization)国际标准化组织定义的网络分层模型,共七层,如下图。物理层(PhysicalLayer):物理层定义了所有电子及物理设备的规范,为上层的传输提供了一个物理介质,本层中数据传输的单位为比特(bit)。属
s1mba
·
2013-05-21 20:18
linux网络编程
linux
环境网络编程
linux网络编程
之TCP/IP基础(一):TCP/IP协议栈与数据报封装
一、ISO/OSI参考模型OSI(opensysteminterconnection)开放系统互联模型是由ISO(InternationalOrganizationforStandardization)国际标准化组织定义的网络分层模型,共七层,如下图。物理层(PhysicalLayer):物理层定义了所有电子及物理设备的规范,为上层的传输提供了一个物理介质,本层中数据传输的单位为比特(bit)。属
s1mba
·
2013-05-21 20:18
linux
环境网络编程
linux网络编程
之TCP/IP基础(一):TCP/IP协议栈与数据报封装
一、ISO/OSI参考模型OSI(opensysteminterconnection)开放系统互联模型是由ISO(InternationalOrganizationforStandardization)国际标准化组织定义的网络分层模型,共七层,如下图。物理层(PhysicalLayer):物理层定义了所有电子及物理设备的规范,为上层的传输提供了一个物理介质,本层中数据传输的单位为比特(bit)。属
Simba888888
·
2013-05-21 20:00
数据包封装
tcpip协议栈
整理:
Linux网络编程
之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
sockaddrstructsockaddr{unsigned short sa_family; /*addressfamily,AF_xxx*/char sa_data[14]; /*14bytesofprotocoladdress*/};sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_INET。sa_data是14字
changli_90
·
2013-05-20 17:00
【
Linux网络编程
笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—实践篇
上篇笔记主要介绍了与TIME_WAIT相关的基础知识,本文则从实践出发,说明如何解决文章标题提出的问题。1.查看系统网络配置和当前TCP状态 在定位并处理应用程序出现的网络问题时,了解系统默认网络配置是非常必要的。以x86_64平台Linuxkernelversion2.6.9的机器为例,ipv4网络协议的默认配置可以在/proc/sys/net/ipv4/下查看,其中与TCP协
slvher
·
2013-05-17 21:00
linux
programming
NetWork
tcpip
【
Linux网络编程
笔记】TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—基础知识篇
最近遇到一个线上报警:服务器出现大量TIME_WAIT导致其无法与下游模块建立新HTTP连接,在解决过程中,通过查阅经典教材和技术文章,加深了对TCP网络问题的理解。作为笔记,记录于此。 备注:本文主要介绍TCP编程中涉及到的众多基础知识,关于实际工程中对由TIME_WAIT引发的不能建立新连接问题的解决方法将在下篇笔记中给出。1.实际问题 初步查看发现,无法对外新建TCP连接时
slvher
·
2013-05-17 21:00
linux
网络编程
tcpip
上一页
29
30
31
32
33
34
35
36
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他