计算机网络练级第一级————认识网络

目录

网络搁哪?

网络的发展史(了解)

独立模式:

网络互联:

局域网时期:

广域网时期:

什么是协议

TCP/IP五层/四层模型

用官话来说:

我自己的话来说

第一层应用层:​编辑

第二层传输层:​编辑

第三层网络层:​编辑

第四层数据链路层:​编辑

不同的设备,有不同的层数

 网络传输的过程

数据包的封装和分用

什么是报头

什么是有效载荷 

报头有效载荷怎么分离

都能拿到数据

网络中的地址管理

IP地址

MAC地址

使用IP协议的一大原因:


网络搁哪?

网络大家应该都很熟悉了,但网络具体是怎么构成的,怎么用的?长话短说

我认为网络就是计算机里的快递业务,从一台计算机中发出,网络接收到数据后,就要把这个数据安全快速完整地发到目标主机上。

大家肯定在想,谁都知道吧,这个人搁这搁这。但主题确实也是从这里开始。

网络的发展史(了解)

独立模式:

这个时期,有点像网络的原始人时期,这个时期每个计算机只能有自己的数据,程序员想要另一台主机的数据,得等到上一台主机用完了,才能从被用的主机获取。效率太低

网络互联:

这个时期,开始进步了,有人觉得走来走去的也挺麻烦的,我们在附近的计算机组成一个联盟,将要共享数据都放在一台更nb的计算机中(服务器)。这里面就存着一些共享的数据,想用就拿。

局域网时期:

这个时期,延用了网络互联的思路,计算机数量更多了, 通过交换机和路由器连接在一起,通过路由器可以使网络互联时期的单个区域组合在一起

广域网时期:

就是把多个局域网在通过更多的路由器,放到一起就是局域网。

什么是协议

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

就像我给你发的是一个视频,你不能解析出来一团乱码,或者莫名奇妙给我来一张图片。那就乱套了,协议设定的初衷就是为了数据转发的安全快速完整。

因为协议必须要固定且具有权威性,所以不能是有一家公司就做一个协议,那也乱套了。所以必须要由一些行业领导者来制定。

有句话说得好“一流的企业做标准,二流的企业做品牌,三流的企业做产品”

所以就到了我们的下一个主题:

TCP/IP五层/四层模型

这里没有介绍OSI七层模型,是因为TCP/IP是现在常用的,虽然OSI是祖师爷,但流行趋势还是五层/四层(如果是五层的话就是把物理层在单独拿出来当做一层)

TCP/IP也是OSI的衍生物如图所示:

Tcp/ip是将OSI的部分组合在一起变成了一层

计算机在传输数据时就要一层一层地攻关,一层出现失误都要重新再来。在发送端是从应用层往下一层一层走,而接收端就是从物理层一层一层往上走

那和协议有什么关系呢?网络协议是很复杂的,每一层都有每一层的功能,所以每一层都有每一层的协议,所以在之后的练级中呢,我们会一层一层讲解。今天先大体介绍一下每一层有什么用?

用官话来说:

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

我自己的话来说

第一层应用层:

就是每个应用自己规定的一套解析手段:就像抖音给你刷的是短视频,他就不能像说你打开抖音,给你开两把王者,所以应用层的协议是公司自己写,然后只应用与这个应用的。

第二层传输层:

这一层有一个重要的概念协议:TCP传输控制协议:这一层就是要保证你传过来的数据,如果应用层是让接收方看得懂这个数据,那这一层要想的就是,我怎么把数据完整安全地解析上来,不能让别人偷了,也不能说我不管你应用层要什么,我直接把收到的全给你塞上去。那还是乱套了。

所以这一层就是保证数据的可靠性的

第三层网络层:

这一层就是IP协议了,IP协议用来保证传输地址是否正确。这一层就相当于寄快递的,和收快递的。必须精准地送到指定的人手上。

第四层数据链路层:

这一层是接收方的启动层,其实也就是硬件层,我那边的网卡发出来后,这边的网卡收到数据后,就往上传。

不同的设备,有不同的层数

作为路由器你只要指路,而作为计算机你是要使用软件应用的,所以不同的设备拥有的层数不同,不是每一台设备都需要走到最顶层,

对于一台主机 , 它的操作系统内核实现了从传输层到物理层的内容 ;
对于一台路由器 , 它实现了从网络层到物理层 ;
对于一台交换机 , 它实现了从数据链路层到物理层 ;
对于集线器 , 它只实现了物理层 ;

 网络传输的过程

上面说了网络是一层一层的,所以在传输时也像闯塔一样,一层一层地走

如果你要传输的数据不是局域网内的就要走路由器,就像如果你要送妈妈礼物,直接给就好了。

如果是要送外省读书的朋友礼物,那就要寄个快递。

数据包的封装和分用

那作为操作系统我只知道你传上来一堆数据,那我要怎么识别并且向上层传递呢或者向下层传递?

如图我们可以看出,应用层先把数据打包好,然后给传输层层,传输层加了一个TCP头部。

