当前位置: 首页 > news >正文

【计网笔记】以太网

经典以太网

总线拓扑

物理层

Manchester编码

数据链路层

MAC子层

MAC帧

DIX格式与IEEE802.3格式

  • IEEE802.3格式兼容DIX格式

  • 前导码(+帧开始定界符SOF)
    • 8字节
      • 前7字节均为0xAA
      • 第8字节为0xAB
    • 前7字节的Manchester编码将产生稳定方波,用于校准时钟周期
  • 目的地址
    • 6字节
    • 目的站的MAC地址
  • 源地址
    • 6字节
    • 发送站的MAC地址
  • 类型(仅DIX)/长度(仅IEEE802.3)
    • 2字节
    • 指定网络层协议或帧长度
    • 如果字段值小于等于0x0600(1536)时解释为IEEE的长度字段
      • 此时IEEE帧将在长度字段和数据字段之间加入LLC/SNAP头部用于指定类型
    • 反之解释为DIX的类型字段
      • 0x0800是IPv4协议
      • 0x86DD是IPv6协议
      • 此时DIX帧确定长度基于
        • 尾部12字节的帧间间隔IPG时间,连续传输的两帧之间亦有距离
        • Manchester编码每bit的固定跳变,无跳变则传输完成
  • 数据
    • 0~1500字节
    • 1500字节的长度是历史原因
      • IEEE的长度字段基于这一上界
    • 帧长度最大为8+1518字节
      • 8字节前导码
      • 6字节目的地址
      • 6字节源地址
      • 2字节类型/长度
      • 1500字节数据字段
      • 0字节填充
      • 4字节校验码
  • 填充
    • 0~46字节
    • 如果数据段不足46字节,填充段补足至46字节
      • 换言之,数据段+填充段>=46字节
      • 避免传输时间过短,防止CSMA/CD的冲突信号还没到该站就已经传输完成
    • 帧长度最小为8+64字节
      • 8字节前导码
      • 6字节目的地址
      • 6字节源地址
      • 2字节类型/长度
      • 0字节数据字段
      • 46字节填充
      • 4字节校验码
  • 校验和
    • 4字节
MAC地址

均为6字节

指定目的地址和源地址

  • 目的地址可以是一个地址组
  • 源地址只能是一个站点地址

  • 单播帧:一对一
  • 广播帧:一对局域网上全体
  • 多播帧:一对多

交换式以太网

除了经典以太网以外的包括快速以太网、千兆以太网等等的其他以太网

  • 从万兆以太网开始只支持全双工,无需CSMA/CD

设备

集线器

逻辑上和普通电缆无区别

集线器内站在同一冲突域内

  • 集线器内站共用带宽
  • 集线器内使用CSMA/CD控制

交换机

  • 以前叫网桥

连接LAN,划分冲突域

  • 交换机端口独占带宽

  • 直通式交换:交换机一旦看到帧的目的地址就开始转发,不看校验和
  • 存储转发式交换 :交换机完整收下帧后检查校验和,正确时才发送

泛洪算法

交换机维护一个记录MAC地址、端口号和时间戳的交换表,下电即清空

  • 交换机收到帧后,查看源地址,把源MAC地址和接收端口号存进表
  • 交换机在表中寻找目的地址,进而得出端口号
    • 在表中找到了目的地址
      • 对应发送端口号不是接收端口号,转发帧
      • 对应发送端口号是接收端口号,丢弃帧
    • 在表中没有找到目的地址,除收到帧的端口以外的所有端口都转发帧
      • 一旦有站点收到了信号,就把对应的MAC地址和端口号写进表
        • 后向学习算法
  • 表维护表项更新的时间戳
    • 定期删除过期表项

生成树网桥

网络拓扑结构可能成环,导致泛洪算法不停空转

  • 所有交换机统一一个交换机作为生成树树根
  • 以根为起点,生成最小生成树
  • 所有网桥关闭不属于最小生成树的链路

【2013-408】对于100Mbps的以太网交换机,当输出端口无排队,以直通交换(cut-through switching)方式转发一个以太网帧(不包括前导码)时,引入的转发延迟至少是(B)
A. 0us

B. 0.48us
C. 5.12us
D. 121.44us

不含前导码,只需看6字节目的地址,即48bits

【2014-408】某以太网拓扑及交换机当前转发表如下图所示,主机00-e1-d5-00-23-a1向主机00-e1-d5-00-23-c1发送1个数据帧,主机00-e1-d5-00-23-c1收到该帧后,向主机00-e1-d5-00-23-a1发送1个确认帧,交换机对这两个帧的转发端口分别是(B)

