前言:

最近学习了《网络是怎样连接的》这本书,也在头脑中形成了对网络整体架构的认识,正如作者在开篇所说:

如果无法理解网络的全貌,也就无法理解每一种网络技术背后的本质意义;而如果无法理解其本质意义,就只能停留在死记硬背的程度,无法做到实际应用。

从大的几个部分来说,应用程序、协议栈、网络设备、运营商,互联网它们之间的交互规则和自身为处理网络包或网络信号而制定的内部规则等,都体现了Internet这个庞大架构的复杂性,但正是做到了不同技术之间的合作,才能够实现如此强大的应用场景。
其中,关于集线器、交换机、路由器的作用使用场景,当然,还有它们的区别,是我们在工作,甚至生活中,都必须有所认识的,更进一步,它们各自对于网络包的处理和转发,是作为学习网络,所应当清楚的。

学习方法:

这里简单分享我个人的网络学习方法,我也会在接下来的浅析中体现:

  1. 不死记硬背,画图理解;
  2. 做笔记,画脑图;
  3. 联想生活和工作场景上的运用,尽量实践;
  4. 可否给别人清楚地讲解出来?或者自言自语给自己讲解一番;
  5. 不讲就写吧,总要总结才能形成”学习闭环“。

整体感知:

集线器、交换机、路由器在我们的生活中其实很常见,当然,我们现在的家用路由器已经集成了集线器、交换机的功能。这里为了理解基本概念,还有了解网络设备的一步步的发展,我们分开讲。
它们的目的都在于将从端机发送的网络包转发到互联网,以及接收来自互联网的消息,并通过一系列机制,最终到达制定端机。概括讲,就是对网络包的层层转发,结合不同的机制,让网络包到达指定目的地。

1 整体认识图
从图上也还可以得出,使用路由器等的网络设备,不仅是网络包转发的功能,随着网络规模的增大,我们也需要借助这样的网络设备来实现“分区/组”管理,让网络包可以明确地找到地址,就像我们现实世界的地址(国家、省、市…),还有个原因就是,当初的网络设计,可没想到如今全球化的庞大规模,所以IP地址早就不够用了,必须通过“中转”这样的概念来实现多层次的分类 (个人认为这是Internet架构在思想上的精髓之一)

2 网络包转发
首先我们回忆一下一个网络包的组成:
(这里借鉴了《网络是怎样连接的》图整理出)

i)Head,带有控制信息,即描述该层网络协议的相关信息。在协议栈中,每一层都有属于它的头部,而上一层下来的包,就成了它的内容。(俄罗斯套娃一样的层层嵌套)。目的在于制定一套标准/协议,准确描述该层数据格式、内容,以及支持内部的数据处理机制等。
(个人认为模块化思想在网络架构中起了关键作用)

ii)转发设备在进行转发时不看数据的内容,即TCP-Head及以后的Data,转发设备是不会解开的。也就是说,转发设备不关心传输层及以上的数据是什么,都认为是Data,它只需要利用网络层及一下的头部控制信息,做相应的包转发机制。(邮递员只会通过地址送信,不会看信里面的内容)

iii) 每个包在传输过程中是独立的。

iiii) 转发设备验证包错误后,会直接丢弃。当然,TCP会等待ACK信号,若超时,则会重传,所以也可以总结出,关于ACK响应、重传机制等,是通过软件层面实现的。(这里面的各种各样机制,以及校验,保证了可靠性传输,也是其网络相对复杂的一部分)

小贴士:路由器比交换机的问世时间更早。

拓展一些信号处理方面的知识



以上是我在学习协议栈和网卡部分做的脑图的一部分,然后画了一个大致示意图,这是网卡描述的部分,接下来我们从以太网的通信来简单讲讲信号的处理:

以太网根据MAC地址来传输包
将包发送到 MAC 头部的接收方 MAC 地址代表的目的地,用发送方 MAC地址识别发送方,用以太类型识别包的内容。
(建议自行搜索MAC头部的字段)

1 在MAC模块增加了报头和起始帧分界符FCS校验
最终在网线中传输的是电信号,所以我们要将数字信息的每个bit转换为电信号,对应其电压和电流,通过电压和电流的变化还原出0 1两种bit值(详细请了解数字信号)。对于数字信号的处理,为了保证其传输的正确性,报头用来测定时机,起始帧分界符确定帧的起始位置。末尾的 FCS(帧校验序列)用来检查包传输过程中因噪声导致的波形紊。
学过单片机的朋友应该了解,数字信号+时钟信号的叠加,可以判断出比特之间的界限。

2 PHY/MAU模块将信号转换为可在网线上传输的格式,并通过网线发送出去。这儿会针对不同的网线类型和速率以及其对应的信号格式进行了转换,MAC模块只是把通用格式给了PHY/MAU模块。
它也监控接收线路中有没有信号来

