后端工程师,老师教的七层网络模型你用在了哪里?(一)

简介: 计算机网络算是计算机课里公认比较难的课之一。OSI七层网络模型,这个词估计大部分人都还记得,但还能完全的背出具体都有哪些层吗?更不用说每层具体的含义,我是有点模糊了。除了具体的开发语言,数据结构和算法算是平时用到比较多的课程了。都说学以致用,那么这个网络模型对于我们实际工作中有什么用途呢?比如我写了个web页面,或者一个Restful API,这和七层网络模型是怎么对应的呢?首先从我们熟悉的请求处理过程开始。

1. 简单的请求处理过程

用一幅图简单描述一下用户发送请求、服务器接收并处理请求直至返回最终结果的过程。

60.png当客户端向Web服务器发送一个请求后,服务器收到HTTP请求,如果是静态网站,则会直接返回对应的请求文件。


如果是动态语言的网站,HTTP服务器会将请求经过处理后转给对应的动态语言程序处理,例如Java、C#、Go、PHP和Python等,这些程序根据用户发过来的请求,进行处理后返回结果给HTTP服务器,HTTP服务器再讲结果处理并返回给用户。


这里用到的就是我们熟悉的HTTP协议,再看下OSI七层模型。


2. 回顾一下OSI七层模型

开放式系统互联通信参考模型,即Open System Interconnection Reference Model,缩写为 OSI, 是一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。

61.png

**注意:**常见的光纤、同轴电缆、双绞线、Rj45接口等传输介质也被称为传输媒体。**但传输媒体并不是在物理层,**而是在物理层的下一层,因为物理层是模型的第一层,所以也称传输媒体为第0层。在传输媒体中传输的是信号,但传输媒体并不知道所传输的信号代表的是什么意思。物理层则因为规定了电气特性,因此能够识别所传输的比特流,这是考试经常出现的问题之一。

下图所示为数据DATA从发送端到达接收端的中间处理过程:

62.png

当发送端需要发送数据(DATA)该接收端时,发送端大概流程:


用户操作应用层的应用,产生的发送数据通过应用层的接口进入应用层。

从应用层开始,逐级对DATA进行包装,加上对应层的报头,例如图中的AH、PH、SH、TH、NH等。

表示层并不“关心”应用层的数据格式,而是把整个应用层递交的数据报看成是一个整体进行封装,即加上表示层的报头(PH),然后递交到会话层。

数据链路层除了要添加报头DH外,还会添加一个报尾DT还, 最终的一帧数据。

接收端:


接收端相当于是对发送过程的逆向,逐级抽丝剥茧,去掉各种报头报尾,最终回到接收端的应用层。

应用层对接收到的报文进行处理。

感觉HTTP协议和这个七层模型都是用于网络传输,那么二者有什么关系呢?这就必须要说一下TCP/IP协议。


目录
相关文章
|
7月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
267 2
|
7月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
211 1
|
7月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
4月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
5月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
390 2
|
5月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
144 8
|
7月前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
380 60
|
7月前
|
安全 调度
基于Reactor模型的高性能网络库之核心调度器:EventLoop组件
它负责:监听事件(如 I/O 可读写、定时器)、分发事件、执行回调、管理事件源 Channel 等。
393 57
|
7月前
基于Reactor模型的高性能网络库之时间篇
是一个用于表示时间戳(精确到微秒)**的简单封装类
259 57
|
6月前
|
算法 安全 网络安全
【多智能体系统】遭受DoS攻击的网络物理多智能体系统的弹性模型预测控制MPC研究(Simulink仿真实现)
【多智能体系统】遭受DoS攻击的网络物理多智能体系统的弹性模型预测控制MPC研究(Simulink仿真实现)
280 0

热门文章

最新文章