A. {3}和{1}
B. {2,3}和{1}
C. {2,3}和{1,2}

D. {1,2,3}和{1}

VLAN

交换机可以将一个LAN划分为多个VLAN

  • VLAN内可通过交换机广播
    • 广播不能跨VLAN
  • VLAN间用路由器转发

基于端口划分VLAN

交换机维护配置表,记录端口及对应的VLAN

  • 换言之,VLAN通过端口划分
  • 一个端口可能划分到多个VLAN中

基于MAC地址划分VLAN

站点的所属子网不随端口甚至交换机的改变而改变

按MAC地址划分为一些子网

基于IP地址

交换机可以访问到网络层的数据

可跨路由器和局域网扩展VLAN

【2015-408】下列关于交换机的叙述中,正确的是(A)
A. 以太网交换机本质上是一种多端口网桥

B. 通过交换机互连的一组工作站构成一个冲突域

C. 交换机每个端口所连网络构成一个独立的广播域

D. 以太网交换机可实现采用不同网络层协议的网络互联

【2016-408】若主机H2向主机H4发送1个数据帧,主机H4向主机H2立即发送一个确认帧,则除H4外,从物理层上能够收到该确认帧的主机还有(D)。

A. 仅H2
B. 仅H3
C. 仅H1、H2
D. 仅H2、H3

【2020-408】下图所示的网络中,冲突域和广播域的个数分别是(C)

A. 2,2
B. 2,4
C. 4,2
D. 4,4

【2023-912】下列哪种不是VLAN划分方式(C)
A. 基于端口
B. 基于MAC
C. 基于端口号
D. 网络地址

相关文章:

【计网笔记】以太网

经典以太网 总线拓扑 物理层 Manchester编码 数据链路层 MAC子层 MAC帧 DIX格式与IEEE802.3格式 IEEE802.3格式兼容DIX格式 前导码(帧开始定界符SOF) 8字节 前7字节均为0xAA第8字节为0xAB前7字节的Manchester编码将产生稳定方波,用于…...

Java 入门基础篇14 - java面向对象思想以及特性

学习目标: 一、目标 面向对象思想类和对象对象的创建和使用属性和方法封装 开始学习: 二、编程思想 2.1 什么是编程思想 做人有做人的原则,编程也有编程的原则。这些编程的原则,就叫做编程思想。 2.2 面向过程和面向对象 二…...

第15篇:网络架构优化与综合案例分析

目录 引言 15.1 网络性能优化的方法与工具 15.1.1 带宽管理与流量控制 15.1.2 负载均衡 15.1.3 缓存优化 15.2 网络故障的排查与解决 15.2.1 常用的网络故障排查工具 15.2.2 网络故障排查案例 15.3 网络安全架构的综合设计案例 15.3.1 企业网络安全架构的要求 15.3.…...

UI自动化测试实战

补充:Selenium主要用于Web页面的自动化测试,它可以模拟用户的各种操作,如点击、输入、滚动等,来测试网页的功能。而Appium是一个开源的移动端自动化测试工具。 一、自动化测试实战章节 自动化测试流程测试用例编写项目自动化测试…...

东方智者颜廷利:以哲学思想促进世界和谐与无私奉献

【本社讯】在全球化的今天,东方智慧与哲学思想正逐渐成为促进世界和谐与理解的重要力量。近日,祖籍齐鲁大地山东济南的东方智者颜廷利以其深邃的哲学思想和对人类社会的深刻洞察,引起了国际社会的广泛关注。 颜廷利,一位致力于哲学研究与实践的智者,他的思想跨越古今,融合了东…...

基于 springboot vue停车场管理系统 设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…...

如何验证ssl私钥和证书是否匹配?

从证书(CRT)文件提取公钥 openssl x509 -in server.crt -pubkey -noout | openssl sha256从证书签名请求(CSR)文件提取公钥 openssl req -in server.csr -pubkey -noout | openssl sha256从私钥(KEY)文件…...

MongoDB的基本操作

🌷数据库准备 🎈Mongoshell 1.在指定目录下创建mongodb文件夹、其子文件log和data以及mongodb.log cd /home/ubuntu mkdir -p mongodb/data mkdir -p mongodb/log touch mongodb/log/mongodb.log 执行mongodb命令启动mongdb服务 mongod --dbpath /h…...

spring mvc后端实现过程

文章目录 一、Spring mvc1、controller1.1、LoginController011.2、LoginController 2、service2.1、LoginService2.1、LoginInimplements 3、dao3.1、LoginMapper3.1、LoginMapper.xml 4、实体类 一、Spring mvc 1、controller 控制器层、处理用户的请求和响应, …...

102005

