计算机网络体系结构解析

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.rhkb.cn/news/374588.html

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

相关文章

谷粒商城实战-25-分布式组件-SpringCloud Alibaba-Nacos配置中心-加载多配置集

文章目录 一,拆分配置集二,配置文件中配置多配置集1,引用多配置集2,验证 三,多配置集总结1,使用场景2,优先级 这一节介绍如何加载多个配置集。 大多数情况下,我们把配置全部放在一个…

Linux系统学习 —— 计算机基础(笔记篇)

一、电脑硬件 电脑硬件由输入,控制计算,输出三部分组成。 输入部分包括键鼠,读卡器(外部接口),扫描仪(打印机的扫描仪)。计算控制部分包括CPU , 内存,硬盘&…

【Git基本操作】添加文件 | 修改文件 | 及其各场景下.git目录树的变化

目录 1. 添加文件&add操作和commit操作 2. .git树状目录的变化 3. git其他操作 4. 修改文件 4.1 git status 4.2 git diff 1. 添加文件&add操作和commit操作 add操作:将工作区中所有文件的修改内容 添加进版本库的暂存区中。commit操作:…

『Django』自带的后台

theme: smartblue 本文简介 点赞 关注 收藏 学会了 上一篇讲了 Django 操作 MySQL 的方法,讲了如何创建模型,如何对数据库做增删改查的操作。但每次修改数据都要写代码,多少有点麻烦。 有没有简单一点的方法呢? 有的有的&#…

鸿蒙语言基础类库:【@ohos.util.Vector (线性容器Vector)】

线性容器Vector 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 Vect…

C语言 结构体和共用体——结构体所占内存的字节数

目录 结构体所占内存的字节数 结构体所占内存的字节数

极验语序点选验证码识别(一)

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 极验文字点选验证码不必多说,很多小伙伴,借助标注工具或者打码平台标注完数据集后,使用开源的目标检测网络即可完成,欢迎收看我之前的文章: Pytorch利用ddddocr辅助识别点选验证码 或者使…

d3dcompiler_43.dll文件是什么?如何快速有效的解决d3dcompiler_43.dll文件丢失问题

dcompiler_43.dll 是一个Windows系统中的系统文件,属于DirectX软件的一部分。这个dcompiler_43.dll(动态链接库)文件主要用于处理与3D图形编程有关的任务,是运行许多游戏和高级图形程序必需的组件之一。那么如果电脑丢失d3dcompil…

Unity之OpenXR+XR Interaction Toolkit实现 Gaze眼部追踪

使用 Unity OpenXR 实现Gaze眼部追踪 在虚拟现实(VR)和增强现实(AR)应用中,眼动追踪是一项强大而受欢迎的技术。它可以让开发者更好地理解用户的注意力和行为,并创造出更加沉浸和智能的体验。在本文中,我们将探讨如何使用 Unity OpenXR 实现Gaze眼部追踪功能。 Unity …

Flutter-实现物理小球碰撞效果

效果 引言 在Flutter应用中实现物理动画效果,可以大大提升用户体验。本文将详细介绍如何在Flutter中创建一个模拟物理碰撞的动画小球界面,主要代码实现基于集成sensors_plus插件来获取设备的加速度传感器数据。 准备工作 在开始之前,请确保…

聊聊大模型如何为敏捷研发提效

这是鼎叔的第一百零二篇原创文章。行业大牛和刚毕业的小白,都可以进来聊聊。 欢迎关注本公众号《敏捷测试转型》,星标收藏,大量原创思考文章陆续推出。本人新书《无测试组织-测试团队的敏捷转型》已出版(机械工业出版社&#xff…

红日靶场----(三)2.漏洞利用

上期的通过一句话木马实现对目标主机的持久后门 我使用的是蚁剑,蚁剑安装及使用参考: 下载地址: GitHub - AntSwordProject/AntSword-Loader: AntSword 加载器 安装即使用: 1. 快速入门 语雀 通过YXCMS的后台GETSHELL 利用…

设计模式探索:策略模式

1. 什么是策略模式(Strategy Pattern) 定义 策略模式(Strategy Pattern)的原始定义是:定义一系列算法,将每一个算法封装起来,并使它们可以相互替换。策略模式让算法可以独立于使用它的客户端而…

算法day03 桶排序 数据结构分类 时间复杂度 异或运算

学数据结构之前 必看_哔哩哔哩_bilibili 1.认识复杂度和简单排序算法_哔哩哔哩_bilibili 桶排序(Bucket sort)------时间复杂度为O(n)的排序方法(一)_多桶排序时间复杂度-CSDN博客 桶排序 测试场景:数组中有10000个随…

PyTorch SummaryWriter TensorBoard 中进行可视化

在 PyTorch 中,SummaryWriter 通常用于在训练过程中记录各种数据,以便在 TensorBoard 中进行可视化。 - 安装: pip install tensorboard -i https://mirrors.aliyun.com/pypi/simple/ from torch.utils.tensorboard import SummaryWriter…

MVC分页

public ActionResult Index(int ? page){IPagedList<EF.ACCOUNT> userPagedList;using (EF.eMISENT content new EF.eMISENT()){第几页int pageNumber page ?? 1;每页数据条数&#xff0c;这个可以放在配置文件中int pageSize 10;//var infoslist.C660List.OrderBy(…

2.电容(常见元器件及电路基础知识)

一.电容种类 1.固态电容 这种一般价格贵一些&#xff0c;ESR,ESL比较低,之前项目400W电源用的就是这个&#xff0c;温升能够很好的控制 2.铝电解电容 这种一般很便宜&#xff0c;ESR,ESL相对大一些&#xff0c;一般发热量比较大&#xff0c;烫手。 这种一般比上一个贵一点&am…

【人工智能】-- 反向传播

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a; 专业知识 文章目录 &#x1f349;引言 &#x1f349;反向传播 &#x1f348;定义 &#x1f348;反向传播的作用 &#x1f34d;参数优化 &#x1f34d;学…

docker也能提权??内网学习第6天 rsync未授权访问覆盖 sudo(cve-2021-3156)漏洞提权 polkit漏洞利用

现在我们来说说liunx提权的操作&#xff1a;前面我们说了环境变量&#xff0c;定时任务来进行提权的操作 rsync未授权访问覆盖 我们先来说说什么是rsync rsync是数据备份工具&#xff0c;默认是开启的873端口 我们在进行远程连接的时候&#xff0c;如果它没有让我们输入账号…

Python高级(三)_正则表达式

Python高级-正则表达式 第三章 正则表达式 在开发中会有大量的字符串处理工作,其中经常会涉及到字符串格式的校验。 1、正则表达式概述 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、…