44 网络基础

本章重点

了解网络发展背景,对局域网/广域网的概念有基本认识
了解网络协议的意义,重点理解TCP/IP五层结构模型
学习网络传输的基本流程,理解封装和分用

目录

1.网络发展
2.协议
3.OSI七层模型
4.TCP/IP五层模型
5.网络传输流程图
6.网络中的地址管理
7.xshell命令

1. 网络发展

a完成数据收集,b做数据分析,c做总结。计算机的发展需要有网络互相共享和协作
独立模式:计算机之间互相独立

在这里插入图片描述
网络互联:多台计算机连接在一起,完成数据共享
将数据统一放在一个服务器中,每个人通过自己的计算机访问服务器
在这里插入图片描述

局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起
在这里插入图片描述
广域网WAN:将远隔千里的计算机都连在一起

在这里插入图片描述

2. 协议

认识协议

例如学生和家长省电话费,提前约定好响一声代表平安,响两声需要生活费,响三声就有事情需要商量。这种提前约定好为了顺利沟通的内容就是协议
协议是计算机之间交换数据必须遵守的规则的描述

协议的产生

计算机之间通信为什么会有很多问题,可以想象如果两个人说话,距离很近很简单就可以传达,但如果距离比较远就需要很大声音,距离如果再远想要传达,就需要中间有人帮忙传递,所以传输的距离变长会引出很多问题

1.怎么保证数据准确到达下一台设备
2.如何定位主机
3.长距离传输的数据丢失问题
4.如何处理发来的数据
上面的问题每一层分别是传输,定位,正确,应用等问题,同样的,每个主机都面临同样的问题,所以为了解决两个主机同样的问题,每层都要有自己的协议

协议的形式

一份快递单怎么知道需要运送的目标在哪里,联系方式等,有贴在包裹外的标签,注明了收货方,发货方,金额等
在这里插入图片描述
上面的信息在计算机里就是一个个类型的数据,整个表单就是一个结构体对象,每个计算机都遵守同样的协议,定义同样的结构体对象,双方就都可以认识了解这个结构体内容

协议的本质

在这里插入图片描述

计算机之间的传输媒介是光信号和电信号,通过“频率”和“强弱”来表示0和1这样的信息,要想传递各种不同的信息,就需要约定好双方的数据格式

只要通信的两台主机,约定好协议就可以了吗?
通信双方虽然都遵守同样的协议,但一个说中文,一个说英语,同样的中文,每个地方又有不同的方言,照样互相听不懂

计算机生产厂商有很多,操作系统、网络硬件设备等也有很多,如何让这些不同的厂商生产的计算机能够相互通畅的通信?就需要有人站出来约定一个共同的标准,大家都遵守,这就是网络协议

协议分层

在这里插入图片描述

高内聚低耦合的设计可以方便设计,提升维护性。之前的例如函数指针,继承多态面向对象这种就是如此,同样的,分层也是这样的目的。这个例子中只有两层,实际的网络会更复杂

分层后每层解决自己的问题,定这一层的协议。两个人打电话虽然是通过电话分别传递给对方,但在每个人的视角里是直接和对方在通信,电话和电话在沟通。当想用无线电通信时,只需要换无线电的协议就可以,上层不需要任何改变。想用英语换成英语的协议,电话这一层不需要改变,这就是分层的好处

3. OSI七层模型

OSI(Open System Interconnection,开放系统互连),七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范
把网络从逻辑上分为了 7层,每一层都有相关。对应的无礼设备,比如路由器、交换机等
OSI七层模型是一种框架性的设计方法,其最主要的功能帮助不同类型的主机实现数据传输
它的最大优点是将服务、接口和协议这三个概念明确的区分开来,概念清楚,理论比较完成,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯
但是,它既复杂又不实用,在实际开发过程中,会话层和表示层不好在内核实现,都是归在了应用层。所以我们按照TCP/IP四层模型说明
在这里插入图片描述

