OSI的七层模型分别是什么?各自的功能是什么?

  1. 应用层:各种软件应用,包括Web应用
  2. 表示层:数据格式标识,基本压缩加密功能
  3. 会话层:控制应用程序之间的会话能力
  4. 传输层:端到端传输数据的基本功能,如TCP UDP
  5. 网络层:定义ip编址,定义路由功能,如不同设备的数据转发
  6. 数据链路层:定义数据的基本格式,如何传输,如何标识,如网卡MAC地址
  7. 物理层:底层数据传输,如网线,网卡标准
  8. 传输层数据被称为段 segment
  9. 网络层数据被称为包 Package
  10. 数据链路层数据被称为帧 Frames
  11. 物理层数据被称为 比特流 Bits
  12. 总结:
  13. 网络七层模型是一个标准,而非实现
  14. 网络四层模型是一个实现的应用模型
  15. 网络四层模型是由七层模型简化而来(网络四层模型分别是 数据链路层 网络层 传输层 应用层)

为什么需要三次握手?两次不行?

  1. 三次握手的目的就是为了确定客户端和服务端的接受与发送能力是否正常。
  2. 最开始客户端除了closed状态,服务端处于listen状态
  3. 然后第一次握手:客户端给服务端发送一个SYN报文,并指明客户端的初始化序列号(ISN),此时客户端处于
  4. SYN_Send状态
  5. 第二次握手:服务端收到客户端的SYN报文后,会以自己的SYN报文作为应答,并且指定了自己的初始化序列号
  6. ISN,同时把客户端的ISN+1最为ACK的值,表示自己已经收到了客户端的SYN,此时服务其处于SYN_RCVD 状态
  7. 第三次握手:客户端收到SYN报文后,会发送一个ACK报文,当然,也是一样把服务器的ISN+1最为ACK的值
  8. 表示已经收到了服务端的SYN报文,此时客户端处于established状态
  9. 服务器收到ACK报文后,也处于established状态,此时双方建立起了连接
  10. 两次握手为啥不行?
  11. 两次握手服务端无法确定自己的发信能力
  12. 三次握手的作用:确定双方的接受能力,送能力是否正常
  13. 指定自己的初始化序列号,为后面的可靠传送做准备

为啥需要四次挥手?三次不行?

  1. 刚开始客户端和服务端处于established状态
  2. 第一次挥手:客户端发送一个FIN报文,报文中会指定一个序列号。此时客户端处于
  3. FIN_WAIT1状态
  4. 第二次挥手:服务端收到FIN之后,会发送ACK报文。且把客户端的序列号值+1作为ACK报文的序列号值
  5. 表明已经收到客户端的报文,此时服务端处于CLOOSE_WAIT状态
  6. 第三次挥手:如果服务端也想断开连接,和客户端的第一次挥手,发给FIN报文,且指定一个序列号。
  7. 此时服务端处于LAST_ACK状态
  8. 第四次挥手:客户端收到FIN后,一样发送一个ACK报文作为应答,且把服务段的序列号值+1作为自己
  9. ACK的序列号值,次数客户端处于TIMW_WAIT状态。需要过一阵子以确保服务端收到自己的ACK报文
  10. 之后,就处于关闭连接,处于CLOSED
  11. 服务端收到ACK报文之后,就处于关闭连接了,处于CLOSED状态
  12. 为什么客户端发送ACK后不直接关闭,而是要等一阵子关闭。
  13. 为了确保服务端是否收到我们的ACK报文,如果没有收到服务端会重发FIN报文给客户端,
  14. 客户端再次收到FIN报文之后,就知道之前的ACK报文丢失了,然后再次发送ACK报文。
  15. 至于TIME_WAIT持续时间至少是一个报文的来回时间,一般会设置一个计时,如果过了这个计时没有
  16. 再次收到FIN报文,则代表对方成功就是ACK报文,此时处于CLOSED状态。

TCP和UDP的区别?各自的应用场景

  1. TCP协议的主要特点:
  2. 1.TCP是面向连接的运输层协议;所谓面向连接就是双方传输数据之前,必须先简历一条通道,例如三次握手
  3. 就是简历通道的一个过程,而四次挥手则是结束销毁通道的一个其中过程。
  4. 2.每一条TCP连接只能有两个端点(即两个套接字),只能是点对点
  5. 3TCP提供可靠的传输服务,传送数据无差错,不丢失,无重复,按序达到
  6. 4.TCP提供全双工通信,允许通信双方的应用进程再热河时候都可以发送数据,因为两端都设有发送缓存和接收缓存
  7. 5.面向字节流
  8. TCP的可靠性原理:
  9. 可靠性传输有两个特点:
  10. a.传输信道无差错,保证传输数据正确
  11. b.不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据
  12. UDP协议特点:
  13. UDP是无连接的传输层协议,UDP使用尽最大努力交付,不保证可靠交付
  14. UDP是面向报文的,对应用层交下来的报文,不合并不拆分,保留元报文的边界。
  15. UDP没有拥塞控制,因此即使网络出现拥塞也不会降低发送速率
  16. 并且UDP支持一对一,一对多 多对多
  17. UDP的首部开销较小,只有8字节
  18. TCPUDP得区别:
  19. TCP是可靠传输,UDP是不可靠传输
  20. TCP是面向连接的,而UDP无连接
  21. TCP传输数据有序,UDP不保证数据的有序性
  22. TCP不保存数据边界,而UDP保留数据的边界、
  23. Tcp传输速度相对udp较慢
  24. TCP有拥塞控制和流量控制,而udp没有
  25. TCp是重量级协议,而Udp是轻量级协议
  26. Tcp首部较长20字节,UDP首部较短8个字节
  27. 基于tcp和udp的常用协议
  28. HTTP HTTPS FTP TELNET SMTP(简单邮件传输协议)协议基于可靠的TCP协议
  29. DNS DHCP TFTP SNMP(简单网络管理i协议) RIP 基于不可靠的UDP协议

