网络之网络基础入门

news2024/11/16 3:49:59

文章目录

  • 前言
  • 一、局域网和广域网
    • 1.局域网LAN
    • 2.广域网WAN
    • 3.城域网和校园网
    • 4.如何区分广域网和局域网
  • 二、协议
    • 1.概念
    • 2.理解
    • 3.协议分层
    • 4.数据传输的条件
  • 三、OSI七层模型(了解即可)
    • 1.概念
    • 2.OSI七层模型
  • 四、TCP/IP五层(四层)模型
    • 1.概念
    • 2.注意要点
    • 3.计算机层状体系结构图
  • 五、网络传输基本流程
    • 1.报头
    • 2.局域网通信原理
      • 局域网通信原理
    • 3.以太网(了解即可)
    • 4.网络传输流程图
    • 5.数据包封装与分用
  • 六、IP与MAC地址
    • IP地址
    • MAC地址
    • IP地址和MAC地址
  • 总结


前言

从本文开始,我们来学习计算机网络。本文主要介绍了局域网和广域网、协议、TCP/IP四层模型、网络传输的基本流程、IP地址和MAC地址等相关概念。


一、局域网和广域网

独立模式:计算机之间相互独立;
网络互联:多台计算机通过网络连接在一起,完成数据共享。

1.局域网LAN

计算机数量较多时,需要通过交换机和路由器来连接在一起,范围比广域网的范围小。局域网的范围可以是一个家庭、一个学校、一个公司……通常情况下,私网或内网也可以表示这个概念,都是指企业、学校、家庭等组织内部形成的局域网。

2.广域网WAN

将相隔千里的计算机也可以连接在一起。所谓的“广域网”和“局域网”只是个相对的概念,广域网也可以看做是一个比较大的局域网。Internet可以被看做是一个广域网。通常情况下,公网和外网也可以表示这个概念,它们可以看做是广域网的一部分。

3.城域网和校园网

我们还听过城域网和校园网这样的概念,城域网实际上就是在一个城市的范围内建立的计算机通信网,而校园网是在一个学校的范围内建立的计算机通信网。城域网和校园网也是一个相对的概念,我们可以将它们也看做是一个较大的局域网。

4.如何区分广域网和局域网

一般情况下,我们可以根据是否有路由器来初步区分广域网和局域网。
理论上,如果该网络中存在路由器,则该网络可以连接到其它局域网和互联网上,从而形成广域网。
如果网络中没有路由器,则只能通过同一局域网内的设备来进行通信,因此可以被视为局域网。
当然这种方式来区分广域网和局域网并不完全准确。比如,在一个大型企业或学校中可能会使用多个路由器来分隔不同部门或楼层的网络。这种情况下,整个网络仍被视为一个局域网,而不是广域网。

二、协议

1.概念

协议,本质上就是一种约定。
通信双方曾经做过某种约定,之后就默认使用这种约定来做事情。
当然协议并非网络专用,例如:驱动程序访问硬件的过程通过一些协议。
计算机中存在各种各样的设备:CPU/显卡/网卡等,计算机内部通过线路连接各个组件,在计算机内部的设备和设备之间也存在着协议。因此一个计算机内部本质也是一个小型的网络结构。
假设这些线路可以延展到很长,我们将硬盘放到很远的地方,由于还是被同一台计算机的线路连接,因此它还是属于这一台计算机,就只是线路被拉长了。此时我们让计算机存储数据就是由之前的写入本地变成了通过网络写入远端了。再假设,我们将CPU等设备同样的放到较远的地方,就相当于我们将一台计算机的各个功能用多台计算机实现(通过网络)。
因此,计算机体系结构中有网络,网络中有体系结构
我们在学习系统时,没有谈过协议,为什么网络中要讨论协议?
这是因为多台计算机距离较远,为了减少它们之间的通信成本,我们需要协议。
所有的网络的问题,都是因为传输距离变长了。

2.理解

