• 【计网 6】链路层


     思考通信的过程

    相邻不局限于有线的网络

    整个网络层的分组->链路层的帧

    一层套一层

    光纤上可靠

    无线局域网 无线信号容易受到干扰 

    链路层需要考虑链路传输


    帧中继的作用

      帧中继(FrameRelay)是一种用于连接计算机系统的面向分组的通信方法。它主要用在公共或专用网上的局域网互联以及广域网连接。大多数公共电信局都提供帧中继服务,把它作为建立高性能的虚拟广域连接的一种途径。帧中继是进入带宽范围从56Kbps到1.544Mbps的广域分组交换网的用户接口。

      帧中继技术主要用于传递数据业务,它使用一组规程将数据信息以帧的形式(简称帧中继协议)有效地进行传送。它是广域网通信的一种方式。帧中继的帧信息长度远比X.25分组长度要长,最大帧长度可达1600字节/帧,适合于封装局域网的数据单元,适合传送突发业务(如压缩视频业务、WWW业务等)。帧中继测试技术:当前主要的数据通信技术都基于分组交换技术,如分组交换、帧中继(FR)、交换型多兆比特数据业务(SMDS)、异步转移模式(ATM)。


    封装成帧

    • 流量控制
    • 差错检测
    • 纠错
    • 半双工/全双工

    子母路由器

    为什么在链路层里不需要考虑拥塞控制?只需要考虑流量控制?

    数据报->二进制

    物理层调制->电信号/光信号

    利用边界路由器转发数据报

    不能直接在内网里实现寻址

    匹配帧的目的MAC

    不同子网 IP地址
    在相同子网内部的寻址 MAC地址

     

    通过交换机的方式来构建局域网

    洪泛/广播方式转发数据,会产生“风暴”,即大量的数据在网络里传输

    从逻辑层面构建逻辑网络:(被限制在逻辑区域里)

    VLAN

    隔离流

    相同VLAN广播的流不会扩散

    不同VLAN通过交换机交换,必须有路由器的转发(需要有不同的子网掩码)

    TRUNK PORT

    通过一条网线 连接两台交换机

    问题:2号口想发送到另一台交换机上的2号口?

    特别注意

    在TRUNK PORT要注意插入标号

    变的是插进去了两个字段(VLAN的ID号)

    CRC发生变化(需要重新计算)

    数据通信看不到VLAN的存在

    802.1Q对源/目的主机透明,所以对两边抓包是看不到帧和VLAN ID

    通过管理员的配置

    中间加一个交换机

    在镜像端口用wireshark抓包

    打上一个VLAN标签

    为什么需要上一级交换机附带的VLAN号呢?

    判断发给哪一个VLAN

    相同的交换机不需要,不同的需要


    HUB,二层交换机和三层交换机的区别

    (加插的部分)

    一、HUB集线器

    USB集线器的工作原理和网络连接的一样(相当于总线)

    像对220V的电路做并联的情况

    考虑恶意用户

    二、二层交换机 2-layer switch——家庭常用:

    与HUB唯一区别:有很多端口

    只要不是同一目的端就不会产生冲突,交换速度会高很多。连接不同的终端,数据发送出去后,看帧是连接在哪个端口上,交换机通过自学习来获得MAC信息。

    好处:

    1.交换效率提高了。

    2.会使不该接收数据的终端收不到数据,否则会有安全隐患,。

    缺点:

    只工作在链路层,只能识别链路层的帧。

    三、三层交换机

    二层交换技术+三层转发技术

    查路由表  ——>  确定从哪个路由器出去

    出现瓶颈(出现时延):查路由表的时间

    于是出现了:基于流交换的三层交换技术

    如果已经知道MAC地址,目的MAC会直接写这个MAC。

    Q:如果不知道呢?

    A:会发送一个查询报文给三层交换机,根据三层路由表决定发到哪里。如果它也没有这个MAC,会把查询报文发给下一个三层交换机。

    不在三层处理所有报文的方法称之为流交换FS。

    没有硬划分

    虚电路 MPLS 关键在标签

    除了能够提高转发效率之外,还能实现多路传输

    可以按通信数据量来收费

    而电路交换必须按时长来收费

    物理上都是同一个子网,只是逻辑上进行了区分。

    两种手段:

    1.通过上一级的路由器

      每一个跨越的都要查询一个路由表

    2.用一个三层交换机替换路由器

      好处:使终端直接获得另一个主机的MAC 更加快捷

    划分成VLAN后:

    • 发送站点A在开始发送时,把自己的IP地址与B站的IP地址比较,判断B站是否与自己在同一子网内。
    • 若目的站B与发送站A在同一子网内,则进行二层的转发
    • 若两个站点不在同一子网内,发送站A要向“缺省网关”发出ARP(地址解析)封包,而“缺省网关”的IP地址其实是三层交换机的三层交换模块
    • 当发送站A向“缺省网关”的IP发送ARP请求时,如果三层交换模块在以前的通信过程中已经知道B站的MAC地址,则向发送站A回复B的MAC地址。否则三层交换模块根据路由信息向B站广播一个ARP请求;
    • B站得到此ARP请求后向三层交换模块回复其MAC地址;
    • 三层交换模块保存此地址并回复给发送站A,同时将B站的MAC地址发送到二层交换引擎的MAC地址表中。 
    三层交换机替换优点:

    只需要在三层IP上跑1次,其他都可以在二层里进行,只要在相同局域网中。

    问题:那么三层可不可以替代路由器?

    答:不可以。三层适用于同一局域网范围内。虽然也可以连接不同自治系统,但可能会有些意想不到的信息泄露,说不定可以查到不同网络的MAC地址。

    所以不同网络之间还是应该用路由器连接。

    MIPS:

    基于虚电路

    分组交换

    负载均衡

    不同来源相同目的

    实现优先级别

    实现有差别的服务质量

    • UDP(暴力)没有公平性 会吃掉所有带宽
    • TCP公平性

    MIPS只能提供比IP路由更快的速度

    传统的路由依赖路由表

    为什么MIPS能比路由有更快的转发速率?

    原因:因为标签不是全局有效,每个交换机只根据自身逻辑链路情况来定义标签

    即使发送往同一个目的地,也可以通过不同的方式选择不同的路径。

    可以走俩不同的路。

    而传统路由只能选择相同道路。

    想一下,IP路由是怎么实现的?

    IP路由效率低的原因:

    当路由器收到每一个分组都需要遍历一遍路由表(规模很大)。

    IP网络的逐跳式分组转发:

    LERO边缘路由器

    REQ请求(包含目的端的IP地址)

    目前LERO不知道怎么交换,通过查路由表来决定下一跳路由器(左下角的路由表)

     26:05 找到空闲的标签

     LSR2收到标签2之后,再发回LSR0

    同样,在链路上找到一个空闲的标签(8),不需要IP地址

    利用标签搭建路径

    IP  |   Label

    第一次寻路时用路由表确定MIPS源端和目的端的路径/返回响应通过标签产生响应建立路径

    其实MPLS也不能完全脱离路由,所以仍然保留了路由的功能

    实用

    使企业内的网络运转得足够快。


    数据中心网络

    背景:随着用户量的增加,单服务器的模式已经无法满足需要

    CDN

    同一个网站 很多副本 放在不同的地理位置

    各个学院用独立的计算机装

    服务器群 提供服务

    问题:

    怎么让服务器群连接起来?

    于是 出现了网络。

    单一的物理机可以虚拟出许多的虚拟机,可以充分利用其冗余的计算能力。

    数据中心

    引入了虚拟服务器的概念。

     机架/铁箱子,可以密集地放很多服务器

    机架顶部/底部——放置交换机,进行互连

    44:00存在内部流量访问,有可能存在于不同的虚拟机/机架之间

    怎么让它们通信呢?实现互通。

    形成层次化结构。

    需要分割成不同的子网:路由器

    Q:怎么解决交换机的阻塞问题?

    A:

    • 类似于银行多窗口服务
    • 均匀地分配到各个链路

    Q:为什么需要做负载均衡?

    A:两个分摊

    • 均匀分摊资源
    • 均匀把用户数量分摊到各个链路

    Load balancer负载均衡器:如果有多个服务点,则将用户引导到目前最空闲的服务点。

     数据网络中心瓶颈:内部网络如何实现高速交换

    1:07:00

    6.7节不讲而得自己看。

    因为6.7节里整合了第二章的知识。

  • 相关阅读:
    file_get_contents抓取远程URL内容
    Xshell下VI打开文件中文乱码解决
    YII实现Memcache故障转移的配置办法
    Nginx实现多重IF判断的办法
    CentOS安装NodeJS v0.10.25 + Express
    一个小玩意 PHP实现微信红包金额拆分试玩
    Web Service测试利器 Postman
    CentOS安装Git
    PHP导出CSV UTF-8转GBK不乱码的解决办法
    configure: error: C++ compiler cannot create executables
  • 原文地址:https://www.cnblogs.com/wfish/p/13155481.html
Copyright © 2020-2023  润新知