从0开始建立一个互联网(物理层(建立一个有效的物联网)

从0开始建立一个互联网(物理层mac地址
Mac地址长啥样呢?他有六个分段,每个分段8bit,他是有48比特Mac地址是出厂的时候就写死了,并且是全球唯一的一个地址(虽

mac地址

Mac 地址是什么样的?有6 段,每段8 位,并且您有一个工厂硬编码的48 位Mac 地址(但如果您愿意,可以更改它)。

交换机是如何记录MAC地址的呢?实际上,交换机维护着一张表,一个MAC地址对应一个端口。

如果机器1想要与机器3通信,

向交换机发送数据

交换机查看其持有的地址端口,发现mac3 在端口3 上。

他从端口1 到端口3 发送消息。

3 我终于收到这个消息了。

优化

通过这种方式工作的交换机,不再需要广播该数据。

其次,交换机的特点之一是它是全双工的。

全双工

上面提到的集线器大部分都是双绞线

双绞线工作时,只有一台设备可以传输数据。

交换机使用您当前的网线。

一根网线有八根线,正常情况下至少四根是可用的。

这样就可以实现全双工数据。

1号在发送时,也可以同时接收数据,链路上不存在数据冲突。

那么交换机上面的表是怎么建立起来的呢?

拿到交换机后,您就可以将一些设备连接到它。

最初,交换机上不存在这样的表,或者它是空的。

那么他是如何建立映射关系的呢?

例如,数据必须首先发送到B。

A发送数据后,发现该表中没有数据。

同时,A发送消息后,检查该A的地址是否对应端口号1。

因此他注意到macA 对应于该表中的端口1。

他的目的地地址当前是B。当他去找B时,却发现没有找到B。

如果没有找到,它将被单独发送到每个端口。

端口号4 是B,B 响应:

此时该表中记录了端口4对应的macB。

经过一段时间的记录,交换机终于维护了所有MAC地址和端口的映射关系。

交换机所在的层是数据链路层。

数据链路层的数据分为数据头和数据部分。

源地址和目的地址记录在数据头中。这里的地址指的是MAC地址。

优点

此方法是对集线器的重大改进。集线器很少实际使用,因为大多数使用交换机。交换机的另一个特点是能够桥接集线器。

例如,如果您有两个交换机,您可以通过它们的两个端口桥接它们。例如,如果此设备有两个设备A 和B,以及两个设备C 和D,则会发生行为。其他设备。经过一定时间后,交换机1维护端口1对应的表A和端口4对应的表B。当A向C发送消息时,如果没有找到该消息,则将所有消息广播到最后一个端口。此时您将到达第二个开关。事实上,交换机2记录C对应端口4,D对应端口3。他找到了C,最终将其发送到交换机2 上的端口4。发送后,交换机2记录A对应端口1。当然,以后如果B也向这里发送数据,就会记录B对应的是端口1。交换机1 也记录它。

可以看到,同一个端口可以对应多个MAC地址。

通常,家庭交换机的表大小约为几千个。 注意:这里的Mac到端口映射表并不是我们通常所说的路由表,因为它还没有到达路由层,只是一个交换机。

缺点

现在让我们看看当前设计方法的缺点。

几千个存储容量绝对不足以在全球范围内构建一个现代计算机互联网网络。如果没有相应的路由信息,广播可以继续。目前,在由数千台设备组成的相对较小的局域网中,可以采用交换机和MAC地址的组合来实现高效传输。这可以是您的整个校园网络、您的工作室或您的家庭网络。

补充

交换机在网络中的使用效率还是很高的。上面的集线器实际上是在物理层,而下面提到的交换机的MAC地址是在数据链路层,但有趣的是,尽管MAC地址是在数据链路层,但它被称为物理地址。物理层是早期使用电信号的设计方法,然后我们实际上专注于数据层,因此每个设备在概念上都需要有一个标识符。物理层地址。

路由器:

演变

上述切换方式的最大优点是可以实现网络内的高效传输。随着网络的发展,例如,当多个网络合并为一个更大的网络时,就不再可能在交换机内的表中连续记录广播,从而使得广播效率相对较低。因此,在遍历网络时,我们建议定义一个新设备并通过该新设备连接到不同的网络。也称为网关。因为它是两个网络之间的连接点。

创建路由器后,不同网络之间的设备通信时,如设备1和设备2、设备1和设备3通信时,不需要经过路由器,直接转发。只需在您的网络内传输即可。网络内的通信都是通过这个交换机进行的,效率非常高。因此,1和3之间的通信直接通过交换机进行。 1和2之间的通信通过路由器。

ip

IP地址的出现:虽然网络实际上是比较抽象的概念,但有必要将北京朝阳区描述为一个网络,将北京海淀区描述为另一个网络。这些表示形式是IP 地址,一种用于标识网络,另一种用于标识设备。在这里,IP 地址主要用于识别设备所在的网络并在抽象网络内进行关联。因此,每个地址都有一个IP地址。 MAC 地址:设备唯一性。 IP地址:设备所在网络位置的唯一性。网络位置会因网络移动或变化而发生变化。示例:我的家庭网络是192.168.0.0/24(这个网络号也是类似于IP 的格式,用于标识整个网络2)我的设备:我的设备是192.168.0.102(这个IP 地址用于识别当前设备)

我ping一下192.168.1.254,发现是可以ping通的。

1.254是我邻居老王的IP,他共用一个光猫。为什么可以ping 通:在当今的网络中,每个设备都维护自己的路由表,路由器也有路由表。我的IP是0.102,我自己的路由表记录192.168.0.1,0.1。那? 0.1 在路由器上。数据包发送到路由器,因为路由器本身也是Linux系统。路由表记录网络的端口192.168.1.0并转发该端口。 1,那么1.254 很容易找到,因为1.254 和网络1 在同一端口上。

路由器运行的主要原则是:

我有网络1 的IP 和网络2 的IP

我这里还有两个问题。

1. 路由表是如何建立的?

路由表实际上比上面提到的交换机地址端口映射表复杂得多。

他使用了很多路由算法,这里不再赘述。

路由器通过一组算法自动创建完整的路由表。

2、从路由器转发到网络1后如何到达1.254,也就是说网络内的传输是如何发生的?

如果直接查到IP地址,是不是就不需要MAC地址了?

有了IP 地址,但仍需要Mac 地址?

让我们回到实现路由器的最初目的:通过网络传输数据。这个IP实际上不能直接用于通信。 MAC 地址只能用于直接通信。

因为MAC地址是真实地址。

将路由器移植到1.254 的过程如下:

首先查看1.254的MAC地址,根据IP地址查看MAC地址。实际上有一个协议叫做ARP协议。

ARP协议实际上是向IP为1.254的网络进行广播。如果收到1.254,则返回MAC 地址。

然后您可以将其发送到Mac 层。

Mac层也称为数据链路层,路由器层也称为网络层。事实上,所有的网络传输都使用MAC地址。

尾声

评论里有同学问如何学习Material Design Controls。我们建议在GitHub 上搜索。这些示例足以帮助您入门。

有朋友还告诉我,如果你想认真对待它,你需要了解NDK 和JVM。如果您遵循官方说明,NDK 是您第一次知道发生了什么。一些代码格式与本机/JAVA内存交互,更高级的包括本机/JAVA线程交互。但根据我之前的经验,为什么初学者不应该使用它。我只在两个项目中使用过它:音频和视频通信以及嵌入式信号处理(离线)。嵌入式信号处理是JAVA-NDK-.SO-MATLAB调用的原始MATLAB代码。对于游戏,通常是互联网公司的人提供他们的SO包。

当谈到JVM 时,请相信我。掌握你需要掌握的东西。你不应该掌握的部分留给JVM 专家。我们建议您节省时间并考虑计算机系统和编译。原则。

总之,多写、多练是程序员最基本的素质。 JVM 不会是未来30 年唯一的虚拟机。其他系统和语言将在未来30 年内出现。但扎实的理论会帮助你快速理解和学习语言和框架,定期写作会帮助你写得更快更好。将您所学到的知识应用到实践中。

对于初学者来说,一句话,多练习。

原因。 **

总之,多写、多练是程序员最基本的素质。 JVM 不会是未来30 年唯一的虚拟机。其他系统和语言将在未来30 年内出现。但扎实的理论会帮助你快速理解和学习语言和框架,定期写作会帮助你写得更快更好。将您所学到的知识应用到实践中。

对于初学者来说,一句话,多练习。

#从0开始构建互联网以上信息(物理层相关内容来源网络仅供参考,相关信息请以官方公告为准!)

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93026.html

(0)
CSDN's avatarCSDN
上一篇 2024年7月5日 上午3:10
下一篇 2024年7月5日 上午3:31

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注