这个加的头部其实就是之后用来解析的协议的报头(就当做一个头部就好),然后每一层都加上一个报头,之后传到另一个主机时,这个主机就有思路了,根据协议规定,我通过将每一个头部拆分。在根据协议中的规定再来考虑要不要向上传递。(就像,到了一台主机要识别ip,如果不是这个ip,那我就不向上传了)。

什么是报头

报头就是一个协议字段,通过拆下这个报头并且分析我就可以知道数据是否正确完整安全等等

什么是有效载荷 

对于网络层来说IP头部是报头,剩下的部分就是有效载荷

报头有效载荷怎么分离

首先在报头中会有一段数据是用来描述,报头的大小的等等数据,通过这个大小就可以将报头从这一串数据中分离,将有效载荷拆开,有效载荷怎么知道自己要去那一层呢?其实很简单,对于每一层把报头拆开后,里面的有效载荷的下一个字段就是下一层的报头。(套娃的过程)

都能拿到数据

在网络中一台主机发出的数据,同一局域网下的每一个主机都能收到同一份数据,只是基于系统模式,不同的主机根据ip协议,可以决定是否要这份数据。计算机还存在一种模式,就是不管ip是否匹配都能获取传输的数据,但这个模式默认是不开启的。

网络中的地址管理

IP地址

目前有两种ip地址,一种是ipv4,一种是ipv6.每个ip地址在世界上独一份

IP 地址是在 IP 协议中 , 用来标识网络中不同主机的地址 ;
对于 IPv4 来说 , IP 地址是一个 4 字节 , 32 位的整数 ;
我们通常也使用 " 点分十进制 " 的字符串表示 IP 地址 , 例如 192.168.0.1 ; 用点分割的每一个数字表示一个 字节, 范围是 0 - 255;

为什么要新出一个ipv6,是因为ipv4,这个类型只规定了4个0-255范围的数字。随着网络的发展。

之前如果是一人一个电子设备的话暂时还hold住,但由于发展,一个人可能拥有更多的设备。每个设备如果都要入网,那就得有一个新的ip,所以ipv4的数字范围太小 存不下,所以ipv6就是为了解决数量问题

MAC地址