如何理解协议呢?
举个例子:
我们都知道打电话,如果收到电话的人没有接电话,则是不需要收取电话费的。为了省钱,张三和父亲做了约定:如果电话响一下就挂了,说明是平安到学校了;如果电话响两下就挂了,说明是生活费不够需要打钱了;如果响三下还没挂掉,说是有事要打电话,此时再接通电话。如此一来,需要花费的电话费就能少一些,同时还可以将信息传递到。
这种电话响的次数不同,代表的含义不同。而这个含义不需要进行解释,它是通信双方曾经约定好的,这就叫做协议。
在计算机世界里,如果一台主机想要另一台主机做一件事,它们之间就需要通信,为了减少通信成本,就会出现类似的协议。比如,预先规定好发1个字节,字节的不同,代表要另一台主机做的事不同。

虽然计算机世界有协议,但是不同的计算机生产厂商,不同的操作系统,它们所规定的协议不同(各种有各种的协议),这样的主机与主机之间就不能正常通信,因此必须统一约定一个标准,让大家都能遵守。这个标准就是网络协议(TCP/IP标准)

3.协议分层

  1. 分层:
    打电话这个例子:从人的角度出发,它是人与人之间的沟通交流;从通信设备的角度出发,它是电话与电话之间的沟通,这就是分层。
    语言层和通信设备层是不同的,但是它们可以搭配使用。
  2. 分层的好处:
    把软件模块化,可以将上层语言与下层通信设备之间解耦,解耦以后,如果我们更换通信设备,而上层语言不用改变;如果我们更换上层语言,则底层不用改变。即,对任意一层做修改不会影响到其它层
  3. 分层的依据:
    功能集中、耦合度高的模块放在一层,即高内聚。
    每一层解决特定的问题,即功能解耦。

4.数据传输的条件

即,需要具备的能力

  1. 数据包交付能力
    如果两台很远的主机之间要传输数据,则首先要有将数据交付给另一台主机的能力。
  2. 路径选择能力
    因为面向的有成千上万个主机,如果不知道要交付给哪一台主机也不行。
  3. 容错纠错能力
    如果数据传输中出现错误,就要重新传递一份。
  4. 数据解析能力
    数据传递过去,对应的主机要能够识别接收到的是什么,然后才能使用接收到的数据。

这里的每一层都有自己的协议,每一层的协议主要是用来解决当前层的问题。

三、OSI七层模型(了解即可)

1.概念

  • OSI(Open System Interconnection, 开放系统互联)七层网络模型——被称为开放式系统互联参考模型;
  • 它将网络从逻辑上分为了七层,每一层都有相关的、相对应的物理设备;
  • OSI七层模型是一种框架性的设计方法,其中最主要的功能就是帮助不同类型的主机实现数据的传输;
  • 它最大的优点是将服务、接口和协议这三个概念明确的区分开,它的概念情况,理论也相对完整。通过七个层次化的结构模型使不同的系统、不同的网络之间实现可靠的通讯。
  • 但是它既复杂又不实用,因此后来在具体实现上对它做了调整,于是就有了我们现在看到的TCP/IP四层协议(除开物理层)。我们主要了解TCP/IP四层模型。

2.OSI七层模型

分层名称功能功能概览
应用层针对特性应用的协议针对每个应用的协议
表示层设备固有数据格式和网络标准数据格式的转换接收不同表现形式的文件,如:文字流、图像、声音等
会话层通信管理。负责建立和断开通信连接。管理输出以下的分层何时建立连接、何时断开连接以及保持多久的连接
传输层管理两个节点之间的数据传输,负责可靠传输(确保数据被可靠的传送到目标地址)判断是否有数据丢失
网络层地址管理与路由选择判断经过那个路由传递到目标地址
数据链路层互联设备之间传送和失败数据帧数据帧与比特流之间的转换
物理层用‘0’和‘1’表示高低电压比特流和电子信号的转换、连接器和网线的规格

在这里插入图片描述

四、TCP/IP五层(四层)模型

1.概念

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

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

2.注意要点

