决胜春招(十)——计网常见考点

433 阅读5分钟

七层,五层,四层网络协议

image.png

IP抵制分类

image.png

三次握手四次挥手

这部分不用细说了吧,看过计网的都背吐了

交换机和路由器的区别

  • 交换机工作于数据链路层,能识别 MAC 地址,根据 MAC 地址转发链路层数据帧。具有自学机制来维护 IP 地址与 MAC 地址的映射
  • 路由器位于网络层,能识别 IP 地址并根据 IP 地址转发分组。维护着路由表,根据路由表选择最佳路线

TCP如何保证可靠

  • 确认和重传机制:ARQ协议加超时重传
  • 数据校验:校验和
  • 数据合理分片和排序:(重复的也会被丢弃)
  • 流量控制拥塞控制

TCP和UDP区别

  • 有无链接
  • 是否可靠
  • 字节流和数据报

阻塞和非阻塞I/O区别

  • 如果内核缓冲没有数据可读时,read()系统调用会一直等待有数据到来后才从阻塞态中返回,这就是阻塞I/O
  • 非阻塞I/O在遇到上述情况时会立即返回给用户态进程一个返回值,并设置errno为EAGAIN。

Reactor和Proactor区别

  • Reactor模式是同步I/O,处理I/O操作的依旧是产生I/O的程序;Proactor是异步I/O,产生I/O调用的用户进程不会等待I/O发生,具体I/O操作由操作系统完成。
  • 异步需要OS支持,Linux里是AIO

Web 页面请求过程(输入百度发生什么)

  • URL解析为IP地址(DNS)【DNS服务器是基于UDP的,因此会用到UDP协议。】
  • 浏览器就要与服务器建立一个http连接【HTTP,TCP,ARP】

ARP协议

IP到MAC映射 每个主机都维持一个ARP高速缓存表

  • 相同局域网:查表-广播
  • 不同局域网:找到本局域网默认网关的硬件地址

HTTP头部

HTTP状态码

状态码类别原因短语
1XXInformational(信息性状态码)接收的请求正在处理
2XXSuccess(成功状态码)请求正常处理完毕
3XXRedirection(重定向状态码)需要进行附加操作以完成请求
4XXClient Error(客户端错误状态码)服务器无法处理请求
5XXServer Error(服务器错误状态码)服务器处理请求出错

2XX 成功

200 OK

204 No Content:请求已经成功处理,但是返回的响应报文不包含实体的主体部分。一般在只需要从客户端往服务器发送信息,而不需要返回数据时使用。

3XX 重定向

301 Moved Permanently:永久性重定向

302 Found:临时性重定向

303 See Other

注:虽然 HTTP 协议规定 301、302 状态下重定向时不允许把 POST 方法改成 GET 方法,但是大多数浏览器都会把 301、302 和 303 状态下的重定向把 POST 方法改成 GET 方法。

304 Not Modified:如果请求报文首部包含一些条件,例如:If-Match,If-ModifiedSince,If-None-Match,If-Range,If-Unmodified-Since,但是不满足条件,则服务器会返回 304 状态码。

307 Temporary Redirect:临时重定向,与 302 的含义类似,但是 307 要求浏览器不会把重定向请求的 POST 方法改成 GET 方法。

4XX 客户端错误

400 Bad Request:请求报文中存在语法错误

401 Unauthorized:该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。如果之前已进行过一次请求,则表示用户认证失败。

403 Forbidden:请求被拒绝,服务器端没有必要给出拒绝的详细理由。

404 Not Found

5XX 服务器错误

500 Internal Server Error:服务器正在执行请求时发生错误

503 Service Unavilable:该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

HTTPs 和 HTTP

HTTP + SSL / TLS 服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

  1. 客户端向服务端发送自己支持的加密协议及版本
  2. 服务器选一个合适的,并返回自己带有公钥的证书
  3. 0 客户端验证证书为合法
  4. 1 客户端生成密钥,用公钥加密
  5. 服务端解密,获得密钥此时,客户端和服务端均掌握了一个对称的密钥

image.png

HTTP1.1 和1.0

  • 长连接 : 在HTTP/1.0中,默认使用的是短连接
  • 更多的错误状态响应码
  • HTTP1.1则引入了更多的缓存控制策略
  • 带宽优化及网络连接的使用:允许只请求资源的某个部分,即返回码是206

http2 和 http1

HTTP2.0 的特点 a、HTTP/2采用二进制格式而非文本格式 b、HTTP/2是完全多路复用的,而非有序并阻塞的——只需一个HTTP连接就可以实现多个请求响应 c、使用报头压缩,HTTP/2降低了开销 d、HTTP/2让服务器可以将响应主动“推送”到客户端缓存中

CSRF 和XSS

CSRF(Cross-site request forgery):跨站请求伪造

image.png

CSRF防御

  • Token 验证
  • Referer 验证(只接受本站请求)

XSS(Cross Site Scripting):跨域脚本攻击。

不需要你做任何的登录认证,它会通过合法的操作(比如在url中输入、在评论框中输入),向你的页面注入脚本(可能是js、hmtl代码块等)。

两者区别

  • CSRF:需要用户先登录网站A,获取 cookie。XSS:不需要登录。

  • CSRF:是利用网站A本身的漏洞,去请求网站A的api。XSS:是向网站 A 注入 JS代码,然后执行 JS 里的代码,篡改网站A的内容。