摘要:
服务器端的资源分配是在二次握手时分配的,而客户端的资源是在完成三次握手时分配的,所以服务器 容易受到SYN洪泛攻击。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发 送SYN包,Server则回复确认包,并等待Client确认,由于源地址不存在,因此Server
阅读全文
posted @ 2021-08-08 23:09
超人不会灰啊
阅读(256)
推荐(0)
摘要:
其实第三次握手的时候,是可以携带数据的。但是,第一次、第二次握手不可以携带数据 为什么这样呢?大家可以想一个问题,假如第一次握手可以携带数据的话,如果有人要恶意攻击服务 器,那他每次都在第一次握手中的 SYN 报文中放入大量的数据。因为攻击者根本就不理服务器的接 收、发送能力是否正常,然后疯狂着重复
阅读全文
posted @ 2021-08-08 23:02
超人不会灰啊
阅读(469)
推荐(1)
摘要:
当一端为建立连接而发送它的SYN时,它为连接选择一个初始序号。ISN随时间而变化,因此每个连接 都将具有不同的ISN。ISN可以看作是一个32比特的计数器,每4ms加1 。这样选择序号的目的在于防止 在网络中被延迟的分组在以后又被传送,而导致某个连接的一方对它做错误的解释。 三次握手的其中一个重要功
阅读全文
posted @ 2021-08-08 23:00
超人不会灰啊
阅读(535)
推荐(0)
摘要:
服务器第一次收到客户端的 SYN 之后,就会处于 SYN_RCVD 状态,此时双方还没有完全建立其连接, 服务器会把此种状态下请求连接放在一个队列里,我们把这种队列称之为半连接队列。 当然还有一个全连接队列,就是已经完成三次握手,建立起连接的就会放在全连接队列中。如果队列满 了就有可能会出现丢包现象
阅读全文
posted @ 2021-08-08 22:45
超人不会灰啊
阅读(218)
推荐(0)
摘要:
弄清这个问题,我们需要先弄明白三次握手的目的是什么,能不能只用两次握手来达到同样的目的。 1.第一次握手:客户端发送网络包,服务端收到了。 这样服务端就能得出结论:客户端的发送能力、 服务端的接收能力是正常的。 2.第二次握手:服务端发包,客户端收到了。 这样客户端就能得出结论:服务端的接收、发送能
阅读全文
posted @ 2021-08-08 22:43
超人不会灰啊
阅读(292)
推荐(0)
摘要:
三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个 包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序 列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双
阅读全文
posted @ 2021-08-08 22:41
超人不会灰啊
阅读(63)
推荐(0)
摘要:
在 HTTP/1.0 中,一个服务器在发送完一个 HTTP 响应后,会断开 TCP 链接。但是这样每次请求都会重 新建立和断开 TCP 连接,代价过大。所以虽然标准中没有设定,某些服务器对 Connection: keep-alive 的 Header 进行了支持。意思是说,完成这个 HTTP 请求
阅读全文
posted @ 2021-08-08 17:12
超人不会灰啊
阅读(442)
推荐(0)
posted @ 2021-08-08 16:54
超人不会灰啊
阅读(173)
推荐(0)
摘要:
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层 通信协议。 1.source port 和 destination port 两者分别为「源端口号」和「目的端口号」。源端口号就是指本地端口,目的端口就是远程端口。 可以这
阅读全文
posted @ 2021-08-08 16:53
超人不会灰啊
阅读(623)
推荐(0)
摘要:
1.CLOSED:初始状态。 2.LISTEN:服务器处于监听状态。 3.SYN_SEND:客户端socket执行CONNECT连接,发送SYN包,进入此状态。 4.SYN_RECV:服务端收到SYN包并发送服务端SYN包,进入此状态。 5.ESTABLISH:表示连接建立。客户端发送了最后一个AC
阅读全文
posted @ 2021-08-08 16:35
超人不会灰啊
阅读(609)
推荐(0)
摘要:
1.序号(32bit):传输方向上字节流的字节编号。初始时序号会被设置一个随机的初始值(ISN),之 后每次发送数据时,序号值 = ISN + 数据在整个字节流中的偏移。假设A -> B且ISN = 1024,第一段 数据512字节已经到B,则第二段数据发送时序号为1024 + 512。用于解决网络
阅读全文
posted @ 2021-08-08 16:20
超人不会灰啊
阅读(428)
推荐(0)
摘要:
max-age 指令出现在请求报文,并且缓存资源的缓存时间小于该指令指定的时间,那么就能接受该缓 存。 max-age 指令出现在响应报文,表示缓存资源在缓存服务器中保存的时间。 Cache-Control: max-age=31536000 Expires 首部字段也可以用于告知缓存服务器该资源什
阅读全文
posted @ 2021-08-08 16:13
超人不会灰啊
阅读(148)
推荐(0)
摘要:
MTU:maximum transmission unit,最大传输单元,由硬件规定,如以太网的MTU为1500字节。 MSS:maximum segment size,最大分节大小,为TCP数据包每次传输的最大数据分段大小,一般由发送 端向对端TCP通知对端在每个分节中能发送的最大TCP数据。MS
阅读全文
posted @ 2021-08-08 16:10
超人不会灰啊
阅读(519)
推荐(0)
摘要:
客户端向服务端发送请求链接数据包,服务端向客户端发送确认数据包,客户端不向服务端发送确认数 据包,服务器一直等待来自客户端的确认 没有彻底根治的办法,除非不使用TCP DDos 预防: 1)限制同时打开SYN半链接的数目 2)缩短SYN半链接的Time out 时间 3)关闭不必要的服务
阅读全文
posted @ 2021-08-08 15:36
超人不会灰啊
阅读(65)
推荐(0)
摘要:
42、Session和cookie应该如何去选择(适用场景)? Cookie 只能存储 ASCII 码字符串,而 Session 则可以存储任何类型的数据,因此在考虑数据复杂性时 首选 Session; Cookie 存储在浏览器中,容易被恶意查看。如果非要将一些隐私数据存在 Cookie 中,可以
阅读全文
posted @ 2021-08-08 15:33
超人不会灰啊
阅读(151)
推荐(0)
摘要:
40、Session是什么? 除了可以将用户信息通过 Cookie 存储在用户浏览器中,也可以利用 Session 存储在服务器端,存储在服 务器端的信息更加安全。 Session 可以存储在服务器上的文件、数据库或者内存中。也可以将 Session 存储在 Redis 这种内存型数 据库中,效率会
阅读全文
posted @ 2021-08-08 15:31
超人不会灰啊
阅读(166)
推荐(0)
摘要:
38、POST 方法比 GET 方法安全? 有人说POST 比 GET 安全,因为数据在地址栏上不可见。 然而,从传输的角度来说,他们都是不安全的,因为 HTTP 在网络上是明文传输的,只要在网络节点上 捉包,就能完整地获取数据报文。 要想安全传输,就只有加密,也就是 HTTPS。 39、POST
阅读全文
posted @ 2021-08-08 15:20
超人不会灰啊
阅读(459)
推荐(0)
摘要:
36、GET 方法参数写法是固定的吗? 在约定中,我们的参数是写在 ? 后面,用 & 分割。 我们知道,解析报文的过程是通过获取 TCP 数据,用正则等工具从数据中获取 Header 和 Body,从而提取参数。 比如header请求头中添加token,来验证用户是否登录等权限问题。 也就是说,我们
阅读全文
posted @ 2021-08-08 15:19
超人不会灰啊
阅读(165)
推荐(0)
摘要:
1.private 指令规定了将资源作为私有缓存,只能被单独用户使用,一般存储在用户浏览器中。 Cache-Control: private 2.public 指令规定了将资源作为公共缓存,可以被多个用户使用,一般存储在代理服务器中。 Cache-Control: public
阅读全文
posted @ 2021-08-08 14:33
超人不会灰啊
阅读(84)
推荐(0)
摘要:
递归解析 当局部DNS服务器自己不能回答客户机的DNS查询时,它就需要向其他DNS服务器进行查询。此时有两 种方式。局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询, 再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS服务器,再由局部DNS服务器
阅读全文
posted @ 2021-08-08 14:32
超人不会灰啊
阅读(746)
推荐(0)
摘要:
0-1023为知名端口号,比如其中HTTP是80,FTP是20(数据端口)、21(控制端口) UDP和TCP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。动态端口的范围是从 1024到65535
阅读全文
posted @ 2021-08-08 14:20
超人不会灰啊
阅读(586)
推荐(0)
摘要:
答:ARPANET 的研制经验表明,对于复杂的计算机网络协议,其结构应该是层次式的。 分层的好处: ①隔层之间是独立的 ②灵活性好 ③结构上可以分隔开 ④易于实现和维护 ⑤能促进标准化工作。
阅读全文
posted @ 2021-08-08 14:20
超人不会灰啊
阅读(247)
推荐(0)
摘要:
概括: 反向地址转换协议,网络层协议,RARP与ARP工作方式相反。 RARP使只知道自己硬件地址的 主机能够知道其IP地址。RARP发出要反向解释的物理地址并希望返回其IP地址,应答包括能够提供所 需信息的RARP服务器发出的IP地址。 原理: (1)网络上的每台设备都会有一个独一无二的硬件地址,
阅读全文
posted @ 2021-08-08 14:17
超人不会灰啊
阅读(1009)
推荐(0)
摘要:
攻击者在HTTP请求中注入恶意的SQL代码,服务器使用参数构建数据库SQL命令时,恶意SQL被一起构 造,并在数据库中执行。 用户登录,输入用户名 lianggzone,密码 ‘ or ‘1’=’1 ,如果此时使用参数构造的方式,就会出现 select * from user where name
阅读全文
posted @ 2021-08-08 14:12
超人不会灰啊
阅读(85)
推荐(0)
摘要:
HTTP作为无状态协议,必然需要在某种方式保持连接状态。这里简要介绍一下Cookie和Session。 Cookie Cookie是客户端保持状态的方法。 Cookie简单的理解就是存储由服务器发至客户端并由客户端保存的一段字符串。为了保持会话,服务 器可以在响应客户端请求时将Cookie字符串放在
阅读全文
posted @ 2021-08-08 13:07
超人不会灰啊
阅读(74)
推荐(0)
摘要:
除了可以将用户信息通过 Cookie 存储在用户浏览器中,也可以利用 Session 存储在服务器端,存储在服 务器端的信息更加安全。 Session 可以存储在服务器上的文件、数据库或者内存中。也可以将 Session 存储在 Redis 这种内存型数 据库中,效率会更高。 使用 Session
阅读全文
posted @ 2021-08-08 13:05
超人不会灰啊
阅读(72)
推荐(0)
摘要:
24、Cookie是什么? HTTP 协议是无状态的,主要是为了让 HTTP 协议尽可能简单,使得它能够处理大量事务,HTTP/1.1 引 入 Cookie 来保存状态信息。 Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器之后向同一服务器再次发 起请求时被携带上,用于告
阅读全文
posted @ 2021-08-08 11:52
超人不会灰啊
阅读(723)
推荐(0)
摘要:
http协议是一个应用层协议,其报文分为请求报文和响应报文当客户端请求一个网页时,会先通过http协议将请求的内容封装在http请求报文之中,服务器收到该请求报文后根据协议规范进行报文解析,然后向客户端返回响应报文。 请求报文 1.请求行:Request Line 2.请求头:Request Hea
阅读全文
posted @ 2021-08-08 11:14
超人不会灰啊
阅读(522)
推荐(0)
摘要:
将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。 公钥加密计算量太大,如何减少耗用的时间? 每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由 于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身
阅读全文
posted @ 2021-08-08 01:03
超人不会灰啊
阅读(653)
推荐(0)
摘要:
(1)客户端向服务器端发起SSL连接请求; (2) 服务器把公钥发送给客户端,并且服务器端保存着唯一的私钥 (3)客户端用公钥对双方通信的对称秘钥进行加密,并发送给服务器端 (4)服务器利用自己唯一的私钥对客户端发来的对称秘钥进行解密 (5)进行数据传输,服务器和客户端双方用公有的相同的对称秘钥对数
阅读全文
posted @ 2021-08-08 01:01
超人不会灰啊
阅读(93)
推荐(0)