计算机网络科普

news/2025/3/14 16:37:04/

文章目录

  • 1、集线器
  • 2、CSMA/CD协议
  • 3、交换机
    • 3.1 交换机的桥接
  • 4、 路由器
    • 4.1 关于网关
  • 5、 路由表
  • 6、IP地址
    • 6.1 DNS
  • 7、MAC地址
  • 8、ARP协议
  • 9、关于网络层次模型
  • 10、路由器
  • 11、猫/光猫

1、集线器

计算机之间的相互通信,你会怎么设计?

  • 如果是两台计算机,之间拉一条线,通信的方式就是将数据转换成0101这样的二进制高低电平信号通过这条线来传播

  • 如果现在不止两台计算机,要设计一个能够使每台计算机之间能够两两通信的网络,怎么设计?利用一个“中介”,所有计算机都拉一条线到这个“中介”上,再通过“中介”来转发,这样就能大大减少拉线的数量,节省成本。这里就提出了计算机网络设计中一个非常重要的思想——转发的思想

  • 既然有了“中介”,我们就可以通过中介来进行通信,那么问题又来了,中介收到了你发给他的消息后,他怎么知道要转发给谁呢?我们可以给网络中的每台计算机一个标识,相当于计算机的“身份证号”。这里就提出了计算机网络设计中另一个非常重要的思想——标识的思想。不需要该数据包的可以直接丢弃

  • 这种群发的通信方式称为广播。转发的“中介”是一个叫做集线器HUB的设备,所使用的”线“是双绞线,它是早期所使用的技术,但是是无条件转发

2、CSMA/CD协议

如果网络中同时有两台计算机发出消息,那么集线器会同时收到两束信号,这两束信号可能会杂糅在一起,造成冲突,怎么处理这个问题呢?

  • 针对这个问题,提出了一种协议——CSMA/CD协议。这个协议可以让这些计算机在发送前先进行载波侦听,就是先检测一下这个链路上有没有其他人正在发送数据,如果没有的话我再发送。这就是CSMA/CD协议最重要的功能,即防止冲突

3、交换机

集线器设备的这种”无脑转发“的方式虽然简单粗暴,但是有很多缺点——效率低下、带宽资源利用率低、不安全。怎么解决这个问题?

  • 在转发时可以采取另一种方式,中介拿到消息不是无脑散播出去,而是看一看接收者是谁,再将消息转发出去,这样的方式明显效率更高,而且更加安全

  • 这种方式也是现在所采用的技术,这里的”中介“叫做交换机SW或二层交换机或网桥

  • 交换机比集线器先进的地方在于,它设置了记录的机制。刚开始它和集线器一样,收到消息后就直接无脑转发。如1号发来消息时,他就知道这个端口连接的是1号,就在表中记录:1号对应xx端口。同时,在无脑转发后,他发现只有一条线上的计算机接收了消息,其他线上的计算机都把数据丢弃了。这个端口的线是通向3这台计算机的,于是他就在表中记录:3号对应xx端口。那么当下一次有消息要发给3号时,交换机在表中一查,就知道要发送到哪个端口了,无需无脑群发

  • 在实际中,采用的是MAC地址标识设备,MAC地址是每个网卡在出厂时就已经写死的,也就是说,MAC地址就是网卡的地址。将网卡插在计算机上,计算机就能参与网络,所以这里的标识标的是网卡而不是计算机

  • 交换机记录表记录的是MAC地址与交换机端口的映射关系,这个记录表称为交换表或MAC地址表

  • 交换机不会产生冲突的问题。因为集线器采用的是双绞线,而交换机采用的是我们现在的网线,网线中是有八根线的,正常情况下至少有四根线在工作,这种方式可以实现某台计算机同时在发消息也同时在收消息(走不同的线即可)

  • 这种能够同时在发消息也同时在收消息的通信称为全双工通信。而集线器这种可以发消息也可以收消息但不能同时进行的通信称为半双工通信。还有一种,一方只能发消息,另一方只能收消息的通信称为单工通信

  • 同一网段下的设备进行通信可以不用经过网关(路由器)

3.1 交换机的桥接

  • 交换机可以连接交换机,这种连接称为交换机的桥接
  • 桥接会产生多个mac地址可以对应一个端口

在这里插入图片描述

4、 路由器

