计算机网络基础认识

news2025/1/12 18:16:36

        本篇文章是我在B站上看到关于计算机网络的介绍视频收到的启发。本篇文章的内容来自【网络】半小时看懂<计算机网络>_哔哩哔哩_bilibili

一、物理层

        从常理来说,进行连个设备之间的通讯,首先最容易想到的就是使用一根线连接两个设备进行通讯。但是问题是如果当设备的数量增加,需要两两设备之间进行连接,会导致连接的线数指数增加。所以hub(集线器)出现了。

        集线器

        所有的设备连接集线器。设备A上传数据,由集线器进行发送,相当于是一个中转站。这样的话,增加设备数量只需要增加一个连接集线器的线就行。

        但是存在的问题是,集线器下发数据是以广播的形式发送的,没有寻址功能,不能识别设备的物理地址。因此连接集线器的所有设备都会收到来自A发送的数据,包括A自己。这样隐私性较差。而且,集线器不执行冲突检测,这意味着如果多个设备同时发送信号,可能会发生数据冲突,导致数据包损坏。

二、数据链路层(Mac层)

        在Hub的基础上,提出了交换机。交换机的特点是:能够查询设备的物理地址,支持全双工。

        2.1 物理地址/Mac地址

        MAC地址(Media Access Control Address),也被称为物理地址或硬件地址,是网络设备在局域网(LAN)中用于唯一标识网络接口的地址,是全球唯一的。MAC地址由48位二进制数字组成,通常表示为12个十六进制数,每两个十六进制数之间用冒号(:)或连字符(-)分隔,例如:00:1A:2B:3C:4D:5E。

       2.2 交换机

        一个交换机上会带有n个网口,每一个网口都存在一个端口号。

        当有A,B,C,D,E个设备连接到交换机上。当设备A想要发送数据给设备B,则会将源地址和目的地址,加上数据封装成需要发送的数据并传给交换机,交换机查询到目的地址对应的端口号后下发给设备B。

        交换机之所以能够进行寻址,是因为在其内部会维护一张Mac地址表

Mac Location APort 1
Mac Location BPort 2
Mac Location CPort 3
......
Mac Location NPort n

        其中表名了每一个设备的物理地址和对应端口的映射。这样交互机就能查询到对应的端口号。

         交换机支持全双工模式。也就是说A在下发数据的时候也能接受数据,A和B直接存在实时性的交流。其次,交换机是支持桥接的。

       2.3 桥接        

        就是可以将两个交换机用一根线相连实现两个交换机维护的设备之间进行通讯。

如果A想要发送信息给D,则首先会在交换机1的Mac地址表中查询,如果没有就会通过端口8前往交换机2中进行查询,查询到了C对应的端口后并在1中的Mac地址表中记录下

Mac Location CPort 8
Mac Location DPort 8

        但是这样存在了一个问题,就是在小范围内(几千台设备)交换机是能够支持使用的。但是如果想要搭建维护一个几十万台设备的大网络,交换机内部的地址表是无法存放那么多的数据。这就会导致当表满了之后,如果接收端不在该表内,交换机就要进行一次全部的桥接检索(最坏的情况是需要遍历所有的端口)然后将查询到的设备Mac地址和映射的端口插入表内,覆盖掉原来的数据,在下一次需要发送的时候,还需要再一次检索,从而导致全球的广播风暴。

三、网络层

        上面所描述通讯都是在一个网络内部进行的通讯,而且使用交换机桥接的方式也是十分的有限的,为了扩大网络的范围并进行跨网络的通讯,提出了路由器。该路由器不是我们日常生活中的无线路由器,而是带有网口的路由器。路由器的使用就引出了IP。

        3.1 IP地址

        IP地址(Internet Protocol Address)是互联网协议地址的简称,它是分配给每个连接到网络的设备的唯一数字标识符。IP地址用于识别网络上的设备,以便它们可以相互通信。IP地址分为两个主要版本:IPv4和IPv6。这里我们主要说一下IPv4。

        需要强调的是,IP只是一个虚拟地址,是分配给每一个端口,方便进行表示查找。实际的数据传输还是得要依靠Mac地址进行。IP的出现是为了对不同的网络下不同的设别进行表示,以便路由器的查询。

        IP会分配给每一个网络,每一个网络下的设别,每一个端口用于标识。

        3.2 IPv4

        IPv4地址由32位二进制数字组成,通常表示为四个十进制数,每个数的范围是0到255,中间用点(.)分隔。例如,192.168.1.1是一个典型的IPv4地址。IPv4地址分为两部分:网络部分和主机部分。网络部分标识特定的网络,而主机部分则标识该网络上的特定设备。

        只有在同一个网段下的设备才能够连接,并且最后一位(也就是设备表示)在同一个网段下是唯一的。

        3.3 路由器

        路由器位于两个网络之间的连接点,所以又称为“网关”。路由器主要是用来跨网络的通讯。例如在同一个网络下,A,B两个设备之间是不需要通过路由器就能进行通讯的,也就是我们说的“局域网连接”。只有在同一个网段下,也就是IP的前三个数字相同的时候,两个设备才能够进行连接,并且该端口号在该网络下是唯一的。

        每一个设别(包括路由器)都会维护一张路由表。路由器中的路由表记录的是192.168.1.0网络是通过192.168.3.1这个关口进行发送数据。比如说:

        ①C想要发送数据给D。

        不需要通过路由器,直接通过交换机,走数据链路层进行通讯。(上面介绍了)

        ②C想要发送数据给A。

        由于路由器端口的网段和网络192.168.2.0是在同一个网段下,故C能够通过查询本机的路由表将数据上传给路由器。路由器再通过查询路由器自己的路由表查询到A所在的网络网段是192.168.1,于是将数据下发给在该网段下的设备A,完成一次通讯。

        由此可知,路由器是存有两个网络的IP,相当于是两个网络直接通讯的媒介。

        3.4 网络内传输原理

        现在来考虑一下192.168.1.1的数据是如何下发给192.168.1.21的。

        由于IP地址是一个虚拟地址,所以实际的通讯还是得要依靠Mac地址来进行通讯。

        步骤:

        ①1.1利用ARP协议进行广播查询1.21在该网段下的Mac地址为LocationA 。

        ②在数据链路层进行传输。

        C设备上传数据也是一样的原理。

        在Mac传输的数据包如下图:

