三次握手
OSI七层参考模型
TCP/IP四层网络模型
传输层的任务就是负责主机中两个进程之间的通信,IP知道怎么把分组投递给哪个主机不知道怎么把它们投递给主机上的具体应用。简单的说,IP层提供主机到主机间的通信,UDP/TCP提供进程与进程之间的通信,应用层协议规定了进程通信时需遵守的规则和标准。UDP/TCP位于IP层的上层,应用协议的下层。
TCP提供在不可靠的互联网络上提供一个可靠的端到端传输,特点是:1.面向连接、2.可靠、3.基于字节流。下面看看三次握手怎样保证可靠连接的:
每一次TCP连接都需要三次握手:1.建立连接、2.数据传输、3.连接释放
第一次握手----客户端向服务器招手问你能收到吗?能的话回个话。:客户端首先向服务器发送SYN=1来创建一个主动打开,作为三次握手的一部分。客户端把这段连接的序号设定为随机数seq=client_isn=A;
第二次握手----服务器反馈说我能收到,你能收到吗?能的话回个话。:服务器收到连接后应当回应这次招手,给客户端返回一个SYN=1、ACK=A+1、SYN/ACK本身又有一个随机序号seq=server_isn=B;客户端收到服务器的反馈后,收到SYN=1、ACK=A+1、seq=server_isn=B,判断服务器能够正常回应。
第三次握手----客户端最后反馈说,我能收到:于是客户端又发送一个SYN=0、ACK=B+1、seq=A+2。当服务器端收到这个ACK的时候,知道了客户端能够正常发送信息,就完成了三次握手,并进入连接创建状态。
SYN攻击
在三次握手过程中,服务器发送SYN-ACK之后,收到客户端的ACK之前的TCP连接称为半连接。此时服务器处于SYN_RECV状态。当收到ACK后,服务器转入ESTABLISHED状态。
SYN攻击(攻击客户端)就是在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
四次挥手
服务器收到这个报文之后,心里想告诉一下服务器,让它别担心:客户端给服务器发送了一个ACK=Y、seq=x的报文表示自己已经知道了。
来源:CSDN
作者:小红1996
链接:https://blog.csdn.net/weixin_41431904/article/details/80852032