面试知识点总结之网络

1. TCP/UDP的区别:

TCP(Transmission Control Protocol)传输控制协议
UDP(User Data Protocol,用户数据报协议)

(1)都是一种网络传输协议;
(2)TCP需建立连接,UDP不需要;
(3)TCP是可靠的传输协议,UDP属于不可靠的;
(4)由于TCP需建立真实的连接,所以需消耗服务器的负载要大于UDP

2. TCP三次握手和四次挥手,为什么挥手是四次?

  • TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:
    位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)

(1)第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;
(2)第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包;
(3)第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。
完成三次握手,主机A与主机B开始传送数据。

  • 四次挥手:
    (1)Client发送FIN=M,关闭Client至Server的数据传送
    (2)Server收到后发送ACK=1, ack=M+1, 确认关闭
    (3)Server发送FIN=N,关闭Server至Client的数据传送
    (4)Client收到后发送ACK=1, ack=N+1, 确认关闭,连接断开

  • 为什么挥手四次:
    因为建立连接时Serever将ACK(响应)与SYN(请求)放在一个报文中发给Client,而关闭连接时,收到对方FIN仅表示对方不再发送数据但仍可接受,己方可以立即关闭也可以再发送一些数据后再发送FIN报文表示同意现在关闭连接,因此己方ACK和FIN一般会分开发送。

3. 即时通讯中为什么大多使用UDP?

  • 网络开销相对较小,可尽可能的利用整个带宽
  • 减轻服务器负担,节省运营商成本

4. TCP做心跳检测网络情况?

指客户端每隔一小段时间向服务器发送的一个数据包,通知服务器自己仍在线,并传输一些必要的数据,包的内容一般是很小的包,或只包含包头的空包。

保活的两种方式:
(1)应用层面的心跳机制:自定义心跳消息头。
优点:灵活,可携带额外信息,通用,不依赖协议。缺点:工作量、代码复杂度
(2)TCP协议自带保活功能:打开keep-alive功能即可。优点:使用简单,减少应用层代码复杂度。

5. HTTP的几种请求方式及适用情况?

  • GET:请求指定的资源
  • POST:向指定资源提交数据进行处理请求(如提交表单或上传文件),数据包含在请求体中,多次请求结果不同
  • PUT:向指定资源上传其最新内容,多次请求结果相同
  • DELETE:请求服务器删除Request-URL所标识的资源

6. HTTPS建立连接的流程,证书的作用,如何解决中间人劫持攻击?

  • 流程
             ------------------ 发送请求和支持的协议 -------------------->
          <---------- 返回 加密协议+证书(服务器地址、公钥、颁发机构)---------
    客户端  -------- 生成对称密钥,用公钥对此加密,并对握手消息加密后发送 ------>    服务器
         <------------- 私钥解密得对称密钥,以此加密握手消息发送 ---------------
          -------------------- 验证后使用对称密钥开始传输,连接完成 ------------->
  • 证书作用:传递公钥,验证服务器身份
  • 中间人劫持
    攻击者将自己接入客户端与服务器之间,在传输过程中伪造证书,将服务器公钥替换为自己的公钥,窃取通信数据。
    解决:完全的证书校验(是否过期、域名匹配、校验证书链)、客户端保存证书

7. HTTP断点续传?

请求头中Range字段指定第一个字节至最后一个字节的位置,如:Range: bytes=527648-
响应头中使用206状态值,且Content-Range字段描述响应覆盖的范围和整个实体长度:Content-Range: bytes 527648-1514385/1514386

8.网络七层模型

应用层 为应用程序和底层网络提供接口
表示层 数据的表示、安全、压缩 (HTTP/FTP)
会话层 建立、管理、终止会话
(SOCKET)
传输层 定义端口间的通信,帮助不同应用程序接收到自己所需数据(TCP/UDP)
网络层 逻辑地址寻址,建立主机之间的通信(IP)
数据链路层 建立逻辑连接,规定二进制数据解读方式
物理层 硬件设备

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值