所以整体的传输过程是:

(图中IP下方的为该端口的Mac地址)

192.168.2.21 --->   192.168.1.21数据传输过程:

①首先记录IP的源地址为192.168.2.21,目的地址为192.168.1.21,并且在传输过程中这两个数据不变。Mac源地址为Mac2C,Mac目的地址为Mac2L。然后传输

②之中在路由器本机中更新Mac源地址为Mac2L,目的地址为Mac1L,IP地址不变,然后传输。

③更新Mac源地址为Mac1L,Mac目的地址为Mac1A,IP地址不变,然后传输。

④最后将数据传输给了设备A。

整体的流程为:

四、网络层

        也就是一些协议,像是TCP,UDP等,用来保护信息安全。

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

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

相关文章

基于单片机的空气质量检测系统设计

摘要:随着社会经济的不断发展,人们的生活水平日益提高,健康与养生成为了全民关注的热点话题,空气质量地不断下降也引起了社会的广泛关注,如何了解家居内空气质量的情况也成了亟需解决的问题。在此背景下,本文针对室内空气的质量问题设计了基于单片机的空气质量检测系统,…

js基础知识(2)

一、事件的含义 JavaScript事件是指在文档或者浏览器中发生的一些特定交互瞬间&#xff0c;比如打开某一个网页&#xff0c;浏览器加载完成后会触发load事件&#xff0c;当鼠标悬浮于某一个元素上时会触发hover事件&#xff0c;当鼠标点击某一个元素时会触发click事件等等。 三…

Excel 公式的定义、语法和应用(LOOKUP 函数、HLOOKUP 函数、VLOOKUP 函数;MODE.MULT 函数; ROUND 函数)

一、公式的定义和语法 二、公式的应用 附录 查找Excel公式使用方法的官方工具【强烈推荐&#xff01;&#xff01;&#xff01;】&#xff1a;Excel 函数&#xff08;按字母顺序&#xff09;【微软官网】 excel 函数说明语法LOOKUP 函数在向量或数组中查找值LOOKUP(lookup_va…

【AI相关】《这就是ChatGPT》读书笔记

《这就是ChatGPT》 斯蒂芬沃尔弗拉姆 这本书用了两天就一口气读完了&#xff0c;通篇读完后&#xff0c;这本书主要是介绍了ChatGPT怎么能做到生成内容的一些背后的原理逻辑&#xff0c;总结一下这本书是ChatGPT通过大量的数据&#xff08;这些数据来自网络、书籍等等类似于数据…

09.JAVAEE之网络初识

1.网络 单机时代 >局域网时代 >广域网时代 >移动互联网时代 1.1 局域网LAN 局域网&#xff0c;即 Local Area Network&#xff0c;简称LAN。 Local 即标识了局域网是本地&#xff0c;局部组建的一种私有网络。 局域网内的主机之间能方便的进行网络通信&#xff0…

Activiti——将绘制的流程图存入act数据库并进行流程推进与状态流转

文章目录 前言流程图入库操作 RepositoryService项目结构数据库连接配置文件入库Java测试代码zip 方式进行流程的批量部署 流程启动 RuntimeService待处理任务查看 TaskService流程状态的扭转查询流程定义信息 RepositoryService查询正在执行的流程实例 RuntimeService已部署流…

git简介及安装

