http工作原理,TCP 的三次握手客户端,四次挥手….
http工作原理
1 2 3 4 5 6 7
| 1.地址进行dns解析,将url解析出对应的内容 2.封装http请求数据包 3.封装成tcp包,建立tcp连接(tcp的三次握手) 4.客户端发送请求 5.服务器接收请求,发送响应 6.客户端接收响应,进行页面渲染 7.服务器关闭TCP连接(TCP的四次挥手)
|
TCP 的三次握手客户端
1 2 3 4
| 1. 第一次握手:建立连接时,客户端发送syn包到服务器,并进入syn_sent状态,等待服务器确认; syn:同步序列编号 2. 第二次握手: 服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己发送一个syn包(seq=k),即syn+ack包每次是服务器进入syn_recv状态 3. 第三次握手:客户端收到服务器的syn+ack包,向服务器发送确认包ack(ack=k+1),此包发送完毕,客户端和服务端进入连接成功状态
|
三次握手缺点
1 2 3
| syn-flood攻击是最常见的DDoS攻击,也是最经典的拒绝服务攻击. 利用TCP协议实现的一个缺陷,通过像网络服务所在端口发送大量伪造源地址的攻击报文,就可能造成目标服务器中的半开连接队被沾满,从而阻止其他合法用户进行访问. 数据包特征: 源发送了大量的syn包,并缺少了三次握手的最后一步握手ack回复
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 原理:攻击者首先伪造地址对 服务器发起SYN请求,服务器回应(SYN+ACK)包,而真实的IP会认为,我没有发送请求,不作回应。服务器没有收到回应,这样的话,服务器不知道(SYN+ACK)是否发送成功,默认情况下会重试5次(tcp_syn_retries) 这样的话,对于服务器的内存,带宽都有很大的消耗。攻击者如果处于公网,可以伪造IP的话,对于服务器就很难根据IP来判断攻击者,给防护带来很大的困难。 解决办法: 1. 无效连接监视释放 这种方法不停的监视系统中半开连接和不活动连接,当达到一定阈值时拆除这些连接,释放系统资源。 2. 延缓TCB分配方法 SYN Flood关键是利用了,SYN数据报文一到,系统立即分配TCB资源,从而占用了系统资源,因此有俩种技术来解决这一问题 Syn Cache技术 这种技术在收到SYN时不急着去分配TCB,而是先回应一个ACK报文,并在一个专用的HASH表中(Cache)中保存这种半开连接,直到收到正确的ACK报文再去分配TCB Syn Cookie技术 Syn Cookie技术则完全不使用任何存储资源,它使用一种特殊的算法生成Sequence Number,这种算法考虑到了对方的IP、端口、己方IP、端口的固定信息,以及对方无法知道而己方比较固定的一些信息,如MSS、时间等,在收到对方 的ACK报文后,重新计算一遍,看其是否与对方回应报文中的(Sequence Number-1)相同,从而决定是否分配TCB资源。 3.使用SYN Proxy防火墙 原理:对试图穿越的SYN请求进行验证之后才放行
|
四次挥手
1 2 3 4
| 第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish) 第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段) 第三步,主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段 第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接彻底释放
|
Http协议和Https协议的区别
1 2 3 4 5
| HTTP协议是使用明文数据传输的网络协议,明文传输会让用户存在一个非常大的安全隐患。端口80
HTTPS协议可以理解为HTTP协议的安全升级版,就是在HTTP的基础上增加了数据加密。端口443
HTTPS协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议要比HTTP协议安全。
|
HTTP协议特点
1 2 3 4
| - HTTP协议是超文本传输协议; - HTTP协议是一个应用层协议; - 无连接:每次请求都是独立的; - 无状态,表示客户端每次请求都不能记录请求状态,就是两条请求直接不可通信。
|