名词解释:
TCP:Transmission Control Protocol 传输控制协议
tcp标志位有6种:
SYN:synchronous 建立连接
ACK:acknowledgement 确认
PSH:push 传送
FIN:finish 结束
RST:reset 重置
URG:urgent 紧急
SEQ:sequence number 顺序号码 ACK:acknowledge number 确认号码
要理解好三次握手和四次挥手,最好先理解一下TCP报文首部格式:
源端口: 占16bit,标志发送该TCP报文段的应用进程,同时也可以看出,电脑的端口号最大就是65535。
目的端口: 占用16bit,用来标志接收该TCP报文段的应用进程
序号: 占32位比特,取值范围 [0,2^32 - 1],序号增加到最后一个后,下一个序号就又回到0。
确认号: 占32比特,取值范围 [0,2^32 - 1],确认号增加到最后一个后,下一个确认号就又回到0
数据偏移: 占4比特,并以4字节为单位。
保留位: 占6比特,保留为今后使用,但目前应置为0
标志位: 一共6个,各占1位
紧急标志位URG: 取值为1时紧急指针字段有效
标志位ACK:取值为1时,确认序号号字段才有效
TCP规定,在连接建立后,所有传送TCP报文段都必须把ACK置1
终止标志位FIN: 用来释放TCP连接。
文字解释:
第一次握手:
客户端 -------SYN=1 序号=x ------> 服务端
第二次握手
客户端 <----ACK=1 SYN=1 序号=y 确认序号=x+1 -------服务端
第三次握手
客户端 ----- ACK=1 序号=x+1 确认序号=y+1----->服务端