【网络】:网络基础

news2024/11/16 9:57:38

网络基础

  • 一.总体概述
  • 二.认识Mac地址
  • 三.数据跨网络传输

一.总体概述

1.协议是什么

1.从概念上说:为了保证不同厂家生产出来的不同型号的电脑能够互相通信,而制定的标准——协议。

2.从技术上说:简单粗暴的理解——是操作系统里的结构体。

2.OSI模型

为了保证远程传输数据的可靠性,从而提出了OSI模型

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

在这里插入图片描述

3.TCP/IP五层(或四层)模型

实际上可以看出OSI虽然完善但是有些复杂,在实际设计时,人们发现可以把会话层,表示层,应用层统一看成应用层,同时对于程序员而言,最重要的是网络层(IP)和传输层(TCP)。所以又被称为TCP/IP五层模型。而我们一般不关心物理层,所以有时又称为4层模型

在这里插入图片描述

4.模型与操作系统的关系

在这里插入图片描述

传输层和网络层是内嵌在操作系统里的,这也就意味着无论是哪个操作系统,为了保持通信它的网络部分都必须是一模一样的。

5.网络传输流程

报文=报头+有效载荷。而通信的本质就是对报文进行不断的封装和解包的过程。

例如:发一句“你好”。

在这里插入图片描述

6.拓展

  1. 报头是二进制,有效载荷也是二进制,想要能够解包成有效信息,操作系统必须提供能够分离报头和有效载荷的方法。
  2. 每一层都有许多协议(虽然上图里只画出了一种,实际上它应该是一棵倒着的多叉树),那么该如何判断到底将本层的有效载荷交给上一层的哪一个协议呢?所以几乎任何层的协议都要在报头里提供决定将自己有效载荷交给特定一个协议的能力。

二.认识Mac地址

当操作系统启动时,会自动读取网卡里的信息,同时就会获取Mac地址。Mac地址在理论上每台主机都是不同的。

在一个局域网内,如果H1要和H10通信怎么办呢?

在这里插入图片描述

根据上面所说,H1应该封装一条报文发给H10,其中报头就应该说明发给谁。在整个局域网内,所有主机都能够收到这条报文,如果在分析报头时,发现目标不是自己,会自动将这条报文摈弃;只有判断成功的主机,才会接收这条报文。这里报头里包含的发生着地址和接收者地址就是Mac地址。(判断工作是在数据链路层完成的)

在这里插入图片描述

数据碰撞

如果在一个局域网内多台主机同时发送信息,那么它们发送的信息就有可能会撞在一起,造成的结果就是所有的信息都会失效。

那么为了避免碰撞,每台发送主机都要执行避免碰撞的算法。这个算法是由以太网协议规定的,原理非常简单粗暴,就是当有主机在发送信息时,其它主机延时发送。

抓包原理:网卡有两种工作模式,一种是正常模式,一种是混杂模式。混杂模式就是当网卡接收到不是发送给自己的信息后,依然将其接收并发送给上层。这样做自然是存在安全隐患的,但现在也有了许多解决措施,例如:在应用层对数据进行加密,这样即使拿到数据也无法解析。

三.数据跨网络传输

上面所说的都是在一个局域网内,如果是跨网络传输呢?那么就必须得有路由器这一中间设备,路由器就是连接两个局域网的设备。

在这里插入图片描述

简单提一下令牌环网:与以太网相似,但不同于以太网的碰撞检测,令牌环网是拿到令牌的主机才有资格进行通信。

重点是该主机如何知道要进行跨网络传输呢?

这里要引入IP地址了,IP地址保证主机的唯一性(上面说到Mac地址也可以保持唯一性,但只在局域网内)。而IP地址就好比你旅游时的目的地,例如:我要从上海到云南旅游,那么我来时的IP是上海,到达的IP是云南;而Mac地址就像是旅行路途中经过的湖北,湖南,贵州…。

当报文经过路由器时,路由器会将它的报头进行解包成IP,然后再封装一个新的报头,变成一个新Mac地址从而交给下一个子网。这样它的Mac地址一直在变化。

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

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

相关文章

Flink的SQL开发

概叙 Flink有关FlinkSQL的官网: https://nightlies.apache.org/flink/flink-docs-release-1.13/zh/docs/dev/table/sql/overview/ 阿里云有关FlinkSQL的官网: https://help.aliyun.com/zh/flink/developer-reference/overview-5?spma2c4g.11186623.0.0.3f55bbc6H3LVyo Ta…

Windows系统本地安装Everything搜索神器并结合内网穿透实现远程访问

文章目录 前言1.软件安装完成后,打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 前言 要搭建一个在线资料库,我们需要两个软件的支持,分别是cpolar(用于搭建内网穿透数据隧道…

金融OCR领域实习日志(一)——OCR技术从0到1全面调研

一、OCR基础 任务要求: 工作原理 OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相)检查纸上打印的字符,经过检测暗、亮的模式肯定其形状,而后用…

(自用)learnOpenGL学习总结-高级OpenGL-立方体贴图

ok终于来到了立方体贴图了,在这里面我们可以加入好看的天空包围盒,这样的画我们的背景就不再是黑色的了! 首先,立方体贴图和前面的sampler2D贴图一样,不过是6个2D组成的立方体而已。 那么为什么要把6个组合在一起呢&…

粒子群优化算法(Particle Swarm Optimization,PSO)求解基于移动边缘计算的任务卸载与资源调度优化(提供MATLAB代码)

