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

文章目录

    • 计算机网络体系结构
      • 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.xdnf.cn/news/1553001.html

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

相关文章

12.Velodyne16线激光雷达在ROS下的仿真(使用 URDF 描述和 Gazebo 插件来模拟 Velodyne 激光扫描仪)

1 下载VLP16的模型描述文件 在这个网站上进行下载: Bitbuckethttps://bitbucket.org/DataspeedInc/velodyne_simulator/src/master/ 使用 URDF 描述和 Gazebo 插件来模拟 Velodyne 激光扫描仪! 下图是一个官方给的效果。 URDF with colored meshe…

嵌入式外设应用(代码)

文章目录 1. 工业自动化2. 智能家居设备3. 汽车电子4. 生命体征监测仪5. 物联网应用嵌入式外设应用广泛,有很多应用领域: 1. 工业自动化 应用场景:使用传感器监测设备状态,控制电机的启动和停止。 示例代码: #include <stdio.h> #include <stdbool.h>// 模…

Android 日志打印频率过高排查的一些技巧

最近项目快到 sop 阶段了&#xff0c;看到最近的一个新的任务&#xff0c;提示应用打印频率每秒超过 100 行/秒&#xff0c;需要优化一下。 那这样看起来需要删减一点日志&#xff0c;是不是先要找一下我们的应用打印了多少。 当然如果项目是自己维护的&#xff0c;那肯定是知…

java中创建不可变集合

一.应用场景 二.创建不可变集合的书写格式&#xff08;List&#xff0c;Set&#xff0c;Map) List集合 package com.njau.d9_immutable;import java.util.Iterator; import java.util.List;/*** 创建不可变集合:List.of()方法* "张三","李四","王五…

Let‘s Encrypt 的几个常用命令

Lets Encrypt 是免费的 ssl 证书提供商&#xff0c;在当前纷纷收费的形式下&#xff0c;这是一个良心厂家&#xff0c;虽然使用起来略微繁琐。坚决抵制某 cxxn 站&#xff0c;竟然开始有辣么多收费的东西。这里记录几个常用的命令&#xff08;使用环境Ubuntu 24&#xff09;&am…

MySQL高阶2041-面试中被录取的候选人

目录 题目 准备数据 分析数据 总结 题目 编写解决方案&#xff0c;找出 至少有两年 工作经验、且面试分数之和 严格大于 15 的候选人的 ID 。 可以以 任何顺序 返回结果表。 准备数据 Create table If Not Exists Candidates (candidate_id int, name varchar(30), yea…

给大家提个醒!!!

前些天在某鱼买了一个KNX路由器&#xff0c;外观看起没什么问题&#xff0c;但内部就大跌眼镜了。 话不多说&#xff0c;直接上图 拿到手&#xff0c;外壳看起来没有什么问题 . 上电只亮灯 之后插网线&#xff0c;路由器上找不到设备 开壳&#xff0c;惊掉下巴 加个PHY…

利用自动化工具增强防火墙管理

在选择下一代防火墙以平衡安全需求和网络性能时&#xff0c;组织应优先考虑哪些因素&#xff1f; 最重要的部分——安全需求、可用性和网络性能必须保持平衡&#xff0c;而找到共同点并不总是那么容易。 选择防火墙时&#xff0c;组织必须采取的第一步是深入了解现有网络基础…

广联达 Linkworks办公OA Service.asmx接口存在信息泄露漏洞

漏洞描述 广联达科技股份有限公司以建设工程领域专业应用为核心基础支撑&#xff0c;提供一百余款基于“端云大数据”产品/服务&#xff0c;提供产业大数据、产业新金融等增值服务的数字建筑平台服务商。广联达OA存在信息泄露漏洞&#xff0c;由于某些接口没有鉴权&#xff0c…

基于 STM32F407 的串口 IAP

目录 一、概述二、IAP 实现三、IAP 程序1、串口部分2、iap 程序3、内部 flash 读写4、main 程序 IAP&#xff08;In Application Programming&#xff0c;在应用编程&#xff09;是用户自己的程序在运行过程中对 User Flash 的部分区域进行烧写。简单来说&#xff0c;就是开发者…

红外画面空中目标检测系统源码分享

红外画面空中目标检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comp…

Spring Boot助力IT领域交流平台开发

2 系统关键技术 2.1 JAVA技术 Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中&#xff0c;Java的身影无处不在&#xff0c;并且拥有旺盛的生命力。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xff0c;…

vmvare虚拟机centos 忘记超级管理员密码怎么办?

vmvare虚拟机centos 忘记超级管理员密码怎么办?如何重置密码呢? 一、前置操作 重启vmvare虚拟机的过程中,长按住Shift键 选择第一个的时候,按下按键 e 进入编辑状态。 然后就会进入到类似这个界面中。 在下方界面 添加 init=/bin/sh,然后按下Ctrl+x进行保存退出。 init=/bi…

开放式耳机的优缺点?哪个品牌专业?好用的开放式蓝牙耳机分享

我相信很多想入手的开放式耳机的家人都想知道开放式耳机是什么&#xff0c;开放式耳机有什么优缺点&#xff0c;开放式耳机是不是智商税、值不值得购买以及如果要购买的话&#xff0c;有什么专业的开放式耳机品牌推荐。因为我毕竟是测评过三十多款开放式耳机的数码博主&#xf…

mdm监管锁系统功能说明

普通用户后台功能说明 设备管理 设备列表 添加的设备列表 点击序列号可以进入设备详细信息 可以修改设备使用人的姓名 手机号 分组等 还可以导出报表 设备信息 展示了一些设备信息和可以下发指令 指令说明 指令分为异步和非异步 下发指令是和手机设备有交互&#xff0c;一…

使用默认不可变的Rust变量会踩什么坑

讲动人的故事&#xff0c;写懂人的代码 Rust的变量真的是名不副实。名字中明明有个“变”字&#xff0c;却默认不可变。还美其名曰“不可变变量”。要想让变量名副其实&#xff0c;还必须费心额外加个mut关键字&#xff0c;并必须称其为“可变变量”&#xff0c;才能与前者区分…

【AI人工智能】文心智能体,陪爸妈去旅游,国庆假期不容错过,旅游搭子首选

文章目录 背景创作灵感陪爸妈去旅游简介角色与目标思考路径个性化开场白调优 智能体体验总结和感受 背景 文心智能体平台&#xff0c;开启新一轮活动&#xff0c;超级创造营持续百日活动。 在AI 浪潮席卷的今天&#xff0c;如雨后春笋般丛生的 AI 应用&#xff0c;昭告着时代风…

MySQL优化实战 解决CPU100%

问题表象 在24年初有一个日经问题困扰着我们&#xff0c;每到正点03分DB的CPU开始打满&#xff0c;持续1分钟又恢复正常水平。但由于日常业务交付压力较大且权限限制没有登录DB主机的权限&#xff0c;大家也就得过且过一直没有去认真排查。直到某天我来兴趣了也有时间了&#…

基于51单片机的家用防火防盗控制系统设计

本设计基于51单片机的家用防火防盗控制系统&#xff0c;该系统通过模块间的协同作用实现了对烟雾与天然气浓度的监测、温度监测、人体红外监测、通信传输、声光报警等功能。利用按键模块设置报警的阈值&#xff0c;将处理后的信息与阈值进行对比。判断气体浓度和温度是否超过阈…