3 防止网线中的信号衰减
信号在网线的传输过程中,能量会逐渐损失。网线越长,信号衰减就越严重。
传输的方波因为能量损失会在拐角处变圆滑,严重的话便会影响01判断。
局域网使用的双绞线,通过“双绞”的做法抑制噪声。(详细请了解噪声电流的相互抵消)

一、集线器(Repeater hub)

集线器,又称Hub,其实已经很少单独用了。
完全工作在物理层,将自己收到的每一个字节,都复制到其它端口上。
其实就是采用广播的模式将网络包转发到所有设备,即按照以太网的基本架构将信号广播出去。
如果多台计算机同时发送信号,则会在集线器内部混杂,发送碰撞而无法使用。

集线器将信号发送给所有连接在它上面的线路。

二、交换机(Switching hub)


(注:这里指的端口不是IP端口,而是交换机的物理端口)

  • 将包原样地转发到目的地
    即交换机不会对网络包做任何改变。
  • 根据MAC地址表进行转发----转发表
    具有“学习”能力,能保存收到的远端MAC地址以及其对应的端口,这样就能对局域网有个整体的认识。每次转发,都经过查表后,往相应端口发送。
  • 全双工模式收发信号
    PHY/MAU模块中有检测信号碰撞的模块。
  • STP协议
    当应用场景大了的时候,可能会有多个交换机之间的连接,这时就会形成稍微复杂的拓扑结构。也带来一些问题,如环路问题
    STP用于生成树,将有环路的图变成没有环路的图。(详细可参看极客时间刘超老师的《交换机与VLAN:办公室太复杂,我要回学校》讲解,也可以了解数据结构中的最小生成树)。

在交换机中的包转发流程:

交换机和路由器都是有对应的转发机制的,交换机通过MAC地址表查询并转发,而路由器根据IP表查询进行转发。

三、路由器(Router)

  • 路由器的包转发模块端口模块
  • 路由器的端口模块则支持除局域网之外的多种通信技术,如 ADSL、FTTH,以及各种宽带专线等,只要
    端口模块安装了支持这些技术的硬件即可。
    即端口模块是以实际的发送方或接收方的身份来收发网络包的,以以太网为例路由器的各个端口都具有 MAC 地址和 IP 地址。
  • 检查接收包MAC头部,是则放入缓冲区,不是则抛弃
  • 完成包接收操作后,丢弃原MAC头部
  • 路由器会根据IP地址来判断转发目标,即需要解出IP头部的内容:

这里有个很重要的一点就是 “匹配规则”

根据解出的Des-Ip与第一列的各个值匹配;
这个匹配并不是匹配全部 32 个比特,而是根据子网掩码列中的值判断网络号的比特数,并匹配相应数量的比特。比如和第一行进行匹配,只需要前24bit进行比较;
若有多个匹配行,就依据**“最长匹配原则**”,原因很简单,谁比较成功的bit数多,谁就更相似;
无法找到匹配记录,则丢弃,并通过ICMP消息上报错误信息。
默认路由:很明显就是所有网络号都能匹配上,即找不到匹配路由时选择默认路由。可以在这里填写接入互联网的路由器地址,匹配不上其他路由,直接转入互联网路由器。

  • 更新IP头部中的TTL
    即更新包的生命周期,每经过一个路由器转发,这个字段就减1,过期则丢弃。
    防止包在一个地方陷入死循环。
  • 地址转换
    内网中的设备不能直接和互联网直接收发网络包,而是通过地址转换机制进行连接。
    在转发网络包时,对IP头部中的IP地址和端口号进行改写。

在路由器中的包转发流程:

(建议自行了解MAC头和IP头)

很多情况下,人们把网关就叫作路由器。其实不完全准确,而另一种比喻更加恰当:路由器是一台设备它有五个网口或者网卡,相当于有五只手,分别连着五个局域网。每只手的IP地址都和局域网的IP地址相同的网段,每只手都是它握住的那个局域网的网关。
任何一个想发往其他局域网的包,都会到达其中一只手,被拿进来,拿下MAC头和IP头,看看,根据自己的路由算法,选择另一只手,加上IP头和MAC头,然后扔出去。
极客时间版权所有: https://time.geekbang.org/column/article/8590

以下是一个局域网内的包转发流程,旨在了解包的转换,很简单,若要了解更复杂的转发规则,比如跨局域网,参看Geek里的《世界这么大,我想出网关:欧洲十国游与玄奘西行》

总结:

关于更细致的网络知识还需要多学习并实践,以上总结的是一个知识点形式的内容,更加细致的知识点,还需要深入查资料。