4. TCP/IP五层模型

TCP/IP是一组协议的代名词,还包括许多协议,则成了TCP/IP协议簇
TCP/IP通讯协议采用了5层的结构,每一层都呼叫下一层所提供的网络来完成自己的需求

  • 物理层:负责光/电信号的传递方式,比如现在以太网通用的网线(双绞线),早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤、现在和wifi无线网使用电磁波等都属于物理层的概念,物理层的能力决定了最大传输速率、传输距离、抗干扰性、集线器(Hub)工作在物理层
  • 数据链路层:负责设备之间的数据帧的传送和识别,例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作,有以太网、令牌环网,无限LAN等标准,交换机(switch)工作在数据链路层
  • 网络层:负责地址管理和路由选择,例如在IP协议中,通过IP地址来表示一台主机,并通过路由表的方式规划出两台主机之间的数据传输,如传输控制协议(TCP),能欧冠确保数据可靠的从源主机发送到目标主机
  • 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telent)等,我们的网络编程主要就是针对应用层

在这里插入图片描述

物理层考虑的比较少,因此很多时候也可以称为TCP/IP四层模型
对于一台主机,操作系统内核实现了从传输层到物理层的内容
对于一台路由器,实现了从网络层到物理层
对于一台交换机,实现了从数据链路层到物理层
对于集线器,只实现了物理层

但是并不绝对,很多交换机也实现了网络层的转发,很多路由器也实现了部分传输层的内容(比如端口转发)

分层和系统结构

在这里插入图片描述

物理层和数据链路层就是设备网卡驱动这些,传输层和网络层在系统内部,当用户想访问网卡,os不允许直接访问,提供了些接口由os直接访问,这些接口就是系统调用,用户层一些人通过这些接口编写了应用层各种方式如http、smtp等的协议使用。系统有很多,内核进程管理等不一样,但网络协议站只有一种,遵守同一种规则

在这里插入图片描述
无论是win主机还是linux主机,双方通信的过程就是贯穿网络协议站的过程,发送方从用户层向下发出,接收发从设备层向上收到用户层,每一层的协议一样,数据的机构完全一样,在每一层角度里,都是在和对方同一层直接通信

5. 网络传输流程图

同一个网段内的两台主机进行文件传输
在这里插入图片描述

两台计算机通过TCP/IP协议通讯的过程如下图所示:
在这里插入图片描述
局域网是一种覆盖范围较小,局部地区的区域网络。小到办公室,大到一栋楼或相邻建筑。传输速度快,方便。比如家里的手机同一网络可以投屏到电视上观看。以太网是一种局域网协议

以太网通信原理

在一间教室里,老师说:“张三,作业怎么还没交?”,所有同学都听到了内容,但只有张三需要站起来回答。张三报头,表示报文需要传递给谁,每个同学都收到了这个报文,提取报头内容和自己名字作对比,发现不是自己,所以将后面内容可以不予理会。张三对比后发现是自己,站起来回答:“老师,我忘了没写。”,同样的全班都会听到这个报文,传递的对象是老师,老师对比报头继续通信

在以太网里,每一个主机都有一个mac地址,这个地址在局域网里是唯一的。是一个48位的数据
在这里插入图片描述

假设在一个局域网里,有H1-H1010台主机,它们的mac地址是M1-M10,如果H1和H10通讯,就会带上自己的mac和目标的mac,M1到M10,在局域网里的主机都会收到这个数据,但提取报头后发现不是自己,网卡就会直接将数据丢弃,不会再向上传递。H10主机发现是自己,同时是M1主机发来的,向网卡上层一直传递,就可以回复内容,带上报头M10到M1,同样的过程M1就会收到内容

数据碰撞
如果同一时间H1给H10发送消息,H2又给H9发送消息,就有可能发生碰撞,碰撞后就会数据错误。当在教室里,很多人都在批次聊过,那么老师讲课内容就很难听正确。所以要执行碰撞避免算法。一个局域网也叫做一个碰撞域

