计算机网络体系结构解析

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.mzph.cn/pingmian/45132.shtml

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

相关文章

vue3实现在style中使用响应式变量

vue2的时候需要在style模块中访问script模块中的响应式变量&#xff0c;为此不得不使用css变量去实现。现在vue3已经内置了这个功能啦&#xff0c;可以在style中使用v-bind指令绑定script模块中的响应式变量。 示例 <template><div><span>hello </span&…

40个高阶ChatGPT学术论文指令集(附GPT使用链接)

我精心挑选的40个顶尖ChatGPT学术论文指令集&#xff0c;无疑将成为你撰写论文和开展研究的珍贵资源&#xff0c;极力推荐你珍藏起来&#xff01;这些建议极具实用价值&#xff0c;能有效提高你的研究工作效率&#xff0c;使得论文撰写过程轻松许多。 在开始前&#xff0c;提示…

8、matlab彩色图和灰度图的二值化算法汇总

1、彩色图和灰度图的二值化算法汇总原理及流程 彩色图和灰度图的二值化算法的原理都是将图像中的像素值转化为二值&#xff08;0或1&#xff09;&#xff0c;以便对图像进行简化或者特定的图像处理操作。下面分别介绍彩色图和灰度图的二值化算法的原理及流程&#xff1a; 1&a…

Python功能制作之获取CSDN所有发布文章的对应数据

大家好&#xff0c;今天我要分享的是一个实用的Python脚本&#xff0c;它可以帮助你批量获取CSDN博客上所有发布文章的相关数据&#xff0c;并将这些数据保存到Excel文件中。此外&#xff0c;脚本还会为每篇文章获取一个质量分&#xff0c;并将这个分数也记录在Excel中。让我们…

多周期路径的约束与设置原则

本节将回顾工具检查建立保持时间的原则&#xff0c;接下来介绍设置多周期后的检查原则。多周期命令是设计约束中常用的一个命令&#xff0c;用来修改默认的建立or保持时间的关系。基本语法如下 默认的建立时间与保持时间的检查方式 DC工具计算默认的建立保持时间关系是基于时钟…

Python实战:拥有设闹钟功能的可视化动态闹钟的实现

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

6-5,web3浏览器链接区块链(react+区块链实战)

6-5&#xff0c;web3浏览器链接区块链&#xff08;react区块链实战&#xff09; 6-5 web3浏览器链接区块链&#xff08;调用读写合约与metamask联动&#xff09; 6-5 web3浏览器链接区块链&#xff08;调用读写合约与metamask联动&#xff09; 这里就是浏览器端和智能合约的交…

高职Web全栈式开发实训室解决方案

一、专业背景 随着网络普及和发展&#xff0c;网站作为一种很强大的工具和平台愈来愈融入了人们的生活&#xff0c;而与用户关系最密切的前端技术也逐渐获得应有的重视。咱们能够看到前端重构的行业发展潜力巨大&#xff0c;各大知名的网络公司对前端人才的求饥若渴。近年来HT…

DID差分模型案例集(传统DID、队列DID、渐近DID、空间DID、PSM-DID)

双重差分&#xff08;DID&#xff09;模型是一种广泛应用于经济学、社会学等领域的统计方法&#xff0c;主要用于评估政策或事件的因果效应。以下是DID模型几个重要变体的简要介绍&#xff1a; 1、传统DID&#xff08;Traditional DID&#xff09;&#xff1a;这是DID模型的基…

【Qt 从基础】创建一个 Qt 项目后,自动生成的代码和文件分析

文章目录 1. Sources 目录下&#xff0c;main.cpp 文件的分析&#x1f427;2. Headers 目录下&#xff0c;widget.h 文件的分析&#x1f427;3. Sources 目录下&#xff0c;widget.cpp 文件的分析&#x1f427;4. Forms 目录下&#xff0c;widget.ui 文件的分析&#x1f427;5.…

