TCP特性:
1、工作在传输层
2、面向连接
3、全双工协议
4、半开关
5、错误检查
6、将数据包打包成断,排序
7、确认机制
8、数据恢复,重传
9、流量控制,滑动窗口
更多关于tcp的内核参数,可参看man 7 tcp 详细解释
tcp要建立链接
系统当中没打开一个进程会配pid(系统中的编号,方便管理)
控制位: 来决定
ACK FIN SYN 同步
finsh
tcp A 和B
A想和B建立连接状态 :syn=1
A和B已经建立连接状态:ACK=1
A和B 已经断开连接:fin=1
三类:
1、规定好的 知名端口号是20 443 人为规定
2、系统随机分配(客户端去访问服务端系统会自动随机分配一个端口号给你)
3、人类自由使用
去访问服务器
下载文件(FTP,TFTP,nfs),访问网页(apche nginx tomact ISIS)
安装软件
提供服务器 我们的端口号一定要固定
客户端--------A服务端
Telnet:
可以远程连接:远程控制服务器
Telnet ip地址 端口号 查看端口号是否打开
tcp 面向连接,在我真正传输数据之前 先要打开传输数据的通道和A和B要先联系上
控制位:决定A和B目前处于什么状态??11种了解
ACK FIN SYN
tcp A和B 目前处于什么状态???
A和B请求建立连接状态 syn=1 同部位
A和B已经建立连接状态 ACK=1
A和B 已经断开连接 fin=1
控制位:
URG(紧急位):是否有紧急数据
ACK(确认位):前面确认号字段是否有效
PSH(急切位):提示接收端应用程序应该立即从TCP接收缓冲区种读走数据,为接收数据腾出空间。
RST(重置位):如果收到一个rst=1的报文,说明与主机的链接出现了严重错误(如主机崩溃),必须释放连接,然后重新建立连接。
SYN(同步位):在建立连接时使用,用来同步序号。
FIN(断开位):表示通知对方 本端要关闭连接了,标记数据是否发送完毕。
检验和:提供额外的可靠性紧急指针:标记紧急数据字段中的位置。
选项部分:其最大长度可根据tcp首部长度进行推算。TCP首部长度用4位表示,选项部分最长为:(2^4-1)*4-20=40字节
TCP的连接
5.1 TCP连接(三次握手)
首先,想给大家一张两台PC进行通讯的三次握手内容图进行分析:
如图所示,PC1微客户端,PC2为服务端,PC1需要向PC2进行请求建立连接
第一步:pc1会发送一个请求建立连接的报文,这个报文以下几个内容:
1、报文的序号(Seq=x)
2、同步位由于PC1和PC2还没有建立连接处于请求建立连接的状态,所以同步位SYN=1,确认位ACK=0。
第二步:pc2收到pc1请求建立连接的报文后,同意pc1的建立连接,所以需要回复一个报文给pc1,pc2发送的报文内容有以下几点:
1、报文的序号(Seq=y)
2、Ack确认号为x+1,即pc2需要pc1回复一个报文序号为x+1的报文
3、控制位SYN=1 ACK=1 ACK=1 pc2同意pc1请求建立连接的请求,即确认位为1,同步为1
第三步:pc1收到pc2的回复报文后
1、会发送一个报文序号为x+1的报文,即Seq=x+1
2、Ack确认号为x+1,即pc2需要pc1请求建立连接的请求,即确认位为1,同步位为1
3、最后将ACK=1封装进数据包中,这时候pc1与pc2已经建立连接同步SYN=0
TCP断开(四次挥手)
下图为TCP断开连接的图片解析
客户A和服务器B都处于建立连接的状态,此时客户A主动与服务器B发出断开连接的请求: 第一步:客户A会发送一个序号为Seq=u的报文给服务器B,此时控制位中的断开位FIN=1,即请求与服务器B断开连接。(PS:此时客户A处于等待断开连接的状态,服务器B的数据传送未结束)
第二步:服务器B需要先将数据传输全部传输结束才能同意断开连接,服务器B会进行下面两步操作:
2.2 服务器B会回复一个报文序号为v的报文给客户A(Seq=1)
需要客户A能回复一个报文序号为u+1的报文给服务器B(确认号ack-u+1)
此时服务器B与客户A仍处于建立连接的状态所以控制位的确认位ACK=1
2.3 服务器B同意了客户A的断开连接请求:服务器B会回复一个同意断开连接的报文:
服务器B发出的报文的序号为w(Seq=w)
需要客户A回复一个报文序号为u+1的报文给服务器B(Ack=u+1)
此时的控制位中,断开位FIN=1,确认位ACK=1(2个控制位表示同意断开连接)
第三步:客户A接收完服务器传输的数据后,收到了服务器B的同意断开连接请求,这个时候客户A会发送一个确认报文给服务器B:
按照服务器B要求,客户A回复了一个报文序号为u+1的报文给服务器B(Seq=u+1)
控制位中确认位为1(ACK=1)
需要服务器B回复客户A一个报文序号为w+1的报文给客户A(此时客户A与服务器相当于完全断开连接,所以客户A最后发送的报文将会被服务器B拒收,服务器B将不再回复客户A)
总结
本章的重点主要是理解,TCP与UDP协议的特性和优缺点对比,重点理解传输层中TCP的三次握手中控制位处于什么状态以及变化。
标签:断开连接,ACK,报文,特性,TCP,传输层,服务器,连接 From: https://www.cnblogs.com/fengxia6/p/16661795.html