TCP的协议文档对TCP的一些规定:文档名称-RFC793  TCP消息头的控制位 URG:紧急指针字段有效 ACK:确认头部字段有效 PSH:强制函数 RST:重置链接 SYN:同步系列号码 FIN:再没有来自发送者的数据 TCP连接过程的各种状态及意义 LISTEN:等待任何从远端TCP和端口的连接请求 SYN-SENT:发送一个连接请求以后等待一个匹配的连接请求 SYN-RECEIVED:发送一个连接请求并收到匹配的连接请求以后等待连接请求被确认 ESTABLISHED:表示一个打开的连接…
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web 服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型 有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: 1.网络中进程之间如何通信? 2.Socket是什么? 3.socket的基本操作 3.1.socket()函数 3.2.bind()函数 3.3.listen().…
http://blog.csdn.net/whuslei/article/details/6667471(三次握手与四次握手) 1. TCP的三次握手最主要是防止已过期的连接再次传到被连接的主机. 如果采用两次的话,会出现下面这种情况.比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机:于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接.传完东西后,断开. 结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上了,这个时候B…
为什么建立TCP连接需要三次握手? 原因:为了应对网络中存在的延迟的重复数组的问题 例子: 假设client发起连接的连接请求报文段在网络中没有丢失,而是在某个网络节点长时间滞留了,导致延迟到达server.本来这是一个已经失效的连接报文,但是server接收到这个连接报文之后,误认为client发起了新的连接,于是向client发送确认报文段.此时因为没有了连接的3次握手,client不会对server的确认报文作出回应,也不会向server发送数据,server就以为连接已经建立,一直在空等…
TCP传输控制协议是面向连接的可靠的传输层协议,在进行数据传输之前,需要在传输数据的两端(客户端和服务器端)创建一个连接,这个连接由一对插口地址唯一标识,即是在IP报文首部的源IP地址.目的IP地址,以及TCP数据报首部的源端口地址和目的端口地址.TCP首部结构如下: 其中在TCP连接和断开连接过程中的关键部分如下: 1.源端口号:即发送方的端口号,在TCP连接过程中,对于客户端,端口号往往由内核分配,无需进程指定: 2.目的端口号:即发送目的的端口号: 3.序号:即为发送的数据段首个字节的序号…
用wireshark 抓包,看看tcp 断开连接的过程.  以前书上说tcp断开连接,4次握手,可我为什么wireshark 只能抓到3个包? 百度一下,别人也有类似的疑问. [求助]书上和网上的资料说,TCP拆除连接需要四次握手.但是本人多次用wireshark抓包,都只能截到三个包 在网上搜索了很久都没有找到满意的解释.由于本人要填写实验报告,结果这样子就没法填了. 按照理论,TCP断开连接时应该是这样的: 1.客户端向服务器发送FIN包 2.服务器向客户端发送ACK包 3.服务器向客户端发…
TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(发送序列) Acknowledge number(确认序列)…
三次握手建立连接    第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机: 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包 第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B…
三次握手连接 A: 我进来了啊 B:(有人来了安排个位子)回复:好的你进来吧 A:好的: 客户端向服务器发送一个SYN J 服务器向客户端响应一个SYN K,并对SYN J进行确认ACK J+1 客户端再想服务器发一个确认ACK K+1 四次握手释放 A: 我要走了 B:好的 B:(收回位子)回复:你走吧 A:88 某个应用进程首先调用close主动关闭连接,这时TCP发送一个FIN M: 另一端接收到FIN M之后,执行被动关闭,对这个FIN进行确认.它的接收也作为文件结束符传递给应用进程,因…
四次挥手 ACK建立连接之后都为1. 1.A发送释放连接报文段,FIN=1. 2.B收到并回复确认,TCP进入半关闭状态,即此时B能向A发送,但是A无法向B发送数据. 3.当B传输完所有数据之后,发送连接释放报文段,FIN=1. 4.A收到后发出确认,进入等待关闭状态,持续2MSL释放连接. 5.B收到A确认释放连接,B关闭连接. 四次挥手原因:客户端发送FIN释放连接信号啊后,服务器收到信号,就进入等待关闭(CLOSE-WAIT)状态,这个状态是因为此时服务器可能还没传输完数据,传输完毕后由服…