一般来说MAC地址表能存的数量是几千,虽然已经比直接拉线效率高很多了,但对于实现全球互联网还是有很大的距离。那么我们还能够怎样进行改进呢?

  • 如果只是使用交换机来连接全球计算机,那么当一台计算机发出消息时,第一个交换机找不到,就会广播到下面几个交换机,还找不到就会再广播、再广播……一条消息发出去差不多要把全球的计算机遍历一遍,这种现象被称为消息洪泛

  • 这里可以引入一些概念,网络按照范围来分类,可以分成个域网、局域网、城域网、广域网。个域网一般是个人的一些设备比如电脑、手机、打印机相连组成的一个网络;局域网就范围稍大一些,比如公司网、校园网;城域网的范围就扩大到一个城市或几个城市;广域网是最大范围。

  • 既然交换机在局域网中是非常高效的,那么我们就在各个区域用交换机来连接成一个个局域网,各个局域网之间再设置一个更高级别的中介,这个中介负责把多个局域网连接起来。

  • 这个更高级别的中介就叫路由器或三层交换机或网关

  • 不同的网络又称为子网、网段

4.1 关于网关

  • 对同一网段的目的ip进行访问,访问的同时进行追踪:
    tracert -d xxx.xxx.xxx.xxx
    
  • 换b站的ip进行访问:
    在这里插入图片描述
  • 经过的网关中,第一个就是我路由器的网关
    在这里插入图片描述

5、 路由表

路由器又是如何怎么知道他要转发给谁呢?

  • 在交换机那里我们提出了MAC地址,用于标识连接进网络的各台设备(实际上手表、手机、甚至音响等等都可以作为网络设备联网)。在这里,我们需要一个新的标识,来标识各网络,因为路由器是各网络的中介,这里所引进的标识就是IP协议下的IP地址

  • IP地址不仅仅标识网络,同时也标识了设备。与MAC地址的处理方法一样,IP地址也是加在所要发送的数据的头部。路由器接收到发送来的数据时,也需要从中提取出IP地址。同样的,路由器也采用了交换机的策略,建立了映射表,这个表称为路由表,但不同的是,这个路由表的建立并不是像交换机那么简单,查不到就广播,而是有更加复杂的路由算法得到

  • 因此,路由器是工作在网络层的,IP协议是网络层下的一个协议

  • 标识网络可以理解为标识一个局域网内部所有IP地址的网络位。例如192.168.0.1就是就是一个IP地址,局域网内部的IP地址都是在192.168.0.1-192.168.0.255之间。所以路由器可以理解为维护了多个网络的IP起始地址,

6、IP地址

IP地址是怎么做到既标识网络,又标识设备的呢?

  • IP地址由4位0-255的十进制数组成,对应32位二进制数,比如192.168.1.1,下图表示从十进制转化为二进制的形式【十进制便于人读,二进制便于机器读】
    在这里插入图片描述

  • 在IP地址中分为网络位和主机位,网络位标识了网络,主机位标识了在该网络下的设备网络位和主机位的划分通过子网掩码来完成,子网掩码与IP地址一样,也是32位二进制数,子网掩码取1的部分为网络位,子网掩码取0的部分为主机位

  • 从属于同一网络下的各设备拥有相同的网络位,从属于不同网络下的各设备就有不同的网络位。这样就用IP地址+子网掩码做到了既标识网络,又标识设备

6.1 DNS

  • 会将网址解析成一段ip地址

7、MAC地址

既然IP地址又标识网络又标识设备,那还需要MAC地址吗?

  • IP地址是网络层的提出的标识概念,实际的数据传输过程仍然走的是MAC地址

  • 路由器也是有MAC地址的,在数据链路层范畴内,路由器与其他参与网络的设备没有任何区别,交换机一样会把路由器当作一个有MAC地址的网络设备进行数据传输

8、ARP协议

既然数据传输过程仍然走的是MAC地址,那么IP地址是怎么转换成MAC地址的呢?基于网络层的通信过程又是什么样的呢?

  • APR协议可以使IP地址转换成MAC地址,首先设备会发出ARP广播,询问哪台设备的IP地址是这个啊,每台设备都会收到消息,IP地址是这个的设备收到消息后就回应,我的IP地址是这个,然后我的MAC地址是这个.……这样就完成了IP地址到MAC地址的转换

  • 比如网络1的IP为192.168.0.0/24,ps:【这个是 ip+网络号的表示。说明了:ip地址 192.168.0.0中的前24位为网络号,24位以后为主机号】,路由器中连接网络1的端口IP为192.168.0.1,属于网络1下的设备1IP为192.168.0.102;当端口IP为192.168.0要和设备1IP为192.168.0.102进行通信时,会发出ARP广播,询问哪台设备的IP地址是192.168.0.102,当IP地址是这个的设备收到消息后就回应设备的MAC地址,这样就可以在mac层传输数据,同理,在同一个路由器下的不同设备之间的通信也是采用ARP协议,在数据传输时IP地址不变,而是mac地址会变化

  • 192.168.0.0/24,表示这个是 ip+网络号。说明了:ip地址 192.168.0.0中的前24位为网络号,24位以后为主机号

  • 不同网络下设备1向设备2发出数据的流程:首先网络层会在数据前加头部,头部中包含源IP地址0.10和目的IP地址1.254;之后数据链路层在数据前加头部,由于目的IP地址与源IP地址不在同一网段下,因此目的MAC地址为路由器端口0.1的MAC地址;数据传输到路由器端口1后,经过解析和重新封装,目的IP地址和源IP地址不变,源MAC地址变为端口0.1的MAC地址,目的MAC地址变为1.52的MAC地址;传到端口2后,路由器再次对其解析和重新封装,目的IP地址和源IP地址不变,对于MAC地址,路由器发出ARP广播,得到目的MAC地址为1.254的MAC地址,源MAC地址为1.52的MAC地址,最终数据成功发送到设备2

