Skip to content

面试题1

网络

  1. 什么是TCP协议
    1. TCP是面向连接的、可靠的进程到进程通信的协议。TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都有发送缓存和接受缓存,用来临时存储数据。
  2. 私网地址段都有哪些
  • 10.0.0.0-10.255.255.255
  • 172.16.0.0-172.31.255.255
  • 192.168.0.0-192.168.255.255
  1. TCP的三次握手
    • 第一次握手:
      PC1使用一个随机的端口号向PC2的80端口发送建立连接的请求,此过程的典型标志就是TCP的SYN控制位为1,其他五个控制全为0。
    • 第二次握手:
      实际上是分两部分来完成的。
      (1)PC2收到了PC1的请求,向PC1回复一个确认信息,此过程的典型标志就是TCP的ACK控制位为1,其他五个控制位全为0,而且确认序列号是PC1的初始序列号加1。
      (2)PC2也向PC1发送建立连接的请求,此过程的典型标志和第一次握手一样,就是TCP的STN控制为1,其他五个控制全为0。
      为了提高效率,一般将这两部分合并在一个数据包里实现。
    • 第三次握手:
      PC1收到了PC2的回复(包含请求和确认),也要向PC2回复一个确认信息,此过程的典型标志就是TCP的ACK控制位为1,其他五个控制位全为0,而且确认序列号是PC2的初始序列号加1。
  2. 举例说几个TCP端口及应用
    • 21 FTP FTP服务器所开放的控制端口
    • 23 TELNET 用于远程登录,可以远程控制管理目标计算机
    • 25 SMTP SMTP服务器开放的端口,用于发送邮件
    • 80 HTTP 超文本传输协议
    • 110 POP3 用于邮件的接受
  3. 什么是UDP协议
    UDP是一个无连接、不保证可靠性的传输层协议,也就是说发送端不关心发送的数据是否到达目标主机,数据是否出错等,收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障。
  4. UDP使用的一些常见端口有哪些
    • 69 TFTP 简单文件传输协议
    • 111 RPC 远程过程调用
    • 123 NTP 网络时间协议
  5. 访问控制列表(ACL)的工作原理

ACL是一组规则的集合,它应用在路由器的某个接口上。

类型

标准访问控制列表

标准访问控制列表根据数据包的源IP地址来允许或拒绝数据包。标准访问控制列表的访问控制列表号是1-99。

扩展访问控制列表

扩展访问控制列表根据数据包的源IP地址、目的IP地址、指定协议、端口和标志来允许或拒绝数据包。扩展访问控制列表的访问控制列表号是100-199。

命名访问控制列表

命名访问控制列表允许在标准和扩展访问控制列表中使用名称代替表号

  1. 简述一下什么是NAT
    网络地址转换(NAT)通过将内部网络的私有IP地址翻译成全球唯一的公网IP地址,使内部网络可以连接到互联网等外部网络上,广泛应用于各种类型的互联网接入方式和各种类型的网络中。原因很简单,NAT不仅解决了IP地址不足的问题,而且还能够隐藏内部网络的细节,避免来自网络外部的攻击,起到一定的安全作用。
  2. NAT的实现方式
    • 静态转换(Static Translation)
    • 动态转换(Dynamic Translation)
    • 端口多路复用(Port Address Translation,PAT)
  3. NAT的优势有哪些
    • NAT允许企业内部网使用私有地址,并通过设置合法的地址集,使内部网可以与互联网进行通信,从而达到节省合法注册地址的目的。
    • NAT可以减少规划地址时发生的地址重叠情况。
    • NAT增强了内部网络与公用网络连接时的灵活性。
    • NAT支持地址重叠。
  4. NAT的劣势有哪些
    • NAT会使延迟增大。
    • NAT增加了配置和排错的复杂性。
    • NAT也可能会使某些需要使用内嵌IP地址的应用不能正常工作,因为它隐藏了端到端的IP地址。
  5. 在做ACL时如果遇到故障应该怎么处理
    • 是否设置了访问控制列表,阻塞了进行过网络地址转换或者没有进行过网络地址转换的流量。
    • 定义需要进行NAT的访问控制列表时,漏掉了需要进行地址转换的网络。
    • 在NAT语句中漏掉了overload关键字。
    • 不对称路由导致NAT失败。
    • NAT地址池和静态NAT表项中有重叠地址。
    • Inside和outside接口配置错误,也会造成NAT失败。
  6. 什么是VLAN
    将网络从逻辑上划分为若干个小的虚拟网络,即VLAN(Virtual Local Area Network,虚拟局域网)。VLAN工作在OSI参考模型的数据链路层,一个VLAN就是一个交换网络,其中的所有用户都在同一个广播域中,各VLAN通过路由设备连接实现通信。
  7. VLAN的好处
    • 控制广播
    • 增强网络安全性
    • 简化网络管理
  8. OSI 参考模型分为哪七层?
    应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。
  9. 568A、568B的线序各是什么?
  • 568a 白绿,绿,白橙,蓝,白蓝,橙,白棕,棕
  • 568b 白橙,橙,白绿,蓝,白蓝,绿,白棕,棕
  1. ping命令中-t参数的含义是什么?
    会一直ping下去
  2. 配置默认路由的命令中:0.0.0.0 0.0.0.0表示什么意思?
    任意所有网络

