-
当用户输入域名时,浏览器先检查自己的缓存中是否有这个域名映射的 ip 地址,如果有解析结束。
-
若没命中,则检查操作系统缓存(如 Windows 的 hosts)中有没有解析过的结果,有解析结束。
-
若无命中,则请求本地域名服务器解析( LDNS)。
-
若 LDNS 没有命中就直接跳到根域名服务器请求解析。根域名服务器返回给 LDNS一个 主域名服务器地址。
-
此时 LDNS 再发送请求给上一步返回的 gTLD( 通用顶级域), 接受请求的 gTLD 查找并返回这个域名对应的 Name Server 的地址
-
Name Server 根据映射关系表找到目标 ip,返回给 LDNS
-
LDNS 缓存这个域名和对应的 ip, 把解析的结果返回给用户,用户根据 TTL 值缓存到本地系统缓存中,域名解析过程至此结束
02
DNS攻击
03
DNS攻击防范
-
安全更新:
及时升级所有相关软件和操作系统补丁,并确保所有设备都有最新版本的安全防护软件。
-
配置正确的权限:
只给予必要用户相应权限,并禁止使用弱密码进行登录。
-
加密传输:
使用加密技术(例如SSL / TLS)来保护敏感数据在传输过程中不受干扰或泄露。
-
多层次验证机制:
在登录系统前先经过多重身份验证, 以此增强账户安全性
-
增加容错机制:
对于核心业务建立冷备和热备,在一旦发生故障时,可以快速切换到备份系统上,降低业务中断的风险。
RIP 动态路由选择协议(网络层协议),
RIP 是一种基于距离矢量(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量来衡量到达目的网络的路由距离。RIP 通过 UDP 报文进行路由信息的交换,使用的端口号为 520。
01
工作原理:
RIP 路由协议用“
更新(UNPDATES)
”和“
请求(REQUESTS)
”这两种分组来传输信息的。每个具有 RIP 协议功能的路由器每隔 30 秒用 UDP520 端口给与之直接相连的机器广播更新信息。并且在(用“路程段数”(即“跳数”)作为网络距离的尺度。每个路由器在)给相邻路由器发出路由信息时,都会给每个路径加上内部距离
02
路由器的收敛机制:
任何距离向量路由选择协议(如 RIP)都有一个问题,
路由器不知道网络的全局情况,路由器必须依靠相邻路由器来获取网络的可到达信息
。由于路由选择更新信息在网络上传播慢,距离向量路由选择算法有一个慢收敛问题,这个问题将导致不一致性产生。
03
RIP 较少路由收敛机制带来的问题:
-
记数到无穷大机制
:RIP 协议允许最大跳数为 15。大于 15 的目的地被认为是不可达。当路径的跳数超过 15,这条路径才从路由表中删除。
-
水平分割法
:路由器不向路径到来的方向回传此路径。当打开路由器接口后,路由器记录路径是从哪个接口来的,并且不向此接口回传此路径。
-
破坏逆转的水平分割法
:忽略在更新过程中从一个路由器获取的路径又传回该路由器
-
保持定时器法
:防止路由器在路径从路由表中删除后一定的时间内(通常为 180 秒)接受新的路由信息。保证每个路由器都收到了路径不可达信息
-
触发更新法
: 当某个路径的跳数改变了,路由器立即发出更新信息,不管路由器是否到达常规信息更新时间都发出更新信息。
04
RIP的特点
-
由于15跳为最大值,RIP 只能应用于小规模网络;
-
收敛速度慢;
-
根据跳数选择的路由,不一定是最优路由。
05
OSPF 的工作原理
OSPF(Open Shortest Pass First,开放最短路径优先协议),是一个最常用的内部网管协议,是一个链路状态协议。(网络层协议,)
06
原理:
OSPF 组播的方式在所有开启 OSPF 的接口发送 Hello 包,用来确定是否有 OSPF 邻居,若发现了,则建立 OSPF 邻居关系,形成邻居表,之后互相发送 LSA(链路状态通告)相互通告路由,形成 LSDB(链路状态数据库)。再通过 SPF 算法,计算最佳路径(cost 最小)后放入路由表
-
TCP 面向连接(如打电话要先拨号建立连接)提供可靠的服务;UDP 是无连接的,即发送数据之前不需要建立连接,;UDP 尽最大努力交付,即不保证可靠交付。(由于 UDP 无需建立连接,因此 UDP 不会引入建立连接的时延,TCP 需要在端系统中维护连接状态,比如接受和发送缓存,拥塞控制,序号与确认号的参数等,故 TCP 会比 UDP 慢)
-
UDP 具有较好的
实时性
,工作效率比 TCP 高,适用于对高速传输和实时性有较高的通信或广播通信。
-
每一条 TCP 连接只能是一对一的;UDP 支持一对一,一对多,多对一和多对多的交互通信
-
UDP 分组首部开销小,TCP 首部开销 20 字节;UDP 的首部开销小,只有 8 个字节。
-
TCP 面向字节流,实际上是 TCP 把数据看成一连串无结构的字节流;UDP 是面向报文的(一次交付一个完整的报文,报文不可分割,报文是 UDP 数据报处理的最小单位)。
-
UDP 适合一次性传输较小数据的网络应用,如 DNS,SNMP 等
01
什么是三次握手四次挥手?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 状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据
四次挥手:
客户端先发送 FIN,进入 FIN_WAIT1 状态,用来关闭 Client 到 Server 的数据传送服务端收到 FIN,发送 ACK,进入 CLOSE_WAIT 状态,客户端收到这个 ACK,进入 FIN_WAIT2状态
服务端发送 FIN,进入 LAST_ACK 状态,用来关闭 Server 到 Client 的数据传送客户端收到 FIN,发送 ACK,进入 TIME_WAIT 状态,服务端收到 ACK,进入 CLOSE 状态(等待 2MSL 时间,约 4 分钟。主要是防止最后一个 ACK 丢失。)
第一次挥手:主动关闭方发送一个 FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在 fin 包之前发送出去的数据,如果没有收到对应的 ack 确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。
第二次挥手:被动关闭方收到 FIN 包后,发送一个 ACK 给对方,确认序号为收到序号+1(与SYN 相同,一个 FIN 占用一个序号)。
第三次挥手:被动关闭方发送一个 FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到 FIN 后,发送一个 ACK 给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。
01
get 是获取数据,post 是修改数据
get 把请求的数据放在 url 上, 以?分割 URL 和传输数据,参数之间以&相连,所以 get 不太安全。而 post 把数据放在 HTTP 的包体内(requrest body)get 提交的数据最大是 2k( 限制实际上取决于浏览器), post 理论上没有限制。
GET 产生一个 TCP 数据包,浏览器会把 http header 和 data 一并发送出去,服务器响应 200(返回数据); POST 产生两个 TCP 数据包,浏览器先发送 header,服务器响应 100 continue,浏览器再发送 data,服务器响应 200 ok(返回数据)。
GET 请求会被浏览器主动缓存,而 POST 不会,除非手动设置。
GET 是幂等的,而 POST 不是幂等的
02
Cookies 和 session 区别
Cookie 和 Session 都是客户端与服务器之间保持状态的解决方案
-
存储的位置不同,cookie:存放在客户端,session:存放在服务端。Session 存储的数据比较安全
-
存储的数据类型不同
两者都是 key-value 的结构,但针对 value 的类型是有差异的cookie:value 只能是字符串类型,session:value 是 Object 类型
-
存储的数据大小限制不同
cookie:大小受浏览器的限制,很多是 4K 的大小, session:理论上受当前内存的限制,
-
生命周期的控制
03
cookie 的生命周期当浏览器关闭的时候,就消亡了
-
cookie 的生命周期是累计的,从创建时,就开始计时,20 分钟后,cookie 生命周期结束,
-
session 的生命周期是间隔的,从创建时,开始计时如在 20 分钟,没有访问 session,那么 session 生命周期被销毁
session 的工作原理是客户端登录完成之后,服务器会创建对应的 session,session 创建完之后,会把 session 的 id 发送给客户端,客户端再存储到浏览器中。这样客户端每次访问服务器时,都会带着 sessionid,服务器拿到 sessionid 之后,在内存找到与之对应的 session这样就可以正常工作了。
-
域名解析
-
发起 TCP 的 3 次握手
-
建立 TCP 连接后发起 http 请求
-
服务器响应 http请求,浏览器得到 html 代码
-
浏览器解析 html 代码,并请求 html 代码中的资源(如 js、css、图片等)浏览器对页面进行渲染呈现给用户。
-
HTTP 协议传输的数据都是未加密的,也就是明文的,因此使用 HTTP 协议传输隐私信息非常不安全, HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 http 协议安全。
-
https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。
-
http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。https://www.cnblogs.com/mywe/p/5407468.html
-
物理层
:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
-
数据链路层
:接收来自物理层的位流形式的数据,并封装成帧,传送到上一层
-
网络层
:将网络地址翻译成对应的物理地址,并通过路由选择算法为分组通过通信子网选择最适当的路径。
-
传输层
:在源端与目的端之间提供可靠的透明数据传输
-
会话层
:负责在网络中的两节点之间建立、维持和终止通信
-
表示层
:处理用户信息的表示问题,数据的编码,压缩和解压缩,数据的加密和解密
-
应用层