TCP协议
TCP协议(传输控制协议),是一种面向连接的、可靠的、基于字节流的传输通信协议,是为了在不可靠的互联网上建立可靠的端到端的字节流传输而设计的协议
TCP/IP原理
TCP/IP协议不是TCP和IP这两个协议的组合,而是指整个因特网的TCP/IP族,从协议分层来说,TCP/IP协议分为四个层次,网络接口层,网络层,传输层,应用层。
3次握手
第一次
主机A,发送一个状态码(位码)SYN=1,和一个随机生成的测试数据包(seq number = 123******)到主机B,主机B由SYN=1知道了这是A要求联机。
第二次
主机B,向请求来源主机A,发送一个由数条数据信息组成的数据包(ack number = A发过来的seq number + 1 / SYN = 1/ ACK = 1/随机产生的数据包 seq number = 987*****),确认联机信息
第三次
主机A,收到B发送的信息包之后,检查ack number(第一次握手A发送给B的seq number 和位码ack 是否为1)是否正确,如果正确,则主机A再次向主机B发送一个数据包(B第二次握手发给A的seq number + 1 和 位码 ack = 1),主机B收到之后检验ack number是否正确,正确则两机正式建立连接。
4次挥手
tcp建立连接需要3次握手,而tcp断开连接则需要4次挥手才能实现,这是由于TCP的半关闭(TCP连接是全双工的,数据可在两个方向上同时传递,即,可同时从A向B传递,B也可以同时向A发送数据包)造成的,所以每个方向都需要单独关闭,这个单方向关闭,就是半关闭,当一方完成他的数据发送任务,就发送一个FIN来向另一方通知将要关闭这个方向的连接
第一次
首先,A向B发送一个FIN,用来关闭客户端到服务器的数据传输,然后等待服务器确认,其中终止标志位FIN = 1,序列号 seq = u
第二次
服务器收到一个FIN,他向A发回一个ACK,确认号为收到的ACK加1
第三次
关闭服务器到客户端的连接:也是发送一个FIN给客户端
第四次
客户端收到FIN后,向服务器发送一个ACK保温确认,并确认seq为收到的序号加1
然后A主动关闭,B被动关闭(先进行关闭的一方主动关闭,另一方被动关闭)
网友评论