408计算机网络--基础概论

学习计算机网络走以前需要首先明白一个大的概念,计算机网络通常分为通信子网(实现数据通信)资源子网(实现资源共享/数据处理)==七层妖塔
pFE9tzQ.png

计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。

重点探讨网络为什么要分层?(七层OSI法定标准,四层TCP/IP事实标准

两台电脑之间传输pdf文件需要在发送文件前完成哪些工作:

  1. 发起通信的计算机必须将数据通信的通路进行激活。
  2. 要告诉网络如何识别目的主机。
  3. 发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
  4. 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。
  5. 确保差错和意外可以解决。
  6. ……

映射出来的问题就是做这样一堆十分复杂的事,那就考虑到把大问题拆解成一堆堆小问题

分层的基本规则:各层独立,每层界面清晰,下层独立,为上层提供服务

ISO提出的OSI参考模型:为了解决垄断性网络体系结构,打造全球异构网络的互联互通,可以让全球不同网络不同设备不同软硬件都可以在网络上面进行连接。但是OSI在理论学习上是很成功的,可以借鉴学习,但是在实际检验中是失败的。【周期长—生不逢时,不合理—重复交叉,不实用—市场检验】

介绍一下:OSI七层从下至上分别是【物联网淑惠试用—物链网输会示用】
pFZfOKg.png

由图可知,OSI七层妖塔,下三层是通信子网主要用于数据通信,后面介绍A–>中间系统–>B底层点到点的数据通路,传输层相当于上下层的接口,而最上面三层资源子网主要用于数据处理A–>B端到端协议进程与进程之间通过端口通信),通信双方只需要关注消息本身,不需要关注底层二进制信息的传输
pFZfqxS.pngpFZfb28.png
上述通信双方的打招呼通信过程:

写在前面:什么是PDU?
AI回答:PDU是协议数据单元,是用来描述在网络模型的不同层级中,数据经过封装后形成的特定格式的数据块。每层网络协议会给原始数据添加相应的头部信息和可能的尾部信息,形成该层的PDU。物理层PDU是比特流(bits);数据链路层PDU是数据帧(frames);网络层PDU是数据包(packets);传输层PDU是数据段(segments);高层协议如会话层、表示层、应用层PDU可以是HTTP消息(messages)

应用层首先对数据加了一个头部h7,代表加的是第七层的头部。就形成了一个第七层的pdu协议数据单元,第六层表示层的头部h6加上七层的pdu又形成了一个新的第六层的pdu。那第六层pdu组往下传,传到会话层,再加上会话层的首部h5,就形成了第五层的这个pdu。然后呢,继续往下依次到数据链路层不仅加了首部还有尾部【记忆:我字有五个比你们都多两个字】再到物理傻瓜层形成0101的比特流序列放到传输介质上,同样的根据网络协议,另外一台主机就可以知道如何去掉头部和首部的信息,依次向上还原。这样一层一层的往上加一层一层的拆解过程可以看作是现实场景中的打包和拆包过程

