【计网】计算机网络基础

在这里插入图片描述

当自律变成一种本能的习惯,
你就会享受到它的快乐。
--- 村上春树 ---

初识计算机网络

  • 1 初识协议
    • 1.1 协议分层
    • 1.2 OSI七层模型
    • 1.3 TCP / IP协议
  • 2 初识局域网
    • 2.1 什么是局域网
    • 2.2 MAC地址
    • 2.3 局域网通信
  • 3 简单认识IP地址

1 初识协议

1.1 协议分层

首先,协议是一种约定。就比如使用汉语进行通信,就要遵循汉语的使用约定,不能胡乱遣词造句!

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

那么既然是进行计算机的通信,如果每个地区的通信协议不一致,就好比地方上的方言,那么肯定是不可能行的,必须是要推广普通话的。计算机世界也是这样,需要进行一个统一的协议来保证通信的可行性!!!

协议本质也是软件, 在设计上为了更好的进行模块化, 解耦合, 也是被设计成为层状结构的!这种分层的结构让维护通信的成本降低,提高效率!

张三和李四通过电话来进行通信,张三会把汉语协议的信息传给电话,电话再通过电话协议将信息传给李四的电话,李四通过汉语协议理解张三的信息。这就是实现了物理意义的分层:
张三 -> 电话 -> 电话 -> 李四

这样就是良好的解耦,张三李四不需要考虑电话之间是如何进行通信的,只需要向电话中传入信息或者获取信息!电话不需要管张三李四之间通信的信息如何理解,只需要做到信息的传递就可以。这样维护起来不就简单多了!!!

通过上面的简单例子, 我们是能理解, 分层可以实现解耦合, 让软件维护的成本更低。但是实际的网络通信协议, 设计的会更加复杂, 需要分更多的层。

1.2 OSI七层模型

OSI(Open System Interconnection, 开放系统互连) 七层网络模型称为开放式系统互联参考模型, 是一个逻辑上的定义和规范;

  • 把网络从逻辑上分为了 7 层. 每一层都有相关、 相对应的物理设备, 比如路由器, 交换机;
  • OSI 七层模型是一种框架性的设计方法, 其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、 接口和协议这三个概念明确地区分开来, 概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;

在这里插入图片描述

但是, 它既复杂又不实用; 所以我们按照 TCP/IP 四层模型来讲解:

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

  • 物理层: 负责光/电信号的传递方式。物理层的能力决定了最大传输速率、 传输距离、 抗干扰性等. 集线器(Hub)工作在硬件层面的。这里我们不对其进行探索!
  • 数据链路层: 负责设备之间的数据帧的传送和识别。 例如网卡设备的驱动、 帧同步(就是说从网线上检测到什么信号算作新帧的开始)。有以太网、 令牌环网,无线 LAN 等标准。交换机(Switch)工作在数据链路层.
  • 网络层: 负责地址管理和路由选择。 例如在 IP 协议中,通过 IP 地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
  • 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
  • 应用层: 负责应用程序间沟通 ,如简单电子邮件传输(SMTP) 、 文件传输协议(FTP) 、 网络远程访问协议(Telnet) 等.。我们的网络编程主要就是针对应用层。

1.3 TCP / IP协议

为什么要有TCP/IP协议?

  1. 首先, 在独立的计算机内部 ,其实都是存在协议的, 比如: 其他设备和内存通信, 会有内存协议;其他设备和磁盘通信, 会有磁盘相关的协议(SATA, IDE, SCSI 等).只不过我们感知不到罢了。 而且这些协议都在本地主机各自的硬件中, 通信的成本低、 不容易出现问题。
  2. 而在计算机之间的通信过程中,距离是比较远的,通信的成本变高了,那么也一定会带来新的问题。 有问题就得解决问题, 所以需要新的协议啦。

我要发信息到目标主机B:

  1. 我需要发送信息给B,但是距离太远了,需要先发送给路由器,这要怎么办?
  2. 网上有很多主机,怎样才可以定位并找到B。
  3. 如果我发送数据出去了,中途数据丢失了,怎么办?
  4. B接收到了数据,他怎么知道我传送的数据要如何处理呢?

所以必然需要协议来解决这些问题!TCP/IP协议就是解决方案!