任何时刻只能有一台主机在局域网内发送消息
当局域网范围变大,主机变多后,碰撞的概率也会变大。这时可以用交换机来减少碰撞,它的原理会检测,如果是同一侧的两台主机通信,收到的消息就不会往右边的设备发送,减少了数据传递的范围,划分碰撞域。同时,发生数据碰撞后可以检测到,碰撞的报文也不会交换。可以把局域网看做多台主机的临界资源,需要保证其互斥性

安全问题
如果不是和自己通信,可以得到消息内容吗?这个是可以的,网卡一般是正常模式,不是自己的会丢弃掉,可以设置为混杂模式,不管什么消息都会接收,交给上层,也是抓包软件的原理。在上层发送消息的时候,可以对信息加密,这样就算抓到也不知道是什么内容

令牌环网

在这里插入图片描述
令牌网也是链路层的一种协议,同样也有自己防止碰撞的方法,它会给需要通讯的设备提供一个令牌,只有持有这个设备的主机才可以通信。就类似于锁的原理

数据包封装和分用

不同的协议层对数据包有不同的称谓,应用层叫请求和响应,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)
首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息
数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉对应的首部,根据首部中的“上层协议字段”将数据交给对应的上层协议处理

在这里插入图片描述

当客户想给服务端发送你好这个消息的时候,应用层需要加上自己的协议,也就是报头,可以标明应用的版本,到传输层需要将数据准确传递,所以自己的协议了需要加上语句顺序的序号报头,IP层加上了来源ip和目标ip,对于每一层,加工的内容是报文=报头+有效载荷,每一层都在保留原载荷的基础上加上了自己的报头。最后到网卡发送到对方网卡,这整个过程就是对数据的封装。对方网卡收到数据后,需要得到自己的报头内容,强转为自己的协议结构体类型,同时将剩下的有效载荷传递给上一层,至于载荷内容是什么不关心。这样一步步到达用户层后就可以解读出发送的内容,分清交给上层的哪个协议,这个过程是分用。每一层眼里,都是直接在和对方本层通讯,通讯的本质,就是不断解包和分用的过程

跨网段的主机的文件传输,数据从一台计算机到另一台计算机传输过程中药经过一个或多个路由器
大部分协议的共性就是封装和解包,也是学习这些协议需要了解的问题
1.几乎任何层的协议,都要提供一种能力,将报头和有效载荷分离的能力
2.几乎任何层的协议,都要在报头中提供,决定将自己的有效载荷交付给上层的哪一个协议的能力

下面是封装的过程
在这里插入图片描述

下面是分用的过程
在这里插入图片描述

6. 网络中的地址管理

有个游客想旅游中国,从辽宁出发,去云南,不能直接坐车去云南,而是先到山西,现在的地址是从辽宁到了山西,下一步就得去陕西,上一个地址是山西,现在的地址是陕西,下一个地址是四川,到了四川后,上一个地址成了陕西,下一个地址是云南。在这个过程中,他目前的地址和下一步地址都是在随时变化的,而刚开始的出发地和最终的目的地始终不变,有这个长远地址的指导,才知道每个过程中的下一步地址该如何走。这个就是IP地址,它标识了全网的唯一一台设备,这个随时变化的就是mac地址,用来标识局域网中的唯一一台设备

IP地址

Ip协议有两个版本,IPv4和IPv6,以下凡是IP协议,默认都是指IPv4

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是不是和自己相连,如果相连就封装后交给对方的链路层协议,传递到达D主机。路由器拥有不断封装和解包的能力,ip地址是不变的,mac出局域网后,每经过一个主机,会不断封装源mac地址和目的mac地址,根据不同底层协议封装报头,达到寻路的过程
ip协议屏蔽了底层网络的差异化,靠的就是工作在ip层的路由器,ip实现了全球主机的软件虚拟层,一切皆是报文。
手机用的无线LAN协议,底层网络的差异,路由器封装为无线LAN的报头,手机就可以网络通信,上层根本不用改动

