网络基础认知(上)

news2024/11/14 21:33:51

        如今使用过计算机的人们都接触过网络,但是网络究竟是什么,计算机又是怎样通过网络来进行互相之间通信的,这还需要我们深入了解。

目录

网络发展

 初识协议

什么是协议

为什么需要协议?

网络协议初识

协议分层

  为什么网络协议要分层呢?

OSI七层模型

TCP/IP五层(四层)模型

网络传输基本流程

协议报头

局域网

局域网通信过程

跨网络通信

数据包的封装和分用

数据包封装和分用的过程

封装过程

分用过程

网络中的地址管理 


网络发展

        最开始的时候,每一台计算机相互之间都是独立的,若是想互相通信或者共享数据,需要有人参与,通过一些二进制纸条,或者光盘,磁带之类的物品,将数据录入到上面,然后才能让另一个计算机读取上面的信息。

二进制纸条

                                                                                                                         二进制纸条

         但是有人参与的活动导致计算机通信很慢,而且远程通信成本很高,因而出现了网络

        比如这样,通过一个服务器使得多台计算机可以数据共享。

        

       局域网LAN: 或者通过交换机和路由器,使得计算机可以远距离通信。

 

       广域网LAN:可以将远隔千里的计算机都链接在一起:

     这里的局域网和广域网实际上都差不多,广域网相当于一个更大的局域网。

        

 初识协议

      

什么是协议

        协议在日常生活中有许多,用一句话概括就是:协议是一种约定

为什么需要协议?

        想象一个场景,当两个人面对面说话时,可以很轻松的进行通信。

        但是当两个人距离拉开的时候,就会有各种各样的问题导致难以通信。 

 

         若是相隔距离过远,再想通信就只能跑过去重新面对面才能通信,这样成本就太高了。

        于是这两个人就可以互相之间约定好用其他方式来进行通信,比如打电话,写信,做暗号。

 这样就约定好一个协议了。

                                        而协议,就是为了减少通信的成本而存在的

        而计算机之间是通过使用光信号或者电信号来通信的,想要使得计算机之间成功通信,就必须约定好不同的信息应该使用怎样的格式来表达,于是协议就产生了。

                        但是,两台主机只要约定好协议就可以成功通信了吗? 

        这不尽然,我们知道,计算机的生厂商有很多,计算机操作系统有很多,而厂商内部的计算机可以只用一个协议就能通信,但是厂商与厂商之间的计算机就不能成功通信了。 

       于是就需要有一个标准,让大家都遵守,这就是网络协议

网络协议初识

协议分层

        网络协议是分层的,那么什么是分层呢?举一个列子:

        像我们打电话,我们和电话对面的人都是默认使用汉语说话,这就是一层语言层。

        而电话机则是另一层,通信设备层。

      

  为什么网络协议要分层呢?
 

网络协议分层的原因:

a. 软件层面的优势——低耦合

b.有些模块功能比较集中,耦合度比较高,这些模块放一层——高内聚

c.每一层都有需要解决的特定问题

   

而网络协议分层的原因就在其中,首先就是低耦合问题

每一层都有自己特定的功能,最需要低耦合的就是其中应用层了。

应用层管理着针对不同应用的协议,如果没有分层,那么若是有新的应用协议出世,就要更新整个计算机,而有分层则只用针对应用层进行更新。

分层的依据就是看哪些模块功能是否集中了,将功能集中的模块放在同一层。

其中每一层都要解决特定的问题。

特定问题

a.如何交付数据给下一台主机

b.如何选择去往下一台主机的路径

c.出现了错误应该如何纠错

d.解决应用方面的能力

OSI七层模型

当我们明白为什么网络需要进行分层后,我们就可以了解网络协议的标准模型了,其中一个就是OSI七层模型。

OSI(Open System Interconnection,开放系统互连)七层网络模型;

称为开放式系统互联参考模型, 是一个逻辑上的定义和规范;

是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;         