9、关于网络层次模型

计算机网络是分层的,不同的层分管不同的任务,完成不同的功能,提供不同的服务

  • 交换机属于数据链路层【负责加和解析MAC地址的就是数据链路层】
  • 集线器是属于物理层【物理层负责的是搞电信号和数据之间的转换的】

10、路由器

在这里插入图片描述

路由器具有()块网卡和()个硬件地址。

路由器由于同时连接到两个网络上,因此它有两块网卡和两个硬件地址

  • wan口可以认为是对外的IP,用于和其他路由器进行通信的标识
  • lan口可以认为是对内的IP,他的IPv4地址就可以认为是标识网络

11、猫/光猫

  • 猫和光猫是不一样的,区别在于猫不支持光纤,需要直接拉网线,而光猫直接光纤入户。
  • 光猫的作用就是:将光信号转换成电信号,再通过网线连接路由器
    在这里插入图片描述

视频:【网络】半小时看懂<计算机网络>


http://www.ppmy.cn/news/48312.html

相关文章

手机端无线投屏技术及方案推荐

目前主流的无线投屏技术主要又DLNA&#xff0c;Miracast&#xff0c;Airplay。 对协议的描述引用知乎作者的文章&#xff0c;原文&#xff1a;AirPlay、Miracast 、DLNA三大协议对比 - 知乎 (zhihu.com) 【DLNA】 DNLA&#xff0c;Digital Living Network Alliance&#xff…

LeetCode 1218. Longest Arithmetic Subsequence of Given Difference【哈希表,动态规划】中等

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

nodejs扫描文件夹搜索包含关键词文件,可灵活配置

代码放在在末尾 文件说明&#xff1a; 关键代码&#xff1a;search.js 搜索结果&#xff1a;searchResult.txt 搜索日志&#xff1a;search.log 注&#xff1a;只保留一次的&#xff0c;需要多次自行修改logFile配置即可&#xff1b; 使用方式&#xff1a; 将代码放到需要…

容器内无tcpdump,如何在宿主机上抓容器的包

抓包的容器里&#xff0c;没有安装tcpdump 命令&#xff0c;我们可以去容器所在宿主机上&#xff0c;使用 nsenter 命令切换网络命名空间后&#xff0c;使用宿主机上的tcpdump 命令&#xff0c;对容器进行抓包分析。 此例中&#xff0c;我要抓取容器中端口是5240的包&#xff…

【论文阅读】CVPR2023 IGEV-Stereo

用于立体匹配的迭代几何编码代价体 【cvhub导读】【paper】【code_openi】 代码是启智社区的镜像仓库&#xff0c;不需要魔法&#xff0c;点击这里注册 &#x1f680;贡献 1️⃣现有主流方法 基于代价滤波的方法和基于迭代优化的方法&#xff1a; 基于代价滤波的方法可以在c…

(转)使用Midjourney进行图生图

原文链接:使用Midjourney进行AI绘画的基础手册-虎课网 接下来,我们讲一下,如果使用Midjourney的垫图功能,创作相同风格的图片 第一步: 1、打开discord,查看自己的服务器 2、我们双击“+”,来上传图片,图片上传后,按下enter发送图片; 图片发送成功后,点击图片放大…

nginx部署VUE项目

前言 目前公司的前端代码基本都是部署在nginx下&#xff0c;特此来记录一下 开发环境&#xff1a;window10 nginx环境搭建&#xff08;参考下方文章&#xff09; window环境安装 mac环境安装 本地我将nginx放置于F盘 前端项目打包 一个nginx服务下可能会放置多个前端包&…

Keil系列教程03_主窗口和工具栏详细说明

1写在前面 本文先让大家简单认识一下Keil的主窗口界面&#xff0c;然后再进一步认识Keil的文件、编译和调试工具栏。 Toolbars工具栏就是在菜单下面的两行快捷图标按钮&#xff0c;这些快捷按钮之所以在工具栏里面&#xff0c;在于它们使用的频率较高。比如保存按钮、编译按钮…