计算机网络——34LANs

LANs

MAC地址和ARP

  • 32bit IP地址
    • 网络层地址
    • 用于使数据到达目标IP子网:前n - 1跳
    • 从而到达子网中的目标节点:最后一跳
  • LAN(MAC/物理/以太网)地址:
    • 用于使帧从一个网卡传递到与其物理连接的另一个网卡(在同一个物理网络中)
    • 48bit MAC地址固化在适配器的ROM,有时也可以通过软件设定
    • 理论上全球任何2个网卡的MAC地址都不相同
    • e.g:1A-2F-BB-76-09-AD

网络地址和mac地址分离

IP地址和MAC地址的作用不同

  1. IP地址是分层的
    1. 一个子网所有站点网络号一致,路由聚集,减少路由表
      1. 需要一个网络中的站点网络号一致,如果捆绑需要定制网卡非常麻烦
    2. 希望网络层地址是配置的:IP地址完成网络到网络的交付
  2. mac地址是一个平面的
    1. 网卡在生产时不知道被用于哪个网络,因此给网卡一个唯一的标示,用于区分一个网络内部不同的网卡即可
    2. 可以完成一个物理网络内部的节点到节点的数据交付

分离好处

  • 网卡坏了,ip不变,可以捆绑到另外一个网卡的mac上
  • 物理网络还可以除IP之外支持其他网络层协议,链路协议为上层网络协议,如IPX等

捆绑的问题

  • 如果仅仅使用IP地址,不是mac地址,那么它仅支持IP协议
  • 每次上电都要重新写入网卡IP地址
  • 另外一个选择就是不使用任何地址:不用MAC地址,则每到来一个帧都要上传到IP层次,由它判断是不是需要接受,干扰一次

LAN地址和ARP

  • 局域网上每个适配器都有一个唯一的LAN地址

  • MAC地址由IEEE管理和分配

  • 制造商购入MAC地址空间(保证唯一性)

  • 类比:

    • MAC地址:社会安全号
    • IP地址:通讯地址
  • MAC平面地址 -> 支持移动

    • 可以将网卡接到其他网络
  • IP地址有层次 - 不能移动

    • 依赖于节点连接的IP子网,与子网的网络号相同(有与其相连的子网相同的网络前缀)

ARP

问题:已知B的IP地址,如何确定B的MAC地址

  • 在LAN上的每个IP节点都有一个ARP表
  • ARP表:包括一些LAN节点IP/MAC地址的映射
    <TP address MAC address TTL>
    • TTL时间是指地址映射失效的时间
    • 典型是20min

路由到其他LAN

Walkthrough:发送数据报:由A通过R到B,假设A知道B的IP地址

  • 在R上有两个ARP表,分别对应两个LAN
  • 在源主机的路由表中,发现到目标主机的下一跳时111.111.111.110
  • 在源主机的ARP表中,发现其MAC地址是E6-E9-00-17-BB-4B,etc
编址:路由到其他LAN

以太网

  • 目前最流行的LAN技术:98%占有率
  • 廉价:30元RMB 100Mbps
  • 最早广泛应用的LAN技术
  • 比令牌网和ATM网络简单、廉价
  • 带宽不断提升:10M、100M、1G、10G

以太网:物理拓扑

  • 总线:在上个世纪90年代中期很流行
    • 所有节点在一个碰撞域内,依次只允许一个节点发送
    • 可靠性差,如果介质破损,截面形成信号的反射,发送节点认为是冲突,总是冲突
    • 星型:目前最主流
      • 连接选择:hub或者switch
      • 现在一般是交换机在中心
      • 每个节点以及相连的交换机端口使用(独立的)以太网协议(不会和其他节点的发送产生碰撞)

以太帧结构

发送方适配器在以太网帧中封装IP数据报,或其他网络层协议数据单元

前导码

  • 7B 10101010 + 1B 10101011
  • 用来同步接收方和发送方的时钟速率
    • 使得接收方将自己的时钟调到发送端的时钟
    • 从而可以按照发送端的时钟来接收所发送的帧

地址:6字节源MAC地址,目标MAC地址

  • 如:帧目标地址 = 本站MAC地址,或是广播地址,接收,递交帧中的数据到网络层
  • 否则,适配器忽略该帧

类型:指出高层协议(大多情况下是IP,但也支持其他网络层协议Novell IPX和Apple Talk)

CRC:在接收方校检

  • 如果没有通过校检,丢弃错误帧

以太网:无连接、不可靠的服务

  • 无连接:帧传输前,发送方和接收方之间没有握手
  • 不可靠:接收方适配器不发送ACKs或NAKs给发送方
    • 递交给网络层的数据报流可能有gap
    • 如上层使用像传输层TCP协议这样的rdt,gap会被补上(源主机,TCP实体)
    • 否则,应用层会看到gap
  • 以太网的MAC协议:采用二进制退避的CSMA/CD介质访问控制形式

以太网标准:链路层和物理层

  • 很多不同的以太网标准
    • 相同的MAC协议(介质访问控制)和帧结构
    • 不同的速率:2 Mbps、10 Mbps、100 Mbps、1Gbps、10Gbps
    • 不同的物理层标准
    • 不同的物理层媒介:光纤,同轴电缆和双绞线

以太网使用CSMA/CD

  • 没有时隙
  • NIC如果侦听到其他NIC在发送就不发送:载波侦听(carrier sence)
  • 发送时,适配器当侦听到其他适配器在发送就放弃对当前帧的发送:冲突检测(collision detection)
  • 冲突后尝试重传,重传前适配器等待一个随机时间:随机访问(random access)