脉络示意图

在这里插入图片描述

7. xshell命令

查询

ifconfig

在这里插入图片描述

ip地址4字节,这个是私网ip,mac地址6字节

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

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

相关文章

WRT1900ACS搭建openwrt服务器小记

参考链接 wrt1900acs openwrt wrt1900acs openwrt 刷机 wrt1900acs原生固件刷openwrt-23.05.3-mvebu-cortexa9-linksys_wrt1900acs-squashfs-factory.img wrt1900acs openwrt更新刷openwrt-23.05.3-mvebu-cortexa9-linksys_wrt1900acs-squashfs-sysupgrade.bin 通过WEB UI来…

【数据结构】带你轻松掌握算法的复杂度

引入: 哈喽大家好,我是野生的编程萌新,首先感谢大家的观看。数据结构的学习者大多有这样的想法:数据结构很重要,一定要学好,但数据结构比较抽象,有些算法理解起来很困难,学的很累。我…

Spring Gateway的核心功能:路由、过滤、限流一网打尽

Spring Gateway的简介 在微服务架构的世界里,如同繁星点点的服务需要一个指挥家,将它们有序地组织起来,让它们能够和谐地协同工作。这个指挥家,就是Spring Gateway。它是一个基于Spring Framework 5、Project Reactor和Spring Bo…

『 Linux 』基础IO/文件IO (万字)

文章目录 🦄 什么是IO🦄 文件IO(库级别)👾 文件的打开与关闭👾 当前路径👾 文件的读写 🦄 标准输入输出流🦄 文件IO(系统级别)👾 文件的打开👾 文件的关闭👾 …

【微积分】微分方程的求解(必看)

文章目录 微分方程1.一阶微分方程1.1 可分离变量型微分方程1.2 一阶齐次微分方程1.3 一阶线性微分方程 2. 高阶微分方程2.1 可降阶的高阶微分方程求解(以二阶为例)2.2 二阶常系数线性微分方程2.2.1 二阶常系数齐次微分方程2.2.2 二阶常系数非齐次微分方程…

【操作指南】银河麒麟高级服务器操作系统内核升级——基于4.19.90-17升级

1. 升级清单 升级包及依赖包清单如下。 kernel ARM架构 kernel-core-4.19.90-23.18.v2101.ky10.aarch64.rpm kernel-modules-4.19.90-23.18.v2101.ky10.aarch64.rpm kernel-4.19.90-23.18.v2101.ky10.aarch64.rpm kernel-modules-extra-4.19.90-23.18.v2101.ky10.aarch64.r…

ASV1000视频监控平台:接入支持JT808标准的设备

目录 一、JT/T 808标准简介 (一)概述 (二)标准内容简介 1、消息分类 2、位置信息 3、报警信息 4、车辆控制 5、数据转发 二、在ASV1000上通过JT808添加设备 (一)登录视频监控平台管理端 &#x…

Coze扣子开发指南:怎样建立一个工作流?

Coze扣子的工作流支持通过可视化的方式,对插件、大语言模型、代码块等功能进行组合,从而实现复杂、稳定的业务流程编排。​ 简单的说,目前阶段,单独靠大语言模型能完成的任务还是有限的,那怎么办呢?解决方案…

电机控制系列模块解析(17)—— 速度环

