1. 网络相关

1.1. 简介

报考岗位为 2025年 信息支援部队某单位-数据分析与管理 岗位。

1.2. 详细内容

1.2.1. 网络模型

OSI 7层网络模型

  1. 物理层(Physical Layer)

    功能:负责在物理介质上传输原始比特流。

    示例:网线、光纤、无线电波等。

  2. 数据链路层(Data Link Layer)

    功能:提供节点到节点的数据传输,确保数据的可靠传输。

    示例:MAC 地址、以太网协议(Ethernet)。

  3. 网络层(Network Layer)

    功能:负责数据包的路由和转发,实现不同网络之间的通信。

    示例:IP 协议、路由器。

  4. 传输层(Transport Layer)

    功能:提供端到端的可靠数据传输,确保数据的完整性和顺序。

    示例:TCP(可靠传输)、UDP(不可靠传输)。

  5. 会话层(Session Layer)

    功能:管理通信会话,建立、维护和终止会话连接。

    示例:RPC(远程过程调用)、NetBIOS。

  6. 表示层(Presentation Layer)

    功能:负责数据的格式化、加密和解密,确保数据的可读性。

    示例:SSL/TLS(加密)、JPEG(图像格式)。

  7. 应用层(Application Layer)

    功能:为用户提供网络服务接口,支持应用程序通信。

    示例:HTTP、FTP、SMTP。

TCP/IP 4层网络模型

  1. 网络接口层(Network Interface Layer)

    功能:对应 OSI 的物理层和数据链路层,负责物理介质上的数据传输。

    示例:以太网、Wi-Fi。

  2. 网络层(Internet Layer)

    功能:对应 OSI 的网络层,负责数据包的路由和转发。

    示例:IP 协议、ICMP(Internet 控制消息协议)。

  3. 传输层(Transport Layer)

    功能:对应 OSI 的传输层,提供端到端的数据传输服务。

    示例:TCP、UDP。

  4. 应用层(Application Layer)

    功能:对应 OSI 的应用层、表示层和会话层,提供用户服务和应用程序接口。

    示例:HTTP、FTP、DNS。

以太网协议:机器在局域网发送广播,根据MAC地址来定位消息

ip协议:每台机器都有ip地址,可以判断机器在哪个局域网,发送到指定局域网之后,进行广播

tcp协议:数据传输需要指定端口,一个应用有一个端口,机器接收到消息后,知道是什么应用需要的数据

http协议:接到消息后,需要按照指定的数据格式进行解析,不同应用可能定义了不同的解析协议

浏览器请求百度的全过程:浏览器请求域名,会根据域名到dns服务器,获取域名对应机器的ip,再根据ip找到属于什么子网,经过网关,路由器,交换机层层转发,转发到指定的局域网,找到对应的服务器,服务器接收到消息后,解析请求,最后在服务器上执行指定的业务逻辑后,返回数据,按照远路返回到浏览器。

三次握手

  第一次握手,会在服务器获取相关资源
  第二次握手,服务器返回响应,告诉客户端,已经准备好相对应的资源了
  第三次握手,建立连接请求,或者连接复位。

为什么是三次?

如果是两次的话,可能先请求的卡住超时了,客户端以为没成功,再次发生请求成功了建立好连接,然后卡住的请求也成功了,会重复在服务器申请资源,客户端接收到响应发现已经建立连接,不会再重复的建立,导致服务器资源的浪费。

如果是三次的话,发现已经建立连接,会发送第三次请求进行资源复位,释放掉重复的申请。因为三次就能满足需求,就没必要再重复的握手了。

四次挥手(TCP全双工通信)

  第一次挥手,客户端发送请求,想要断开连接,此时不会断开,说明客户端不会再发生请求了,可以接受响应
  第二次挥手,服务端告诉客户端,说服务端知道要断开了,此时还能响应消息,没有断开连接
  第三次挥手,服务端告诉客户端,我的响应都接受了,进入超时断开的状态
  第四次挥手,客户端发送断开请求,断开连接,服务端释放资源(或者服务端等待超时释放资源)

Socket工作原理,与TCP/IP之间有什么关系

Socket就是tcp协议的实现,Socket按照tcp协议进行编程,然后在以太网中传输,接受者再按照协议进行解析

BIO、NIO、AIO

BIO网络通信原理(同步阻塞:针对IO,发送请求等待响应期间不可以做其他事情)

每建立一个连接,会创建一个线程,连接多的时候耗费资源多

NIO网络通信原理(同步非阻塞,发送请求等待响应期间可以做其他事情,自己轮询判断是否完成)

每建立一个连接,创建一个channel,当发送消息时,多路复用器selector会轮询判断,然后分配工作线程来处理(用较少的线程处理更多客户端的请求)

AIO(异步非阻塞,发送请求后就可以做自己事情,如果有结果了,会让操作系统调用方法来通知)

http实现

http底层使用的是tcp协议

http1.0,短连接,每次请求,建立好连接,发送一次请求,然后就断开连接,频繁的建立断开连接,很耗性能

http1.1,长连接,建立连接后,一段时间不断开,发送多个请求后,再断开(默认使用持久连接,减少连接建立的开销)

http2.0,支持多路复用,并行的发送多个请求,传输过程中数据包更小,传输更快,解决http1.0中对同一域名请求有限制的问题

http3.0,基于 QUIC 协议,减少延迟,提高传输效率。

https工作原理及加密通信

  浏览器请求,发送hash算法和支持的加密规则;
  服务器选择一套加密短发后响应,返回证书,网站地址,加密的公钥;
  浏览器再次请求,发送随机密码(经过公钥加密),消息的hash,加密的消息;
  服务器接到消息后,使用私钥解密随机密码,使用随机密码解密消息,使用消息计算hash,判断传输的hash与计算的hash是否一样,不一样说明消息有问题;
  服务器使用随机密码加密消息,返回给浏览器加密消息和hash,浏览器使用随机密码解密消息,然后比对计算的hash和传输过来的消息;
  如果没问题,后面的通信就使用这个随机密码进行加密。

results matching ""

    No results matching ""