10BaseT and 100BaseT

  • 100Mbps速率也被称之为"fast ethernet"
  • T代表双绞线
  • 节点连接到HUB上:"star topology"物理上是星型
    • 逻辑上总线型,盒中总线
  • 节点和HUB间的最大距离是100m

Hubs

Hubs本质上是物理层的中继器

  • 从一个端口收,转发到所有其他端口
  • 速率一致
  • 没有帧的缓存
  • 在hub接口端没有CSMA/CD机制:适配器检测冲突
  • 提供网络管理服务

Manchester编码

  • 在10BaseT中使用
  • 每一个bit的位时中间有一个信号跳变
  • 允许在接收方和发送方节点之间进行时钟同步
    • 节点间不需要集中的和全局的时钟
  • 10Mbps,使用20M带宽,效率50%

千兆以太网

  • 采用标准的以太帧格式
  • 允许点对点链路和共享广播信道
  • 物理编码:8b10b编码
  • 在共享模式,继续使用CSMA/CA MAC技术,节点间需要较短距离以提高利用率
  • 交换模式:全双工千兆可用与点对点链路
    • 站点使用专用信道,基本不会冲突,效率高
    • 除非发往同一个目标点

Hub:集线器

  • 网段(LAN segments):可以允许一个站点发送的网络范围
    • 在一个碰撞域,同时只允许一个站点在发送
    • 如果有2个节点同时发送,则会碰撞
    • 通常有相同的词缀,比IP子网更详细的前缀
  • 所有以hub连到一起的站点处在一个网段,处在一个碰撞域
    • 骨干hub将所有网段连接到了一起
  • 通过hub可拓展节点之间的最大距离
  • 通过HUB,不能将10BaseT和100BaseT的网络连接到一起

交换机

  • 链路层设备:扮演主动角色(端口执行以太网协议)
    • 对帧进行存储和转发
    • 对于到来的帧,检查帧头,根据目标MAC地址进行选择性转发
    • 当帧需要向某个(些)网段进行转发,需要使用CSMA/CD进行接入控制
    • 通常一个交换机端口一个独立网段
  • 透明:主机对交换机的存在可以不关心
    • 通过交换机相连的各节点好像这些站点是直接相连的一样
    • 有MAC地址:无IP地址
  • 即插即用、自学习
    • 交换机无需配置

交换机:多路同时传输

  • 主机有一个专用和直接到交换机的连接
  • 交换机缓存到来的帧
  • 对每个帧进入链路使用以太网协议,没有碰撞:全双工
    • 每条链路都是一个独立的碰撞域
    • MAC协议在其中的作用弱化了
  • 交换:A - to - A' 和 B - to - B'可以同时传输,没有碰撞

交换机转发表

Q:交换机如何知道通过接口1到达A,通过接口5到达B'?

A:每个交换机都有一个交换表(switch table),每个表项:

  • 主机的MAC地址,到达该MAC经过的接口、时戳)
  • 比较像路由表

交换机:自学习

交换机通过学习得到哪些主机(mac地址)可以通过哪些端口到达

  • 当接收到帧,交换机学习到发送站点所在的端口(网段)
  • 记录发送方MAC地址/进入端口映射关系在交换表中

交换机:过滤/转发

当交换机接收到一个帧:

  • 记录进入链路,发送主机的MAC地址

  • 使用目标MAC地址对交换表进行索引

    //如果在转发表中找到了目标项
    if entry found for destination
    then{
    //如果目标MAC就是对应着进来的端口
    if dest on segment from which frame arrived //过滤
    //抛弃掉该帧
    then drop the frame
    //转发
    else forward the frame on interface indicated
    }
    //泛洪
    else found

交换机 vs. 路由器

  • 都是存储转发设备,但层次不同
    • 交换机:链路层设备(检查链路层头部)
    • 路由器:网络层设备(检查网络层的头部)
  • 都有转发表
    • 交换机:维护交换表,按照MAC地址转发
      • 执行过滤、自学习和生成树算法
      • 即插即用:二层设备,速率高
      • 执行生成树算法,限制广播帧的转发
      • ARP表项随着站点数量增多而增多
    • 路由器:维护路由表,执行路由算法
      • 路由算法能够避免环路,无需执行生成树算法,可以以各种拓扑构建网络
      • 对广播分组做限制
      • 不是即插即用的,配置网络地址(子网前缀)
      • 三层设备,速率低
相关推荐
丁总学Java10 小时前
ARM 架构(Advanced RISC Machine)精简指令集计算机(Reduced Instruction Set Computer)
arm开发·架构
.Ayang10 小时前
tomcat 后台部署 war 包 getshell
java·计算机网络·安全·web安全·网络安全·tomcat·网络攻击模型
云计算DevOps-韩老师13 小时前
【网络云计算】2024第48周-每日【2024/11/20】小测-理论题-计算机网络概述
计算机网络·网络设备
Hello Dam13 小时前
【计算机网络】物理层
计算机网络·物理层
_Power_Y15 小时前
计算机网络:应用层知识点概述及习题
计算机网络
co0t15 小时前
计算机网络(14)ip地址超详解
服务器·tcp/ip·计算机网络
C++忠实粉丝15 小时前
计算机网络socket编程(3)_UDP网络编程实现简单聊天室
linux·网络·c++·网络协议·计算机网络·udp
吃土少女古拉拉16 小时前
什么是计算机网络
计算机网络·学习笔记
C++忠实粉丝17 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
->yjy1 天前
计算机网络(第一章)
网络·计算机网络·php