简单的活着

Network面经

Posted on By Mista Cai

Network

面经–牛客,算法半岛

1. OSI开放式互联参考模型有哪些组成?

第一层 物理层

机械、电子、定时接口通信通道上的原始比特流传输,将0101001等比特数据转换为电流强弱来进行传输(数模转换与模数转换)。

网卡

第二层 数据链路层

物理寻址,同时将原始比特流转换为逻辑传输线路。这一层提供错误检测和纠正,以确保数据传输的可靠性。

交换机

第三层 网络层

将网络地址翻译成对应的物理地址。控制子网的运行,如逻辑编制、分组传输、路由选择。

协议:TCP/IP

路由器

第四层 传输层

传输层解决了传输质量的问题,控制流量、数据包分割等。

协议:TCP、UDP

第五层 会话层

不同机器上的用户之间建立及管理会话。

第六层 表示层

解决不同系统语法通信的问题,加解密、转换翻译、压缩解压缩。

第七层 应用层

协议:HTTP

2. TCP/IP模型有哪些组成?

该模型将OSI中的应用层、表示层、会话层归并到应用层,数据链路层和物理层归并到链路层。

先自上而下,后自下而上处理数据头部。

3. 什么是TCP协议?

TCP是网络传输层协议,是一种面向连接的、可靠传输的、基于字节流的传输协议。

4. 什么是UDP协议?

UDP也是网路传输层协议,是一种无连接的传输协议,提供面向事务的简单不可靠信息传递服务,传输速率相对较快,但不能保证数据可靠性。

5. TCP报文头有哪些组成?

包含源端口和目的端口、Sequence Number(分段标识符)、Acknowledgement Number(确认收到的标识符)

TCP flags:

  • URG:紧急指针标志
  • ACK:确认序号标志
  • PSH:push标志
  • RST:重置连接标志
  • SYN:同步序号,用于建立连接过程
  • FIN:finish标志,用于释放链接

进程间通信必须有唯一标识符,在同一计算机中用PID标识,在不同计算机中用端口标识。

6. UDP报文有哪些组成?

源端口号、目的端口号、目的地址、数据报长度、奇偶校验和、数据等。

7.讲一讲TCP的三次握手

握手是为了建立连接(为了初始化Sequence Number),避免传输的数据包乱序问题,握手成功之后会建立一个全双工通信通道。

  • 第一次握手:客户端主动打开请求服务端,服务端被动打开监听LISTEN,客户端进入SYN_SEND状态,等待服务器确认;
  • 第二次握手:服务端收到SYN包,回应客户端,如果同意连接就回应ACK确认消息,服务期进入SYN_RECV状态。
  • 第三次握手:客户端收到确认信息,向服务端发送ACK确认信息,客户端进入可接受数据状态,服务器确认收到确认信息后也进入可接受数据状态(ESTABLISHED)。

23.在浏览器地址栏输入一个地址,按下回车之后经历的流程

  1. DNS解析。逐层查询url的DNS缓存,解析出url域名所对应的ip地址,其顺序是:浏览器缓存、系统缓存、路由器缓存、IPS服务器缓存、根域名服务器缓存、顶级域名服务器缓存;
  2. TCP链接。根据ip地址建立TCP链接,三次握手;
  3. 发送HTTP请求;
  4. 服务器处理请求并返回HTTP报文;
  5. 浏览器收到服务器发送的html文件并渲染到窗口;
  6. 释放TCP,四次握手。

24.HTTP状态码

  • 1XX:指示信息–表示请求已接收,继续处理
  • 2XX:成功–表示请求已经被成功接收、理解、处理
  • 3XX:重定向–要完成请求必须进行更进一步的操作
  • 4XX:客户端错误—请求有语法错误或请求无法实现
  • 5XX:服务器端错误–服务器未能实现合法的请求

25.解释一下HTTP 1.0、1.1、2.0各版本的区别

HTTP1.0不支持长连接,1.1以后支持长连接,从头部Keep-Alive可以看到。

HTTP1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。

HTTP 1.1则支持持久连接Persistent Connection, 并且默认使用persistent connection. 在同一个tcp的连接中可以传送多个HTTP请求和响应. 多个请求和响应可以重叠,多个请求和响应可以同时进行. 更加多的请求头和响应头(比如HTTP1.0没有host的字段).

HTTP2.0多个请求可同时在一个连接上并行执行。某个请求任务耗时严重,不会影响到其它连接的正常执行;支持request多路复用;新的二进制格式压缩头部。

26.GET请求和POST请求的区别