一、电机转速控制 电机控制的速度环是整个电机控制系统中的外环,其主要任务是根据设定的转速指令值(目标速度)与实际电机转速之间的偏差,调整电流环的参考值(d轴电流Id或q轴电流Iq,涉及类似单电流环的弱磁…

抖音主播/电商人员有福了,利用Suno创作产品宣传,让产品动起来-小米Su7 - 第510篇

历史文章 AI音乐,8大变现方式——Suno:音乐版的ChatGPT - 第505篇 日赚800,利用淘宝/闲鱼进行AI音乐售卖实操 - 第506篇 如何让AI生成自己喜欢的歌曲-AI音乐创作的正确方式 - 第507篇 导读 现在不管是淘宝电商,还是抖音电商&a…

借助Aspose.SVG图像控件,在线将 PNG 转换为 Base64 字符串

Aspose.SVG for .NET 是用于SVG文件处理的灵活库,并且与其规范完全兼容。API可以轻松加载,保存和转换SVG文件,以及通过其文档对象模型(DOM)读取和遍历文件的元素。API独立于任何其他软件,使开发人员无需使用…

第10篇:创建Nios II工程之控制单个七段数码管

Q:还记得之前使用Verilog case语句来描述实现七段数码管的逻辑功能。本期我们创建Nios II工程用C语言代码实现相同的功能。 A:基本原理:一个七段数码管由7个发光二极管LED组成,所以控制一个数码管的显示即控制7个LED。我们在之前…

手把手教你上手开源性能监控神器Arthas

前言 在日常的工作中,对于商业项目尤其是并发量较高的项目,系统在一些情况下会莫名其妙把CPU打满并且导致服务宕机,虽然90%的情况下,是迭代发版的代码有bug,但是既然有这个情况,线上出现事故了&#xff0c…

海外大带宽服务器的带宽大小是如何定义的?

海外大带宽服务器的带宽大小通常是由提供的数据传输速率来衡量的。Rak部落小编为您整理发布海外大带宽服务器的带宽大小是如何定义的? 带宽的大小决定了服务器能够处理的数据量和传输速度,这对于确保服务器性能至关重要。在详细定义中,带宽可以根据以下…

对C语言符号的一些冷门知识运用的剖析和总结

符号 目录* 符号 注释 - 奇怪的注释 - C风格的注释无法嵌套 - 一些特殊的注释 - 注释的规则建议 反斜杠’’ - 反斜杠有续行的作用,但要注意续行后不能添加空格 * 回车也能起到换行的作用,那续行符的意义在哪? - 反斜杠的转义功能 单引号…

公钥私钥?一文搞懂非对称加密

非对称加密 非对称加密: 通信双方分别创建公钥和私钥,并且保证公钥所加密的信息,只有配对的私钥可以解密,接下来,双方公开交换公钥,通信时,使用对方的公钥进行加密,如此&#xff0…

国内小白用什么方法充值使用ChatGPT4.0?

首先说一下IOS礼品卡订阅,目前最经济实惠的订阅方式,具体操作步骤 使用IOS设备充值,用 App Stroe 兑换券 1、支付宝地址切换旧金山,在里面买app store 的兑换卷 2、美区Apple ID登陆app store ,充值兑换券 3、IOS设…

JavaScript中的事件模型

JavaScript中的事件模型分为:事件和事件流、原始事件、标准事件和IE事件。 事件与事件流 JavaScript中的事件,可以理解为HTML文档或者浏览器中发生的一种交互操作,让网页有互动的功能。常见的事件就是加载事件、鼠标事件和自定义事件。 因…

Find My资讯|苹果设备在修复期间可以保持启用“Find My“功能

iOS 17.5 中有一项名为"维修状态"的新功能,可让送修的设备保持启用"查找我的"(Find My)功能。此前,用户在送修设备时必须禁用跟踪设备位置的"查找我的"功能,但iOS 17.5发布后&#xff0…

vscode远程免密ssh原理与实操方法

什么是SSH SSH是一种加密协议,全称为Secure Shell,用于安全地远程登录到服务器或其他远程设备上执行命令或传输文件。它提供了一种安全的加密通信机制,使得远程登录和文件传输等操作不会被恶意攻击者窃取或篡改,确保了数据的保密…