目标检测基本标注工具-labelImg安装与使用

&#x1f349;一、安装 1.1 打开conda创建虚拟环境&#x1f388; conda create -n labelImg python3.8 -y 1.2 激活labelImg虚拟环境&#x1f388; activate labelImg1.3 安装labelImg&#x1f388; pip install -i https://pypi.tuna.tsinghua.edu.cn/simple lab…

Protobuf: 大数据开发中的高效数据传输利器

作为一名大数据开发者&#xff0c;我经常需要处理海量的数据传输和存储。在这个过程中&#xff0c;选择一个高效、可靠的数据序列化工具至关重要。今天&#xff0c;我想和大家分享一下我在项目中使用 Protobuf 的经历。 目录 故事背景Protobuf 简介优点&#xff1a; 实战案例示…

uView、ColorUI与Vant框架的深入分析与案例实践

摘要&#xff1a; 随着移动开发技术的不断发展&#xff0c;框架的选择对于项目的成功至关重要。本文将对uView、ColorUI和Vant这三个主流移动端框架进行深入分析&#xff0c;探讨它们的优缺点&#xff0c;并通过实际案例展示如何根据项目需求选择合适的框架。 一、引言 在移动…

【人工智能】-- 受限玻尔兹曼机

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a; 专业知识 文章目录 &#x1f349;引言 &#x1f349;受限玻尔兹曼机 &#x1f348;RBM的结构 &#x1f34d;RBM的架构图 &#x1f34d;RBM的经典实现 &…

Python中对asyncio的实际使用

前言&#xff1a;一般涉及异步编程我都无脑用celery&#xff0c;但是最近在做一个项目&#xff0c;项目不大&#xff0c;也不涉及定时任务&#xff0c;所以就用了asyncio。 asyncio是python自带的模块&#xff0c;比celery轻量&#xff0c;使用起来也简单。以前学习过&#xf…

论文阅读【时空+大模型】ST-LLM(MDM2024)

论文阅读【时空大模型】ST-LLM&#xff08;MDM2024&#xff09; 论文链接&#xff1a;Spatial-Temporal Large Language Model for Traffic Prediction 代码仓库&#xff1a;https://github.com/ChenxiLiu-HNU/ST-LLM 发表于MDM2024&#xff08;Mobile Data Management&#xf…

ArrayList----源码分析

源码中的简介&#xff1a; List接口的可调整数组实现。实现所有可选列表操作&#xff0c;并允许所有元素&#xff0c;包括null。除了实现List接口之外&#xff0c;这个类还提供了一些方法来操作内部用于存储列表的数组的大小。(这个类大致相当于Vector&#xff0c;只是它是不同…

TC软件许可优化解决方案

TC功能说明 Teamcenter 软件是西门子面向全球范围开发的数字化全生命周期管理&#xff08;PLM&#xff09;系统&#xff0c;将人员、产品、流程、知识有机联系在一起&#xff0c;以帮助企业实现数字化协同、数字化赋能、 数字化转型&#xff0c;从而推动企业产品创新与效率提升…

Java链表LinkedList经典题目

一.LinkedList的方法 首先先看一下链表的方法&#xff1a; 方法解释boolean add(E e)尾插void add(int index, E element)将 e 插入到 index 位置boolean addAll(Collection c)尾插 c 中的元素E remove(int index)删除 index 位置元素boolean remove(Object o)删除遇到的第一…

【EIScopus稳检索-高录用】第五届大数据与社会科学国际学术会议(ICBDSS 2024)

大会官网&#xff1a;www.icbdss.org 大会时间&#xff1a;2024年8月16-18日 大会地点&#xff1a;中国-上海 接受/拒稿通知&#xff1a;投稿后1-2周内 收录检索&#xff1a;EI,Scopus *所有参会者现场均可获取参会证明&#xff0c;会议通知&#xff08;邀请函&#xff09;&…