http

  1. http 请求方法都有哪些
    • GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器
    • POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
    • PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。
    • HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
    • DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。
    • OPTIONS:查询相应URI支持的HTTP方法。
  2. http 的状态码都有哪些
    • 1XX信息性状态码,用于指定客户端相应的某些操作
    • 2XX成功状态码,我请求一个资源,这个资源在,这就表示请求成功了。
    • 3XX重定向的状态码,有时会返回的是一个新地址,而非结果。
    • 4xX客户端类错误,你请求的资源不存在,或者你请求的时候,我们这个资源拒绝你访问,你
      没有权限
    • 5xx服务器类的错误信息。向服务器发起请求,服务器发现需要运行一个脚本,从而调用解析
      库。如果在调用过程中出错就会出现这种情况。或者你的脚本有语法错误,也可能会导致这个
      问题
  3. 一次Web资源请求的具体过程
    1. 户端在Web浏览器输入需要访问的地址
    2. Web浏览器会请求DNS服务器,查询解析到指定域名和Web服务器的地址
    3. 客户端与请求的Web服务器端建立连接(TCP三次握手)
    4. TCP建立成功之后,发起HTP请求
    5. 服务器端收到客户端HTTP请求之后,会处理该请求
    6. 处理客户端指定请求的资源
    7. 服务器构建响应报文,响应给客户端
    8. 服务器端将此信息记录到日志中
  4. cookie和session的区别
    cookie以文本格式存储在浏览器上,存储量有限;而会话存储在服务端,可以无限量存储多个变量并且比cookie更安全。
  5. Http与Https的区别
    • HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头
    • HTTP 是不安全的,而 HTTPS 是安全的
    • HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
    • 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层
    • HTTP 无法加密,而HTTPS 对传输的数据进行加密
    • HTTP无需证书,而HTTPS 需要CA机构wosign的颁发的SSL证书

MySQL

  1. MySQL主要适用场景都有哪些
    • Web网站系统
    • 日志记录系统
    • 数据仓库系统
  2. MySQL日志文件类型都有哪些
    • 错误日志
    • 查询日志
    • 慢查询日志
    • 事务日志
    • 二进制日志
  3. 解释一下MySQL中的分表
    是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表。这样数据分散到多个数据表中,减小数据库的负担,缩短查询时间。分表分为垂直切分和水平切分, merge存储引擎可以实现分表
  4. 说一下MySQL中的分区类型都有哪些
    • range 分区
    • list分区
    • hash 分区
    • key 分区
    • columns分区
  5. MySQL存储引擎都有哪些(3个以上)
    常用
    • InnoDB
      • MyISAM
        不常用
  • Archive
  • Blackhole
  • CSV
  • Memory
  1. MySQL中InnoDB存储引擎和MyISAM存储引擎有什么区别
  • InnoDB支持事务,MyISAM不支持;
  • InnoDB数据存储在共享表空间,MyISAM数据存储在文件中;
  • InnoDB支持行级锁,MyISAM只支持表锁;
  • InnoDB支持崩溃后的恢复,MyISAM不支持;
  • InnoDB支持外键,MyISAM不支持;
  • InnoDB不支持全文索引,MyISAM支持全文索引;
  1. MySQL索引的类型有哪些
    • 普通索引:最基本的索引,没有任何约束限制。
    • 唯一索引:和普通索引类似,但是具有唯一性约束。
    • 主键索引:特殊的唯一索引,不允许有空值。
  2. 说一说索引的区别
  • 一个表只能有一个主键索引,但是可以有多个唯一索引。
  • 主键索引一定是唯一索引,唯一索引不是主键索引。
  • 主键可以与外键构成参照完整性约束,防止数据不一致。
  • 联合索引:将多个列组合在一起创建索引,可以覆盖多个列。(也叫复合索引,组合索引)
  • 外键索引:只有InnoDB类型的表才可以使用外键索引,保证数据的一致性、完整性、和实现级联操作(基本不用)。
  • 全文索引:MySQL自带的全文索引只能用于MyISAM,并且只能对英文进行全文检索 (基本不用)
  1. 事务的四大特性(ACID)介绍一下
  • 原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;
  • 一致性: 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的;
  • 隔离性: 并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;
  • 持久性: 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。
  1. 订单表数据量越来越大导致查询缓慢, 如何处理
     分库分表。 由于历史订单使用率并不高, 高频的可能只是近期订单, 因此, 将订单表按照时间进行拆分, 根据数据量的大小考虑按月分表或按年分表. 订单ID最好包含时间(如根据雪花算法生成), 此时既能根据订单ID直接获取到订单记录, 也能按照时间进行查询.
最近更新