浅析集线器、交换机、路由器相关推荐

  1. 网络-1集线器/交换机/路由器

    什么是集线器 首先我要介绍一下集线器,集线器是属于局域网的设备,比如一个公司的内网,集线器处于OSI模型中的下数第一层,物理层,集线器由于是半双工的(我自己理解的半双工的概念:电脑A给电脑B发送信号的 ...

  2. 集线器 交换机 路由器关系

    号称网络硬件三剑客的集线器(Hub).交换机(Switch)与路由器(Router)一直都是网络界的活跃分子,但让很多初入网络之门的菜鸟恼火的是,它们三者不仅外观相似,而且经常呆在一起,要想分清谁是谁 ...

  3. 网络硬件三剑客集线器交换机路由器

    号称网络硬件三剑客的集线器(Hub).交换机(Switch)与路由器(Router)一直都是网络界的活跃分子,但让很多初入网络之门的菜鸟恼火的是,它们三者不仅外观相似,而且经常呆在一起,要想分清谁是谁 ...

  4. 网卡 集线器 交换机 路由器 调制解调器的作用

    网卡工作在osi的第二层也就是数据链路层数据链路层有个非常明确的协议就是物理地址协议网卡保存有明确的地址因此可以确认其属于数据链路层 集线器它就是起一个信号中继放大的作用,与古老的中继器一样,都是工作 ...

  5. 网络传输--集线器,交换机,路由器(局域网/广域网传输)

    1.IP地址和MAC地址 IP地址 在IP协议中, 用来标识网络中不同主机的地址,作用在网络层; IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默 ...

  6. 集线器 交换机 路由器 modem 区别

    介绍 平时用到网络的时候,不管是生活还是工作,都会或多或少听过或用过这些设备,那么本次索性整理出来,供后续参考使用 1.集线器 如上图: 1.集线器主要目的是让其中内部所有的网络设备连通,它有一个具有 ...

  7. OSI的七层模型,网线,网卡,集线器,交换机,路由器分别工作在七层模型中的哪一层?

    OSI七层网络模型由下至上为1至7层,分别为物理层(Physical layer),数据链路层(Data link layer),网络层(Network layer),传输层(Transport la ...

  8. 集线器 交换机 路由器

    集线器将信号采用广播的方式发送出去,接收方根据mac地址判断是否接受这个包. 交换机的工作原理: 信号到达交换机的网线接口,由PHY(MAU)接受,传递给MAC模块,MAC模块将信号转换为数字信号,并 ...

  9. 交换机,集线器,路由器这三者如何区分,各自的作用是什么?

    交换机,集线器,路由器这三者如何区分,各自的作用是什么? 首先说HUB,也就是 集线器 .它的作用能够简单的理解为将一些机器连接起来组成一个局域网. 而 交换机 (又名交换式集线器)作用与集线器大体同 ...

  10. VLAN原理详解[转载] 网桥--交换机---路由器

    来自:http://blog.csdn.net/phunxm/article/details/9498829 一.什么是桥接   桥接工作在OSI网络参考模型的第二层数据链路层,是一种以MAC地址来作 ...

最新文章

  1. 关于程序员的那些事——一个五年程序员的总结
  2. Ubuntu设置静态IP,解决重启后需要重新设置的问题。
  3. 列举Python中常见的内置函数
  4. 解决 IntelliJ IDEA 安装后界面消失,再次打开后界面不动
  5. Python学习3 字符串和相关常用函数
  6. mysql并发 node_nodejs写入mysql单次数据量过大的解决方法_沃航科技
  7. 华为nova 4e预热海报曝光:3月14日正式发布!
  8. 为何优秀如程序员,也会构建 Bug 满格的软件?
  9. 微信小程序自定义状态栏navigationBar样式组件,适配所有机型
  10. Java基础篇:简单数据类型
  11. ultraedit 运行的是试用模式_原来用Unittest框架写接口测试用例这么简单!
  12. oc基础-oc中之集合NSSet,NSMutableSet
  13. cmd 文本文件分割_cmd - 分割大文件
  14. 用.bat文件切换固定IP地址和自动IP地址
  15. ARM联手SMI为Gear VR打造眼球追踪技术
  16. k8s——pv(静态+动态storageclass)与pvc
  17. 如何从Mysql快速查找一条数据
  18. 清华研究生情侣发SCI、做实验,毕业后勇敢离京选择小城市
  19. 所谓情商高,就是会说话1
  20. JSP+MySQL1703药店药品销售管理系统

热门文章

  1. Back Projection
  2. Random类:用来产生随机数字
  3. unbuntu20.04安装mysql5.7
  4. 易语言单窗口单ip软件源码_易语言助手下载-易语言助手 v3.2.0701 官方版
  5. 小偷-守卫博弈:“诡异”的纳什均衡
  6. 云杰恒指:7.19恒指期货早盘资讯
  7. 命令行操作时提示“请求的操作需要提升作为管理员运行。”解决办法
  8. 【C语言】 《狂野打飞机》初步构想以及进阶 以及防止闪屏
  9. Andriod studio 学习 之 Recyclerview
  10. 安卓双摄像头录像_USB双摄像头app下载-USB双摄像头 安卓版v9.9.1-PC6安卓网