计算机网络:计算机网络体系结构 —— 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.mzph.cn/news/881164.shtml

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

相关文章

简单部署vue+springboot项目

vue 参考博客 先将vue项目打包 npm run build 再创建项目文件夹front,在front中新建nginx.conf server {listen 80;server_name localhost;# 请求体的大小限制client_max_body_size 50m;# 日志文件存放地址access_log /var/log/nginx/host.access.log main;error…

openpnp - 图像传送方向要在高级校正之前设置好

文章目录 openpnp - 图像传送方向要在高级校正之前设置好笔记图像传送方向的确定END openpnp - 图像传送方向要在高级校正之前设置好 笔记 图像传送方向和JOG面板的移动控制和实际设备的顶部摄像头/底部摄像头要一致,这样才能和贴板子时的实际操作方向对应起来。 …

C++ | Leetcode C++题解之第456题132模式

题目&#xff1a; 题解&#xff1a; class Solution { public:bool find132pattern(vector<int>& nums) {int n nums.size();vector<int> candidate_i {nums[0]};vector<int> candidate_j {nums[0]};for (int k 1; k < n; k) {auto it_i upper_…

测试-BUG篇

文章目录 软件测试的生命周期BUGbug的概念描述bug的要素bug级别bug的生命周期 与开发产生争执怎么办&#xff08;高频考题&#xff09; 软件测试的生命周期 软件测试贯穿于软件的整个生命周期 BUG bug的概念 是指计算机程序中存在的一个错误(error)、缺陷(flaw)、疏忽(mista…

docker环境下配置cerbot获取免费ssl证书并自动续期

文章目录 实践场景了解certbot查看nginx的映射情况操作目标配置nginx配置的ssl证书设置自动续签 实践场景 本人使用docker部署了一个nginx容器&#xff0c;通过容器卷&#xff0c;实现本地html&#xff0c;ssl&#xff0c;conf和ngiinx容器映射的&#xff0c; 经常需要手动部署…

适合跑步的开放式耳机哪个品牌好?怎么选?可入的蓝牙耳机推荐

想必很多爱晨跑的朋友&#xff0c;一定都有过这般令人困扰的经历。耳机戴久了总觉得不舒适&#xff0c;或是尺寸不合&#xff0c;或是材质欠佳&#xff0c;反正无论怎样调整&#xff0c;都很难找到最舒适的佩戴方式。而且&#xff0c;有时候戴的时间久了&#xff0c;还很容易掉…

FLUX的ID保持项目也来了! 字节开源PuLID-FLUX-v0.9.0,开启一致性风格写真新纪元!

之前的文章已经和大家介绍过字节开源的ID保持项目PuLID。随着FLUX模型的发布&#xff0c;PuLID也开源了 FLUX 版本的模型&#xff0c;不得不说FLUX的强大&#xff0c;两个月生态就赶上了SDXL。这次新发布PuLID-FLUX-v0.9.0模型&#xff0c;它为FLUX.1-dev提供了无需调整的ID定制…

4S店4S店客户管理系统小程序(lw+演示+源码+运行)

社会的发展和科学技术的进步&#xff0c;互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱&#xff0c;也逐渐进入了每个用户的使用。手机具有便利性&#xff0c;速度快&#xff0c;效率高&#xff0c;成本低等优点。 因此&#xff0c;构建符合自己要求的操作系统是非…

VirtulBOX Ubuntu22安装dpdk23.11

目录 依赖包安装 Python安装 numa安装 ​编辑Python pip3安装 ​编辑pyelftools安装 meson和ninja安装 ​编辑构建与编译 Meson构建DPDK ​编辑Ninja安装DPDK ​编辑VFIO-PCI驱动安装 大页内存和IOMMU配置 ​编辑VFIO-PCI加载 ​编辑VFIO-PCI驱动绑定 ​编辑dpdk…

Linux网络操作命令与函数全面总结

1. 引言 Linux作为服务器和开发平台&#xff0c;网络操作是其核心功能之一。本文旨在全面总结Linux系统中的网络操作方法&#xff0c;包括命令行工具和编程接口&#xff0c;帮助读者深入理解Linux网络管理的机制。 2. 命令行工具 2.1 ping 命令 ping 命令用于测试网络连接和…

【Linux】信号知识三把斧——信号的产生、保存和处理

目录​​​​​​​ 1、关于信号的前置知识 1.1.什么是信号&#xff1f; 1.2.为什么要学习信号&#xff1f; 1.3.如何学习信号&#xff1f; 1.4.一些常见的信号 1.5.信号的处理方式 1.6.为什么每一个进程都可以系统调用&#xff1f; 2.信号的产生 2.1.kill命令产生信号…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-28

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-28 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-28目录前言1. Cognitive phantoms in LLMs through the lens of latent variables摘要研究背景问题与挑战创新点算法模型实验效果…

【C++】二叉搜索树+变身 = AVL树

&#x1f680;个人主页&#xff1a;小羊 &#x1f680;所属专栏&#xff1a;C 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 前言一、AVL树二、AVL树的实现2.1 平衡因子2.2 旋转处理2.2.1 左单旋&#xff1a;插入新节点后单纯的右边高2.2.2 …

html5 + css3(上)

目录 HTML初识基础认知web标准vscode的简介和使用注释 HTML标签学习排版标签标题和段落换行和水平线标签 文本格式化标签媒体标签图片标签图片-基本使用图片-属性 路径绝对路径相对路径 音频标签视频标签链接标签 HTML基础列表标签列表-无序和有序列表-自定义 表格标签表格-使用…

【包教包会】2D图片实现3D透视效果(支持3.x、支持原生、可合批)

将去年写的SpriteFlipper从2.x升级到3.x。 如果需要2.x版本或需要了解算法思路&#xff0c;请移步&#xff1a;https://blog.csdn.net/weixin_42714632/article/details/136745051 优化功能&#xff1a;可同时绕X轴和Y轴旋转&#xff0c;两者效果会叠加。 完美适配Web、原生…

数据结构与算法篇(图)(持续更新迭代)

目录 一、引言 二、基本概念 三、图的定义 四、图的基本概念和术语 1. 有向图 2. 无向图 3. 简单图 4. 多重图 5. 完全图&#xff08;也称简单完全图&#xff09; 6. 子图 7. 连通、连通图和连通分量 8. 强连通图、强连通分量 9. 生成树、生成森林 10. 顶点的度、…

使用WPF实现一个快速切换JDK版本的客户端工具

发现网上一键切换JDK环境的方法都是在mac或Linux下的&#xff0c;本人主力电脑是Windows&#xff0c;于是看了一下WPF的文档&#xff0c;自己开发了一个客户端。 直接上代码吧&#xff1a; using JavaSwitch.Properties; using Newtonsoft.Json; using System; using System.…

【C++11】新特性

前言&#xff1a; C11 是C编程语言的一个重要版本&#xff0c;于2011年发布。它带来了数量可观的变化&#xff0c;包含约 140 个新特性&#xff0c;以及对 C03 标准中约600个缺陷的修正&#xff0c;更像是从 C98/03 中孕育出的新语言 列表初始化 C11 中的列表初始化&#xff0…

爬虫案例——爬取情话网数据

需求&#xff1a; 1.爬取情话网站中表白里面的所有句子&#xff08;表白词_表白的话_表白句子情话大全_情话网&#xff09; 2.利用XPath来进行解析 3.使用面向对象形发请求——创建一个类 4.将爬取下来的数据保存在数据库中 写出对应解析语法 //div[class"box labelbo…

vite学习教程03、vite+vue2打包配置

文章目录 前言一、修改vite.config.js二、配置文件资源/路径提示三、测试打包参考文章资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝3W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技术内容&…