顾名思义,OSI七层模型将网络协议定为了七层,每一层都有对应的物理硬件,如交换机,路由器。 

它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七 个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;

那么这七层是哪七层呢?

 OSI将网络协议分为这七层,每一层都有不同的功能。

不过OSI七层模型虽然十分精细,但是它在实际的工程实践中并不常用。

接下来我们了解另外一个模型——TCP/IP五层(四层)模型

TCP/IP五层(四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求

物理层:负责光/电信号的传送

数据链路层:负责设备之间数据帧的传送和识别

网络层:负责地址管理和路由选择

传输层:负责两台主机之间的数据传输

应用层:负责应用程序之间的沟通

对于一台主机而言,它的操作系统内核实现了从传输层到物理层

对于路由器而言,它实现了从网络层到物理层

对于一台交换机而言,它实现了从链路层到物理层

对于一台集线器而言,它只实现了物理层

网络传输基本流程

想要了解网络传输的基本流程,先得明白一个概念——协议报头。

协议报头

每一层都有协议,而每一层协议的最终表现就是报头,每一层协议都是通过协议报头进行表达的。

就好比网购,我们不仅会收到产品,也会收到快递单等一些我们并没有购买的东西。

虽然这些快递单对我们没有用,但是对于快递公司来说,却是十分重要的,若是没有快递单,那么快递公司送快递的工作就会十分麻烦。

而报头则在网络传输中起着快递单的作用,不同的协议报头都需要对应的协议才能识别

局域网

我们都知道,在局域网中的两台主机可以直接通信,而局域网通信是通过什么来辨别不同主机的呢?

实际上,局域网通信是通过网卡上的MAC地址来辨别不同主机的。

 那么局域网内部通信过程是怎样的呢?

局域网通信过程

假设局域网内有多台主机,其中主机A要对主机B发送数据。

当主机A在局域网中发送一条信息后,实际上在局域网内部的所有主机都会收到这条信息。

但是所有主机都会根据MAC地址识别这条信息是发给哪台主机的,又是从哪里发出来的,因而只有B能成功收到这条信息

但是B只要收到了信息就能够直接读取吗?其实并非如此。

 当主机A发送数据时,计算机会从上往下根据每一层的协议给数据添加报头,然后放在以太网上。

然后通过MAC地址找到对应主机后,对应主机再一层层由下往上将报头去掉,最后获得数据。

在上图中,我们可以发现,同层协议所拥有的数据包都是相同的,于是我们可以这样理解:

                               同层协议在直接通信,也可以理解为向下交付。

讲完过程后,我们还要说一下协议的共性。

协议的共性

a.如何判断报头的位置和有效载荷的位置

b.如何判断自己的有效载荷要交给上层的哪一个协议

        在上图中,我用几个图形来有效的表示报头和有效载荷的位置,但是实际上的报头和有效载荷的位置并没有这么明显的区别,都是需要协议自身内部来区分位置

        此外,在计算机内部每一层可能会有好几个协议,如何找到对应的协议也需要协议自身来控制。

跨网络通信

        现实生活中肯定不会只有局域网通信,还有跨网络通信,其中局域网又分为以太网,令牌环网和无线LAN

        那么跨网络通信就需要解决不同局域网通信的问题。

        其中路由器就是用来解决该问题的——屏蔽底层协议的差异

 

         实际上跨网络通信和局域网通信类似,只是在最后并不是将数据包传给对应主机,而是传给路由器

        当路由器收到数据包的时候,会根据数据包中的IP地址来选择对应主机,然后根据这个主机的局域网类型来选择对应的协议。

        剩下的就由目标主机一层层解包。

数据包的封装和分用

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).

应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装

首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.

数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理.

数据包封装和分用的过程

封装过程

        我们可以看到,每一层给数据加完首部后,就会向下到下一层协议;

        此外在最后的链路层会给数据包添加首部和尾部,需要注意。

分用过程

当主机接收到进入的帧后,会按上图来一层一层的解包,最终找到正确的协议。

