20250114面试鸭特训营第22天

embedded/2025/1/18 3:24:24/

更多特训营笔记详见个人主页【面试鸭特训营】专栏

250114

1. TCP/IP 四层模型是什么?

  • TCP/IP四层模型是一个基于实际网络通信的分层协议模型,主要用于描述互联网通信协议的体系结构。
  • 它将网络通信过程分为四个层次,分别为:网络接口层、互联网层(网络层)、传输层、应用层。

在这里插入图片描述

网络接口层

  • 负责在计算机和网络硬件之间传输数据。
  • 负责在物理网络上发送和接受数据帧,包括以太网、Wi-Fi 等协议。
  • 典型协议
    • Ethernet(以太网)
    • PPP(点对点协议)
    • ARP(地址解析协议)

互联网层(网络层)

  • 负责将数据包从源地址传递到目标地址。
  • 通过 IP 协议提供数据包和路由的转发。
  • 实现不同网络之间的数据传输和路由选择。
  • 典型协议
    • IP(互联网协议)
      • IPv4(IP协议第4版)
      • IPv6(IP协议第6版)
    • ICMP(互联网控制消息协议)
    • IGMP(互联网组管理协议)

传输层

  • 负责在两个主机之间提供端到端的数据传输服务(通信服务)。
  • 负责数据的分段、传输和重组,确保数据可靠性。
  • 典型协议
    • TCP(传输控制协议)
      • 面向连接,提供可靠的数据传输。
    • UDP(用户数据报协议)
      • 面向无连接,提供快速但不可靠的数据传输。

应用层

  • 通过各种协议提供网络应用程序的功能。
  • 为用户提供应用程序接口,直接与用户交互,支持网络应用程序和服务的实现。
  • 典型协议
    • HTTP/HTTPS(超文本传输协议/安全超文本传输协议)
    • FTP(文件传输协议)
    • SMTP(简单邮件传输协议)
    • DNS(域名系统)
    • SSH(安全外壳协议)

分层的优点

  • 简化设计与实现
    • 通过将网络功能分解为不同的层,每一层只负责特定的任务,且只和相邻的上下层进行交互,简化了设计和实现的复杂性。
  • 模块化
    • 每一层可以独立发展和优化,不同层次之间通过标准接口记性通信,便于各层的更新和替换。
  • 互操作性
    • 明确定义每个层次之间的接口和协议,不同厂商或组织开发的网络设备和软件可以相互兼容,使得不同的网络设备和系统能够在不同的层次上进行无缝互操作,提升了网络的兼容性。
  • 故障隔离
    • 每个层次都有自己的错误检测、纠错和恢复机制,且分层结构能够帮助网络工程师定位问题所在的层次,从而更快地进行故障排除。

应用层主要包头信息和单位

  • 包头信息主要字段
    • HTTP:Host(目标主机)、User-Agent (客户端类型)、Content-Length (内容长度)等。
    • DNS:Transaciton ID (事务 ID )、Flags (标识符)、Query / Response (查询 / 标识响应)等。
  • 数据单位
    • 数据(Data)

传输层主要包头信息和单位

  • 包头信息主要字段
    • TCP:Source Port(源端口)、Destination Port (目的端口)、Sequence Number (序列号)、Acknowledgment Number (确认号)、Flags (控制标志)等。
    • UDP:Source Port(源端口)、Destination Port (目的端口)、Length (数据包长度)、Checksum (校验和)等。
  • 数据单位
    • 报文段(Segment)

网络层主要包头信息和单位

  • 包头信息主要字段
    • IP :Source IP Address(源 IP 地址)、Destination IP Address (目的 IP 地址)、TTL (生存时间)、Protocol (上层协议类型)等。
  • 数据单位
    • 数据包(Packet)

网络接口层主要包头信息和单位

  • 包头信息主要字段
    • 以太网 :Source MAC Address(源 MAC 地址)、Destination MAC Address (目的 MAC 地址)、Type (上层协议类型)等。
  • 数据单位
    • 帧(Frame)

2. Cookie、Session、Token 之间有什么区别?

