44 网络基础

news2025/1/6 17:27:15

本章重点

了解网络发展背景,对局域网/广域网的概念有基本认识
了解网络协议的意义,重点理解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.coloradmin.cn/o/1647633.html

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

相关文章

一跨8 双跨9的电机讲解

前面讲解的都是一路串联的电机,下面讲解的是一个 ,里面有一组线圈和2组线圈同时存在的一个电机。 1.有多少组线圈 ------- 12组 2.每组线圈有几把线 -------- 1 2 1 2 1 2 1 2 1 2 1 2 共12把。 3.跨距 单个线圈跨8 双组线圈 跨 9 4.匝数…

聚观早报 | vivo X100S外观公布;蔚来乐道L60曝光

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 5月7日消息 vivo X100S外观公布 蔚来乐道L60曝光 iPhone17将推Slim机型 2024年五一档电影票房 索尼Xperia 1 VI…

Redis 实战之事务的实现

事务的实现 事务开始命令入队事务队列执行事务总结 一个事务从开始到结束通常会经历以下三个阶段: 1、 事务开始; 2、 命令入队; 3、事务执行。 本节接下来的内容将对这三个阶段进行介绍, 说明一个事务从开始到结束的整个过程。 …

uniapp使用iconfont

1、把这两个文件在项目的静态资源目录下 2、修改iconfont.css文件 3、最后在app.vue中引入

一起深度学习(AlexNet网络)

AlexNet神经网络 代码实现: 代码实现: import torch from torch import nn from d2l import torch as d2lnet nn.Sequential(# 采用了11*11的卷积核来捕捉对象,因为原始输入数据比较大#步幅为4 ,可减少输出的高度核宽度。#输出通…

今日刷三题(day11):不同路径的数目(一)+短距离最小路径和+把数字翻译成字符串

题目一:不同路径的数目(一) 题目描述: 一个机器人在mn大小的地图的左上角(起点)。机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点…

【Java】第二讲:字符串相关类

个人主页:深情秋刀鱼-CSDN博客 Java专栏:Java程序设计 目录 一、String 1.Java中的数据类型 2.字符串概述 3.字符串构造方法 4.字符串构造内存原理 5.字符串比较 6.字符串常见方法 二、StringBuilder 1.定义 2.常用方法 3.StringBuilder内存分…

vue 金额组件,输入提示单位:‘千’、‘万’、‘十万’...并用‘,’三个格式化

近期项目中遇到一个需求,金额输入框,输入过程中自动提示‘千’、‘万’、‘十万’、‘百万’......等单位提示,鼠标失去焦点后,并用‘,’三位隔开计数。 例如: 输入:12345.99 失去焦点:12,34…

小满OKKICRM与金蝶云星空对接集成客户列表查询(更新列表)打通客户新增

小满OKKICRM与金蝶云星空对接集成客户列表查询(更新列表)打通客户新增 接通系统:小满OKKICRM 深圳市小满科技有限公司(简称:小满科技)成立于2013年3月,公司位于深圳市南山区高新园区,是一家国家级高新技术企…

BetterMouse for Mac激活版:鼠标增强软件

BetterMouse for Mac是一款鼠标增强软件,旨在取代笨重的、侵入性的和耗费资源的鼠标驱动程序,如罗技选项。它功能丰富,重量轻,效率优化,而且完全隐私安全,试图满足你在MacOS上使用第三方鼠标的所有需求。 B…

cmake进阶:文件操作之写文件

一. 简介 cmake 提供了 file() 命令可对文件进行一系列操作,譬如读写文件、删除文件、文件重命名、拷贝文件、创建目录等等。 接下来 学习这个功能强大的 file() 命令。 本文学习 CMakeLists.txt语法中写文件操作。 二. cmake进阶:文件操作之写文件…

Gin 框架的使用

1、Gin 快速开发 1.1、环境准备 1.1.1、导入 gin 依赖 这里就叫 gin 依赖了,在 Goland 命令行中输入下面的命令: go get -u github.com/gin-gonic/gin 1.1.2、设置代理 如果下载失败,最好设置一下代理,在 cmd 命令行中输入下…

深度学习之基于Matlab Googlenet网络男女性别识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着计算机视觉技术的快速发展,性别识别在多个领域中都展现出了广泛的应用前景&#xff…

基于springboot实现志同道合交友网站系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现志同道合交友网站系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本志同道合交友网站就是在这样的大环境下诞生,其可以…

SpringMVC简介和体验

一、SpringMVC简介和体验 1.1 介绍 Spring Web MVC :: Spring Framework Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称( spring-webmvc )&#…

修改idea缓存的默认存储位置

打开idea.properties 找到 # idea.config.path${user.home}/.IntelliJIdea/config # idea.system.path${user.home}/.IntelliJIdea/system 将${user.home}替换成你要存储到的路径 再次打开idea时会弹出消息,点击ok即可。

Mujoco210和Mujoco-py在 Ubuntu22.04 下的安装

mujoco和mujoco-py的关系:mujoco是一个物理引擎,主要应用于强化学习和最优化控制领域。mujoco-py是mujoco编程的 Python 接口,由OpenAI Gym开发,可以使用mujoco_py方便地调用mujoco的API。 mujoco官网: https://mujoco…

探无止境,云游未来 | “游戏出海云”发布

4月28日下午,2024中国移动算力网络大会之“游戏出海”分论坛在江苏省苏州金鸡湖国际会议中心圆满落幕。 此次论坛由中国移动海南公司主办,中国移动通信集团政企事业部、中国移动云能力中心、中国移动国际公司共同协办。海南省工业与信息化厅副厅长黄业晶…

webpack4和webpack5区别1---loader

webpack4处理图片和字体的loader file-loader file-loader的作用是处理webpack中的静态资源文件。File Loader可以将各种类型的文件,如图像、字体、视频等转换为模块并加载到Web应用程序中。它通过import或require语句引入文件资源,并将其放置在输出目…

C++类细节,面试题02

文章目录 2. 虚函数vs纯虚函数3. 重写vs重载vs隐藏3.1. 为什么C可以重载? 4. 类变量vs实例变量5. 类方法及其特点6. 空类vs空结构体6.1. 八个默认函数:6.2. 为什么空类占用1字节 7. const作用7.1 指针常量vs常量指针vs常量指针常量 8. 接口vs抽象类9. 浅…