其他分享
首页 > 其他分享> > 计算机网络八股

计算机网络八股

作者:互联网

目录

计算机网络

知识体系

Questions

1.计算机网络分层的优点和缺点

2.计算机体系结构

3.从输入网址到获得页面的过程

  1. 浏览器解析URL,查询 DNS,检查域名是否在缓存中(浏览器自身的DNS缓存、操作系统的DNS缓存、本地的hosts文件和向本地DNS服务器进行查询)。如果 DNS 服务器和主机在同一个子网内,系统会按照 ARP 过程对 DNS 服务器进行 ARP查询,如果在不同的子网,系统会按照 ARP 过程对默认网关进行查询;
  2. 浏览器获得域名对应的IP地址以后,向服务器请求建立链接,发起三次握手;
  3. TCP/IP链接建立起来后,浏览器向服务器发送HTTP请求;
  4. 服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;
  5. 浏览器对HTML、CSS、JS进行解析,构建DOM树,渲染视图;
  6. 浏览器根据其请求到的资源、数据渲染页面,最终向用户呈现一个完整的页面。

超详细版本1

超详细版本2

4.三次握手

为什么需要三次握手

​ TCP 建立连接时通过三次握手可以有效地避免历史错误连接的建立,减少通信双方不必要的资源消耗,三次握手能够帮助通信双方获取初始化序列号,它们能够保证数据包传输的不重不丢,还能保证它们的传输顺序,不会因为网络传输的问题发生混乱。

  • 两次握手:无法避免历史错误连接的初始化,浪费接收方的资源;
  • 四次握手:TCP 协议的设计可以让我们同时传递 ACKSYN 两个控制信息,减少了通信次数,所以不需要使用更多的通信次数传输相同的信息。

image-20210226164259010.png

5.四次挥手

为什么需要四次挥手

​ 因为当服务端收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端,"你发的FIN报文我收到了"。只有等到我服务端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四次挥手。

6.TCP和UDP的区别

TCP

UDP

7.TCP如何保证可靠传输

8.TCP流量控制

​ TCP使用滑动窗口协议(连续ARQ协议)实现流量控制。滑动窗口协议既保证了分组无差错、有序接收,也实现了流量控制。主要的方式就是接收方返回的 ACK 中会包含自己的接收窗口的大小,并且利用大小来控制发送方的数据发送。发送窗口的大小不能超过接受窗口的大小,只有当发送方发送并收到确认之后,才能将发送窗口右移。发送窗口的上限为接受窗口和拥塞窗口中的较小值。接受窗口表明了接收方的接收能力,拥塞窗口表明了网络的传送能力。

9.TCP拥塞控制

10.Session与Cookie

Cookie

​ Cookie是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。

Session

​ Session 代表着服务器和客户端一次会话的过程。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当客户端关闭会话,或者 Session 超时失效时会话结束。

区别

11.HTTP状态码

12.HTTP报文

HTTP报文有请求报文和响应报文两种,请求报文:从客户向服务器发送请求报文;响应报文:从服务端到客户的回答。HTTP报文都由开始行、首部行、实体主体三部分组成。

13.HTTP与HTTPS的区别

面试真题

1.DNS的具体过程

  1. 检查浏览器缓存中是否缓存过该域名对应的IP地址;
  2. 如果在浏览器缓存中没有找到IP,那么将继续查找本机系统是否缓存过IP;
  3. 向本地域名解析服务系统发起域名解析的请求;
  4. 向根域名解析服务器发起域名解析请求;
  5. 根域名服务器返回gTLD(通用顶级域名)域名解析服务器地址;
  6. 向gTLD服务器发起解析请求;
  7. gTLD服务器接收请求并返回Name Server服务器;
  8. Name Server服务器返回IP地址给本地服务器;
  9. 本地域名服务器缓存解析结果;
  10. 返回解析结果给用户。

2.ARP协议的工作原理和流程,路由器是如何转发的?(路由表的工作原理)

工作流程

路由器工作原理

  1. 一个帧到达路由器后,首先检查帧中目标MAC地址是否是本接口的MAC,如不是则丢弃,如是则解封装并将IP包移动到路由器内部;
  2. 将IP包中目标IP与路由表进行匹配,如匹配路由表不成功,则丢弃,返回ICMP(互联网控制消息协议)错误消息;若成功,则将数据路由到相应的出口,再封装帧头帧尾;
  3. 检查ARP缓存中是否有下一跳的MAC,如有则重新封装出去;如没有,则发送ARP请求广播报文获取下一跳的MAC,并记录到ARP缓存表中,再重新封装数据帧发送出去。

3.IPv4和IPv6的区别

4.对称加密和非对称加密在HTTPS的应用

对称加密算法:发送方和接收方需要持有同一把密钥,发送消息和接收消息均使用该密钥。相对于非对称加密,对称加密具有更高的加解密速度,但双方都需要事先知道密钥,密钥在传输过程中可能会被窃取,因此安全性没有非对称加密高。

非对称加密算法:接收方在发送消息前需要事先生成公钥和私钥,然后将公钥发送给发送方。发送放收到公钥后,将待发送数据用公钥加密,发送给接收方。接收到收到数据后,用私钥解密。在这个过程中,公钥负责加密,私钥负责解密,数据在传输过程中即使被截获,攻击者由于没有私钥,因此也无法破解。非对称加密算法的加解密速度低于对称加密算法,但是安全性更高。

HTTPS中同时使用了对称加密算法非对称加密算法。对于一个完整的HTTPS请求过程:

1.首先,浏览器请求一个URL,找到服务器,向服务器发起一个请求。服务器将自己的证书(包含服务器公钥S_PuKey)、对称加密算法种类及其他相关信息返回客户端;

2.浏览器检查CA证书是不是由可以信赖的CA机构颁发的,确认证书有效和此证书是此网站的。如果不是,给客户端发一个警告,询问是否继续访问;

3.如果是,客户端使用公钥加密了一个随机对称密钥,包括加密的URL一起发送到服务器;

4.服务器用自己的私匙解密你发送的钥匙,然后用这把对称加密的钥匙给你请求的URL链接解密;

5.服务器用你发的对称钥匙给你请求的网页加密,你也有相同的钥匙就可以解密发回来的网页了。

标签:发送,八股,HTTP,报文,TCP,计算机网络,拥塞,服务器
来源: https://www.cnblogs.com/ltaodream/p/16287303.html