Cookie

  • 存储位置:存储在客户端(浏览器)。
  • 数据格式:键值对,最大大小约为4KB。
  • 生命周期
    • 会话Cookie:浏览器关闭后失效。
    • 持久Cookie:设置ExpiresMax-Age后可长期存储。
  • 安全性
    • 可设置HttpOnly标记,防止JavaScript访问。
    • 可设置Secure标记,仅通过HTTPS传输。
  • 作用域:可设置DomainPath限定适用范围。
  • 主要用途:
    • 存储用户偏好设置(如主题、语言)。
    • 保持用户登录状态、跟踪用户行为。
    • 保存会话标识符(如Session ID)以维持用户会话。

Session

  • 存储位置:数据存储在服务器端,客户端只存储一个Session ID(通常通过Cookie传递)。
  • 数据管理:会话数据存储在服务器内存或数据库中。
  • 生命周期:通常与用户会话绑定,用户关闭浏览器或Session超时后失效。
  • 安全性:比Cookie更安全,敏感数据不会暴露给客户端。
  • 依赖Cookie:通过Cookie传递Session ID,无Cookie时可通过URL参数传递。
  • 典型用途
    • 服务器端会话状态管理。
    • 存储用户的临时状态信息(如购物车、登录状态等)。

Token

  • 存储位置:通常存储在客户端(浏览器的本地存储或会话存储,也可以通过Cookie传递)。
  • 数据格式:常用 JWT(JSON Web Token) ,由Header、Payload和Signature组成。
  • 自包含性:Token自身包含认证信息,无需依赖服务器存储会话状态(即无状态)。
  • 安全性
    • 加密性:可签名或加密,防止篡改。
    • 不应直接暴露敏感信息。
  • 生命周期
    • Access Token(短生命周期)。
    • Refresh Token(用于刷新Access Token,有较长生命周期)。
  • 典型用途
    • 无状态认证和授权。
    • 分布式系统中的用户认证和授权。

表格对比

特性CookieSessionToken
存储位置客户端
(浏览器)
服务器端
(Session ID在客户端)
客户端
(可选:Cookie或LocalStorage)
存储数据小量数据(4KB)任意复杂数据编码后的认证信息
状态管理无状态有状态无状态
安全性易被劫持
(需配合安全措施)
更安全相对安全
(需保护Token不泄露)
适用场景用于保存用户偏好设置、Session ID、记住登录状态等小型数据
小型数据存储、标识用户
客户端状态的简单存储和跟踪
用于需要存储用户状态的场景,比如购物车、短期登录会话
短期用户会话
服务器端的复杂状态管理
特别是需要存储大量会话数据时
分布式认证、API接口调用无状态的认证和授权
特别是在分布式和跨域环境下

3. 从网络角度来看,用户从输入网址到网页显示,期间发生了什么?

  1. 浏览器解析 URL
    • 浏览器会解析 URL ,根据请求信息生成对应的 HTTP 请求报文。
  2. DNS 解析
    • 请求需要知晓浏览器对应的 IP 地址才能通信。
    • 浏览器会先检查本地缓存、操作系统缓存、路由器缓存
      • 如果命中 IP 缓存,则直接使用。
      • 如果未命中 IP 缓存,浏览器向配置的 DNS 服务器发送查询请求, DNS 服务器递归查询,最终返回 IP 地址(如 192.0.2.1)。
  3. TCP 或 UDP
    • 浏览器会调用 Socket 库委托协议栈工作,根据指定的情况选择 TCP 或 UDP 。
    • 如果使用 TCP ,需要通过三次握手与服务端建立连接,然后才能发送数据。
    • 此时得到了封装了 HTTP 数据的 TCP 数据包。
  4. IP
    • 在 TCP 数据包的基础上,再封装源地址 IP 和目标地址 IP 等信息,得到网络包。
    • 有了 IP 就能在多个网络节点中确定数据包的传输路径,最终能找到目标服务器。
  5. MAC
    • 得到网络包之后,需要在 IP 头部的前面加上 MAC 头部,封装发送方 MAC 地址。
    • MAC 用来确保子网内设备两点之间的通信寻址(IP 是多个网络节点的传输寻址)。
  6. 网卡
    • 这时,网络包还是存储在内存中的二进制数据。
    • 网卡把二进制数据转换为电信号,通过网线进行传输。
  7. 交换机
    • 通过网线会连接到交换机,交换机是二层网络设备。
    • 交换机工作在 MAC 层,它会根据数据包中的 MAC 头找到另一个设备连接在交换机的哪个端口,然后传输。
    • 如果找不到对应的端口,则会向交换机上的除源端口外的所有端口广播。
  8. 路由器
    • 路由器是三层网络设备(包含 IP 层),也是用于进行转发。
    • 利用路由器,数据在不同网络节点之间转发,最后到达服务器。
  9. 层层验证
    • 服务器确认 MAC 地址匹配、 IP 地址匹配。
    • 如果是 TCP 协议,就看看序列号是否匹配,若匹配根据端口找到对应的监听进程,此时服务器上对应的应用就接收到了数据。
  10. 服务器处理
    • 服务器在收到请求后,处理响应的业务逻辑,生成 HTTP 响应。
    • 这期间可能涉及到读取数据库、访问文件系统等。
    • 最终会生成响应给客户端(一层层的封装 TCP 、 IP 、 MAC 等头部数据,得到最终传输的数据包),从网卡到交换机到路由器…
  11. 浏览器接收响应并渲染页面
    • 经过多个路由器的转发后,浏览器最终会接收到服务器响应的数据,进行页面渲染。

