精华内容
下载资源
问答
  • 计算机网络协议(二)——从二层到三层

    万次阅读 多人点赞 2019-09-03 11:56:34
    底层网络知识详解:从二层到三层概述一、从物理层到MAC层1.1 第一层(物理层)1.2 第二层(数据链路层)二、交换机与VLAN2.1 如何解决广播问题和安全问题?三、ICMP和ping3.1 ICMP协议的格式3.2 ICMP报文类型3.3 ping:...

    这个专栏的计算机网络协议,我是在极客时间上学习 已经有三万多人购买的刘超老师趣谈网络协议专栏,讲的特别好,像看小说一样学习到了平时很枯燥的知识点,计算机网络的书籍太枯燥,感兴趣的同学可以去付费购买,绝对物超所值,本文就是对自己学习专栏的总结,评论区可以留下你的问题,咱们一起讨论!

    我在CSDN写博客的目的真的不是为了写而写,写博客的意义一来是方便自己复习,二来是也是想分享知识。我并不会说侵犯 刘超 老师的版权,我也不是照抄,作者的文章内容很精彩,我是记录自己想学的点,当作一个笔记方便自己复习。大家可能看到这篇文 也会去购买专栏学习,或者看到觉得有一点点用就可以啦!


    概述

    上一篇文章中对通信网络协议做了一个综述,这一篇开始底层网络知识详解:从二层到三层 分为以下五小节去介绍:

    1. 从物理层到MAC层;
    2. 交换机与VLAN;
    3. ICMP和ping;
    4. 网关;
    5. 路由协议;

    一、从物理层到MAC层


    1.1 第一层(物理层)

    电脑连接电脑,除了网线交叉,还需要配置这两台电脑的IP地址、子网掩码和默认网关
    IP层封装了MAC层才能放入物理层,两台电脑可以通过网线构成一个局域网,LAN
    多台电脑可以通过Hub集线器进行连接。

    1.2 第二层(数据链路层)

    Hub采取的是广播的模式,无法确定接收者,数据发送混乱没有先后顺序、发送出错怎么办?

    MAC层就是要解决这些问题,MAC全称是Medium Access Control(媒体访问控制),其实就是控制数据在媒体上的发送;

    多路访问解决数据发送混乱:

    • 信道划分,例如分为多车道,每个车一个道;
    • 轮流协议,单双号出行;
    • 随机接入协议,错峰出行;

    为了解决了媒体接入控制的问题,就要考虑:发给谁,谁接收?这里用到一个物理地址,叫作链路层地址。但是常用于解决流媒体接入控制问题,所以常被称为MAC地址

    第二层的网络包的格式如下图所示,首先是包含目标MAC地址和源MAC地址类型是IP数据包,IP里面封装了TCP、UDP,以及HTTP;数据包在链路上广播,MAC网卡通过目标MAC地址接收数据包,打开IP包,发现IP地址也是自己的,再打开TCP包,发现端口是自己,也就是80,而nginx就是监听80端口;

    于是将请求提交给nginx,nginx返回一个网页。然后将网页需要发回请求的机器。然后层层封装,最后到MAC层。因为来的时候有源MAC地址,返回的时候,源MAC就变成了目标MAC,再返给请求的机器。

    第二层的后面是CRC,就是循环冗余检测,通过XOR异或的算法,来计算整个包在传输过程中是否发生了错误。
    MAC数据
    在一个局域网中如果已知IP地址,求MAC地址,可以采用ARP协议;广播一个IP包,谁是这个IP谁来回答,回答的报文如下,机器会在本地进行ARP缓存来避免每次都用ARP协议,随着机器的上下线,缓存也会失效。
    回答报文
    交换机是一个二层设备,假设一个数据包要从MAC1发送到MAC2,但是交换机不知道在MAC2电脑的哪个口,这个时候会将包发送给所有的口,找到MAC2电脑的接口之后,通过转发表来记录下对应的MAC地址,保证下次准确转发。

    当机器的IP地址、端口发生改变,转发表中的信息也会发生改变。

    总结:
    第一,MAC地址是用来解决多路访问的堵车问题;
    第二,ARP是通过吼的方式来寻找目标MAC地址,吼完以后,记住一段时间,叫作缓存;
    第三,交换机是由MAC地址学习能力的,学完了就知道谁在哪儿了,不用广播了


    二、交换机与VLAN

    上文中讲了交换机,假如公司越来越大,交换机数目肯定越来越多。交换机之间连接起来,就形成复杂的拓扑结构。这么多网线,绕过来绕过去,不可避免地会出现一些意料不到的情况,其中常见的问题就是环路问题,如下图所示:
    在这里插入图片描述

    这就需要采用使用STP协议,解决环路问题:
    在数据结构中,有一个方法叫作最小生成树。有环的我们常称为。将图中的环破了,就生成了。在计算机网络中,生成树的算法叫作STP,全称**Spanning Tree Protocol。**有环路的图变成没有环路的树,从而解决环路问题。这里我就不细细描述了,感兴趣的同学可以去学习一下!

    2.1 如何解决广播问题和安全问题?

    交换机数目多,会面临广播问题安全问题;一大波机器和交换机,就是想一个公司中相关的部门、不相关的部门,大家都在一个会议室开会吵吵闹闹的,乱的很,这种广播问题就会导致性能下降;

    有的部门会议内容需要保密,如果都在一个广播域里面,碰到了一个会抓包的程序员,就能抓到这些包,如果没有加密,就能看到这些敏感信息了。就像是大家都在会议室里七嘴八舌,讨论的问题也能被别人听见喽,就会导致安全问题。所以,那就要分部门、分会议室。

    方法一:物理隔离
    在网络方面,每个部门都有单独的交换机,配置着单独的子网,这样部门间的沟通就需要路由器;但是部门中的人数不固定,就会导致交换机中的接口空闲较多或者不够用;

    方法二:虚拟隔离
    常说的VLAN,或者说是虚拟局域网,使用VLAN,一个交换机上就会连着属于多个局域网的机器。交换机会根据二层头上的Tag中的VLAN ID只有相同VLAN的包,才会互相转发,不同VLAN的包,是看不到的

    对于支持VLAN的交换机,有一种口叫作Trunk口。它可以转发属于任何VLAN的口。交换机之间可以通过这种口相互连接。
    在这里插入图片描述


    三、ICMP和ping

    当网络不通,你连不上另一台机器的时候,一般都会ping一下,ping是基于ICMP协议工作的;

    3.1 ICMP协议的格式

    ICMP全称Internet Control Message Protocol,就是互联网控制报文协议

    ICMP是封装在IP包中的,在传输指令的时候,需要源地址和目标地址,其格式如下:
    ICMP
    ICMP报文有很多的类型,不同的类型有不同的代码。最常用的类型是主动请求为8,主动请求的应答为0。

    3.2 ICMP报文类型

    查询报文类型

    ping就是查询报文,是一种主动请求,并且获得主动应答的ICMP协议;ping发的包符合ICMP协议,只不过在后面增加了自己的格式。

    对ping的主动请求,进行网络抓包,称为ICMP ECHO REQUEST,同理主动请求的回复,称为**ICMP ECHO REPLY.**比起原先的ICMP,多了两个字段,一个是标识符,就像侦察兵,一类是侦察战况,一类是查找水源,需要采用标识对其进行区分。另一个是序号,ping会存放发送请求的时间值,来计算往返时间,说明路程的长短。

    差错报文类型

    ICMP差错报文的例子:终点不可达为3,源抑制为4,超时为11,重定向为5

    1. 终点不可达:网络不可达、主机不可达、协议不可达、端口不可达、需要进行分片但设置了不分片位;
    2. 源站抑制:源站放慢发送速度;
    3. 时间超时:超过网络包的生存时间还没送达;
    4. 路由重新定向:下一次发给另一个路由器;

    3.3 ping:查询报文类型的使用

    一起来看一下ping的发送和接收过程:
    ICMP过程
    假定主机A的IP地址是192.168.1.1,主机B的IP地址是192.168.1.2,它们都在同一个子网,当你在主机A上运行“ping 192.168.1.2”后,源主机首先会构建一个ICMP请求数据包,数据包中包含类型字段顺序号

    然后,由ICMP协议将这个数据包连同地址192.168.1.2一起交给IP层,IP层将以192.168.1.2作为目的地址,本机IP地址作为源地址,加上一些其他控制信息,构建一个IP数据包。

    接下来,需要加入MAC头,可以通过ARP查询MAC地址,之后传送出去;主机B收到这个数据帧后,先检查它的目的MAC地址,并和本机的MAC地址对比,如符合,则接收,否则就丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层。同样,IP层检查后,将有用的信息提取后交给ICMP协议。

    主机B会构建一个 ICMP 应答包,应答数据包的类型字段为 0,顺序号为接收到的请求数据包中的顺序号,然后再发送出去给主机A。在规定的时候间内,源主机如果没有接到 ICMP 的应答包,则说明目标主机不可达;反之,即不可达。

    如果跨网段的话,还会涉及网关的转发、路由器的转发等等。

    3.4 Traceroute:差错报文类型的使用

    Traceroute的第一个作用:故意设置特殊的TTL,来追踪去往目的地时沿途经过的路由器

    Traceroute的参数指向某个目的地的IP地址,它会发送一个UDP数据包,将TTL设置为1,也就是说一旦遇到一个路由器或者一个关卡,表示其牺牲了,如此反复到达目的地址,就获取到了所有路由器的IP;

    Traceroute的第二个作用:故意设置不分片,从而确定路径的MTU;

    发送分组,并设置“不分片”标志。每次收到ICMP"不能分片"差错时就会减少分组的长度,直到到达目标主机。


    总结

    • ICMP相当于网络世界的侦察兵,分为主动探查的查询报文,一种异常报告的差错报文;
    • ping使用查询报文,Traceroute 使用差错报文;

    四、网关

    在进行网卡配置的时候,除了IP地址,还需要配置一个Gateway的东西,这个就是网关

    一旦配置了IP地址和网关,往往就能够指定目标地址进行访问了。由于在跨网关访问的时候,牵扯到MAC地址和IP地址的变化,这里有必要详细描述一下MAC头和IP头的细节,如下图示:
    MAC头
    IP头
    MAC头里面,先是目标IP地址,然后是源MAC地址,然后有一个协议类型,说明里面是IP协议,里面的版本号主流还是IPv4,TOS代表着数据包的优先级,8位标识协议,指的是到了下一层的协议,是TCP还是UDP,最重要的是源IP和目标IP;

    如果是在同一网段,就没网关啥事,直接将源地址和目标地址放入IP头中,然后通过ARP获得MAC地址,将源MAC和目的MAC放入MAC头中,发出去就可以了。

    如果不在同一网段,需要访问校园网里面的BBS,这就需要发送给默认的网关Gateway,Gateway的地址一定是和源IP地址是一个网段的。例如:192.168.1.0/24这个网段,Gateway往往会192.168.1.1/24或者192.168.1.2/24.

    网关往往是一个路由器,是一个三层转发的设备;三层设备的含义,就是把MAC头、IP头都取下来,根据里面的内容,看看接下来把包发送到哪的设备。

    网关和路由器的关系:这个比喻就是路由器是一台设备,它有五个网口或者网卡,相当于有五只手,分别连着五个局域网,每只手的IP地址都和局域网有相同的网段,每只手都是它握住的哪个局域网的网关。


    静态路由

    静态路由,其实就是在路由器上配置一条一条规则。
    每当要选择从哪只手抛出去的时候,就一条一条的匹配规则,找到符合的规则,就按规则中设置的那样,从某个口抛出去,找下一跳IPX。


    IP头和MAC头哪些变、哪些不变?
    将变与不变的问题分为两种类型,一个是“欧洲十国游”和“玄奘西行

    MAC只在一个局域网内有效,只要过网关,必须要改变,因为已经换了局域网,两者主要的区别在于IP地址是否改变不改变IP地址的网关,称为转发网关改变IP地址的网关,称为NAT网关;


    欧洲十国游
    欧洲十国游
    每到一个新的局域网,MAC都是要变的,但是IP地址都不变。在ip头里面,不会保存任何网关的IP地址。所谓的下一跳是,某个IP要将这个IP地址转换为MAC放入MAC头

    整个过程中,IP头里面的地址都是不变的。IP地址在三个局域网都可见,在三个局域网之间的网段都不会冲突。在三个网段之间传输包,IP头不改变。这就像在欧洲各国之间旅游,一个签证就能搞定。


    玄奘西行
    局域网之间各定各的网段,导致IP段冲突,如果单从IP地址上看,简直是自己访问自己,其实是大唐的192.168.1.101要访问印度的192.168.1.101;

    但其实就像咱们出国一样,不用国内的身份证,改用护照;

    首先,目标服务器B在国际上要有一个国际的身份,我们给它一个192.168.56.2。在网关B上,我们记下来,国际身份192.168.56.2对应国内身份192.168.1.101。凡是要访问192.168.56.2,都转成192.168.1.101。于是,源服务器A要访问目标服务器B,要指定的目标地址为192.168.56.2

    当网络包发送到中间的局域网的时候,服务器A也需要有一个国际身份,因此在国际上,源ip地址不能用192.168.1.101,需要改成192.168.56.1;

    而中间的路由器用来做NAT(Network Address Translation),用来转换对应的国际与国内的ip地址,并且配置了对应的静态路由规则

    现在大家每家都有家用路由器,家里的网段都是192.168.1.x,所以你肯定访问不了你邻居家的这个私网的IP地址的。所以,当我们家里的包发出去的时候,都被家用路由器NAT成为了运营商的地址了。

    很多办公室访问外网的时候,也是被NAT过的,因为不可能办公室里面的IP也是公网可见的,公网地址实在是太贵了,所以一般就是整个办公室共用一个到两个出口IP地址。你可以通过 查看出口ip 查看自己的出口IP地址。


    总结

    • 如果离开局域网,就需要经过网关,网关是路由器的一个网口;
    • 路由器是一个三层设备,里面有如何找下一跳的规则;
    • 经过路由器后MAC头要变,如果IP不变,相当于不换护照的欧洲旅游,如果IP变,相当于换护照的玄奘西行。

    五、路由协议

    路由器就是一台网络设备,它有多张网卡。当一个入口的网络包送到路由器时,它会根据一个本地的转发信息库,来决定如何正确地转发流量。这个转发信息库通常被称为路由表

    路由器会根据路由表去正确的转发信息,路由表中有多条路由规则,需要根据目的IP地址来配置路由

    • 目的网络:数据包想去哪?
    • 出口设备:将包从哪个口扔出?
    • 下一跳网关:下一个路由器的地址;

    5.1 如何配置策略路由?

    真实复杂的网络环境中,除了根据目的ip地址配置路由之外,还可以根据多个参数来配置路由,就是策略路由,可以配置多个路由表,根据源ip地址、入口设备、TOS等选择路由表;

    ip rule add from 192.168.1.0/24 table 10
    ip rule add from 192.168.2.0/24 table 20
    表示从192.168.1.10/24这个网段来的,使用table 10中的路由表,
    而从192.168.2.0/24网段来的,使用table20的路由表
    
    在一条路由规则中,也可以走多条路径,在下面的路由规则中:
    ip route add default scope global nexthop via 100.100.100.1 weight 1 nexthop via 200.200.200.1 weight 2
    

    家里的网是私有网段,出去的包需要NAT成公网的IP地址,因而路由器是一个NAT路由器;

    例如,运营商1给路由器分配的地址是183.134.189.34/32,而运营商网络里面的网关是183.134.188.1/32。有的是/30的,也就是分了一个特别小的网段。运营商2给路由器分配的地址是60.190.27.190/30,运营商网络里面的网关是60.190.27.189/30。
    在这里插入图片描述

    5.2 动态路由算法

    网络环境简单的时候,自己可控,可以采用静态路由,一旦网络结构发生变化,就需要动态路由算法;

    使用动态路由器,可以根据路由协议算法生成动态路由表,类似于唐僧西天取经一样,转化为如何在途中找最短路径的问题


    1、距离矢量路由算法

    算法:每个路由器都会保存一个路由表,包含多行,每行对应一个路由器,每一行包含两部分信息,一个是要到目标路由器,另一个是到目标路由器的距离;

    每个路由器都是知道全局信息的,每个路由器都知道自己和邻居之间的距离;每个路由器都会根据自己新收集的信息,计算和其他路由器之间的距离。

    第一个问题就是好消息传的快,坏消息传的慢:坏消息是指,一旦某个路由器挂了不会主动发消息,需要访问全部路径才能知道这个路由器挂了;

    第二个问题就是每次发送的时候,要发送整个全局路由表:网络规模大了,这谁顶的住啊;

    所以上面的两个问题,限制了距离矢量路由的网络规模


    2、链路状态路由算法

    链路状态路由(link state routing) 基于Dijkstra算法

    算法:当一个路由器启动时,首先是发现邻居,向他们say hello,然后计算和邻居之间的距离,发送一个echo,马上返回/2,就是距离;然后将自己和邻居之间的链路状态包广播出去,发送到整个网络的每个路由器,这样每个路由器都能收到它和邻居之间的关系的信息,每个路由器都可以在本地构建完整的图,采用Dijkstra算法找到两点之间的最短路径;

    5.3 动态路由协议:


    1、基于链路状态路由算法的OSPF

    OSPF(Open Shortest Path First,开放式最短路径优先),广泛应用于数据中心的协议,主要用于数据中心内部,用于路由决策,因而称为内部网关协议(Interior Gateway Protocol,简称IGP)

    内部网关协议的重点是找到最短的路径,OSPF可以发现多个最短的路径,在这多个路径中进行负载均衡,常常被称为等价路由。
    OSPF


    2、基于距离矢量路由算法的BGP
    外网路由协议(Broder Gateway Protocol,简称BGP)

    在网络世界中,可以让一个国家成为自治系统AS(Autonomous System),自治系统分为:

    • Stub AS:对外只有一个连接。这类AS不会传输其他AS的包。例如,个人或者小公司的网络
    • Multihomed AS:可能有多个连接到其他的AS,但是大多拒绝帮其他的AS传输包,例如一些大公司的网络;
    • Transit AS:有多个连接到其他的AS,并且可以帮其他的AS传输包,例如:主干网。

    在这里插入图片描述
    BGP又分为两类,eBGP和iBGP。自治系统中,边界路由器之间使用eBGP广播路由,内部网络也需要访问其他的自治系统。边界路由器通过运行iBGP,使得内部的路由器能够找到到达外网目的地最好的边界路由器


    总结

    • 路由分静态路由和动态路由,静态路由可以配置复杂的策略路由,控制转发策略
    • 动态路由分为两种主流算法:距离矢量算法和链路状态算法,基于两种算法产生两种协议,BGP协议和OSPF协议
    展开全文
  • OSI七层模型第三层网络层,Network Layer OSI网络层主要功能:基于数据包的逻辑地址进行转发,寻找网络中目的的位置,并在去往目的的多条路径中选择一条最佳的路径。 逻辑地址:就是网络层地址,如TCP/IP协议栈的...

    原文链接:http://www.hcie.me/208
    OSI七层模型第三层:网络层,Network Layer

    OSI网络层主要功能:基于数据包的逻辑地址进行转发,寻找网络中目的的位置,并在去往目的的多条路径中选择一条最佳的路径。

    逻辑地址:就是网络层地址,如TCP/IP协议栈的IP地址,OSI中的NSAP地址。当一个从应用层发起的数据包,一层层封装到网络层时,会接着封装上一个网络层的头部,在网络层的头部中,就包括逻辑地址等信息。
    在这里插入图片描述

    路由的方法

    OSI和TCP/IP协议栈封装的网络层头部中有很多内容,其中最主要的有两个:

    源地址:发起的这个数据包的那台设备的地址,源IP在传送至目的之前是不会改变的;
    目的地址:我要访问的是谁?

    路由过程举例如下:

    1、A在武汉,写了一封信,要寄给上海的朋友B。
    2、A首先把信拿到武汉的邮局去,丢到邮筒里。
    3、武汉的邮递员来到邮筒把信取走,然后通过飞机或者火车或者汽车之类的交通工具把信带到上海,由上海邮局接收。
    4、最后上海的邮递员将信送到了上海的朋友B手上。

    路由过程解析:

    这封信就相当于是一个数据包,A是数据发送者(源地址),B是数据接收者(目的地址),武汉邮局通过交通工具将信送到上海的过程相当于是路由。
    在坐火车从武汉开往上海的过程中,可能有多条铁路可以走,可以经过不同的城市到上海,这就是有多条可路由的路径。
    铁路局根据路线规划了一条最佳的路线,相当于是选择了其中一条最佳路径。

    这条最佳路线根据不同车型有不同的选择方式,比如有选择最快的、中间停站最少的、路上火车数量最少的等等,不同的选择方案就代表不同的路由协议,每个路由协议都有自己的最佳路径算法。

    这就是三层路由的原理。

    OSI网络层的PDU为:Packet (数据包)

    展开全文
  • 两层网络、三层网络的理解

    万次阅读 多人点赞 2018-04-27 13:52:35
    对于搞IT的同行而言,大部分人都不会直接和网络打交道,因此除非从事网络... 说起网络,大家不约而同会想起大学课本上那个臭名昭著的ISO七模型,但是ISO模型只是提供了一个参考,并不是具体实现,目前我们使用最...

    对于搞IT的同行而言,大部分人都不会直接和网络打交道,因此除非从事网络开发,否则对网络内部机制也不会太关心,但是明白网络数据是怎么走的,这对每个IT工程师应该是很重要的基础知识。网络数据包如何在网络上游荡,长久以来也困扰了我很长时间,现在把这部分内容总结分享一下。

      说起网络,大家不约而同会想起大学课本上那个臭名昭著的ISO七层模型,但是ISO模型只是提供了一个参考,并不是具体实现,目前我们使用最多的实现其实是TCP/IP协议族。但是对于TCP/IP,除了表示层和会话层没有体现,其它几层和ISO基本是对应的,从这个角度讲ISO模型还是有参考意义的。

      不扯那么多,我们落地一点:

    • 对于物理层而言打交道的基本都是电信号和光信号,例如网卡、光纤、双绞线等都被归到物理层考虑;
    • 对于链路层,数据在离散电/光信号的基础之上,被逻辑划分成一帧一帧(Frame)来管理,这一层是数据交换的主要层面,交换的依据主要是网卡MAC地址,以太网(定义了一种帧格式)、交换机、集线器都划归这一层;
    • 网络层是比链路层更高一级的逻辑层,在这一层主要工作的是路由器,路由器基于IP地址进行跨网链路的计算;
    • 传输层顾名思义是用来控制网络层传输的,因为网络层只是一个“尽力而为”的层,其传输不是完全可靠的,如果将超时重传等可靠性保障机制都交给程序员来做,估计大部分程序员都要疯了,幸好有了传输层提供了TCP和UDP两种机制给我们,才让我们可以高枕无忧的传输数据,而我们在代码里要做的只是打开一个传输层的套接字(即Socket)就可以了;
    • 至于表示层和会话层我们就不多做理解了,这两层基本只是摆设;
    • 应用层是最高层的协议,Web HTTP协议、远程登录SSH协议等都被划归这一层,确切来说这一层已经不属于基础网络了,基本都是软件自定义协议。


      理解了网络各层的概念后,我们再回过头来看,在这七层中网络层、链路层、物理层属于低三层,其余属于高四层,从字面上可以看出传输层以下才是真正通过网络传输数据的层面。对于物理层,主要定义的是各种传输介质的信号传输方式,比如时钟频率、电平高低、信道编码等,这一层只是机械的传输,不涉及数据包选路逻辑,链路层(L2层)和网络层(L3层)才是我们要理解的地方。

      首先看L2链路层,这一层以帧(Frame)为单位组织物理信号,每个帧都需要有一个源地址和目的地址,绝大多数情况下使用的都是网卡MAC地址。这一层主要的数据转发设备是集线器和交换机,对于集线器,由于每一个数据帧都会被复制到各个端口,使每个连接主机收到很多跟自己无关的数据帧,这直接导致主机和集线器之间信道冲突剧烈(冲突域属于物理层概念),因此现在基本不用该设备。而交换机则具有MAC地址学习功能,能够向各个端口准确投放数据帧,这样就大大提高了数据传输效率。对于L2层,交换机只能转发一个子网内的数据帧(子网是通过IP地址划分的),如果要将一个数据帧跨网转发,则需要借助于L3层的路径规划功能,这个一会再说。

      现在假设有如下网络拓扑结构,ABCD四台主机属于10.0.0.0子网,网关都指向路由器的10.0.0.1端口,EFGH属于10.0.1.0子网,网关指向路由器的10.0.1.1端口。


       先看同一子网内的通信的情况(A向C发送数据,这种情况下都是通过IP地址指定的),假如所有的主机、交换机和路由器都刚刚加电,内部没有缓存任何MAC映射表和路由表。A在发送之前,发现C和A在同一个子网内,于是A试图先在物理子网内找一下C,但是在同一物理子网内是通过硬件MAC地址来寻址的,而A此时并不知道C的MAC地址,于是A通过ARP广播来试图获取,发出的广播包包括如下类似内容:(注:广播时用的MAC地址是ff:ff:ff:ff:ff:ff)


      交换机1在收到这个ARP广播包后,首先学习到了主机A原来是和1口连接的,然后在缓存中查找C的MAC地址,但是最终没有找到,于是交换机1将这个包从所有端口(连接A的1口除外)发出去,交换机2收到后也会继续广播出去。当主机B和D收到这个广播包之后,发现和自己无关,于是便直接丢弃这个包,不做任何处理;C收到这个广播包后,发现原来是找自己的,于是它发出如下类似格式的回应内容,来告知A自己的身份。


      这个过程对于所有参与的交换机也是个学习的过程,因此交换机1和交换机2也学习到了A和C的位置。至此AC相互找到对方后,便可以在同一物理子网之间直接通过指定MAC地址通信了,他们发送数据帧的类似格式如下:


      下面再来看跨物理网络通信的情况(A向E发送数据),同样假设设备都刚刚加电,缓存为空。A发现E的IP也是同一网段的,于是又开始广播,但是这次BCD都没有回应。我们此时把视线转到路由器1上,当路由器1收到这个ARP广播包后,为了避免广播风暴的产生,路由器1不会继续广播这个ARP包,但是路由器1会把自己的MAC告诉A,回发如下类似格式的内容:


      A在等待超时后,发现当前物理子网内找不到E,但是A已经知道了网关路由器的MAC地址,于是便会将发给E的数据包扔给网关(也就是路由器1的1口),路由器1收到这个包后,发现E的IP在自己内部也没有缓存,于是路由器1也开始了寻找E的过程。相比交换机的子网内“广播找人”,路由器的选路范围更大也更复杂,很多情况下是整个Internet,并且要夸多个运营商,所以在L3层面路由器的路径计算协议较多,包括:RIP、OSPF、IS-IS、BGP、IGRP等协议。路由器之间计算路径时,任何一台路由器都是无法窥探整个网络的,因此每台路由器都只是通过选路算法找到下一跳的最优路径,这些最优路径连接起来便形成了一条完整的路径。换句话说,路由器的转发路径不是一个路由器选择出来的,而是一群路由器共同选择出来的下一跳地址序列。具体的路由选路无法一一讲解,大家感兴趣可以自己调查一下,这里假设路由器1直接找到了路由器2。

      我们继续往下探索,当路由器2接到寻找主机E的广播包后,发现E位于自己的网络中(当然也提前需要一个广播学习的过程才能知道),便向前一跳路由器(即路由器1)反馈自己离主机E最近,最终经过这样一个“A→网关路由器→路由器间选路→找到主机E所在子网”的过程A终于可以与E进行通信了,由于A和E之间经历了多个物理子网,因此需要多次的L2转发才能实现数据包的到达,这个过程中L3层IP包外包帧的MAC地址会不断变换。A→B→A这个过程中,数据帧和IP包的地址经历过程如下(假设A使用的是本机的88端口,B使用的是本机的99端口):


      在这个过程中,数据包在路由器1和2的1<-->4口之间传递时,由于是在一个设备内部,因此可以直接转发,而不用变换帧头,从而提高转发效率。如果A要与其它子网的FGH主机通信,过程基本是一样的,只不过刚开始不会先在当前子网内“广播找人”,而是直接将数据包投递给出口网关。

      本文旨在向大家展示L2交换机和L3路由器在转发网络数据时的一个主要流程,希望能给大家带来帮助。由于3层跨子网计算IP包投送路径协议比较多,先请大家自己参考其它资料。

    展开全文
  • 二层网络,三层网络

    千次阅读 2018-07-28 09:05:47
    在这里的二层、三层是按照逻辑拓扑结构进行的分类,并不是说ISO七层模型中的数据链路层和网络层,而是指核心层,汇聚层和接入层,这三层都部署的就是三层网络结构,二层网络结构没有汇聚层。 只有核心层和接入层的...

    在企业的网络结构选择中,有二层网络和三层网络结构两种选择。

    在这里的二层、三层是按照逻辑拓扑结构进行的分类,并不是说ISO七层模型中的数据链路层和网络层,而是指核心层,汇聚层和接入层,这三层都部署的就是三层网络结构,二层网络结构没有汇聚层。

    只有核心层和接入层的二层网络结构模式运行简便,交换机根据MAC地址表进行数据包的转发,有则转发,无则泛洪,即将数据包广播发送到所有端口,如果目的终端收到给出回应,那么交换机就可以将该MAC地址添加到地址表中,这是交换机对MAC地址进行建立的过程,但这样频繁的对未知的MAC目标的数据包进行广播,在大规模的网络架构中形成的网络风暴是非常庞大的,这也很大程度上限制了二层网络规模的扩大,因此二层网络的组网能力非常有限,所以一般只是用来搭建小局域网。

    与二层网络结构不同的是,三层网络结构可以组建大型的网络。

    核心层是整个网络的支撑脊梁和数据传输通道,重要性不言而喻,因此在整个三层网络结构中,核心层的设备要求是最高的,必须配备高性能的数据冗余转接设备和防止负载过剩的均衡负载的设备,以降低各核心层交换机所需承载的数据量。(网络的高速交换主干)

    汇聚层是连接网络的核心层和各个接入的应用层,在两层之间承担“媒介传输”的作用。汇聚层应该具备以下功能:实施安全功能(划分VLAN和配置ACL)、工作组整体接入功能、虚拟网络过滤功能。因此,汇聚层设备应采用三层交换机。(提供基于策略的连接)

    接入层的面向对象主要是终端客户,为终端客户提供接入功能。(将工作站接入网络)

    二层网络仅仅通过MAC寻址即可实现通讯,但仅仅是同一个冲突域内;三层网络则需要通过IP路由实现跨网段的通讯,可以跨多个冲突域。

    三层交换机在一定程度上可以替代路由器,但是应该清醒的认识到三层交换机出现最重要的目的是加快大型局域网内部的数据交换,所具备的路由功能也多是围绕这一目的而展开的,所以他的路由功能没有同一档次的专业路由器强,在安全、协议支持等方面还有许多欠缺,并不能完全取代路由器工作。

    在实际应用过程中,典型的做法是:处于同一个局域网中的各个子网的互联以及局域网中VLAN间的路由,用三层交换机来代替路由器,而只有局域网与公网互联之间要实现跨地域的网络访问时,才通过专业路由器。



    作者:辉耀辉耀
    链接:https://www.jianshu.com/p/81b8f409a2bb
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    展开全文
  • 二层网络与三层网络

    千次阅读 2019-06-10 11:54:00
    层网络三层网路 最近在搭建openstack的行云环境,在其中进行了网络配置,在配置过程中对其中的网络内容进行过渡和总结。
  • 二层三层网络协议-路由协议

    万次阅读 2018-07-15 20:27:14
    配置路由一张路由表会包含多条规则,每一条规则至少包含下面项信息1.目的网络,这个包发往那里的2.出口设备,这个包从哪个口发出去3.下一跳网关,下一个路由器的地址ip route结果default via 172.17.15.253 dev ...
  • 二层三层网络协议-交换机与VLAN

    千次阅读 2018-07-14 15:19:29
    此时交换机A是不知道机器2在哪里,于是再次转发,最后形成网络风暴,变成环路了 当机器1发送广播包丢掉时候,交换机A,交换机B都知道机器1是在左边这个端口上 之后交换机A将数据广播出去,交换机B右边端口收到了,他...
  • 三层 BP 神经网络 matlab 实现

    千次阅读 2015-04-24 14:58:18
    最近研究神经网络。BP网络是最经典最常用的神经网络。Matlab 有专门的工具箱用来实现 BP 算法。我用matlab语言重新实现BP算法,以便加深对该算法的理解程度。程序有点粗糙,只是为了实现算法。当然可以加上一些绘图...
  • 三层网络结构理解

    千次阅读 2020-10-20 10:48:21
    这个就是最简单的网络了,仅仅只有交换机,所有电脑都被交换机连起来就组成了一个小型的局域网,到这里还没有用到IP地址,因为IP是在第三层网络层)的,而交换机是在第二层的(数据链路层),计算机发出的数据包中...
  • 三层交换机如何实现不同网络的相互通信 前言 1.三层交换的原理 2.三层交换机和二层交换机的区别 3.三层交换的拓扑图及相关配置 4.三层交换机的优点 1.三层交换的原理 第三层交换是在网络交换机中引入路由模块而取代...
  • Cisco思科三层交换机配置DHCP服务

    万次阅读 多人点赞 2020-01-22 16:53:01
    在小型网络中直接将DHCP服务直接配置在核心三层交换机上便于网络管理员管理。在大型网络拓扑中还是建议使用单独的DHCP服务器做,可以节省网络设备的性能,另外图形界面,也方便查看。 业务需求: 将三层交换机配置...
  • 三层转发原理

    万次阅读 多人点赞 2018-10-03 08:31:55
    个人认为最基础最重要的学习网络的原理 我自己在校自学了很久,学了很多在校学不到的技术,MPLS VPN,组播等技术。以前认为网络基础的学习就像很多公开的学习视屏一样,只需要了解一点基础的东西就行了。但是当深入...
  • 三层网络架构

    千次阅读 2018-04-06 11:42:08
    三层网络架构是采用层次化架构的三层网络三层网络架构采用层次化模型设计,即将复杂的网络设计分成几个层次,每个层次着重于某些特定的功能,这样就能够使一个复杂的大问题变成许多简单的小问题。三层网络架构...
  • 层次化网络设计(三层网络结构)

    万次阅读 2019-05-14 21:51:45
    三层网络架构是采用层次化架构的三层网络三层网络架构采用层次化模型设计,即将复杂的网络设计分成几个层次,每个层次着重于某些特定的功能,这样就能够使一个复杂的大问题变成许多简单的小问题。三层网络架构...
  • ensp-三层网络架构实验

    千次阅读 2020-04-30 09:11:10
    ② 企业内网划分多个vlan ,减少广播域大小,提高网络稳定性 SW4: [SW4]int e0/0/2 [SW4-Ethernet0/0/2]port link-type access [SW4-Ethernet0/0/2]port default vlan 10 [SW4]int gi0/0/1 [SW4-GigabitEtherne...
  • 二层-三层网络

    千次阅读 2017-03-27 19:31:58
    学习网络,主要学习的就是协议,首先学习TCP/IP五层模型,了解TCP/IP每一层的协议,数据包和数据走向,然后开始学习思科二层交换机学起,vlan,vtp,stp,三层交换机,然后学习思科的路由器,大部分全部是协议,命令...
  • 目录 一、多层神经网络 1、多层神经网络数学模型 2、数学模型中的非线性函数fai 1)非线性函数fai存在...3、常见的三层神经网络模型(含w,b的参数设置) 1)一个三角形决策面的神经网络模型(两层神经网络) 2)
  • 会将自己的IP与目的主机的IP进行比较,如果两者位于同一网段(用网络掩码计算后具有相同的网络号),那么源主机发送arp请求广播报,请求目的主机的mac地址,在收到目的主机的ARP应答后获得对方的物理(MAC)地址,...
  • 企业网三层架构的搭建--Cisco多层交换网络

    千次阅读 多人点赞 2018-12-13 02:39:13
    网络拓扑图:   配置要求: 1、R1为ISP 2、红圈标记接口为3层接口 ...3、内网地址为172.16.0.0/16 ...7、三层交换机之间做以太网通道 来分析一下这个拓扑图: 1.R1为ISP,配环回地址为1.1.1.1/24,顶层COR...
  • 数据中心网络架构 — 传统三层网络架构

    千次阅读 多人点赞 2019-07-29 12:25:17
    文章目录目录前言传统路由交换技术路由和交换交换技术传统的 2 层交换技术具有路由功能的 3 层交换技术具有网络服务功能的 7 层交换技术路由技术三层网络架构核心层(Core Layer)汇聚层(Aggregation Layer)接入层...
  • 网络七层模型与物联网三层模型

    千次阅读 多人点赞 2019-01-21 19:30:16
    前言 学安全,基础知识还是得要...这一参考模型共分为七:物理、数据链路网络层、传输、会话、表示和应用。 下面这张表,可算是精华:   层级 序号 功能 举例 应用 7 终端...
  •  传统路由器在网络中起到隔离网络、隔离广播、路由转发以及防火墙的作业,并且随着网络的不断发展,路由器的负荷也在迅速增长。其中一个重要原因是出于安全和管理方便等方面的考虑,VLAN(虚拟局域网)技术在网络中...
  • 三层BP神经网络的python实现

    千次阅读 2019-06-26 14:09:30
    这是一个非常漂亮的三层反向传播神经网络的python实现,下一步我准备试着将其修改为多层BP神经网络。 下面是运行演示函数的截图,你会发现预测的结果很惊人! 提示:运行演示函数的时候,可以尝试改变隐藏...
  • 网络三层架构搭建——实验

    万次阅读 多人点赞 2019-01-15 11:51:19
    三层架构简介: 实验部分: 使用模拟器:packet tracer拓扑图:​ 实验要求及描述: 实验配置: 三层架构简介: 企业级三层架构可以划分为:核心层、汇聚层、接入层 作用与意义: 核心层:进行数据流量的接受...
  • 网络接口(链路): ①以太网帧格式: 其中目的地址和源地址均是网卡地址(MAC地址),对于每个设备都是唯一的,ifconfig ---->HWaddr即是我们的MAC地址;而对于类型字段,可以有种值:0800---IP,...
  • 三层神经网络的bp算法详细推导过程

    千次阅读 2018-06-06 11:26:55
  • 利用的是sigmoid函数来搭建的一个三层神经网络。假设其拓扑结构如图1-1所示。 图1-1 三层神经网络   该网络的运行流程为:当输入一个样例后,获得该样例的特征向量,再根据权向量得到感知机的输入值,然后使用...
  • 我的毕设做的是基于opencv和卷积神经网络的人脸识别项目。在做完这个项目之后,我一直想好好总结一下所学到的关于卷积神经网络的知识。现在趁着有点空闲,随手记录一点以前学过的,或者正在学习的知识点,相当于一个...
  • Python实现三层BP神经网络

    千次阅读 2017-09-17 17:36:13
    题外话看论文,仿真实现,最基本的能力!...1. 二分类的三层BP神经网络 2. 激活函数为sigmoid函数 3. 由于是二分类,输出函数和隐藏层函数都为sigmoid函数 4. 计算下一层节点的公式:y=wx+b步骤大概步骤: 1. 初
  • 计算机网络实验之三层交换机实现VLAN间通信

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 948,743
精华内容 379,497
关键字:

三层网络