下面就简要介绍一下OSI七层参考模型每层的功能和作用:

  • 应用层:联网使用的程序属于应用层的范畴。文件传输(FTP)电子邮件(SMTP)万维网(HTTP)

  • 表示层:负责数据的语法表示和意义解释,确保不同系统之间的数据格式能够被对方理解并正确处理,相当于翻译官。数据格式转化,加密解密,恢复压缩,数据一致性校验。JPEG、ASCII

  • 会话层:需要为表示层提供服务,为表示层打通通话的服务建立连接并在连接上有序地传输数据。也是建立同步(SYN),就像是百度搜索电影,在一个窗口打开一个视频就建立一个会话,快进不会影响主机和其他窗口建立的会话,只会在当前会话中。可以建立、管理、终止会话,也可以通过校验点实现中断恢复。ADSP、ASP

  • 传输层:负责两个进程之间的通信,首先是作为自下而上第一个面向端到端通信的层次,同时呢,也是上面三层资源子网和下面三层通信子网之间的一个接口。传输层主要负责的是主机当中两个进程的通信及端到端的通信传输单位是报文段或用户数据报。TCP/UDP。主要功能【可差流用】:

    • 可靠传输、不可靠传输:基于确认机制的过程,区别就在于需不需要建立可靠的连接,例如QQ消息小数据就不需要可靠性连接,因为确认机制可靠链接非常耗时。
    • 差错控制:顺序错了,丢失数据等问题来纠正错误
    • 流量控制:解决两台终端之间发送和接收速率不一样的问题,让我发快点还是发慢点
    • 复用分用:两台手机之前用QQ和微信分别发送信息,发送端QQ和微信的数据包会带指定端口【不同的应用程序通过各自对应的端口将数据发送出去,实现了复用技术】,接收端收到消息后根据端口判断是哪个进程的数据包【网络接口卡接收到数据包后,根据数据包中的目标端口号,将数据包分发给正确的进程(QQ或微信),这就是分用技术】,就送给哪个进程去处理实现复用技术。
  • 网络层:主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务,传输单位是数据报。数据报相当于父,分组相当于子。主要功能:路由选择(选择最优路径)、流量控制、差错控制、拥塞控制。IP、IPX、ICMP、IGMP、ARP、RARP、OSPF

  • 数据链路层:主要任务是把网络层传下来的数据报组装成帧,传输单位是帧。主要功能:成帧(定义帧的开始和结束)、差错控制(帧错+纠错)、流量控制、访问/接入控制(控制主机对于信道的访问权限)。SDLC、HDLC、PPP、STP

  • 物理层:主要任务是在物理媒体上实现比特流的透明传输(不管所传数据是什么样的比特组合,都应当能够在链路上传送),传输单位是比特。主要功能:定义接口特性(确定金属引脚)、定义传输模式(单工—单方向传输接收、半双工—对讲机、双工—打电话)、定义传输速率(宽度传输速率)、比特同步(发送方传1接收方收到1,实时同步)、比特编码(高低电平代表0和1的规范)Rj45、802.3

5层参考模型(物联网传用)综合了OSI和TCP/IP的优点

pFZjICF.png

  • 应用层:支持各种网络应用。FTP、SMTP、HTTP
  • 传输层:进程—进程的数据传输。TCP、UDP
  • 网络层:源主机到目的主机的数据报分组切割和路由转发。IP、ICMP
  • 数据链路层:把数据报分组进行组装成帧。Ethernet、PPP
  • 物理层:比特流信息传输。010101

pFZj44U.png
图中的AB两台主机通信:首先,主机A上准备好数据,应用层会加一定的控制信息,然后这个控制信息形成的这个单位传输单元就叫做报文。接下来把这些报文分成段放到传输层上面进行传输,再加上传输层的控制协议就形成了一个个报文段。接下来,这个报文段再到网络层,把上层的数据单元再加上网络层的控制信息即网络层的头部形成一个数据报,如果数据过长那可以进行切割分组,接下来把这个数据报传到数据链路层需要封装成帧,并且在数据报组的头部和尾部加上链路层的控制信息形成的这样一个传递单元就是帧,接下来物理层不会去添加控制信息而是把这个数据帧转化成比特流的形式然后在链路上传输,那接下来传输到中间系统或者B端系统的时候,就需要进行一个解封装的过程(也就是还原),在物理层上就把这个传输单元还原成一个帧的形式,接下来在链路层需要把这个控制信息脱掉,脱下后就只剩下网络层的数据和控制信息,那在网络层识别出来控制信息后就把网络层的首部脱掉,剩下的就是传输层的一个协议数据单元,传输单元,那接下来再把传输层的控制信息去掉剩下的就是应用层的一个传输单元,再脱掉应用层的控制信息之后就返回给系统主机B了,最后收到的数据就是这个—数据DATA。总结下来就是快递传输和打包的过程,在每个地方加上每个地方的标识。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TCP/IP协议详解