物理层一般情况下我们考虑的比较少,因此我们也可以称它为TCP/IP四层模型。
数据链路层解决的是能够传递的问题,网络层解决的是选择路径的问题,传输层解决的是纠错的问题,应用层是解决数据解析的问题。这里的数据链路层中的网卡层是驱动程序的一部分。网络层和传输层是操作系统内部自己实现的。
所有操作系统都一样,因此全球的主机都能互联。
这里的TCP和IP各自是传输层和网络层最具代表的两个协议,这个协议栈,命名为TCP/IP模型,足以看出这两个协议的重要性,它们的重要性是操作系统赋予的。

3.计算机层状体系结构图

在这里插入图片描述
网络通信中,在应用层传输层之间会有系统调用接口,主要是文件类的系统调用接口。

五、网络传输基本流程

1.报头

协议每一次都有,而每一个协议最终的表现就是协议都要有报头。
例如:我们收快递件的时候,不会只收到物品,还会收到快递盒和快递单。这个快递单就是报头。如果我们想要发数据,发送的数据会比我们想要发送的数据多一些,这个多出来的部分就是报头。
在这里插入图片描述
快递单号是给快递员看的,这个快递单就是快递公司自己定的协议,这个快递单子在它们的物流体系中都能够被识别。
由此得出结论:协议通常是通过协议报头来表达的,每一份数据最终在被发送或者在不同的协议层中,都要有自己的报头。

2.局域网通信原理

两台在同一局域网的主机之间是可以直接通信的。
每一台主机都有网卡,每一张网卡都有自己的地址(MAC地址),就像人的身份证一样,可以用来表示网卡的唯一性。
MAC虽然全球唯一,但是它不应用于全球,它只是在局域网中标识自己的唯一性。
指令:ifconfig,查看云服务器的MAC地址。
在这里插入图片描述
注意:云服务器这里的MAC地址是一个虚拟地址。

局域网通信原理

局域网中有很多的机器:
在这里插入图片描述
如果MACI想要跟MAC7发送消息时,其他所有主机也都能收到,但是其他主机在内部做协议判断发现并不是发给自己的,则会将消息自动丢弃,最终就只有Mac7可以收到消息。

3.以太网(了解即可)

4.网络传输流程图

同一个网段内的两台主机进行文件传输:
在这里插入图片描述
跨网段的主机之间的文件传输:
数据从一台计算机到另一台计算机的传输过程中要经过一个或者多个路由器。
在这里插入图片描述

5.数据包封装与分用

不同的协议层对于数据包有着不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称之为封装
假设,使用qq聊天,人们会认为自己在用户称直接进行聊天。实际上,是数据向下交付(封装),再向上解包(分用),才实现了聊天。
数据包封装:向下交付的时候每一层都会添加自己的报头,再把报文向下交付。(报文 = 报头 + 有效载荷)
数据包奋勇:向上解包的时候,因为同一层会有相同的协议,所以能识别报头,进而解开报头,将有效载荷再向上解包,如此就形成了对称的结构。
过程表现的类似图(痕迹保留):
在这里插入图片描述
看到同一层报头和有效载荷完全一样,左边是怎么发送数据的,右边就是怎么接收数据的。所以可以认为是在同层协议中直接通信,也可以理解为向下交付。

不同网段的两台计算机通讯过程的不同在于路由器部分:
在这里插入图片描述

一个设备至少要横跨两个网络才能实现数据报跨网络转发,路由器必须至少横跨两个网络,路由器必须要有两个网络接口。在路由器部分传递给令牌环驱动程序的时候,加上的报头是令牌环协议(重新封装报头),这样就跟左边的不一样了,但是并不影响对称性。

简单理解路由器部分传输数据:
像我们脱了外套,换上新的外套,但是本质的人并没有改变,由此可以得出IP层的作用就是屏蔽底层网络的差异。

六、IP与MAC地址

IP协议有两个版本,IPv4和IPv6,提到IP协议,如果没有特殊说明,就默认是IPv4.

IP地址

上面用四个字节表示形式称为IPv4,而IPv6使用16个字节表示
IP地址是在IP协议中,用来标识网络中不同主机的地址;
我们通常也用“点分十进制”的字符串表示IP地址,例如:189.162.1.1;用点分隔到的每一个数字表示一个字节,范围是0~255。