在这里插入图片描述
无论是windows ,linux 或者安卓,都要遵循这样的协议,这样就能实现不同设备之间的通信!在四层的协议之间中,网络层和传输层是最重要的,统称为TCP/IP协议。

所谓协议 ,就是通信双方都认识的结构化数据类型!

下面通过快递单来朴素的理解协议:

小明买了一个新键盘,那么他想要收到的就是键盘。但事实上,快递送达的时候除了键盘,他还会收到一张记录信息的快递单。这张快递单上储存着各种各样的信息,这些信息是卖家填的,小明和卖家都可以理解这些信息,那么小明就会明白这是他的快递!这张单子是快递公司制定的板式,小明和卖家都是按照规则读取和写入数据。所以这个快递单本质就是一种协议!!!用C语言表示不就是一个结构体吗!!!
我们把“快递单”称之为报头 , “键盘”称之为有效载荷!
在这里插入图片描述

通过协议就可以理解对方发送的信息的含义什么,就可以进行通信了!!!

2 初识局域网

2.1 什么是局域网

首先,两台计算机在一个局域网中,是可以进行直接通信的。就比如在我的世界里的局域网联机,这就允许在同一个局域网中玩家之间可以直接进行通信!!!

我们以上课的例子来理解局域网:

王老师在教室给同学们上课,教室里有张三,李四,王五,赵六,刘八等同学。突然王老师说:“张三站起来 , 你作业为什么不交!”,所有同学都听见了这个信息,但只有张三站了起来,其他人不会站起来,因为其他人在听到消息后理解了这条信息的接受者是张三,而不是他们!
同学们听到信息,都提取出了对话目标是张三,再与自身信息进行对比。所以只有张三会站起来!

张三站起来之后说:“我交了作业,只是你没看罢了”
此时也不会有其他人进行插嘴,因为这是传送给王老师的信息!

在这个过程中,王老师和同学们同处在一个区域网(教室)中,张三和王老师的对话可以称之为单独对话吗?当然可以,因为两人话语的对象是彼此,虽然其他同学也会听到,但是他们知道消息不是发送给他们的!仅仅是吃瓜群众罢了!!!

王老师和同学们就相当于局域网下的不同主机,为了可以在局域网中判断信息是否是发送给自己的,就需要一个唯一的标识信息来进行判断:

  • 每台主机都要有一个MAC地址!这是唯一的!

2.2 MAC地址

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

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

我们可以查看一下Linux主机的MAC地址:
在这里插入图片描述
通信过程中,就会将自己的MAC地址和对方的MAC地址加入到报头中,方便其他计算机的判断!
在这里插入图片描述

2.3 局域网通信

  • 以太网中, 任何时刻, 只允许一台机器向网络中发送数据
  • 如果有多台同时发送, 会发生数据干扰, 我们称之为数据碰撞。(数据的传输是通过光电信息进行传递的,多个信息回互相干扰!!!)
  • 所有发送数据的主机要进行碰撞检测和碰撞避免
  • 没有交换机的情况下, 一个以太网就是一个碰撞域
  • 局域网通信的过程中, 主机对收到的报文确认是否是发给自己的, 是通过目标mac 地址判定

那么可以看到,这个以太网只允许一台机器进行访问,不就相当于是临界资源吗!但是并不会进行上锁的方式解决,而是通过碰撞检测来进行解决临界问题。发送碰撞就重新进行发送!

每台电脑都可以理解为:用户层,传输层,网络层和数据链路层。如果要进行通信,那么就要从用户层来进行,一层一层的向下传递,传递到网卡,通过网卡将数据发送出去,然后另一台计算机接收到信息,一层一层的向上解包传递!

  • 封装信息的过程,可以理解为不断的用纸盒进行包装,然后贴上快递单(每层的协议)!
  • 解包信息的过程,可以理解为阅读快递单(通过协议进行解包),一层一层的打开包装!

在这里插入图片描述
每层只关注自己的信息,都认为是在与对方同层协议进行直接通信!!!
整个结构可以理解为栈结构,封装信息的过程就是不断将信息进行入栈,解包的过程就不断的弹栈!!!所以网络才称之为网络协议栈!

数据在网络中传送,一定最终是要在硬件上进行!!!所以才要进行封装和解包的过程,而不是每次协议直接进行通信!