文章目录 TCP/IP协议概述基于TCP/IP协议的应用工具协议协议的必要性 TCP/IP协议TCP/IP协议族协议的分层 传输方式的分类报文、帧、数据包等的区别TCP 和 UDP的区别 TCP/IP协议概述 TCP/IP(Transmission Control Protocol/Internet Protocol)是一组通信协…

【办公类-16-10-01】“2023下学期 中4班 自主游戏观察记录(python 排班表系列)

背景需求 上学期的周安排里,每班每周的自主游戏会轮到多个不同的内容 因此在每周的自主游戏观察有2次记录,观察的项目可以写不一样的, 如一位老师写沙水游戏,另一位写表演游戏 本学期,中班的自主游戏全部是户外的&am…

C++的deque容器->基本概念、构造函数、赋值操作、大小操作、插入和删除、数据存取、排序

#include<iostream> using namespace std; #include <deque> //deque构造函数 void printDeque(const deque<int>& d) { for (deque<int>::const_iterator it d.begin(); it ! d.end(); it) { //*it 100; 容器中的数据不可以修…

Vue | (三)Vue组件化编程 | 尚硅谷Vue2.0+Vue3.0全套教程

文章目录 &#x1f4da;模块与组件、模块化与组件化&#x1f4da;非单文件组件&#x1f407;基本使用&#x1f407;关于组件的几个注意点&#x1f407;组件的嵌套 &#x1f4da;单文件组件&#x1f407;一个.vue 文件的组成&#x1f407;实例 学习链接&#xff1a;尚硅谷Vue2.0…

Node.js的debug模块源码分析及在harmonyOS平台移植

Debug库 是一个小巧但功能强大的 JavaScript 调试工具库&#xff0c;可以帮助开发人员更轻松地进行调试&#xff0c;以便更快地发现和修复问题。它的主要特点是可以轻松地添加调试日志语句&#xff0c;同时在不需要调试时可以轻松地禁用它们&#xff0c;以避免在生产环境中对性…

[linux]进程间通信(IPC)———共享内存(shm)(什么是共享内存,共享内存的原理图,共享内存的接口,使用演示)

一、什么是共享内存 共享内存区是最快的&#xff08;进程间通信&#xff09;IPC形式。一旦这样的内存映射到共享它的进程的地址空间&#xff0c;这些进程间数据传递不再涉及到内核&#xff0c;换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。注意&#xff1a;…

如何进行高性能架构的设计

一、前端优化 减少请求次数页面静态化边缘计算 增加缓存控制&#xff1a;请求头 减少图像请求次数&#xff1a;多张图片变成 一张。 减少脚本的请求次数&#xff1a;css和js压缩&#xff0c;将多个文件压缩成一个文件。 二、页面静态化 三、边缘计算 后端优化 从三个方面进…

vue3中使用vuedraggable实现拖拽el-tree数据进分组

看效果&#xff1a; 可以实现单个拖拽、双击添加、按住ctrl键实现多个添加&#xff0c;或者按住shift键实现范围添加&#xff0c;添加到框中的数据&#xff0c;还能拖拽排序 先安装 vuedraggable 这是他的官网 vue.draggable中文文档 - itxst.com npm i vuedraggable -S 直接…

Python-pdfplumber读取PDF内容

文章目录 前言一、pdfplumber模块1.1 pdfplumber的特点1.2 pdfplumber.PDF类1.3pdfplumber.Page类 二 pdfplumber的使用2.1 加载PDF2.2 pdfplumber.PDF 类2.3 pdfplumber.Page 类2.4 读取PDF2.5 读取PDF文档信息2.6 查看总页数2.7 查看总页数读取第一页的宽度&#xff0c;页高等…

chatGPT 使用随想

