计算机网络体系结构解析

news2024/9/24 15:17:39

OSI参考模型 与 TCP/IP模型

如图所示
image-20240707093716664

TCP/IP模型有几层

  • 应用层:只需要专注于为用户提供应用功能 HTTP、SMTP、Telnet等,工作在操作系统中的用户态,传输层及以下工作在内核态
  • 传输层:为应用层提供网络支持(TCP、UDP传输协议);传输的数据量非常大的场景下就需要将数据包进行分块,即使丢了只需要重新发送该块就可以。(如何区分一台设备上多个应用在接收传输数据时选择哪一个应用? 使用端口号来进行区分 80、22)
  • 网络层:将数据从一个设备传输到另一个设备,一般使用的IP协议进行传输 (寻址能力实现网络号查找朝哪个方向走、路由实现选择这个方向的最优路径)
  • 网络接口层:主要为网络层提供链路级别的传输服务,负责在以太网、wifi这样的底层网络上发送原始数据包,使用MAC地址来标识网络上的设备。

问题一:为什么要设计分层?

通过分层可以将庞大的网络问题,转化为若干个较小的局部问题,较小的局部问题解决和处理起来就比较的容易。通过分层能够细分通信功能,更易于单独实现每个分层的协议,并界定各个分层的具体责任和义务从而解决计算机在通信过程中遇到的实际问题。劣势在于过分模块化,使得处理变得更加沉重以及每个模块都不得不实现相似的处理逻辑。

问题二:模型中每一层的作用和顺序关系?

物理层(硬件):解决计算机之间的传输媒介和信号发送问题 【解决使用何种信号来传输比特的问题】 TCP/IP协议是在网络互连的设备之间能够通信的前提下被提出的

数据链路层(网络接口层):解决主机编址、如何从比特流中区分出地址和数据、协调各主机争用总线 【解决分组在一个网络上传输的问题】

网络层(互联网层):解决网络和主机共同编址的问题、路由器如何分组转发选择最优路径的问题 【解决分组在多个网络上传输的问题】 IP协议基于IP地址转发分包数据,不具有重发机制,属于非可靠性传输协议; ICMP用来发送异常通知,IP数据包在发送途中发生异常无法到达对端目标地址的场景下; ARP 从分组数据包的IP地址中解析出MAC地址的协议

运输层:解决进程之间基于网络的通信问题 端口号用来标识应用程序(服务器响应之后应该回传给那个进程)、出现传输错误如何处理 【解决进程之间基于网络通信的问题】 TCP \ UDP

应用层:通过应用进程间的交互来完成特定的网络应用

网络传输流程:

主机发送http请求报文,通过路由器转发到对应的服务器,服务器接收到之后返回相对应的http响应报文的数据,通过路由器转发给对应的主机 【实际上是主机里面的浏览器进程与服务器中的web服务器进程之间基于网络的通信】

image-20240707104430249

举个邮件发送的例子

(发送端沿着OSI模型的七层结构向下传输数据,接收端沿着七层结构向上传输数据)

A给B发送一封电子邮件的过程:

【发送过程】:A在电子邮件应用程序中编写邮件,点击"发送",程序将邮件传递到应用程序层,该层选取对应的协议再将数据传递到表示层。接着表示层压缩数据,将数据传递到会话层,会话层初始化通信会话后,接着数据到达发送方的传输层,在该层进行数据分段,然后到网络层后将数据段分解为数据包,然后在数据链路层中进一步分解为帧。随后数据链路层将这些帧传输到物理层,物理层将数据转换为位流1和0,最后通过物理介质发送数据。

【接收过程】:B的计算机物理介质接收到位流之后,数据沿着七层结构向上传输数据。首先物理层将位流转为帧,传递到数据链路层。然后数据链路层将帧重组为数据包,供网络层使用。接着网络层将数据包重组为数据段供传输层使用,传输层再将数据段重组为数据片段。随后数据流入B的会话层,该层将数据传递到表示层并结束通信会话。表示层解压数据并将原始数据传递到应用程序层。应用程序层将人们能够可读的数据传递到B的电子邮件软件中,然后就能收到并阅读A传递过来的电子邮件。

IP TCP DNS的关系

IP: 【网络层】

  • 作用:负责可靠传输数据包给对方
  • 前置条件:IP地址和MAC地址 (MAC地址基本不会更改)
  • ARP是一种解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址

TCP:【传输层】

  • 作用:提供可靠的字节流服务方便数据传输
  • 前置条件:三次握手保证通信的可靠

DNS:【应用层】

  • 作用:提供域名到IP地址之间的解析服务
  • 原因:域名相较于IP地址更加方便记忆

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

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

相关文章

《昇思25天学习打卡营第01天|qingyun201003》

打卡 日期 心得 我的主语言并不是Python,以及现在从事的工作也并不是开发;所以对于这个系列的课程,学习起来是较为困难的,所以基于这种情况,该如何进行学习?我的做法是全部交给AI,使用AI一步步解析代码&a…

xcode配置swift使用自定义主题颜色或者使用RGB或者HEX颜色

要想在xcode中使用自定义颜色或者配置主题色,需要在Assets中配置,打开Assets文件,然后点击添加Color Set: 输入颜色的名称,然后选中这个颜色,会出现两个颜色: Any Appearance表示亮色模式下使用…

JRT打印药敏报告

最近没写jrt系列博客,不是中途而废了。而是在写微生物系统。今天终于把微生物大体完成了,伴随着业务的实现,框架趋于完善和稳定。构建一套完美而强大的打印体系一直是我的理想,从最开始C#的winform打印控件到刚接触bs时候用js打印…

react学习——24redux实现求和案例(精简版)