网络中的地址管理 

IP地址

IP地址是在IP协议中, 用来标识网络中不同主机的地址;

对于IPv4来说, IP地址是一个4字节, 32位的整数;

我们通常也使用 "点分十进制" 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;

MAC地址

MAC地址用来识别数据链路层中相连的节点;

长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)

在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).

那么这两个有什么区别呢?

在网络通信中,IP地址可以认为是一个指导大概方向的。

它告诉主机该数据源自哪里目标又是哪里

而MAC地址可以认为是细化了路径。

它告诉主机该数据从哪一台主机来,该去的下一台主机在哪里。

因此我们可以简单的认为,在网络的数据包中,IP地址应该是不变的,而MAC地址则是随时变化的。

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

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

相关文章

澳鹏与Reka AI强强联合,构建高质量的多模态LLM应用

近日,澳鹏Appen官宣与AI新兴公司Reka AI合作,以实现世界级数据服务与多模态语言模型的结合。 ChatGPT等创新应用的崛起让大型语言模型(LLM)实现了突飞猛进的发展。LLM可以助力企业提升运营效率,并为最终用户提供耳目一…

Java基础--->JVM(3)【垃圾回收】

文章目录 垃圾回收(GC)什么内存需要回收(什么样的对象是垃圾)?为什么要进行垃圾回收?内存溢出和内存泄露的区别,如何解决分区收集思想 Minor GC、Major GC、Full GC垃圾回收相关算法引用计数算法…

如何搭建产品操作手册

对于企业来说,拥有一份完备的产品操作手册无疑是至关重要的。操作手册不仅是新员工学习产品使用及维护的重要参考,也是产品售后服务与客户支持的必备文件。在手册编写上,应清晰明了地介绍产品的功能、配置及故障排除等信息,使用户…

统计学下的假设检验

由于本人才疏学浅,再加上时间仓促,难免有疏漏之处,恳请批评指正. 1,预备知识 数理统计:以概率论为基础,研究如何有效的去搜集、整理、分析带随机性影响的数据 总体与样本:研究对象的全体就称为总体 样本&a…

VTK交互-vtkBoxWidget2

VTK交互Widget widget包含两个重要的组成部分:Interaction和Representation. Interaction是一些名叫vtk*Widget的类(比如vtkBoxWidget2)。它包含了交互的所有选项和事件处理。 Representation是显示并与之交互的一类对象,以名叫v…

origin 拟合计算酶的Kcat Km 值

origin拟合计算Kcat Km值 横坐标为底物浓度,纵坐标为反应速率 全选X 与Y坐标数据,然后选择菜单栏Analysis: Fitting: Nonlinear Curve Fit:Open Dialog 在Setting:Function Selection页面内的Category选择Pharmacology, Functi…

计算机网络基础知识(三)—— 什么是OSI七层模型?