一年前 chatGPT 刚出的时候&#xff0c;我就火速注册试用了。 因为自己就是 AI 行业的&#xff0c;所以想看看国际上最牛的 AI 到底发展到什么程度了. 自从一年前 chatGPT 火出圈之后&#xff0c;国际上的 AI 就一直被 OpenAI 这家公司引领潮流&#xff0c;一直到现在&#x…

【安卓基础4】Activity(二)

&#x1f3c6;作者简介&#xff1a;|康有为| &#xff0c;大四在读&#xff0c;目前在小米安卓实习&#xff0c;毕业入职 &#x1f3c6;安卓学习资料推荐&#xff1a; 视频&#xff1a;b站搜动脑学院 视频链接 &#xff08;他们的视频后面一部分没再更新&#xff0c;看看前面也…

VSCode The preLaunchTask ‘C/C++: clang++ 生成活动文件‘ terminated with exit code -1

更改tasks.json文件里面的type为shell 选择g 选择g&#xff0c;然后点回到text.c&#xff0c;按下F5. 得到结果。 文中内容参考: 从零开始手把手教你配置属于你的VS Code_哔哩哔哩_bilibili https://blog.csdn.net/qq_63872647/article/details/128006861

基于springboot+vue的桂林旅游景点导游平台(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

从扩散模型基础到DIT

Diffusion model 扩散模型如何工作&#xff1f; 输入随机噪声和文本内容&#xff0c;通过多次预测并去除图片中的噪声后&#xff0c;最终生成清晰的图像。 以上左边这张图&#xff0c;刚开始是随机噪声&#xff0c;999为时间序列。 为什么不直接预测下一张图片呢&#xff1f;…

java 面向对象-上

1.构造器&#xff08;或构造方法&#xff09;&#xff1a; Constructor 构造器的作用&#xff1a; 1.创建对象 2.初始化对象的信息 2.使用说明&#xff1a; * 1.如果没显式的定义类的构造器的话&#xff0c;则系统默认提供一个空参的构造器 * 2.定义构造器的格式&#xff1a…

python OpenCV:seamlessClone泊松融合

一、seamlessClone函数的用法 翻译 https://www.learnopencv.com/seamless-cloning-using-opencv-python-cpp/ def seamlessClone(src, dst, mask, p, flags, blendNone): # real signature unknown; restored from __doc__"""seamlessClone(src, dst, mask, …

RM电控讲义【定时器篇】

HAL库最显著的特点是基于结构体从而利用句柄进而简化代码。 定时器初始化&#xff1a; TIM6_DAC_IRQn是STM32G431单片机中定时器TIM6的中断请求名。TIM6是STM32G431的一个基本定时器&#xff0c;具有基本的定时功能。当累加的时钟脉冲数超过预定值时&#xff0c;TIM6能触发中断…

C语言-指针初学速成

1.指针是什么 C语言指针是一种特殊的变量&#xff0c;用于存储内存地址。它可以指向其他变量或者其他数据结构&#xff0c;通过指针可以直接访问或修改存储在指定地址的值。指针可以帮助我们在程序中动态地分配和释放内存&#xff0c;以及进行复杂的数据操作。在C语言中&#…

如何快速卸载windows电脑的一些软件?

本系列是一些电脑常规操作的普及&#xff0c;有需要借鉴即可 注&#xff1a;每个电脑都会有差异&#xff0c;参考即可。 其实大部分软件你删除桌面上的图标不等于删除&#xff0c;因为桌面上的那个图标就是一个简单的快捷方式而已。 在这里插入图片描述 那如何正确的卸载软件呢…

数据安全:超越威胁搜寻,监控数据流和用户行为

网络安全曾经是建立在严格协议和反应措施之上的堡垒&#xff0c;现在正在经历变革。随着数字环境变得更加复杂和数据驱动&#xff0c;对保护数字资产采取细致入微的方法的需求比以往任何时候都更加明显。这种演变标志着与传统威胁检测的背离&#xff0c;转向强调上下文并抢占用…