一.TCP协议TCP(TransmissionControlProtocol)传输控制协议,是TCP/IP协议族中最重要的协议之一,主要工作在运输层,和UDP不同,TCP提供面向流服务面向连接的可靠传输服务,虽然是面向字节流的,但TCP的传输单元却是报文段,一个报文分为首部信息和有效数据信息两部分,其中的..
分类:
其他好文 时间:
2016-05-16 11:14:41
阅读次数:
481
一、TCP的运输连接管理TCP是面向连接的协议。运输连接是用来传送TCP报文的。TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程,运输连接有三个阶段,即:连接建立,数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常的进行。在TCP连接建立..
分类:
其他好文 时间:
2016-05-16 00:24:00
阅读次数:
277
一.TCP的连接建立(三次握手)假定主机A运行的是TCP客户程序,而B运行的是TCP服务器程序。最初两端的TCP进程都是CLOSE(关闭)状态。A主动打开连接,而B被动打开连接。B的TCP服务器进程先创建传输控制块TCP,准备接受客户进程的连接请求。然后服务器进程就处于LISTEN(收听)状..
分类:
其他好文 时间:
2016-05-15 19:55:47
阅读次数:
197
1.TCP建立连接,三次握手 建立的TCP连接可靠的连接,必须经过三次握手建立连接才能正式通信彼此传输数数据。 客户端请求服务端建立连接 第一次握手:客户给服务发送一个请求报文SYN, 客户端的状态置SYN_SENT状态 第二次握手:服务端在收到客户端发过来的SYN请求报文后,开始给客户端发送ACK... ...
分类:
其他好文 时间:
2016-05-11 14:47:31
阅读次数:
149
TCP连接需三次握手才能建立,断开连接则需要四次握手。 客户端TCP状态迁移: CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED 服务器TCP状态迁移: CLOSED->LISTEN->SYN收到->ES ...
分类:
其他好文 时间:
2016-05-08 01:09:59
阅读次数:
351
在我们学习网络基础时,传输层的协议有TCP和UDP,在Linux网络编程中,我们使用socket API,实现网络通信。
那么: socket API 和 TCP 协议中各个状态是如何对应的呢?我们可以通过下图来看:
在socket系统调用中,如何完成三次握手和四次挥手:
SOCK_DGRAM,即UDP中的connect操作知识在内...
如果主机需要尽快关闭连接(或连接超时,或端口、主机不可达)时,发送RST包(RST表示复位)强制关闭TCP连接。发送RST包关闭连接时,可以丢弃缓存区的包直接发送RST包,而接收端收到RST包后,也不必发送ACK包来确认。
分类:
其他好文 时间:
2016-05-03 14:44:04
阅读次数:
175
建立TCP需要三次握手才能建立,而断开连接则需要四次挥手。整个过程如下图所示: 先来看看如何建立连接的。 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建 ...
分类:
Web程序 时间:
2016-04-25 22:32:09
阅读次数:
212
一直对这个问题知其然而不知其所以然,这些日子再次碰到,看了很多的资料,彻底解决一下,呵呵,先上个图,所有理解围绕着此图来看,此图描述了四次挥手的整个过程:通过此图先说明几个概念:TIME_WAIT的产生条件:主动关闭方在发送四次挥手的最后一个ACK会变为TIME_WAIT状态,..
分类:
其他好文 时间:
2016-04-25 19:46:03
阅读次数:
179
三次握手:第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到 ...
分类:
其他好文 时间:
2016-04-23 19:31:28
阅读次数:
175