文章目录 00 | 🛸发展史🛸01 | 🛸OSI七层参考模型🛸02 | 🛸OSI七层参考模型的信息流向🛸 OSI七层模型是Open Systems Interconnection Reference Model的缩写,是由国际标准化组织(IS…

vue3使用keep-alive组件,包含动态组件使用

vue3使用keep-alive组件,包含动态组件使用 本文目录 vue3使用keep-alive组件,包含动态组件使用组件不使用keep-alive组件中使用v-if切换component动态组件切换因注释导致的意外错误动态组件的使用完整示例 路由不使用keep-alive路由中使用keep-alive生命…

公司数字化转型,如何选择高效的知识管理工具?

随着企业数字化转型的加速,知识管理工具的重要性也日益凸显。好的知识管理工具可以帮助企业提高工作效率、降低成本、提高创新能力和竞争力。但是,市场上的知识管理工具繁多,如何选择高效的知识管理工具成为了企业面临的一大难题。本文将从以…

Jenkins 入门系列之Role-based Strategy配置Gitlab Group管理用户组

目录 背景步骤1. 安装插件2. 配置Gitlab Group3. 配置 Jenkins 授权策略4. 配置 Jenkins 角色与授权5. 验证 背景 版本 Jenkins Version:Jenkins 2.403Gitlab Version: Gitlab 15.6部署环境:群晖NAS Docker 部署JenkinsGitlab 上一篇文章Jenkins 入门…

HTML详解

HTML是什么 html是一门语言,所有的网页都是用它编写出来的。 他是一门超文本标记语言。可以定义图片,音频,视频等。由标签组成。 HTMl仅仅定义了网站的接口。 具体的表现还需要css来实现,也就是css让网页变得更加好看。 网页…

智能聊天机器人ChatGPT商业版

作为一个智能聊天机器人,我是由OpenAI开发的。目前,我的商业版需要通过OpenAI的合作伙伴计划进行许可和部署,以确保我被用于适当的商业用途。如果您对商业使用感兴趣,请联系OpenAI以获取更多信息。 智能聊天机器人是一种能够自…

如何优化golang gc

目录 一.理解GO GC机制 1.1GC的耗时 1.2堆大小对GC的影响 1.3GC算法 二 如何查看GC信息 2.1使用GODEBUG"gotrace1" 2.2 go tool trace 2.3 debug.ReadGCStats ​编辑2.4 runtime.ReadMemStats 三 GC优化技巧 2.1并发GC 一.理解GO GC机制 GO语言采用的是三…

学习网络安全的拦路虎!你遇到几个?

很多零基础的同学想要学习网络安全,前期会各种寻找学习资料。最后发现资料一大堆,但无从下手,于是千辛万苦收集的资料就去收藏夹吃灰了。开始学习的小伙伴们通常也会越学越迷茫,毕竟资料并不是完整的,而是东拼西凑出来…

Docker时区问题

背景 当前docker容器技术应用越来越广泛,但在启动容器后,容器内部的时间并不是东八区 Docker的基础镜像设置大多是UTC,也就是标准的UTC 时间,所以要简单的调整一下,变成中国标准时间CST(China Standard Time UTC8:0…

OpenCL编程指南-1.2OpenCL图形API

OpenCL与图形 OpenCL的出现是对GPCPU编程的一个响应。人们用GPU处理图形,并且开始使用GPU完成工作中的非图形部分。基于这种趋势,异构计算(已经存在很长时间)与图形发生冲突,因此迫切需要一个行业标准。 OpenCL一直与…

使用Onenote进行钓鱼攻击事件分析

以其中遇到的一个案例为例子进行展开分析: 1、使用钓鱼邮件文案.one文件附件 From: Bank Complaints <bankcomplaintshkmagov.com> Sent: Thursday, March 2, 2023 11:00 AMTo: Miles Mok XXXXSubject: [External Mail] xxxx Industry Development Survey Dear XXXX Lt…

SpringBoot+Canal+RabbitMQ实战

1. Canal简介 https://github.com/alibaba/canal 1.1 Canal工作原理 MySQL主备复制原理 MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events&#xff0c;可以通过 show binlog events 进行查看)MySQL slave 将 master 的 b…

中断-NVIC与EXTI外设详解(超全面)

✅作者简介&#xff1a;嵌入式入坑者&#xff0c;与大家一起加油&#xff0c;希望文章能够帮助各位&#xff01;&#xff01;&#xff01;&#xff01; &#x1f4c3;个人主页&#xff1a;rivencode的个人主页 &#x1f525;系列专栏&#xff1a;玩转STM32 &#x1f4ac;推荐一…

档案馆对于档案室档案库房内温度和湿度的控制要求

编辑搜图 请点击输入图片描述&#xff08;最多18字&#xff09; 01 纸质档案库的温湿度要求 用房名称温度&#xff08;℃&#xff09;相对湿度&#xff08;%&#xff09;纸质档案库14~2445~60 02 特殊档案库的温湿度要求 用房名称温度&#xff08;℃&#xff09;相对湿度&am…