MAC 地址用来识别数据链路层中相连的节点 ;
长度为 48 , 6 个字节 . 一般用 16 进制数字加上冒号的形式来表示 ( 例如 : 08:00:27:03:fb:19)
在网卡出厂时就确定了 , 不能修改 . mac 地址通常是唯一的 ( 虚拟机中的 mac 地址不是真实的 mac 地址 , 可能会冲突; 也有些网卡支持用户配置 mac 地址

和ip地址不同的是,mac地址是在局域网中唯一但是在广域网中并不是唯一的。所以说mac地址更像是学校的学生卡号,虽然在学校是唯一的,但是出了学校只有身份证(ip)是唯一的。

其实mac地址也是为了增大ip地址的利用率之后会详细说明 

使用IP协议的一大原因:

使用ip协议可以屏蔽底层差异

由于网络的类型不只是一种,我们平常家里常用的有蓝牙网络 wifi(wlan),以太网(网线)等等,因为每个网络类型封装的报头不同,但是在ip协议这一环封装的是相同的。

IP协议呢就可以不管你是什么类型的网络,它的目的只是一个传递到属于这个ip地址的计算机。

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

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

相关文章

erlang学习: Mnesia Erlang数据库

创建Mnesia数据库 mnesia:create_schema([node()]).在shell里输入该行代码即可创建一个mnesia数据库于当前文件夹下 编译器文件路径下同样也有 数据库表定义创建 之后是数据库表定义,打开数据库创建完成后,启动数据库,添加一些表定义&…

多路转接之poll(接口介绍,struct pollfd介绍,实现原理,实现非阻塞网络通信代码)

目录 poll 引入 介绍 函数原型 fds struct pollfd 特点 nfds timeout 取值 返回值 原理 如何实现关注多个fd? 如何确定哪个fd上有事件就绪? 如何区分事件类型? 判断某事件是否就绪的方法 代码 示例 总结 为什么说它解决了fd上限问题? 缺点 poll 引入…

大模型RAG实战|构建知识库:文档和网页的加载、转换、索引与存储

我们要开发一个生产级的系统,还需要对LlamaIndex的各个组件和技术进行深度的理解、运用和调优。本系列将会聚焦在如何让系统实用上,包括:知识库的管理,检索和查询效果的提升,使用本地化部署的模型等主题。我将会讲解相…

故障诊断迁移学习项目DDC(保姆教程)

本项目从零开始搭建深度领域混淆(Deep Domain Confusion,DDC)算法。项目包括加载CWRU轴承原始信号,信号处理、数据集制作,模型搭建,DDC域混淆算法设计、特征可视化,混淆矩阵等流程来帮助读者学习…

超级帐本(Hyperledger)

1. Hyperledger 项目 Hyperledger 下有两类项目:第一类是区块链框架项目;第二类是支持这些区块链的相关工具或模块。 在 Hyperledger 框架下,目前有 5 个区块链框架项目:Fabric、Sawtooth Lake、Iroha、Burrow 和 Indy。 在模块类下,则有 Hyp…

Spring Boot 集成 Redisson 实现消息队列

包含组件内容 RedisQueue:消息队列监听标识RedisQueueInit:Redis队列监听器RedisQueueListener:Redis消息队列监听实现RedisQueueService:Redis消息队列服务工具 代码实现 RedisQueue import java.lang.annotation.ElementTyp…

原生 iOS 引入 Flutter 报错 kernel_blob.bin 找不到

情况 在一次原生 iOS 项目中引入 Flutter 的过程中,在模拟器中运行出现报错: 未能打开文件“kernel_blob.bin”,因为它不存在。 如下图: 模拟器中一片黑 原因&解决方案 这个是因为 Flutter 的打包 iOS framework 命令中…

OCR技术视角:智能文档管理中的票据自动化识别与处理

在数字化转型的浪潮中,企业对于高效、自动化的文档管理需求日益增长。票据作为企业运营中不可或缺的部分,其识别与管理的智能化成为了提升工作效率的关键。本文将深入探讨智能文档系统中票据识别功能的原理、技术优势以及在不同行业中的应用实践&#xf…

Java、python、php、node.js版 铁路售票自动选座系统 高铁购票系统 火车订票平台(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

Mac无法安装软件怎么解决?mac安装软件提示无法验证开发者怎么办

在使用 macOS 系统时,你可能会遇到一个常见的问题:当你尝试安装或打开某些应用程序时,系统会弹出一个警告,提示“无法验证开发者”。出现这个提示导致自己无法去进行程序安装,接下来我们就来看看如何解决此问题的方法吧…

云计算实训43——部署k8s基础环境、配置内核模块、基本组件安装

一、前期系统环境准备 1、关闭防火墙与selinux [rootk8s-master ~]# systemctl stop firewalld[rootk8s-master ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus…

VuePress搭建个人博客(一键安装)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【第26章】Spring Cloud之Sentinel适配API Gateway

文章目录 前言一、准备1. 引入库2. 注册过滤器3. 添加配置4. 效果展示 二、基于网关的流控1. 新增流控规则2. 测试准备3. 测试结果 总结 前言 Sentinel从1.6.0 版本开始,Sentinel 提供了 Spring Cloud Gateway 的适配模块,可以提供两种资源维度的限流&a…

Django + websocket 连不上

看了网上的几个简单例子,一步一步做,但无一成功。都连不上websocket。 后来按一个视频教程的操作步骤来做,成功了。差别在于视频教程中加了 pip install daphne 和setting.py中 连不上的表现: 前端报错: WebSock…

Linux网络协议栈的实现

网络协议栈是操作系统核心的一个重要组成部分,负责管理网络通信中的数据包处理。在 Linux 操作系统中,网络协议栈(Network Stack)负责实现 TCP/IP 协议簇,处理应用程序发起的网络请求并与底层的网络硬件进行交互。本文…

[SWPUCTF 2022 新生赛]

目录 [SWPUCTF 2022 新生赛]ez_rce 什么是poc? [SWPUCTF 2022 新生赛]where_am_i [SWPUCTF 2022 新生赛]js_sign [SWPUCTF 2022 新生赛]xff ​[SWPUCTF 2022 新生赛]numgame call_user_func()函数 ::双冒号运算符 [SWPUCTF 2022 新生赛]ez_sql [SWPUCTF 2…

TortoiseGit无法安装解决方案

Win11安装TortoiseGit报错,错误码:2503,如下图: 开始-右键-Windows PowerShell(管理员)/终端 (管理员) 输入 msiexec /package 安装程序所在绝对路径, 例如 : msiexec /package D:\我的资料…

jenkins 部署应用到多个环境

在日常开发的过程中,我们经常会遇到将应用程序部署到多个环境的需求场景,如会先发布到测试环境,由测试人员进行测试,成功之后,会继续将当前应用部署到集成环境,进行集成测试,全部通过后&#xf…

RAG 聊天机器人:用 Langchain 和 Streamlit开启与 PDF 的智能对话

与大量 PDF 文档的交互如今变得前所未有地便捷与智能。想象一下,您可以轻松与您的笔记、书籍和各种文档进行无缝对话,不再需要繁琐的手动查找和处理。 这篇文章将带您逐步构建一个基于 Multi-RAG 和 Streamlit 的 Web 应用程序,该应用程序通过 AI 驱动的聊天机器人来读取、…

以实时,见未来——DolphinDB 2024 年度峰会圆满举办

2024年9月6日,“以实时,见未来”—— DolphinDB 2024 年度峰会在杭州圆满落下帷幕。本次峰会由主会场与三个专题分会场组成,众多金融机构领导与专家、行业领袖、高校与研究机构学者等近300位嘉宾共襄盛举,一同探讨数智化浪潮下金融…