HTTP1.0 1.1 2.0得区别

  1. HTTP/1.0

POST和GET有哪些区别

  1. 使用场景不同
  2. GET用于获取资源,而POST用于传输实体主体
  3. 参数
  4. GETPOST得请求都可以使用额外得参数,但是GET得参数是以查询字符串出现在URL中,而POST
  5. 得参数存储再实体主体中。并且GET得参数中存在中文等字符需要先进行编码URL只支持ANSCII编码,而
  6. POST参数支持标准字符集
  7. 安全性:
  8. 安全的HTTP方法不会改变服务器得状态,也就是说他是可读的
  9. GET方法是安全的,而POST方法却不是,因为POST得目的就是传送主体内容,这个内容可能是用户上传得
  10. 表单数据,上传成功后,服务器可能吧这个数据存储到数据库中,因此状态发生了改变。
  11. 安全得方法除了GET还有:HEADOPTIONS
  12. 不安全的方法除了POST之外还有:PUTDELETE
  13. 幂等性:
  14. 幂等得HTTP方法,同样的请求被执行一次与连续多次的效果是一样的,服务器的状态也是一样的。
  15. 换句话说,幂等方法不应该具有副作用(统计用途除外)
  16. 所有安全的方法也都是幂等的
  17. 在正确实现的条件下,GET HEADPUT DELETE等方法都是幂等的,而POST不是
  18. 可缓存:
  19. 请求报文的HTTP方法本身是可缓存的,包括GET和HEAD ,但是PUTDELETE不可缓存,POST
  20.  多数情况下不可缓存。

HTTP哪些常用的状态码以及使用场景

  1. 状态码分类:
  2. 1XX:表示当前是协议的中间状态,还需要后续请求
  3. 2XX:表示请求成功
  4. 3XX:表示重定向状态,需要重新请求
  5. 4XX:表示请求报文错误
  6. 5XX:服务端错误
  7. 常用状态码:
  8. 101 切换请求协议 HTTP切换到WebSocket
  9. 200 请求成功,有响应体
  10. 301 永久重定向,会缓存
  11. 302 临时重定向 不会缓存
  12. 304 协商缓命中
  13. 403 服务器禁止访问
  14. 404 资源未找到
  15. 400 请求错误
  16. 500 服务器错误
  17. 503 服务器繁忙

301和302的区别

  1. 301是重定向,值页面永久转移,百事为资源或页面永久性的转移到另一个位置。301HTTP协议中的一种
  2. 状态码。当用户或搜索引擎向服务器发出浏览请求时,服务器返回HTTP数据流头信息中包含301,表示资源
  3. 已经永久性的改变了位置。

在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维护?

  1. HTTP响应体的Connection字段设置为keep-alive

TCP如何保证有效传输以及拥塞控制原理

  1. tcp时面向连接的,可靠的,传输层协议
  2. 可靠体现在:有状态 可控制
  3. 有状态时只TCP会确定发送了哪些报文,接收方收到了哪些报文,哪些没有收到,
  4. 保证数据包按需到达,不允许有差错
  5. 可控制是指,如果出现豆包或者网络状况不佳,则会跳转自己的行为,减少发送的速度或者重发
  6. 拥塞控制原理
  7. 愿意是有可能整个网络环境特点差,容易丢包,那么发送端就应该注意了
  8. 主要有三种方法:
  9. 慢转动阈值+拥塞避免
  10. 快速重传
  11. 快速恢复
  12. 慢启动阈值+拥塞避免
  13. 对于拥塞控制来说,TCP主要维护两个核心状态
  14. 拥塞窗口
  15. 慢启动阈值

IP地址与分类

A类地址 1-126 :网络号占前八位,以0开头,主机号占后24位
B类地址 128-0191 网络号占前16位,以10开头,主机号占16位
C类地址 192-223 网络号占24位,以110开头 主机号占8位
D类地址 224-239 以1110开头 保留位多地址
E类地址 240-255 以1111开头 保留位今后使用

什么SQL注入