import os os.environ["CUDA_VISIBLE_DEVICES"] "0" # 设定使用的 GPUimport tensorflow as tf from dataset import generate_data import numpy as np from model import enhancednet# 检查 TensorFlow 是否可以识别 GPU gpus tf.config.list_physica…...

Cisco ACI环境给Leaf配置OOB带外管理IP方法

可以通过GUI 或CLI进行配置 通过CLI更简单,和配置传统交换机差不多, ACI中共有3大组件 APIC 控制器 SPINE 核心 LEAF 接入 下面我们将3种角色的带外IP配置方法都列出来 1 APIC配置带外IP This example shows how to configure out-of-band managemen…...

免费送源码:Java+B/S+MySQL springboot电影推荐系统 计算机毕业设计原创定制

摘 要 随着互联网与移动互联网迅速普及,网络上的电影娱乐信息数量相当庞大,人们对获取感兴趣的电影娱乐信息的需求越来越大,个性化的电影推荐系统成为一个热门。然而电影信息的表示相当复杂,己有的相似度计算方法与推荐算法都各有优势&#…...

数据清洗(脚本)

使用脚本清洗数据时,可以根据具体的数据问题选择编程语言,如Shell、Python、SQL等。这里我以 Python(Pandas库) 和 SQL 为例,演示如何通过脚本进行数据清洗。 1. 使用 Python(Pandas库) 进行数…...

jmeter中发送post请求遇到的问题

用jmeter发送post请求,把请求参数放在Body Data处,参数都写得正确,但没想到结果每次都报错,直接响应结果乱七八糟,改成用Parameters,反而不乱报错了。 上图 请求里如下 另外一些请求也是这样 这个响应结果也是错误的…...

Java中使用protobuf

一、简介 Protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化、反序列化。 Protocol Buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。 Protocol B…...

2020款Macbook Pro A2251无法充电无法开机定位及修复

问题背景 up主有一台2020年的Macbook Pro,带Touch Bar,16G512G,四核I5,型号A2251 应该是一周没充电了,之前还用的好好的,后来有一天出差想带上 打开没电,手头上有个小米的66W快充头&#xff0c…...

Spring Cloud --- 引入Gateway网关

引入Gateway网关 介绍 Spring Cloud Gateway 组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。 Spring Cloud Gateway 是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点 IP 端口信息,从…...

ESP32-C3实现定时器的启停(Arduino IDE)

1概述 ESP32-C3微控制器有多个定时器,这些定时器可用于各种用途,包括计时、生成PWM信号、测量输入信号的频率等。以下是ESP32-C3上可用的定时器资源: 两个硬件定时器: 定时器0:这是一个通用定时器,通常用于…...

centos升级g++使其支持c++17

centos升级g使其支持c17 升级g的原因现象原因 升级g方法更新镜像源yum升级g版本 总结 升级g的原因 现象 编译最新版本的jsoncpp报一下错误 jsontest.h:87:37: error: ‘hexfloat’ is not a member of ‘std’oss << std::setprecision(16) << std::hexfloat &l…...

Pytest日志收集器配置

前言 在pytest框架中&#xff0c;日志记录&#xff08;logging&#xff09;是一个强大的功能&#xff0c;它允许我们在测试期间记录信息、警告、错误等&#xff0c;从而帮助调试和监控测试进度。 pytest与Python标准库中的logging模块完美集成&#xff0c;因此你可以很容易地在…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

向量几何的二元性:叉乘模长与内积投影的深层联系

在数学与物理的空间世界中&#xff0c;向量运算构成了理解几何结构的基石。叉乘&#xff08;外积&#xff09;与点积&#xff08;内积&#xff09;作为向量代数的两大支柱&#xff0c;表面上呈现出截然不同的几何意义与代数形式&#xff0c;却在深层次上揭示了向量间相互作用的…...

算法250609 高精度

加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...

基于小程序老人监护管理系统源码数据库文档

摘 要 近年来&#xff0c;随着我国人口老龄化问题日益严重&#xff0c;独居和居住养老机构的的老年人数量越来越多。而随着老年人数量的逐步增长&#xff0c;随之而来的是日益突出的老年人问题&#xff0c;尤其是老年人的健康问题&#xff0c;尤其是老年人产生健康问题后&…...

Qt/C++学习系列之列表使用记录

Qt/C学习系列之列表使用记录 前言列表的初始化界面初始化设置名称获取简单设置 单元格存储总结 前言 列表的使用主要基于QTableWidget控件&#xff0c;同步使用QTableWidgetItem进行单元格的设置&#xff0c;最后可以使用QAxObject进行单元格的数据读出将数据进行存储。接下来…...