MAC地址

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

MAC地址通常在局域网中使用,IP地址通常在广域网中使用。

IP地址和MAC地址

为什么要有两个地址?
西游记中,我们知道唐僧是自东土大唐而来,去往西天拜佛求经。每到一个国家,国王就会问他是从哪里来到哪里去,才能告诉他下一站要去哪里。例如:当前到达女儿国,下一站要去黑凤岭。
这里的东土大唐和西天两个地址就是IP地址,从始至终不会发生改变。女儿国和黑风岭则是MAC地址,一直会发生变化(当前站和下一站)。IP地址于MAC地址就相当于终极目标和阶段性目标
IP地址提供的是方向,MAC地址提供的是可行路径。这里的MAC两个地址一定是挨着的,因此是在同一个局域网。


总结

以上就是今天要讲的内容,本文介绍了网络基础入门的相关概念。本文作者目前也是正在学习计算机网络相关的知识,如果文章中的内容有错误或者不严谨的部分,欢迎大家在评论区指出,也欢迎大家在评论区提问、交流。
最后,如果本篇文章对你有所启发的话,希望可以多多支持作者,谢谢大家!

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

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

相关文章

TC8:TCP_BASICS_11-17

TCP_BASICS_11: [finwait-2 -> time_wait] delay(2*MSL) -> [closed] 目的 TCP从FINWAIT-2状态到TIME-WAIT状态后,等待2MSL时间后,移动到CLOSED状态 关于为什么要等待2MSL时间,我的文章中讲过太多次了,这里就不提了 测试步骤 Tester:让DUT移动到FINWAIT-2状态Test…

使用Python批量进行数据分析

案例01 批量升序排序一个工作簿中的所有工作表——产品销售统计表.xlsx import xlwings as xw import pandas as pd app xw.App(visible False, add_book False) workbook app.books.open(产品销售统计表.xlsx) worksheet workbook.sheets # 列出工作簿中的所有工作表 fo…

SpringBoot 如何使用 ApplicationEventPublisher 发布事件

SpringBoot 如何使用 ApplicationEventPublisher 发布事件 在 SpringBoot 应用程序中,我们可以使用 ApplicationEventPublisher 接口来发布事件。事件可以是任何对象,当该对象被发布时,所有监听该事件的监听器都会收到通知。 下面是一个简单…

[Leetcode] 0733. 图像渲染

733. 图像渲染 点击上方,跳转至leetcode 题目描述 有一幅以 m x n 的二维整数数组表示的图画 image ,其中 image[i][j] 表示该图画的像素值大小。 你也被给予三个整数 sr , sc 和 newColor 。你应该从像素 image[sr][sc] 开始对图像进行 上色填充 。 为…

第八章 MobileNetv3网络详解

系列文章目录 第一章 AlexNet网络详解 第二章 VGG网络详解 第三章 GoogLeNet网络详解 第四章 ResNet网络详解 第五章 ResNeXt网络详解 第六章 MobileNetv1网络详解 第七章 MobileNetv2网络详解 第八章 MobileNetv3网络详解 第九章 ShuffleNetv1网络详解 第十章…

1.RocketMQ的安装与集群架构

RocketMQ快速入门 RocketMQ是阿里巴巴2016年MQ中间件,使用Java语言开发,在阿里内部,RocketMQ承接了例如“双11”等高并发场景的消息流转,能够处理万亿级别的消息。 2.1 准备工作 2.1.1 下载RocketMQ RocketMQ最新版本:…

Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案

导航: 【Java笔记踩坑汇总】Java基础进阶JavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线MySQL高级篇设计模式常见面试题源码 目录 一、四种基础同步策略 1.1 同步策略 1.2 更新缓存还是删除缓存? 1.2.1 更新缓存的优缺点 1.2.2 …

【PCB专题】Allegro输出光绘文件的基本参数设置和光绘层建立