1、目录结构 2、count/index.js import React, {Component} from "react"; //引入store,用于获取数据 import store from ../../redux/store export default class Count extends Component {state {count:store.getState()}componentDidMount() {//监测redux中的…

手撸俄罗斯方块(一)——简单介绍

手撸俄罗斯方块 简单介绍 《俄罗斯方块》(俄语:Тетрис,英语:Tetris),是1980年末期至1990年代初期风靡全世界的电脑游戏,是落下型益智游戏的始祖,电子游戏领域的代表作之一&a…

关于气象探测设备的介绍

气象探测设备概述 气象探测设备是用于收集、记录和分析大气环境信息的专用工具。它们能够实时监测气温、湿度、气压、风速、风向、降雨量等多种气象要素,为天气预报、气候研究、农业生产和环境保护等领域提供重要数据支持。气象探测设备种类繁多,包括地…

【UML用户指南】-33-对体系结构建模-系统和模型

目录 1、系统和子系统 2、模型和视图 3、跟踪 4、常用建模技术 4.1、对系统的体系结构建模 4.2、对系统的系统建模 模型是对现实世界的简化——即对系统的抽象,建立模型的目的是为了更好地理解系统。 1、系统和子系统 一个系统可能被分解成一组子系统&#…

MySQL超详细学习教程,2023年硬核学习路线

文章目录 前言1. 数据库的相关概念1.1 数据1.2 数据库1.3 数据库管理系统1.4 数据库系统1.5 SQL 2. MySQL数据库2.1 MySQL安装2.2 MySQL配置2.2.1 添加环境变量2.2.2 新建配置文件2.2.3 初始化MySQL2.2.4 注册MySQL服务2.2.5 启动MySQL服务 2.3 MySQL登录和退出2.4 MySQL卸载2.…

推荐3款电脑必备专业软件,错过拍大腿

SolveigMM Video Splitter SolveigMM Video Splitter是一款功能强大的视频编辑工具,主要用于视频的无损剪切和合并。该软件支持多种常见的视频格式,如AVI、WMV、ASF、MP3、WMA等。此外,它还支持AVCHD、MPEG-2、WebM、FLV等格式,并…

论文 | REACT: SYNERGIZING REASONING AND ACTING INLANGUAGE MODELS

本文首先认为,到目前为止,LLM 在语言理解方面令人印象深刻,它们已被用来生成 CoT(思想链)来解决一些问题,它们也被用于执行和计划生成。 尽管这两者是分开研究的,但本文旨在以交错的方式将推理…

JDBC编程的学习——MYsql版本

目录 前言 什么是JDBC ??? 前置准备 使用JDBC的五个关键步骤 1.建立与数据库的连接 2.创建具体的sql语句和Statement 3.执行SQL语句 4.处理结果集 5.释放资源 完整流程展示 前言 笔者在先前的博客就提过会写关于JDBC的内容 [Mysql] 的基础知识和sql 语句.教你速成…

python怎么调用cmd命令

关于python调用cmd命令: 1、python的OS模块 OS模块调用CMD命令有两种方式:os.popen()、os.system()都是用当前进程来调用。 OS.system是无法获取返回值的。当运行结束后接着往下面执行程序。用法如:OS.system("ipconfig"). OS.…

Invoice OCR

Invoice OCR 发票识别 其他类型ORC: DIPS_YTPC OCR-CSDN博客

【AI大模型】检索增强生成(RAG)模型在企业中的应用

彩蛋 ChatGPT4相比于ChatGPT3.5,有着诸多不可比拟的优势,比如图片生成、图片内容解析、GPTS开发、更智能的语言理解能力等,但是在国内使用GPT4存在网络及充值障碍等问题,如果您对ChatGPT4.0感兴趣,可以私信博主为您解决账号和环境…

基于Make的c工程No compilation commands found报错

由于安装gcc时只安装了build-essential,没有将其添加到环境变量中,因此打开Make工程时,CLion会产生如下错误: 要解决这个问题,一个方法是将GCC添加到环境变量中,但是这个方法需要修改至少两个配置文件&…

校园外卖系统带万字文档在线外卖管理系统java项目java课程设计java毕业设计

文章目录 校园外卖系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带万字文档(9.9¥带走) 校园外卖系统 一、项目演示 校园外卖服务系统 二、项目介绍 语言:java 数据库&…

MySQL实现数据备份的方式可以基于哪几种?

MySQL 数据库实现数据备份的方式主要有以下几种: 物理备份 (Physical Backup): 冷备份 (Cold Backup):在数据库关闭的情况下,直接复制数据库文件(数据文件、日志文件等)。这种方式操作简单,但是…

pd虚拟机去虚拟化是什么意思?pd虚拟机去虚拟化教程 PD虚拟机优化设置

Parallels Desktop for Mac(PD虚拟机)去虚拟化是指在虚拟机(Virtual Machine,简称 VM)中禁用或减少虚拟化层的影响,使其表现更接近于物理机。这种操作通常用于提高虚拟机的性能或解决某些软件兼容性问题。具…

【BUG】Python3|COPY 指令合并 ts 文件为 mp4 文件时长不对(含三种可执行源代码和解决方法)

文章目录 前言源代码FFmpeg的安装1 下载2 安装 前言 参考: python 合并 ts 视频(三种方法)使用 FFmpeg 合并多个 ts 视频文件转为 mp4 格式 Windows 平台下,用 Python 合并 ts 文件为 mp4 文件常见的有三种方法: 调用…

系统数据加密传输的实现

文章目录 1、背景2、需求3、实现思路3.1 密码加密3.2 密码解密3.3 nacos密码加密 4、相关工具类4.1 非对称加密RSA4.2 对称加密AES4.3 Nacos加解密的实现:Jasypt 5、历史数据兼容处理 1、背景 用户在浏览器发送请求数据到后台系统,期间数据在网络传输&a…