一、优化模型介绍 移动边缘计算的任务卸载与资源调度优化原理是通过利用配备计算资源的移动无人机来为本地资源有限的移动用户提供计算卸载机会,以减轻用户设备的计算负担并提高计算性能。具体原理如下: 任务卸载:移动边缘计算系统将用户的计…

嵌入式学习第十三天

9.指针: (1)const指针 const 关键字 常量(只读) 1.const int *p; 2.int const *p; 1和2是等价的 const修饰 *p,指针变量p的值可以改变,但不能利用指针修改指向空间中的值 3.int *const p; const修饰 p,指针变量p的值不能改变…

幻兽帕鲁越玩越卡,内存溢出问题如何解决?

近期幻兽帕鲁游戏大火,在联机组队快乐游玩的同时,玩家们也发现了一些小问题。由于游戏有随机掉落材料的设定,服务器在加载掉落物的过程中很容易会出现掉帧、卡顿的情况。某些玩家甚至在游戏1~2时后就出现服务器崩溃的情况&#xf…

招聘网站简单爬虫_24.1.26

完整程序传送门 24.1.26 前些天接了一个大两届的师兄的小活,做了一下爬boss直聘岗位信息的程序,在这里记录一下 程序框架 定义一个名为paQu的接口函数,用于检查窗口的输入,它接受一个参数self,获取self对象的a属性&am…

服务攻防-开发框架安全SpringBootStruts2LaravelThinkPHPCVE复现

知识点: 1、PHP-框架安全-Thinkphp&Laravel 2、J2EE-框架安全-SpringBoot&Struts2 章节点: 1、目标判断-端口扫描&组合判断&信息来源 2、安全问题-配置不当&CVE漏洞&弱口令爆破 3、复现对象-数据库&中间件&开发框架&am…

Python爬虫请求库安装

请求库的安装 爬虫可以简单分为几步:抓取页面、分析页面和存储数据。 在抓取页面的过程中,我们需要模拟浏览器向服务器发出请求,所以需要用到一些 Python 库来实现 HTTP 请求操作。在本教程中,我们用到的第三方库有 requests、S…

基于vue实现待办清单案例

一、需求 新增内容; 删除内容; 统计操作; 清空数据。 示例图: 二、代码演示 1、基础准备 index.css代码 html, body {margin: 0;padding: 0; } body {background: #fff ; } button {margin: 0;padding: 0;border: 0;backgr…

BF16与FP16的区别

参考 BF16 与 FP16 在模型上哪个精度更高呢BF16 与 FP16 在模型上哪个精度更高呢【bf16更适合深度学习计算,精度更高】: 两者差异图示如下: BF16 是对FP32单精度浮点数截断数据,即用8bit 表示指数,7bit 表示小数。…

微博怎么把客户引流到私域?(引流技巧)

微博 1)背景banner图 在微博主页顶部的背景图里,可以引导添加个人微信、公众号等信息,通常配合福利引导用户添加。 2)个人简介 微博中比较常见的引流方式,可以直接在简介区内留下微信号、公众号名称、邮箱等信息&#…

差异性分析汇总

在做科研写论文的时候,我们总会听说要对数据进行差异性分析,那么何为差异性分析?差异性分析常用的方法有哪些?这些方法应该如何进行分类?如何选择?差异性分析的数据格式是怎么样的?软件如何操作…

MarkDown快速入门-以Obsidian编辑器为例

直接上图,左右对应。 首先是基础语法。 # 标题,几个就代表几级标题;* 单个是序号,两个在一起就是斜体;- [ ] 代表任务,注意其中的空格; 然后是表格按钮代码 | 使用中竖线代表表格&#xff0c…

Bean的注入方法和区别

Bean有几种注入方式?它们有什么区别? Bean对象中有以下几种注入方式: 属性注入Setter注入构造方法注入 属性注入 属性注入是我们最熟悉的,也是日常开发最常使用的一种注入方式,它的实现代码如下: Rest…

HTML小白入门学习-表单标签

一、前言 HTML标签千千万,要学习的占一半。上篇文章中我们学习了列表标签,针对有序列表、无序列表、自定义列表和嵌套列表进行简单的学习了解和实操。本篇文章将为大家介绍另一种常用标签,那就是表单类标签。 我们在网页中经常会看到表单的…

JavaScript版数据结构与算法(二)图、堆、搜索排序算法、算法设计思想

一、图 (一)图是什么 图是网络结构的抽象模型,是一组由边连接的节点。图可以表示任何二元关系,比如道路、航班… JS中没有图,但是可以用 Object 和 Array 构建图。图的表示法:邻接矩阵、邻接表… 1、邻接…

SOME/IP 协议介绍(七)传输 CAN 和 FlexRay 帧

SOME/IP 不应仅用于传输 CAN 或 FlexRay 帧。但是,消息 ID 空间需要在两种用例之间进行协调。 传输 CAN/FlexRay 应使用完整的 SOME/IP 标头。 AUTOSAR Socket-Adapter 使用消息 ID 和长度来构建所需的内部 PDU,但不会查看其他字段。因此,必…

如何发现帕鲁私服漏洞

白天当帕鲁、晚上抓帕鲁 相信所有的帕鲁玩家都不希望辛辛苦苦肝了几百小时抓的帕鲁因为网络入侵消失,除了抵御游戏内的强盗入侵,还要抵御现实世界的网络入侵,原本单纯的帕鲁变的复杂无比。 服务器弱口令、服务漏洞、未授权访问等入侵手段&a…