http://www.ppmy.cn/embedded/154835.html

相关文章

[操作系统] 深入理解操作系统的概念及定位

概念 任何计算机系统都包含⼀个基本的程序集合,称为操作系统(OS)。 其核心功能如图片所示,包括: 内核 (Kernel): 内核是操作系统的核心部分,被认为是狭义上的操作系统,直接与硬件打交道。负责进程管理、内…

nvm 管理nodejs,安装pnpm后报错,出现:pnpm不是内部或外部命令,也不是可运行的程序或批处理文件。

系统环境:window11,exe安装版nvm出现的该问题,(如果是解压缩配置版本,环境变量自己配置,可能就不会出现这个问题了) 注意:安装nvm时,两个路径尽量放到一个盘上&#xff…

28:CAN总线入门一:CAN的基本介绍

CAN总线入门 1、CAN总线简介和硬件电路1.1、CAN简要介绍1.2、硬件电路1.3、CAN总线的电平标准 2、帧格式2.1、数据帧(掌握)2.2、遥控帧(掌握)2.3、错误帧(了解)2.4、过载帧(了解)2.5…

爬虫逆向学习(十五):Akamai 3.0反爬分析与sensor-data算法逆向经验

此分享只用于学习用途,不作商业用途,若有冒犯,请联系处理 Akamai 3.0反爬分析与sensor-data算法逆向经验 Akamai开始正题前须知站点信息接口分析反爬点反爬点定位_abck定位结果 逆向前准备工作sensor_data生成位置本地替换文件 请求体sensor…

算法(蓝桥杯)贪心算法4——拦截导弹的系统数量求解

题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。 假设某天雷达捕捉到敌国的导弹来袭。由于该系统还在试用…

ros2笔记-7.1 机器人导航介绍

7.1 机器人导航介绍 7.1.1 同步定位与地图构建 想要导航,就是要确定当前位置跟目标位置。确定位置就是定位问题。 手机的卫星导航在室内 受屏蔽,需要其他传感器获取位置信息。 利用6.5 章节的仿真,打开并运行 会发现轨迹跟障碍物都被记录…

女性机器人有市场吗

随着AI技术和仿生技术的发展,可以预见,未来的市场上必然出现女性机器人,女性机器人未来会有市场吗?如何定义女性机器人? 1、如果你不想生娃,女性机器人完全可以代替真人。将来的机器人她能干几乎所有的家务…

【20250115】Nature子刊:柔性生物传感与深度学习结合的上肢运动增强外骨骼机器人...

【基本信息】 论文标题:Intelligent upper-limb exoskeleton integrated with soft bioelectronics and deep learning for intention-driven augmentation 发表期刊:npj Flexible Electronics 发表时间:2024年2月10日 【访问链接】 论文链接…