计算机网络知识--三次握手与四次挥手
计算机网络的七层分布:
物理层:以二进制数据形式在物理机上传输数据
数据链路层:传输有地址的帧以及错误检测功能,常用协议:SLTP,CSLIP,PPP,ARP,RARP,MTU
网络层:为数据包选择路,常用协议:IP,ICMP,RIP,OSPF,BGP,ICMP
传输层:提供端对端的接口服务,常用协议:TCP,UDP
会话层:解除或建立与别的接点的联系
表示层: 数据格式化,代码转换,数据加密
应用层:文件传输,电子邮件,文件服务,虚拟终端,常用协议:TFTP,HTTP,SNMP,FTP,SMTP,DNS,TELNET
计算机网络的四层分布
应用层(应用层,表示层,会话层)
传输层
网络层
链路层(数据链路层,物理层)
传输控制协议TCP(Transfer Contrl Protocol)简介
面向连接的,可靠的,基于字节流的传输层协议
将应用层的数据流分割成报文段并发送给目标节点的TCP层
数据包都有序号,对方收到则发送ACK确认,未收到则和重传
使用校验和来检验数据在传输过程中是否有误
TCP Flags:
URG: 紧急指针标志
ACK:确认序号标志
PSH:push标志
RST: 重置连接标志
SYN: 同步序号,用于建立连接过程
FIN: finish标志,用于释放连接
TCP三次握手:
握手是为了建立连接
image.png在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接
第一次握手
建立连接时,客户端发送SYN包(SYN=J)到服务器,并进入到SYN_SEND状态,等待服务器确认
第二次握手:
服务器收到SYN包后,必须确认客户端发送的SYN(ack=j+1),同时也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态
第三次握手:
客户端收到服务器发送的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端与服务器进入ESTABLISHED状态,完成三次握手
TCP四次挥手
挥手是为了终止连接,采用四次挥手来释放连接
image.png第一次挥手
客户端发送个一FIN,用来关闭客户端与服务器的数据传送,客户端进行FIN_WAIT1状态
第二次挥手
服务端收到客户端发送的FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务器进行到CLOAS_WAIT状态
第三次挥手
服务器发送一个FIN,用来关闭服务器与客户端的数据传送,服务器进入到LAST_ACK状态
第四次挥手
客户端收到服务器发送的FIN后,客户端进入到TIME_WAIT状态,接口发送一个ACK给服务器,确认序号为收到序号+1,服务器进入CLOSED状态,完成四次挥手