计算机网络:计算机网络体系结构 —— OSI 模型 与 TCP/IP 模型

news2024/12/28 3:40:11

文章目录

    • 计算机网络体系结构
      • OSI 参考模型
      • TCP/IP 参考模型
      • 分层的必要性
        • 物理层的主要问题
        • 数据链路层的主要问题
        • 网络层的主要问题
        • 运输层的主要问题
        • 应用层的主要问题
      • 分层思想的处理方法
        • 发送请求
        • 路由器转发
        • 接受请求
        • 发送响应
        • 接收响应

计算机网络体系结构

计算机网络体系结构是指将计算机网络分为不同的层次和功能模块,以实现可靠的数据传输和通信的架构模型。

由于计算机网络从底层的传输到高层的软件设计十分复杂,要合理地设计计算机网络模型,必须采用分层模型,每一层负责处理自己的操作。

OSI 参考模型

OSI(Open System Interconnect)网络模型是 ISO 组织定义的一个计算机互联的标准模型。它只是一个定义,目的是为了简化网络各层的操作,提供标准接口便于实现和维护。

这个模型从底层到高层依次是:

  1. 物理层(Physical Layer):该层负责传输原始的比特数据流,以及定义传输介质和物理连接的电气特性,如电压、数据传输速率等。

  2. 数据链路层(Data Link Layer):该层负责将数据分割成帧,进行错误检测和纠正,并确保数据在物理介质上的可靠传输。它还处理数据包的寻址和传输控制。

  3. 网络层(Network Layer):该层负责在网络中实现数据包的路由和转发。根据目标地址选择路由来传输数据,确定最佳路径,并能够处理跨越不同网络的数据传输。

  4. 传输层(Transport Layer):该层提供端到端的可靠数据传输服务,确保数据的完整性、排序和可靠性。常见的传输层协议有 TCP(传输控制协议)和 UDP(用户数据报协议)。

  5. 会话层(Session Layer):该层负责建立、管理和终止通信会话,以实现不同计算机之间的交互。

  6. 表示层(Presentation Layer):该层负责数据格式的表示和转换,以确保不同系统之间的数据可以正确解释和处理。常见的任务包括数据加解密、数据压缩和数据格式转换。

  7. 应用层(Application Layer):该层是用户和应用程序直接接触的层,它提供了不同应用程序之间交换数据所需的服务和协议。常见的应用层协议有 HTTP(超文本传输协议)、SMTP(简单邮件传输协议)等。

![[OSI Reference Model.png]]

TCP/IP 参考模型

TCP/IP 协议Transmission Control Protocol/Internet Protocol)是互联网中最常用的协议之一,是网络通信所必须的基本协议。使用其他网络协议(例如 NetBIOS、AppleTalk 协议等)是无法联入互联网的