什么是Gerber PCB设计是一套流程体系,而PCB制造又是另一套流程体系。 PCB设计数据并不等同于PCB制造数据,也就是说PCB制造并不会直接使用我们的PCB设计数据。设计数据需要经过CAM(Computer-Aided Manufacturing 计算机辅助制造)转换成给机器使用的生产数据。 Gerber就是板厂…

【强化学习】动手学强化学习:多臂老虎机问题

动手学强化学习:多臂老虎机问题 强化学习思维导图简介问题介绍问题定义形式化描述累积懊悔估计期望奖励 贪心策略与 ϵ \epsilon ϵ-greedy策略上置信界算法汤普森采样算法参考资料 强化学习思维导图 简介 强化学习关注智能体和环境交互过程中的学习,这…

chatgpt赋能python:Python中的查找方法

Python中的查找方法 Python是一种常用的编程语言,它有很多强大的查找方法。这些方法可以让开发人员轻松地搜索数据、列表和文本。 以下是Python中最常用的查找方法: 列表查找方法 在Python中,可以使用多种方法来查找列表中的元素。以下是…

Python零基础入门(四)——变量,数据类型与运算符

系列文章目录 个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python入门专栏:《Python入门》欢迎阅读,一起进步!🌟🌟🌟 码字不易,如果觉得文章不…

采集数据发布到WordPress网站指定分类栏目

将采集的文章数据发布到WordPressCMS网站指定分类栏目,设置方法如下: 目录 1. 获取分类名称或ID 2. 对接网站发布 1. 获取分类名称或ID 在wordpress后台获取对应的分类栏目名称或者ID都可以。 点击左侧菜单【文章】 --> 然后点击展开菜单中的【…

自然语言处理的最新研究与发展

第一章:引言 自然语言处理(Natural Language Processing,简称NLP)是人工智能领域中一项重要而受关注的技术,它致力于实现计算机与人类自然语言之间的有效交互。随着深度学习技术的快速发展,NLP领域也取得了…

LNMP架构——Discuz! Board 管理中心

文章目录 一.LNMP架构基本概念1.什么是LNMP2.LNMP实现过程3.LNMP的特点 二.安装Nginx 服务1.安装依赖包2.创建运行用户3.编译安装4.优化路径5.添加 Nginx 系统服务 三.安装 MySQL 服务1.安装Mysql环境依赖包…

java运动会管理系统

目录 一、项目介绍 1、主要功能介绍 二、分析与设计 三、问题与分析 四、小结 五、代码 一、项目介绍 1、主要功能介绍 对于管理者: 1、登录系统来发布运动会的项目以及对应项目的比赛规则 2、管理者也可以修改运动会比赛时间和地点,如果管理者…

漏刻有时数据可视化Echarts组件开发(27):端午地图粽情之你的家乡吃甜还是吃咸?

端午地图粽情之你的家乡吃甜还是吃咸? 前言Echarts创意来源Echarts核心代码1.引入外部文件2.构建HTML容器3.Echarts组件开发预置各省数据初始化DOM配置选项geo组件series组件自适应浏览器完整option选项配置代码 前言 中国各地对粽子的口味偏好存在一定的差异&…

vue中的数据响应化

1、Vue的设计思想 MVVM框架的三要素:数据响应式、模板引擎及其渲染 数据响应式:监听数据变化并在视图中更新 Object.defineProperty()Proxy 模版引擎:提供描述视图的模版语法 插值:{{}}指令:v-bind,v-on…

chatgpt赋能python:Python构造器:理解类和对象的初始化方法

Python构造器:理解类和对象的初始化方法 Python是一门面向对象的编程语言,它的核心思想是数据和操作是紧密耦合的,而这些操作被封装到对象中。对象是一个具有属性和方法的实体,而类则是一种可以创建相同类型对象的蓝图。在Python…

chatgpt赋能python:Python有宏吗?

Python 有宏吗? 什么是宏? 在编程中,宏指的是一种代码编写方式,可以将一部分代码封装成可以被调用的函数或者语句,以便于在程序中重复使用。相对于普通的函数,宏更为灵活,可以达到更高的效率&…

RuntimeError: launcher ‘pdsh‘ not installed解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…