报头部分, 就是对应协议层的结构体字段, 我们一般叫做报头,除了报头, 剩下的叫做有效载荷:

报文 = 报头 + 有效载荷

除了应用层,其他层都需要解决一个问题:自己的有效载荷应该交给上层的哪一种协议?所以协议结构体中都要有一个字段表示上层应该传给哪一个协议!!!

总的来说:通信的过程可以理解为下面一张图
在这里插入图片描述

3 简单认识IP地址

如果要进行跨网络通信,就需要IP地址来进行标识!

IP 协议有两个版本, IPv4 和 IPv6. 我们整个的课程, 凡是提到 IP 协议, 没有特殊说明的,默认都是指 IPv4

  • IP 地址是在 IP 协议中, 用来标识网络中不同主机的地址;
  • 对于 IPv4 来说, IP 地址是一个 4 字节, 32 位的整数;
  • 我们通常也使用 “点分十进制” 的字符串表示 IP 地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;跨网段的主机的数据传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器.

对比 IP 地址和 Mac 地址的区别:
• IP 地址在整个路由过程中, 一直不变(目前, 我们只能这样说明, 后面在修正)
• Mac 地址一直在变
• 目的 IP 是一种长远目标, Mac 是下一阶段目标, 目的 IP 是路径选择的重要依据, mac 地址是局域网转发的重要依据

以后我们会继续深入学习IP,这里只是简单介绍一下!

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

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

相关文章

基于微信小程序的人才招聘系统设计与实现

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的人才招聘系统设计与…

C++ 音频

