?1. tcp关闭连接状态转换? 上图是tcp连接主动关闭端的状态转换图: (1)应用层调用close函数发起关闭连接请求 (2)发送FIN到对端,关闭写通道,自己进入FIN_WAIT1状态 (3)等待对端的确认ACK到来,接受到ACK...
分类:
其他好文 时间:
2014-10-24 20:55:12
阅读次数:
354
Linux利用TCP协议来获取服务器时间
这里使用Unix网络编程里面的一个小程序,该客户端建立一个到服务器的TCP连接,然后读取由服务器以直观可读格式简单地送回的当前时间和日期.然后我们运行这个程序若干次,每次以不同的IP地址作为命令行参数.首先我们测试本机的时间,你必须要先打开Linux下的daytime服务,方法如下...
分类:
系统相关 时间:
2014-10-24 09:20:27
阅读次数:
185
在TCP连接中,我们会遇到端口复用、粘包问题等。当server端主动关闭socket,会产生一个TIME_WAIT的状态,所以我们需要加上端口复用的选项,来解决该问题。由于TCP是个流协议,所以无法提供报文服务,这就需要去处理粘包问题,解决方法有: 1) 采用固定长度发送数据,这样做的话局限性比较....
分类:
系统相关 时间:
2014-10-23 19:02:48
阅读次数:
244
对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.具体的分析可以结合TCP的"四次握手"关闭. TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点各负责一条. 当对端调用close时, 虽然本意是关闭整个两条信道,.....
分类:
其他好文 时间:
2014-10-22 17:49:33
阅读次数:
163
HTTP是一个无状态的协议HTTP遵循请求(Request)/应答(Response)模型 一次HTTP操作称为一个事务工作过程:1 ) 、地址解析:DNS2)、封装HTTP请求数据包3)封装成TCP包,建立TCP连接4)客户机发送请求命令5)服务器响应6)服务器关闭TCP连接
分类:
Web程序 时间:
2014-10-18 05:26:11
阅读次数:
188
一.time_wait状态解释1.客户端与服务器端TCP连接完闭,关闭SOCKET后,服务器端连接的端口号即为time_wait状态。linux下高并发的nginx,apache,lvs,squid等服务器生产环境下,TCP的time_wait套接字数量经常达到2,3W,此时服务器很容易被拖死或影响业务二.解决方法1.获取TIME_WA..
分类:
其他好文 时间:
2014-10-16 14:10:03
阅读次数:
183
建立TCP须要三次握手才干建立,而断开连接则须要四次握手。整个步骤例如以下图所看到的:先来看看怎样建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接...
分类:
其他好文 时间:
2014-10-14 20:37:59
阅读次数:
244
三次握手
下图就是wireshark抓包工具抓获的TCP连接建立的三次握手过程:...
分类:
其他好文 时间:
2014-10-13 13:43:19
阅读次数:
183