面试之网络篇
2020-07-01 本文已影响0人
想要时光机
一 网络7中模型
- 物理层:定义物理设备标准,如网线的接口类型,光纤的接口类型,模数与数模的转换,这一层的数据叫做比特
- 数据链路层: 主要讲从物理层接受的数据进行MAC地址(网卡)的疯转与解封装,工作设备交换机
- 网络层:将下层的数据进行IP地址的封装与解封装,工作设备是路由器,这一层的数据是数据包
- 传输层:定义了一些传输数据的协议合端口,对下层接受的数据进行分段传输,这一层叫段
- TCP:传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据
- UDP:用户数据报协议:传输可靠性不高
- 会话层: 通过传输层简历数据传输的通路。
- 表示层: 对接收到 数据进行解释,加密与解密,压缩与解压缩等,把计算机能够识别的东西转换成人能识别的东西
-
应用层: 终端用用
网络.png
二 TCP/IP原理
TCP/IP协议是因特网整个TCP/IP协议家族,由四个层次组成:网络接口层,网络层,传输层,应用层
- 网络访问层 : 主机必须使用某种协议与网络相连
- 网络层:主机可以把分组发往任何网络,并是分组独立传向目标,分组经由不同的网络,到达顺序和发送顺序也可能不同,互联网层使用IP协议
- 传输层:使源端和目的端机器上的对等实体可以进行绘画,定义了两个端到端的协议
- 应用层:虚拟终端协议 telNet ,文件传输协议 ftp ,电子邮件传输协议 smtp,域名服务 dns
三次握手
- 第一次握手:主机A发送位码未syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道A要求建立联机
- 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number = (主机Ad seq+1) syn=1,ack=1 随机禅城seq=7654321的包
- 第三次握手:主机A收到后检查ack number是否正确,既第一次发送的seq number+1以及位码ack是否为1 若正确主机A会在发送ack number= 主机Bd seq+1 ,ack=1 主机B收到后确认seq与ack=1则建立成功
四次挥手
- 关闭客户端到服务器的连接
- 服务器厚道这FIn,发挥-个ACK,确认为ack收到的序号+1
- 关闭服务器到客户端的链接,发送一个FIn给客户端
- 客户端收到FIn,发挥一个ACK,确认序号seq为收到序号+1
进行关闭的一方执行主动关闭,另一方执行被动关闭
HTTP原理
http是无状态的协议,客户机和服务器之间不需要建立持久的连接。请求连接包含:
- 协议名 : http
- 主机名: localhost.com
- 端口 : 8080
- 路径 : index.html
http请求包含 :
- 地址解析:域名系统dns解析域名得到主机的Ip地址
- 封装http请求数据包:将地址中包含信息结合本机信息封装成一个http请求包
- 封装成TCP包并建立连接:Tcp的三次握手
- 客户机发送请求命 :请求方格式:URl,协议版本号,MIME信息:包含请求修饰符,客户机信息
- 服务器响应:返回状态行:信息的协议版本号,成功/错误吗。mime信息
- 服务器关闭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 报错状态码
- 502后端主机宕机,向服务器发送请求,由于服务器当前连接太多,导致无感给予正常的响应
- 检查 PHP 进程数是否够用
- 增加机器后检查程序代码是够有问题,配置是否有问题
- 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 保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
- 是否post过快产生,ngix任务是不安全的链接,主动拒绝 可以使用
Q: Nginx的工作方式
- nginx在启动后会有一个master进程和多个worker进程。master进程是管理worker进程的,向worker进程发送信号监控。worker进程的个数可以设置。
- ngix在启动时会解析配置文件,得到需要监听的端口额ip,然后再nginx的master进程红初始化监控的socket,然后fork多个子进程,子进程进行accept竞争链接
Q 正向代理和反向代理
正向代理代理的是客户端,反向代理代理的是服务端