Git | Git简介与安装 文章目录 Git | Git简介与安装一、Git简介二、Git安装Linux-centosLinux-ubuntu 一、Git简介 存在需求&#xff1a;对于一个文档&#xff0c;由于编写思路或者当前文档丢失&#xff0c;可能存在想要历史版本的需求&#xff0c;并且需要知道每个版本都修改了…

MySQL主从的应用

说明&#xff1a;本文介绍MySQL主从在实际中的应用。主从搭建和问题参考下面两篇文章&#xff1a; MySQL主从结构搭建 搭建MySQL主从结构时的问题 数据迁移 当我们搭建完MySQL主从&#xff0c;第一步当然是把历史数据导入到主从结构中。有以下两种方式&#xff1a; 开启主从…

Mysql个人总结

前言 又来水字数啦&#xff0c;这次主要讲一下MySQL的常用概念&#xff0c;难点的就必须上项目讲解了&#xff0c;而且比较基础面试基本都会问一些&#xff0c;用的话&#xff0c;不少优化都从这里入手 操作数据库 1、创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库名;…

如何设置微信自动回复?教你快速上手!

自动回复对于需要在微信上洽谈业务的人来说&#xff0c;无疑是非常实用的一个功能。 下面就一起来看看微信管理系统的机器人自动回复都有哪些设置吧&#xff01; 1、自动通过好友 只要有新的好友请求发送到你的微信账号&#xff0c;系统会自动通过该请求&#xff0c;无需手动…

rust 卸载重新安装 安装

原因&#xff1a;接触区块链时报错 linking with x86_64-w64-mingw32-gcc failed: exit code: 1 Rust编译需要C环境&#xff0c;如果你没有&#xff0c;Rust也能安装成功&#xff0c;只是无法编译代码 C的编译工具有两个&#xff0c;一个是msvc&#xff0c;也就是visual studi…

5个方便好用的Python自动化脚本

相比大家都听过自动化生产线、自动化办公等词汇&#xff0c;在没有人工干预的情况下&#xff0c;机器可以自己完成各项任务&#xff0c;这大大提升了工作效率。 编程世界里有各种各样的自动化脚本&#xff0c;来完成不同的任务。 尤其Python非常适合编写自动化脚本&#xff0…

DFS与回溯专题:全排列

DFS与回溯专题&#xff1a;全排列 题目链接: 46.全排列 题目描述 代码思路 回溯问题中的全排列&#xff0c;相对比组合、子集等问题&#xff0c;其元素可以颠倒顺序&#xff0c;所以在for循环中每层都是从头开始&#xff0c;无需标记更新起始位置 代码纯享版 class Soluti…

应用层协议 -- HTTPS 协议

目录 一、了解 HTTPS 协议 1、升级版的 HTTP 协议 2、理解“加密” 二、对称加密 1、理解对称加密 2、对称加密存在的问题 三、非对称加密 1、理解非对称加密 2、中间人攻击 3、CA 证书和数字签名 四、总结 一、了解 HTTPS 协议 1、升级版的 HTTP 协议 HTTPS 也是…

蜂窝物联:智慧水产养殖系统绘制“水世界”画卷

智慧水产养殖系统&#xff0c;融合了智能传感、无线传感网、通信、智能处理与智能控制等物联网技术的精髓&#xff0c;为养殖者绘制了一幅细致入微的“水世界”画卷。通过在线监测平台与各类智能传感器的协同作战&#xff0c;养殖者能够实时掌握养殖水质环境信息&#xff0c;仿…

AOC vs. DAC:哪个更适合您的网络需求?

在现代网络通信中&#xff0c;选择合适的连接线缆对于数据传输的稳定性和速度至关重要。两种常见的线缆类型是 AOC&#xff08;Active Optical Cable&#xff09; 和 DAC&#xff08;Direct Attach Cable&#xff09;。本文将详细介绍这两种线缆的特点、优势和适用场景&#xf…

ubuntu安装Qv2ray2.7.0及配置

需要下载两个文件&#xff0c;一个是zip文件&#xff0c;一个是AppImage执行程序。 执行AppImage需要先下在fuse sudo apt install libfuse2然后为AppImage赋予执行权限 sudo chmod x ./Qv2ray-v2.7.0-linux-x64.AppImage执行,执行前可以解压zip文件 ./Qv2ray-refs.tags.v1…

vue3环境搭建

环境准备&#xff1a; node环境(node.js官网)npm环境 上述两个环境存在版本要求所以安装最新的靠谱&#xff08;旧的环境存在不支持现象&#xff09; windows电脑 安装完node.js会带有npm mac电脑本身自带node和npm&#xff0c;但是需要升级 进入到你想创建前端项目的文件夹:…

如何删除.git

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

CUDA的开发框架

CUDA的开发框架主要提供了一系列工具和库&#xff0c;使得开发者可以充分利用NVIDIA GPU进行高效的并行计算。以下是CUDA开发框架的一些关键组成部分。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.CUDA核心库&#xff1a;这些是构…