TCP/IP 协议以层次化的 TCP/IP 参考模型的方式组织起来,分为四个层次:

  1. 应用层(Application Layer):该层是应用程序直接使用的,它规定了不同应用之间的信息交互格式和交互方式。常见的应用层协议包括 [[#HTTP]]、FTPSMTP 等。

  2. 传输层(Transport Layer):该层提供端到端的数据传输服务,为应用层提供可靠的数据传输机制TCP(传输控制协议)和 UDP(用户数据报协议)是传输层协议。

  3. 网络层(Network Layer):该层负责一组数据包从源头到目标地的传输,提供了一种数据传输方式,也就是互联网。IP(互联网协议)是网络层中最主要的协议。

  4. 网络接口(数据链路)层(Link Layer):该层负责将数据帧组装成字节流,送到物理层中作为比特流进行传输。在实际应用中,链路层包含了许多子层,主要子层有以太网、WiFi、蓝牙、DSL 等。

![[TCPIP Referenc Model.png]]

互联网实际使用的 TCP/IP 模型并不是对应到 OSI 的 7 层模型,而是大致对应 OSI 的 5 层模型:

![[OSI Model.png]]

TCP/IP 协议是互联网的基础,支持复杂的网络架构和千变万化的应用,它主要用于传输各种不同形式的数据,如文件、邮件、多媒体等。

分层的必要性

计算机网络是一个非常复杂的系统,“分层”可将庞大复杂的问题转化为若干较小的局部问题

物理层的主要问题
  • 采用什么传输媒介作为传输链路(物理层之下)

  • 用户主机、交换机、路由器等网络设备采用什么物理接口连接传输介质。

  • 采用哪种信号表示比特 0 和 1

数据链路层的主要问题

数据链路层主要解决数据包在一个网络或一段链路上传输的问题

  • 如何标识网络中的各主机(主机编址,如 MAC 地址)

  • 目的主机如何从一连串的比特流中区分出地址和数据(数据封装格式问题

  • 总线型网络中的信号碰撞问题,如何协调各主机争用总线(媒体介入控制)。总线型网络已淘汰,如今常用使用以太网交换机,将多台主机互联而成的交换式以太网,多个主机可以同时通信而不会产生碰撞。

  • 以太网交换机的实现(自学习和转发帧

  • 有线网络很少出现误码,而无线网络容易出现误码问题。需检查数据在传输过程中是否出现误码(差错检测

  • 当检测到数据包出现误码时,如何处理传输差错问题(可靠传输和不可靠传输

  • 接收方控制发送方注入网络的数据量(流量控制

网络层的主要问题

网络层主要解决数据包在多个网络之间传输和路由的问题

  • 标识网络和网络中的各主机(网络和主机共同编址(网络号相同,主机号不同),如 IP 地址)

![[NetWork IP Address.png]]

  • 路由器转发分组(路由选择协议、路由表、转发表
运输层的主要问题
  • 标识与网络通信相关的应用进程,解决进程之间基于网络通信的问题(进程的标识,如端口号)

  • 出现传输差错时如何处理(可靠传输和不可靠传输

应用层的主要问题
  • 制定应用协议,并按协议标准编写相应的应用程序,通过应用进程的交互来完成特定的网络应用

  • 应用进程基于网络通信时的会话管理和数据表示问题

分层思想的处理方法

通过一个实例理解分层思想的处理方法。

如图所示,主机属于 网络N1,Web 服务器属于 网络N2N1N2 通过路由器互连,用户在主机中使用浏览器访问 Web 服务器。

主机会向 Web 服务器发送一个请求报文,Web 服务器收到请求报文后,执行相应的操作,然后给主机发送响应报文,主机收到响应报文后,由浏览器负责解析和渲染解释。

主机和 Web 服务器之间基于网络的通信,实际上是主机中的浏览器应用进程和 Web 服务器中的 Web 服务器应用进程之间基于网络的通信

![[Browser Send Request.png]]

发送请求

发送请求时:

  1. 主机中的应用层根据 HTTP 协议的规定,构建一个 HTTP 请求报文,用于请求 Web 服务器执行相应操作。应用层将构建好的 HTTP 请求报文向下交付给运输层

  2. 运输层给 HTTP 请求报文添加一个 TCP 首部,将其封装成为 TCP 报文段,用于区分应用进程,实现可靠传输。运输层将封装好的 TCP 报文段向下交付给网络层

  3. 网络层给 TCP 报文段添加一个 IP 首部(主要作用是 IP 寻址和路由),将其封装成为 IP 数据报,网络层将封装好的 IP 数据报向下交付给数据链路层

  4. 数据链路层给 IP 数据报 添加一个首部和一个尾部,并将其封装成为,帧的首部和尾部的主要作用是 MAC 寻址和帧校验。数据链路层将封装好的帧向下交付给物理层

  5. 物理层将封装好的帧视为比特流(由二进制组成的数据流),将其转换为电信号进行发送。对于以太网,物理层还会在比特流前添加前导码,使接收方的时钟同步,做好接受准备。

路由器转发
  1. 主机的物理层将电信号发送给路由器后,其物理层将电信号转换为比特流。若为以太网,会将比特流的前导码去掉。物理层将帧向上交付给数据链路层

  2. 数据链路层将帧首部和尾部去掉后,将 IP 数据报向上交付给网络层。

  3. 网络层从 IP 数据报的首部中提取出目的 IP 地址,路由器根据目的 IP 地址查找自己的转发表,确定转发该 IP 数据报的接口,同时,对首部中的某些字段值,如生存时间 TTL 字段的值进行相应的修改。将该 IP 数据报向下交付给数据链路层。

  4. 数据链路层为 IP 数据报添加一个首部和一个尾部,将其封装成为帧。将帧向下交付给物理层

  5. 物理层将帧视为比特流(对于以太网会添加前导码),将其转换为电信号后发送出去。

接受请求

Web 服务器接收到数据包后,会按照网络体系结构自下而上的顺序将其进行逐层解封,解封出 HTTP 请求报文。

发送响应

接收到 HTTP 请求报文后,执行相应的操作。然后给主机发送包含有浏览器请求内容的 HTTP 响应报文。

与浏览器发送 HTTP 请求报文的过程类似,HTTP 响应报文需要在 Web 服务器层层封装后才能发送。

接收响应

数据包经过路由器的转发到达主机,主机对收到的数据包按照网络体系结构自下而上的顺序将其进行逐层解封,解封出 HTTP 响应报文。

![[Web Server Send Response.png]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2185934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文说完c++全部基础知识,IO流(二)

一、IO流 流、一连串连续不断的数据集合。 看下图&#xff0c;继承关系 using namespace 流类的构造函数 eg:ifstream::ifstream (const char* szFileName, int mode ios::in, int); #include <iostream> #include <fstream> using namespace std; int main()…

堆排序算法详解:原理与Python实现

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…

注册安全分析报告:科研诚信查询平台无验证方式导致安全隐患

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

《MoCo:Momentum Contrast for Unsupervised Visual Representation Learning》中文校对版

系列文章目录 文章目录 系列文章目录摘要1.简介2.相关工作3.方法3.1.作为字典查找的对比学习2、3、 五、1、2、3、 六、1、2、3、 七、1、2、3、 八、1、2、3、 摘要 我们提出了用于无监督视觉表示学习的动量对比&#xff08;MoCo&#xff09;。从对比学习[29]作为字典查找的角…

死锁的成因与解决方案

目录 死锁的概念与成因 栗子 死锁的情况 哲学家问题 如何避免死锁 必要条件 死锁的解决方案 总结 死锁的概念与成因 多个线程同时被阻塞,他们中的其中一个或者全部都在等待某个资源的释放,导致线程无限期被阻塞,程序无法停止 栗子 我和美女a出去吃饺子,吃饺子要醋和酱油…

【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换,和文本日期格式转换。

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】000011 案列 EXCEL带有三角形图标的单元格转换。使用…

Pikachu-csrf-CSRF(get)

登陆&#xff0c;修改个人信息&#xff1b;发现这是个get请求 把请求连接复制出来 ​http://192.168.3.224:8082/vul/csrf/csrfget/csrf_get_edit.php?sex1&phonenum1&add2&email3&submitsubmit就是 get请求的csrf 攻击payload

阿里云域名解析和备案

文章目录 1、域名解析2、新手引导3、ICP备案 1、域名解析 2、新手引导 3、ICP备案

重放Net-NTLM HASH 实验

先记录relay2SMB的&#xff0c;relay2LDAP的会补上来。 后面的一些利用EXCHANGE服务器的writedacl权限来relay2EWS DCSync的等我安了EXCHANGE再说吧2333。。 1. relay2SMB 0x01 smbrelayx.py 监听Net-NTLM&#xff0c;然后中继到win2008的SMB服务&#xff0c;执行whoami命…

CSS多列

CSS多列 前言 有的时候希望文本能按照多列效果显示&#xff0c;如&#xff1a; 这时候就要把文本显示效果改成多列显示&#xff0c;标题独占一行 CSS文本多列使用 ① column-count 指定文本分为几列&#xff0c;如&#xff1a; column-count: 3;② column-gap 指定列之…

微型导轨在IC制造设备的应用与优势

微型导轨的精度和稳定性对于机器的准确执行任务至关重要&#xff0c;其精确度通常用微米或毫米来衡量。其尺寸可以做到非常小&#xff0c;常运用在小型设备上&#xff0c;尤其是在IC制造设备中&#xff0c;其应用非常广泛。 在IC制造设备中主要用于半导体芯片的切割、封装和测试…

【C++】多态(下)

个人主页~ 多态&#xff08;上&#xff09;~ 多态 四、多态的原理1、虚表的存储位置2、多态的原理3、动态绑定和静态绑定 五、单继承和多继承关系的虚函数表1、单继承中的虚函数表2、多继承中的虚函数表 六、多态中的一些小tips 四、多态的原理 1、虚表的存储位置 class A {…

AIGC(AI网站分享)

博客C知道 人工智能(Artificial Intelligence,简称AI)是一门研究如何使机器能够像人一样思考和行动的科学。它涉及到模拟和复制人类智能的各个方面,包括学习、推理、问题解决、感知、原创性等。人工智能技术的发展使得计算机可以模拟人类的思维过程,并根据外界的输入做出相…

day02笔试练习

1.牛牛的快递 题目链接&#xff1a;牛牛的快递_牛客题霸_牛客网 public static void main(String[] args){Scanner in new Scanner(System.in);double a in.nextDouble();char c in.next().charAt(0);int ret 0;if(a < 1){ret 20;}if(a > 1){ret 20 (int) Math…

C++ | Leetcode C++题解之第447题回旋镖的数量

题目&#xff1a; 题解&#xff1a; class Solution { public:int numberOfBoomerangs(vector<vector<int>> &points) {int ans 0;for (auto &p : points) {unordered_map<int, int> cnt;for (auto &q : points) {int dis (p[0] - q[0]) * (p…

波数k(空间中角频率的变化速度,即走多少长度,变化多少角频率)

K不是电磁波的移动速度&#xff0c;那个是相速度。 K是空间中角频率的变化速度&#xff0c;即走多少长度&#xff0c;变化多少角频率

第25天:web攻防-通用漏洞sql读写注入MYSQLMSSQL

#知识点&#xff1a; 1、sql注入-mysql数据库 2、sql注入-mssql数据库 3、sql注入-postgreSQL数据库 #详细点&#xff1a; Access无高权限注入点-只能猜解&#xff0c;还是暴力猜解 MYSQL&#xff0c;PostgreSQL&#xff0c;MSSQL高权限注入&#xff0c;可升级为读写执行。…

[C#]C# winform部署yolov11目标检测的onnx模型

【测试环境】 vs2019 netframework4.7.2 opencvsharp4.8.0 onnxruntime1.16.2 【效果展示】 【实现部分代码】 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; usi…

自给自足:手搓了一个睡眠监测仪,用着怎么样?

很久不分享手搓党作品拉&#xff01; 今天分享一个“基于毫米波雷达的睡眠监测仪”作品&#xff01; 用Air700E开发板毫米波雷达&#xff0c;手搓一个开箱即用的睡眠监测仪&#xff0c;不花冤枉钱&#xff01; 来仔细瞧瞧&#xff01; 一、项目原理及硬件制作 毫米波是指频率…

1688商品API接口:电商数据自动化的新引擎

1688作为中国领先的B2B电子商务平台&#xff0c;为广大商家和制造商提供了一个展示和交易商品的广阔市场。随着1688商品API接口的推出&#xff0c;开发者和商家现在能够通过编程方式自动化获取和管理商品数据&#xff0c;极大地提高了工作效率和数据处理的灵活性。 一、1688商品…