1.listen函数将主动套接字转换成一个被动套接字backlog指定相应套接字连接队列的大小。监听套接字有2个队列:(1)未完成连接队列,接收客户SYN,发出SYN、ACK,等待完成三次握手。这种套接字处于SYN_RCVD状态。(2)已完成连接队列,已完成TCP三次握手。这些套接字处于ESTABL...
分类:
其他好文 时间:
2015-09-15 21:33:50
阅读次数:
186
一、网络协议基础(一)tcp三次握手第一次握手:发送请求连接包给服务器。客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到请求连接后,返回一个可以连接的应答包。服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一..
分类:
Web程序 时间:
2015-09-15 20:15:56
阅读次数:
221
建立TCP连接需要三次握手才可以建立,断开连接则需要四次握手。图1:第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,进入SYN_SENT状态,等待服务器确认,第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+...
分类:
其他好文 时间:
2015-09-14 15:12:47
阅读次数:
172
2MSL TIME_WAIT状态存在的理由: TIME_WAIT状态的存在有两个理由:(1)让4次握手关闭流程更加可靠;4次握手的最后一个ACK是是由主动关闭方发送出去的,若这个ACK丢失,被动关闭方会再次发一个FIN过来。若主动关闭...
分类:
其他好文 时间:
2015-09-09 09:51:31
阅读次数:
236
1. 三次握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个S....
分类:
其他好文 时间:
2015-09-06 01:04:31
阅读次数:
193
说起消息重入队列还得从队列注册消费者说起,客户端在向队列注册消费者之后,创建的channel也会被主队列进程monitor,当channel挂掉后,主队列进程(rabbit_amqqueue_process)收到'DOWN'通知,将未ack的消息重入队列,并根据消息的deliver tag,也就是消...
分类:
其他好文 时间:
2015-09-02 08:13:05
阅读次数:
414
最近在 Android 开发的时候遇到一个问题,就是在服务器与客户端采用UDP协议通信的时候,如何判断一开始双方建立了连接。
“连接建立”很容易实现,服务器受到命令,返回类似ACK等信息,客户端使用 DatagramSocket.receive() 方法接收信息,即可知道双方已完成一次交互,通信成功。而要判断“连接失败”,即客户端在 DatagramSocket.receive() 这一步就会产...
分类:
移动开发 时间:
2015-08-29 18:50:14
阅读次数:
339
rabbitmq作为成熟的企业消息中间件,实现了应用程序间接口调用的解耦,提高系统的吞吐量。下面介绍下rabbitmq的一些基本概念:message acknowledgment: 消息确认,解决消息确认问题,只有收到ack之后才能从消息系统中删除。message durability:消 息持久化...
分类:
其他好文 时间:
2015-08-27 22:46:48
阅读次数:
364
TIME_WAIT状态原理----------------------------通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态...
分类:
其他好文 时间:
2015-08-27 14:52:24
阅读次数:
202
针对问题:TCP连接失败分析:netstat -s输出中和连接失败相关的参数202270382invalidSYNcookiesreceived --- 三次握手ack包,syncookies校验没通过; 13700572resetsreceivedforembryonicSYN_RECVsocke...
分类:
Web程序 时间:
2015-08-26 13:39:06
阅读次数:
151