毫无疑问,TCP中有关网络编程最不容易理解的是它的TIME_WAIT状态,TIME_WAIT状态存在于主动关闭socket连接的一方。
TIME_WAIT状态存在的理由:
TCP/IP协议就是这样设计的,是不可避免的。主要有两个原因:
1)可靠地实现TCP全双工连接的终止
TCP协议在关闭连接的四次握手过程中,最终的ACK是由主动关闭连接的一端(后面统称A端)发出的,如果这个ACK丢失,...
分类:
其他好文 时间:
2015-05-23 20:08:19
阅读次数:
149
在摸索中学习,在学习中掌掴。设备为华为BBU中UMPT面板标识E1/T1先引入一个概念TDM(TimeDivsionMultipleing)技术,即时分复用技术TDD(时分双工)属于半双工(模拟全双工)通信技术,只占用一个信道(载波),在不同的时隙实现收发,在不对称业务(上下行流量相差大)有着非常强..
分类:
其他好文 时间:
2015-05-15 16:00:50
阅读次数:
141
在摸索中学习,在学习中掌掴。设备为华为BBU中UMPT面板标识E1/T1先引入一个概念TDM(TimeDivsionMultipleing)技术,即时分复用技术TDD(时分双工)属于半双工(模拟全双工)通信技术,只占用一个信道(载波),在不同的时隙实现收发,在不对称业务(上下行流量相差大)有着非常强..
分类:
其他好文 时间:
2015-05-15 15:58:13
阅读次数:
143
概述:TCP传输前先要建立连接TCP在传输层点对点,一条TCP只能连接两个端点可靠传输、无差错、不丢失、不重复、按顺序全双工字节流TCP报文段TCP报文段的报头前20字节是固定的,后面4n字节是根据需要而添加的。20字节的固定部分:源端口和目的端口:分别写入源端口号和目的端口号序号:0-(2^32-...
分类:
其他好文 时间:
2015-05-08 23:48:41
阅读次数:
281
管道和FIFO作为最初的UNIX IPC形式,现在已用得较少。SocketPair可作为全双工版本的管道,较为常用,这里简单做个笔记管道* 只用于有亲缘关系的进程间通信* 单向,即半双工 (双向方法:1 使用2个管道 2 使用SocketPair)* pipe() => write()/read()...
分类:
其他好文 时间:
2015-05-06 12:24:14
阅读次数:
155
golang控制channel的出入口我们常常使用channel来在多个goroutine之间做数据通讯,但是chan作为函数的入参我们应该怎么写呢?也许有人觉得这个问题比较傻,不过这个还真的是我今天才知道的.首先我们看看下面的代码:func main() {
c := make(chan int)
go in(c)
go out(c)
time.Sleep(time...
分类:
其他好文 时间:
2015-05-01 23:54:55
阅读次数:
349
转自:http://www.cnblogs.com/cy568searchx/p/3711670.html由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连...
分类:
其他好文 时间:
2015-04-26 15:03:30
阅读次数:
198
作为进程间通信及网络通信的一种重要技术,在实际的开发中,socket编程是经常被用到的。关于socket编程的一般步骤,这里不再赘述,相关资料和文章很多,google/baidu即可。本文主要是探讨如何更好地进行socket读写处理,以及如何检测连接断开。首先,有以下几点需要注意:对于全双工的soc...
分类:
其他好文 时间:
2015-04-25 00:06:37
阅读次数:
190
连接中断处理
在客户端和服务端建立起连接之后,如果连接发生了意外中断,Netty也会及时释放连接句柄资源(因为TCP是全双工协议,通信双方都需要关闭和释放Socket句柄才不会发生句柄的泄漏,如不经过特殊处理是会发生句柄泄露的),原理如下:
在读取数据时会调用io.netty.buffer.AbstractByteBuf.writeBytes(ScatteringByteChannel, in...
分类:
Web程序 时间:
2015-04-20 09:31:39
阅读次数:
206