面试之网络篇

一 网络7中模型

  • 物理层:定义物理设备标准,如网线的接口类型,光纤的接口类型,模数与数模的转换,这一层的数据叫做比特
  • 数据链路层: 主要讲从物理层接受的数据进行MAC地址(网卡)的疯转与解封装,工作设备交换机
  • 网络层:将下层的数据进行IP地址的封装与解封装,工作设备是路由器,这一层的数据是数据包
  • 传输层:定义了一些传输数据的协议合端口,对下层接受的数据进行分段传输,这一层叫段
    • TCP:传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据
    • UDP:用户数据报协议:传输可靠性不高
  • 会话层: 通过传输层简历数据传输的通路。
  • 表示层: 对接收到 数据进行解释,加密与解密,压缩与解压缩等,把计算机能够识别的东西转换成人能识别的东西
  • 应用层: 终端用用


    网络.png

二 TCP/IP原理

TCP/IP协议是因特网整个TCP/IP协议家族,由四个层次组成:网络接口层,网络层,传输层,应用层

  • 网络访问层 : 主机必须使用某种协议与网络相连
  • 网络层:主机可以把分组发往任何网络,并是分组独立传向目标,分组经由不同的网络,到达顺序和发送顺序也可能不同,互联网层使用IP协议
  • 传输层:使源端和目的端机器上的对等实体可以进行绘画,定义了两个端到端的协议
  • 应用层:虚拟终端协议 telNet ,文件传输协议 ftp ,电子邮件传输协议 smtp,域名服务 dns

三次握手

  1. 第一次握手:主机A发送位码未syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道A要求建立联机
  2. 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number = (主机Ad seq+1) syn=1,ack=1 随机禅城seq=7654321的包
  3. 第三次握手:主机A收到后检查ack number是否正确,既第一次发送的seq number+1以及位码ack是否为1 若正确主机A会在发送ack number= 主机Bd seq+1 ,ack=1 主机B收到后确认seq与ack=1则建立成功

四次挥手

  1. 关闭客户端到服务器的连接
  2. 服务器厚道这FIn,发挥-个ACK,确认为ack收到的序号+1
  3. 关闭服务器到客户端的链接,发送一个FIn给客户端
  4. 客户端收到FIn,发挥一个ACK,确认序号seq为收到序号+1

进行关闭的一方执行主动关闭,另一方执行被动关闭

HTTP原理

http是无状态的协议,客户机和服务器之间不需要建立持久的连接。请求连接包含:

  • 协议名 : http
  • 主机名: localhost.com
  • 端口 : 8080
  • 路径 : index.html

http请求包含 :

  1. 地址解析:域名系统dns解析域名得到主机的Ip地址
  2. 封装http请求数据包:将地址中包含信息结合本机信息封装成一个http请求包
  3. 封装成TCP包并建立连接:Tcp的三次握手
  4. 客户机发送请求命 :请求方格式:URl,协议版本号,MIME信息:包含请求修饰符,客户机信息
  5. 服务器响应:返回状态行:信息的协议版本号,成功/错误吗。mime信息
  6. 服务器关闭TCP链接

如果浏览器或者服务器在头部信息加入Connection:keep-alive,tcp链接在发送后然保持打开状态,节省为每个请求建立新链接的时间,节约网络带宽

http常用状态吗

状态码 含义
100 继续
101 切换协议
200 ok
301 永久移动
302 Found(临时移动)
304 Not Modified(未修改)
305 USe Proxy(是使用代理)
400 Bad Request(错误请求)
401 Unauthorized(未授权)
403 Forbidden(禁止访问)
405 Method Not Allowed(不允许使用该方法)
500 Internal Server Error(内部服务器错误)
502 Bad Gateway(网关错误)
503 Service unavaliable(服务不可用)
504 gateway Timeout(网关超时)
505 http Versio Not Supported(HTTP版本不受支持)

HTTPS

https是以安全为目标的http通道,是http的安全办,在http层下加入ssl层
端口好是443

Q : http和https的区别

  • http使用端口是80 ,https是443
  • https需要进行证书验签,证书需要向有资格的公司申请,需要费用
  • https数据时加密传输的

Q: 网络模型

物理层,数据链路层,网路层,传输层,会话层,表示层,应用层

Q: http协议中状态吗的含义:301,302,304,502,504,403

  • 301:永久移动
  • 302: 临时移动
  • 304:未修改
  • 502:网关错误
  • 504:网关超时
  • 403 :禁止访问

Q:Nginx日志499 502 报错状态码

  1. 502后端主机宕机,向服务器发送请求,由于服务器当前连接太多,导致无感给予正常的响应
  • 检查 PHP 进程数是否够用
  • 增加机器后检查程序代码是够有问题,配置是否有问题
  1. 499 client has closed connection 服务区端处理时间长,客户端断开连接
    • 是否post过快产生,ngix任务是不安全的链接,主动拒绝 可以使用 proxy_ignore_client_abort on
    • 通过配置php-fpm.conf,控制子进程
    pm = dynamic 动态路由选项配置
    pm.max_children = 16 子进程最大数
    pm.start_servers = 4 启动时的进程数
    pm.min_spare_servers = 2 空闲进程数最小值,如果空闲进程小于此值,则创建新子进程
    pm.max_spare_servers = 16 保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
    

Q: Nginx的工作方式

  1. nginx在启动后会有一个master进程和多个worker进程。master进程是管理worker进程的,向worker进程发送信号监控。worker进程的个数可以设置。
  2. ngix在启动时会解析配置文件,得到需要监听的端口额ip,然后再nginx的master进程红初始化监控的socket,然后fork多个子进程,子进程进行accept竞争链接

Q 正向代理和反向代理

正向代理代理的是客户端,反向代理代理的是服务端

你可能感兴趣的:(面试之网络篇)