一、采样频率 当前主流的采样频率为22.05KHz、44.1KHz、48KHz 22.05KHz:为FM广播声音品质 44.1KHz:为理论上最高的CD声音品质(直播,录像,acc) 48KHz:人耳可分辨的最高采样频率 (…

AI预测福彩3D采取888=3策略+和值012路或胆码测试9月9日新模型预测第82弹

经过80多期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,70多期一共只错了8次,这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了&#xff0c…

基于图神经网络的最大独立集问题的目标分支

文章目录 Abstract1 Introduction2 Related Work分支顶点选择图神经网络Abstract 分支归约方法结合了分支约束原则和归约规则,在处理以前无法管理的现实世界实例方面特别成功。分支策略决定下一个要在哪个顶点上进行分支。最近,最广泛使用的策略是选择最高度的顶点。 在这项…

OpenCV-轮廓特征

文章目录 一、简介1.意义2.类别 二、代码实现1.数据预处理2.计算周长3.绘制外接圆轮廓4.绘制外接矩阵 三、总结 一、简介 1.意义 在OpenCV中,轮廓检测后得到的轮廓不仅是一系列点的集合,还可以进一步分析以提取有用的特征。这些特征包括但不限于轮廓的…

读书记录:谷歌工作法 工作效率提升10倍的57个技巧

​ 前言 我在谷歌工作时留下的最深刻印象是“必须以全世界最快的速度取得成果”这一谷歌特有的强烈的使命感。 为什么日本的企业生产效率低下 过度推迟讨论 过分讨论 过度的交流 改变工作方式方法才是生存之道 在这样的时代,我们不应该害怕“自己的工作消失”&a…

使用rsyslog转发自定义日志到指定服务器

rsyslog简介 rsyslog 是一个高度可配置的、功能强大的系统日志守护进程,广泛用于 UNIX 和 Linux 系统中。它是 syslog 的一个扩展版本,提供了许多额外的功能和改进。能够收集、过滤、存储和转发日志数据。它的灵活性和扩展性使其成为现代 Linux 系统中日…

点餐小程序实战教程04变量定义和初始化

目录 1 什么是变量2 如何创建变量3 具体该选择什么类型4 变量的初始化5 await/async6 调试我们的程序7 运行我们的代码总结 日常碰到的最多的一句话是,我看到代码就发憷,我一点基础也没有。那低代码开发需要掌握什么样的基础,怎么才算是掌握了…

C与汇编之间的相互调用(29)

1 先来看一下 基本的调用规则。 注意: 程序通过 r1 -r4 来保存 传递的参数,如果 超过了 4个参数怎么办, 那就 放到栈里面。 注意: 堆栈是满递减, FD。 子程序的返回结果 会放到R0 里面。 2 然后是 c 语言调用 汇编语言…

MongoDB 5.0版本副本集集群

一、MongoDB 5.0版本副本集集群部署 什么是MongoDB的副本集 MongoDB的副本集(Replica Set)是一种用于提高数据库系统可用性、可靠性和数据冗余性的机制。副本集包含一组相互连接的MongoDB节点,其中包括一个主节点(Primary&#…

使用FastJson2将对象转成JSON字符串时,小数转换出错

maven坐标 <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> <version>2.0.40</version> </dependency> 问题现象&#xff1a; 问题原因&#xff1a; IOUtils.write…

SSM框架学习(二:SpringFramework实战指南)

目录 一、SpringFramework介绍 1.总体技术体系 &#xff08;1&#xff09;单一架构 &#xff08;2&#xff09; 分布式架构 2.Spring 和 SpringFramework概念 &#xff08;1&#xff09;广义的 Spring&#xff1a;Spring 技术栈&#xff08;全家桶&#xff09; &#xff…

基于IndexDB+md-editor-v3实现的简单的文章书写小系统

基于IndexDBmd-editor-v3实现的简单的文章书写小系统 文章说明核心代码效果展示源码下载 文章说明 采用vue3 IndexDB 实现的个人仓库系统&#xff0c;采用markdown书写文章&#xff0c;并将文章信息存储在IndexDB数据库中&#xff0c;通过JavaScript原生自带的分词API进行文章…

STM32——串口通信(发送/接收数据与中断函数应用)

文章目录 通信&#xff1a;串口通信简介&#xff1a;1.双工/单工&#xff1a;2.同步/异步&#xff1a;3.电平&#xff1a;电平标准&#xff1a; 串口参数以及数据帧时序&#xff1a;数据帧&#xff1a;1.波特率和比特率&#xff1a;例&#xff1a;无校验&#xff0c;1位停止位 …

【WebGIS实例】(16)GeoServer 自定义样式 - 渲染矢量数据

1. 前言 本篇博客将会分享一系列的 GeoServer 样式&#xff0c;通过这些样式预先在服务端完成数据渲染&#xff0c;让前端应用更便捷的加载数据服务。 2. 面矢量 示例数据&#xff1a; {type: FeatureCollection,features: [{type: Feature,properties: {分类字段: 字段一…

数据权限的设计与实现系列6——前端筛选器组件Everright-filter使用探索

linear 功能探索 最终我们是需要使用 API 的方式&#xff0c;调用后端服务拉取数据填充筛选器组件&#xff0c;不过在探索阶段&#xff0c;直接用 API 方式&#xff0c;就需要构造 mock 数据&#xff0c;比较麻烦&#xff0c;因此先使用 Function 方式来进行功能验证。 组件初…

代理模式详解

1.基本介绍 代理模式&#xff1a;为一个对象提供一个替身&#xff0c;以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能;被代理的对象可以是远程对象、创建开销大的对象或需要安全控制…

记录:uniapp直播的弹幕的样式修改与发送弹幕会自动滚动到底部两个技巧

1、在直播页面的弹幕评论中&#xff0c;我们希望的样式是&#xff1a; 观众名字&#xff1a;评论 而且颜色有所区分&#xff0c;并在同一行显示 2、我们希望在发弹幕的时候可以回自动滚动到自己发的内容那里 一&#xff1a;弹幕样式修改 因为是小白&#xff0c;前端对于样式这…

苹果手机照片被删除?如何通过不同的方法来恢复照片

手机已经成为我们生活中不可或缺的一部分&#xff0c;它不仅仅是通讯工具&#xff0c;更是我们记录生活点滴的重要工具之一。然而&#xff0c;正如其他任何设备一样&#xff0c;iPhone上存储的照片有时也会不小心被删除或丢失。 别担心&#xff0c;即使你误删了重要的照片&…

重头开始嵌入式第三十四天(数据库二)

sqlite3的一些补充 目录 sqlite3的一些补充 1.事物 2.连接&#xff0c;联合 3.触发器 4.子查询 1.事物 数据库事务是数据库管理系统执行过程中的一个逻辑单位&#xff0c;它由一系列对数据库的操作组成。 一、事务的特性 1. 原子性&#xff08;Atomicity&#xff09…