DE102021117755A1 - Schutz vor netzwerk-initiierten angriffen - Google Patents

Schutz vor netzwerk-initiierten angriffen Download PDF

Info

Publication number
DE102021117755A1
DE102021117755A1 DE102021117755.3A DE102021117755A DE102021117755A1 DE 102021117755 A1 DE102021117755 A1 DE 102021117755A1 DE 102021117755 A DE102021117755 A DE 102021117755A DE 102021117755 A1 DE102021117755 A1 DE 102021117755A1
Authority
DE
Germany
Prior art keywords
processor
operating frequency
packet
peripheral device
packet fragments
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021117755.3A
Other languages
English (en)
Inventor
Amruta MISRA
John J. Browne
Chris Macnamara
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102021117755A1 publication Critical patent/DE102021117755A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Hierin beschriebene Beispiele betreffen ein Rechensystem, das eine Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf Erfassung eines Verkehrsverstoßes ändert. Bei einigen Beispielen wird eine Betriebsfrequenz einer Peripherievorrichtungsschnittstelle basierend auf Erfassung eines Verkehrsverstoßes reduziert. Bei einigen Beispielen können IP-Paketfragmente eines oder mehrere der Folgenden beinhalten: IP-Paketfragmente, die unvollständige Pakete sind, IP-Paketfragmente, die zu klein sind, IP-Paketfragmente, die zu übermäßigen Paketen führen, oder IP-Paketfragmentierungspuffer, der voll ist. Bei einigen Beispielen basiert das Erfassen eines Verkehrsverstoßes auf dem Erfassen von IP-Paketfragmenten an einem oder mehreren der Folgenden: einer Netzwerkanwendung, der Netzwerkschnittstellenkarte, dem Uncore, dem Systemagenten, dem Betriebssystem, der Anwendung oder einer Rechenplattform. Bei einigen Beispielen beinhaltet die Peripherievorrichtungsschnittstelle eines oder mehrere der Folgenden: einen Systemagenten, einen Uncore, einen Bus, eine Vorrichtungsschnittstelle und einen Cache. Bei einigen Beispielen ist die Peripherievorrichtungsschnittstelle Teil eines System-on-Chip (SoC), und das SoC beinhaltet auch eines oder mehrere der Folgenden: einen Kern, einen Systemagenten oder einen Uncore.

Description

  • Netzwerkfunktionen (Network Functions - NF) und virtuelle Netzwerkfunktionen (Virtual Network Functions - VNFs), die Hochgeschwindigkeitsdatenebenen- und Signalisierungsverarbeitung ausführen, können mit Netzwerkverkehr geflutet werden, was bewirkt, dass die VNF überlastet wird und bewirkt, dass die virtualisierten Anwendungen überlastet und reaktionlos werden. Quellen von Netzwerk-Flooding können Signalisierungsstürme, die in dem Netzwerk erzeugt werden, beinhalten. Hohe Rechenressourcen werden benötigt, um den Signalisierungssturm zu verarbeiten, was bewirken kann, dass die Prozessoren überlastet und zum Ausführen anderer Arbeiten unverfügbar werden. Einige Quellen von Netzwerk-Flooding können bösartige Netzwerkangriffsvektoren beinhalten, die Denial-of-Service-Angriffe (DoS-Angriffe) beinhalten, die Fragmentangriffe und pufferbasierte Angriffen sowie verteilte Versionen dieser Angriffstypen (zum Beispiel Distributed Denial-of-Service (DDoS)) verwenden.
  • Figurenliste
    • 1 bildet ein beispielhaftes System ab.
    • 2 bildet ein beispielhaftes System ab.
    • 3A bildet ein beispielhaftes System ab.
    • 3B bildet eine beispielhafte Pipeline zur Paketfilterung nach Paketfragmenten ab.
    • 4 bildet einen beispielhaften Prozess ab.
    • 5A bildet einen beispielhaften Prozess ab.
    • 5B bildet Beispiele für Arten des Modifizierens der Betriebsfrequenz eines Uncore oder Systemagenten ab.
    • 6 bildet ein System ab.
    • 7 bildet eine beispielhafte Umgebung ab.
    • 8 bildet eine beispielhafte Netzwerkschnittstelle ab.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Bei einigen Lösungen wird in Verbindung mit einem Überlaufen empfangener Pakete erlaubt, dass Empfangswarteschlangen, die von einer Zentraleinheit (CPU) verarbeitet werden, voll werden, und die CPU kann die Pakete verarbeiten. Pakete können in einigen Fällen verworfen oder blockiert werden, oder Eingangsports einer Eingabe-/AusgabeVorrichtung (E/A-Vorrichtung) können deaktiviert werden, um den Empfang von mehr Verkehr zu verhindern. Bei einigen Lösungen können Zugangssteuerlisten-Richtlinien (Access Control List - ACL) in einer Netzwerkschnittstellenkarte (Network Interface Card - NIC) oder in einer Host-Software angewandt werden. Zusätzliche Prozessorressourcen sind jedoch möglicherweise nicht verfügbar, um empfangene Pakete zu verarbeiten oder ACL anzuwenden, wenn eine schwere Überlastung auftritt. Zusätzlich dazu kann wahlloses Verwerfen von Paketen mit hoher Priorität (zum Beispiel Failover-Protokollverkehr, Routingtabellenaktualisierungen, Heartbeats) aufgrund des Timing-Fensters zwischen dem Zeitpunkt, zu dem eine Überlastung erfasst wird, und dem Zeitpunkt, zu dem die Verwerfungsrichtlinie angewandt wird, auftreten.
  • Im Fall eines Netzwerksicherheitsangriffs zielen bösartige Eingaben auf eine Anwendung oder einen Dienst ab. Die Angreifer können eine Anwendung oder Maschine unterbrechen und die Kontrolle darüber gewinnen. Nach einem erfolgreichen Exploit kann der Angreifer die Zielanwendung deaktivieren (was zu einem Dienstverweigerungszustand führt), physische Ports oder virtuelle Ports in dem Fall eines Routers oder Switches deaktivieren, Ressourcen, wie etwa Speicherpuffer, erschöpfen, Warteschlangentiefen überschreiten oder potenziell auf alle Rechte und Genehmigungen, die für die kompromittierte Anwendung verfügbar sind, zugreifen.
  • Eine Netzwerkanwendung oder Software, wie etwa ein Intrusion Prevention System (IPS), untersucht Netzwerkverkehrsflüsse, um Schwachstellen für Exploits zu erfassen und zu verhindern. Das IPS kann in einem Kommunikationspfad zwischen einer Quelle und einem Ziel ausgeführt werden, und das IPS kann empfangene Pakete aktiv analysieren und automatisierte Aktionen auf allen Verkehrsflüssen, die in das Netzwerk eintreten, vornehmen. In einem Fall eines erfassten bösartigen Angriffs kann unabhängige Nachrichtenübermittlung verwendet werden, um einen Alarm zu einem Rechenzentrum-Administrator zu senden. In Verbindung mit CPU-Überlastung kann das IPS die als bösartig betrachteten Pakete fallen lassen, Verkehr von der Quelladresse blockieren oder eine Verbindung mit einer Quelle oder einem Sender zurücksetzen. Der System-Administrator kann gezwungen sein, das System herunterzufahren, falls Abschwächungsmaßnahmen erfolglos sind oder zu inakzeptablen Ergebnissen führen. Die Abschwächungshandlungen führen jedoch zu einer Verschlechterung der Netzwerkleistung, einem Stocken des Systems und reagieren möglicherweise nicht frühzeitig genug auf Echtzeitaktivität.
  • Verschiedene Ausführungsformen versuchen, eine Flut empfangener Pakete durch Modifizieren der Uncore- oder Systemagentenfrequenz als eine Überlastungssteuervorrichtung an dem Eintrittspunkt von Paketen zur Verarbeitung durch einen Prozessor zu beheben. In einem Fall eines Flooding empfangener Pakete, kann zum Beispiel Leistung oder Frequenz, die dem Uncore oder Systemagenten zugeordnet sind, reduziert werden, und optional kann zusätzliche Leistung oder Frequenz für CPU-Kerne verfügbar gemacht werden, um Pakete, wie etwa einen Rückstand von Paketen, zu verarbeiten. Bei einigen Ausführungsformen kann ein Uncore oder Systemagent eine Vorrichtungsschnittstelle zwischen einem oder mehreren CPU-Kernen und einer Netzwerkschnittstellenkarte bereitstellen. Das Reduzieren einer Betriebsfrequenz des Uncore oder Systemagenten kann eine Rate reduzieren, mit der empfangene Pakete von einer Netzwerkschnittstellenkarte (NIC) zu einem Cache oder einem anderen Speicher zur Verarbeitung durch einen CPU-Kern oder andere Vorrichtungen (zum Beispiel Beschleuniger oder Grafikverarbeitungseinheit (GPU)) kopiert oder transferiert werden. Beispielsweise kann eine NIC oder eine andere Schnittstelle mit CPU-Kernen über den Uncore oder Systemagenten unter Verwenden einer beliebigen Version von Peripheral Component Interconnect Express-Schnittstellen (PCIe-Schnittstellen) verbunden sein. Das Verlangsamen einer Uncore- oder Systemagentenfrequenz kann eine Rate verlangsamen, mit der empfangene Pakete von der NIC kopiert werden, kann aber eine Paketübertragungsrate verlangsamen. In Fällen, in denen Paket-Flooding reduziert wird oder ein Prozessor das Paket-Flooding angemessen handhaben kann, kann die Uncore- oder Systemagenten-Betriebsfrequenz auf ein höheres Niveau, aber niedriger als seine Standardfrequenz oder als eine Standardfrequenz erhöht werden. Verschiedene Ausführungsformen können verwendet werden, um zusätzlichen Schutz vor Angriffen unter Verwenden von DDoS-Angriffen in einem 5G-Netzwerkkern bereitzustellen und CPU-Verfügbarkeit während netzwerkbasierter Angriffe zu begrenzen und aufrechtzuerhalten.
  • Bei einigen Beispielen kann eine Betriebsfrequenz eines Uncore oder Systemagenten unter Verwenden eines Registers (zum Beispiel eines modellspezifischen Registers (MSR)) eingestellt werden. Zum Beispiel kann eine Leistungsmanagementsteuervorrichtung (zum Beispiel Firmware) eine Betriebsfrequenz des Uncore oder Systemagenten anpassen. Falls das Reduzieren der Betriebsfrequenz des Uncore oder Systemagenten eine Menge für die Kerne verfügbarer Leistung erhöht oder verfügbarer Leistung vorhanden ist, um einem oder mehreren Kernen bereitgestellt zu werden, kann die Leistungsmanagementsteuervorrichtung die Leistung, die Kernen zugeordnet wird, erhöhen. Zum Beispiel kann ein IPS die Leistungsmanagementsteuervorrichtung auffordern, eine Betriebsfrequenz des Uncore oder Systemagenten zu reduzieren.
  • 1 zeigt einen beispielhaften Pfad des Netzwerkverkehrs von einer Netzwerkschnittstellenkarte (NIC) zu Kernen. Im System 100 kann ein an der NIC 102 empfangenes Netzwerkpaket unter Verwenden einer Nachrichtentransaktion zwischen Uncore 104 und NIC 102 vor der Verarbeitung durch die Kerne 120 gesendet werden. Nachrichtentransaktionen zwischen der NIC 102 und den Kernen 120 können Komponenten des Uncore 104 verwenden. Uncore 104 kann Schaltungen außerhalb der CPU-Kerne 120 beinhalten, die sich aber auf demselben Die befinden, wie etwa L3-Cache, integrierte Speichersteuervorrichtung, UltraPath-Interconnect (UPI) und ein Interconnect-Mesh.
  • Wenn zum Beispiel eine PCIe-Schnittstelle verwendet wird, kann die PCIe-Schnittstelle 106 Kommunikationen empfangener Pakete von der NIC 102 mindestens zu dem Last-Level-Cache (LLC) und dem Caching- and Home-Agenten (CHA) 108 bereitstellen. Es wird angemerkt, dass LLC und CHA integrierte oder separate Bauelemente sein können. Der CHA kann als lokale Kohärenz- und Cache-Steuervorrichtung dienen und als Kohärenz und Schnittstelle zur Speichersteuervorrichtung 110 dienen. Bei einigen Ausführungsformen kann CHA-Koppeln an den LLC und CHA versuchen, Cache-Kohärenz zwischen unterschiedlichen Speicher- und Cache-Vorrichtungen in anderen Clustern oder CPU-Sockeln aufrechtzuerhalten. Zum Beispiel kann ein Kern eine Speicherzugriffsanforderung an seinen CHA senden, und der CHA kann Daten aus seinem Cache-Slice bereitstellen oder eine Kopie von Daten aus dem Cache eines anderen Kerns erhalten.
  • Verschiedene Ausführungsformen erfassen Paket-Flooding, und um Überlastung der Nutzung der Kerne 120 und des LLC und CHA 108 zu verhindern oder abzuschwächen, können verschiedene Ausführungsformen eine Uncore-Frequenz reduzieren, um eine Überlastung an einem Eintrittspunkt von Paketen von der NIC 102 zur Verarbeitung durch die Kerne 120 zu verwalten. Als Reaktion auf die Erfassung eines möglichen Paket-Flooding kann ein IPS (nicht gezeigt) zum Beispiel die Leistungssteuervorrichtung 140 auffordern, eine Betriebsfrequenz des Uncore 104 zu reduzieren. Bei einigen Beispielen kann die Leistungssteuervorrichtung 140 eine Betriebsfrequenz eines beliebigen der Kerne 120 erhöhen, falls ein Leistungsbudget verfügbar ist, um einen Rückstand von Paketen zu verarbeiten.
  • Bei einigen Beispielen kann jeder der Kerne 120 eine Anwendung, Arbeitslast oder Software ausführen, die eine Paketverarbeitung basierend auf einem oder mehreren von Data Plane Development Kit (DPDK), Storage Performance Development Kit (SPDK), OpenDataPlane, Network Function Virtualisierung (NFV), Software-definiertem Networking (SDN), Evolved Packet Core (EPC) oder 5G-Netzwerk-Slicing ausführt. Einige beispielhafte Umsetzungen von NFV sind in ETSI-Spezifikationen (Spezifikationen des ETSI - European Telecommunications Standards Institute) oder Open-Source-NFV-Management and - Orchestration (Open Source NFV Management and Orchestrations - MANO) der Open-Source-Mano-Gruppe (OSM-Gruppe) von ETSI's beschrieben. Eine virtuelle Netzwerkfunktion (VNF) kann eine Dienstkette oder Folge virtualisierter Aufgaben beinhalten, die auf generischer konfigurierbarer Hardware, wie Firewalls, Domain-Namen-System (Domain Name System - DNS), Caching oder Netzwerkadressenübersetzung (Network Address Translation - NAT), ausgeführt werden, und kann in virtualisierten Ausführungsumgebungen (Virtualized Execution Environments - VEEs) (zum Beispiel in Containern oder virtuellen Maschinen) laufen. VNFs können als eine Dienstkette miteinander verknüpft sein. Bei einigen Beispielen ist das EPC eine 3GPP-spezifizierte Kernarchitektur mindestens für Long-Term-Evolution-Zugriff (LTE-Zugriff). 5G-Netzwerk-Slicing kann ein Multiplexen virtualisierter und unabhängiger logischer Netzwerke auf derselben physischen Netzwerkinfrastruktur bereitstellen. Einige Anwendungen können Videoverarbeitung oder Medientranscodierung ausführen (zum Beispiel Ändern der Codieren von Audio-, Bild- oder Videodateien).
  • 2 bildet ein beispielhaftes System ab. Das System 200 bildet ein beispielhaftes Layout von Schnittstellen (zum Beispiel UPI und PCIe) mit LLC / CHA (zum Beispiel Uncore) und Kernen sowie Speichersteuervorrichtung (Memory Controller - MC) ab. Ein Mesh kann verwendet werden, um Konnektivität zwischen verschiedenen Vorrichtungen des Systems 200 bereitzustellen. Ein beliebiges Layout von Schnittstellen, Uncore und Kernen kann verwendet werden, und eine beliebige Anzahl von Schnittstellen, Uncores, Kernen und MC kann verwendet werden.
  • 3A bildet ein beispielhaftes System ab. Bei diesem Beispiel können die Netzwerkelemente 302-0 bis 302-N (wobei N eine ganze Zahl ist und 1 oder mehr ist) unter Verwenden der Netzwerkschnittstelle 308 über die Verbindung 304 kommunikativ mit dem Server 310 gekoppelt sein. Beliebige der Netzwerkelemente 302-0 bis 302-N und der Netzwerkschnittstelle 308 können eine Netzwerkschnittstelle (zum Beispiel eine Netzwerkschnittstellenkarte oder Netzwerkschnittstellensteuervorrichtung), eine Busschnittstelle, eine Fabric-Schnittstelle, einen Switch, einen Router, ein Weiterleitungselement und so weiter) beinhalten. Die Verbindung 304 kann zumindest mit einem beliebigen Networking- oder Kommunikationsstandard kompatibel sein, einschließlich Ethernet, InfiniBand, Compute Express Link (CXL), HyperTransport, einer beliebigen Hochgeschwindigkeitsstruktur, PCIe, NVLink, Advanced Microcontroller Bus Architecture-Interconnect (AMBA-Interconnect, OpenCAPI, Gen-Z, CCIX, Intel@ QuickPath Interconnect (QPI), Intel@ Ultra Path Interconnect (UPI), Intel@ On-Chip System Fabric (IOSF), Omnipath und so weiter. Der Server 310 kann eine beliebige Rechenplattform betreffen, wie etwa einen Server, ein Rack, einen Edge-Rechenknoten oder ein Rechenzentrum.
  • Bei einigen Beispielen untersucht das Eindringerfassungssystem 350 Netzwerkverkehrsflüsse, um Schwachstellen für Exploits oder andere Bemühungen, die Netzwerkschnittstelle 308 oder die Kerne 316 mit zu verarbeitenden Paketen zu überfluten, zu erfassen. Das Eindringerfassungssystem 350 kann vor kritischen Networking-Infrastrukturen vor Denial-Of-Service-Angriffen (DoS-Angriffen) und verteilten Denial-Of-Service-Angriffen (DDoS-Angriffen) basierend auf fragmentierten Paketen schützen, wodurch Betriebszeit- und Netzwerkdienste-Level-Agreements (SLAs) verbessert werden. Beispielsweise kann das Eindringerfassungssystem 350 mindestens die folgenden Angriffstypen erfassen und versuchen, vor diesen zu schützen: Tiny-Fragment-Angriff, Pufferüberlaufangriff oder Angriff mit Überlappungsfragment.
  • Ein Tiny-Fragment-Angriff kann involvieren, dass ein Angreifer oder Sender eine Fragmentgröße einstellt, die klein genug ist, um Schicht-4-Header-Felder (zum Beispiel TCP und UDP-Header-Felder in ein zweites Fragment zu zwingen. Ein Pufferüberlaufangriff kann ein Denial-of-Service-Angriff (DoS-Angriff) sein, bei dem der Angreifer oder Sender kontinuierlich eine große Anzahl unvollständiger IP-Fragmente senden kann, um Zeit und Speicher zu verbrauchen, weil der Server 310 versucht, die Fake-Pakete wieder zusammenzusetzen. Ein Überlappungsfragmentangriff kann beinhalten, dass ein Angreifer oder Sender das Fragment-Offset in nicht anfänglichen IP-Fragmentpaketen derart überschreibt, dass, wenn die Weiterleitungsebene die IP-Fragmente wieder zusammenfügt, sie falsche IP-Pakete erzeugen könnte, was bewirkt, dass der Speicher überläuft oder das System erneut lädt.
  • Beispielsweise bespricht RFC 1858 (1995) Sicherheitsbetrachtungen für IP-Fragmentfilterung und hebt zwei Angriffe auf Hosts hervor, die IP-Fragmente von TCP-Fragmenten involvieren: der Tiny-Fragment-Angriff und der Überlappungfragment-Angriff. Das Blockieren dieser Angriffe ist wünschenswert, weil sie einen Host kompromittieren oder alle seine internen Ressourcen belegen können. RFC 1858 beschreibt auch zwei Verfahren zur Abwehr dieser Angriffe, das direkte und das indirekte. Bei dem direkten Verfahren werden anfängliche Fragmente, die kleiner als eine Mindestlänge sind, verworfen. Bei dem indirekten Verfahren wird das zweite Fragment eines Fragmentsatzes verworfen, falls es 8 Byte in das ursprüngliche IP-Datagramm startet.
  • Das Eindringerfassungssystem 350 kann IP-Filterregeln vor der Fragmentverarbeitung anwenden (zum Beispiel auf das OS). Bei erfassten Tiny Fragment kann das Eindringerfassungssystem 350 das Paket fallen lassen. Bei einem erfassten Überlappungsfragment-Angriff kann das Eindringerfassungssystem 350 alle Fragmente innerhalb einer Fragmentkette fallen lassen, falls ein Überlappungsfragment erfasst wird.
  • Um einen Pufferüberlaufangriff zu erfassen, kann das Eindringerfassungssystem 350 eine maximalen Schwellenwert für die Anzahl von IP-Datagrammen, die neu zusammengesetzt werden, und die Anzahl von Fragmenten pro Datagramm verfolgen und Folgendes ausführen: (1) wenn die maximale Anzahl von Fragmenten pro Datagramm erreicht ist, Fallenlassen nachfolgender Fragmente und Erhöhen des globalen Statistikzählers um eins; (2) zusätzlich zu einem maximalen Schwellenwert, der konfiguriert wird, Zuordnen zu einem verwalteten Timer jedes IP-Datagramms; (3) falls das IP-Datagramm nicht alle Fragmente innerhalb der spezifizierten Zeit empfängt, Ablaufen des Timers und Fallenlassen des IP-Datagramms und aller seiner Fragmente; (4) wenn die maximale Anzahl von Datagrammen, die zu einer gegebenen Zeit wieder zusammengesetzt werden können, erreicht ist, Fallenlassen aller nachfolgenden Fragmente und Erhöhen des globalen STATISTIKZÄHLERS um eins.
  • Bei einigen Beispielen kann das Eindringerfassungssystem 350 in einem einer Netzwerkvorrichtung 306, einer Netzwerkschnittstelle 308 und/oder eines Server 310 (zum Beispiel Betriebssystem, Anwendung oder Kernschnittstelle 314) ausgeführt werden. Zum Beispiel kann die Netzwerkanwendung 306 Pakete von der Verbindung 304, die an die Netzwerkschnittstelle 308 weitergeleitet werden sollen, empfangen. Bei einigen Beispielen kann die Netzwerkanwendung 306 das Eindringerfassungssystem 350 ausführen, um DoS- oder DDoS-Angriffe zu erfassen, die für die Netzwerkschnittstelle 308 oder den Server 310 bestimmt sind, und versuchen, einen Paketüberlauf, der aus Angriffen an der Netzwerkschnittstelle 308 und dem Server 310 hervorgeht, abzuschwächen.
  • Bei einigen Beispielen kann das Eindringerfassungssystem 350 eine Zugriffssteuerliste (ACL) durchsetzen, um Pakete, die mit bestimmten Flüssen assoziiert sind, die als bösartig angesehen werden, zu verwerfen. Ein Fluss kann eine Folge von Paketen sein, die zwischen zwei Endpunkten transferiert werden, die im Allgemeinen eine einzige Sitzung unter Verwenden eines bekannten Protokolls darstellen. Dementsprechend kann ein Fluss durch einen Satz definierter N Tupel identifiziert werden, und zu Routingzwecken kann ein Fluss durch Tupel identifiziert werden, die Endpunkte, zum Beispiel die Quell- und Zieladressen, identifizieren. Für inhaltsbasierte Dienste (zum Beispiel Load Balancer, Firewall, Eindringerfassungssystem usw.) können Flüsse mit einer feineren Granularität identifiziert werden, indem fünf oder mehr Tupel (zum Beispiel Quelladresse, Zieladresse, IP-Protokoll, Transportschicht-Quellport und Zielport) verwendet werden. Es wird erwartet, dass ein Paket in einem Fluss denselben Satz von Tupeln in dem Paket-Header aufweist.
  • Gemäß verschiedenen Ausführungsformen kann das Eindringerfassungssystem 350 (zum Beispiel IPS) als Reaktion auf die Erfassung eines Eindringversuchs eine Frequenzänderungsbekanntgabe, ein Flag, einen Indikator oder eine Nachricht an das Leistungsmanagement 312 ausgeben, um eine Anpassung einer Frequenz der Kernschnittstelle 314 zwischen einer Netzwerkschnittstelle 314 und einem Kern 316 anzufordern. Zum Beispiel kann die Kernschnittstelle 314 einen Uncore oder Systemagenten beinhalten, der eine Schnittstelle zwischen der Netzwerkschnittstelle 308 und den Kernen 316 bereitstellt. Bei einigen Beispielen kann der Uncore oder Systemagent eine Busschnittstelle (zum Beispiel PCIe), einen Cache und einen Caching- und Home-Agenten beinhalten. In einem Fall einer Erfassung einer Schwachstelle, die von dem Eindringerfassungssystem 350 identifiziert wird, kann das Eindringerfassungssystem 350 das Leistungsmanagement 312 auffordern, die Betriebsfrequenz der Kernschnittstelle 314 als ein Gate zum Steuern der Nachrichtenübermittlungsgeschwindigkeit zwischen der Netzwerkschnittstelle 308 und den Kernen 316 zu reduzieren. Zum Beispiel kann das Senken der Betriebsfrequenz des Uncore den Server 310 und die Kerne 316 vor Überlastung durch empfangene Nachrichten schützen und Nachrichtentransfers zwischen den Kernen 316 und der Netzwerkschnittstelle 308 verlangsamen.
  • In Szenarien, bei denen das Eindringerfassungssystem 350 erfasst, dass ein Angriff (zum Beispiel DoS oder DDoS) für einen bestimmten Fluss oder bestimmte Flüsse abgeklungen ist, kann das Eindringerfassungssystem 350 das Leistungsmanagement 312 informieren, eine Frequenz der Kernschnittstelle 314 über eine Frequenzänderungsnachricht, eine Frequenzänderungskennung oder ein Flag zu erhöhen. Falls erfasst wird, dass eine Schwachstelle nicht mehr aktiv ist, kann das Eindringerfassungssystem 350 versuchen, eine Betriebsfrequenz der Kernschnittstelle 314 schrittweise oder auf ein vorheriges Frequenzniveau zu erhöhen. Zum Beispiel kann die Betriebsfrequenz der Kernschnittstelle 314 erhöht werden, falls das Eindringerfassungssystem 350 erfasst, dass die CPU die Verarbeitung der Pakete in dem Rückstand abschließt. Als Reaktion auf die Anforderung, die Frequenz der Kernschnittstelle 314 zu erhöhen, kann das Leistungsmanagement 312 versuchen, eine Frequenz eines Kerns zu verringern, falls kein Leistungsbudget mit einer Frequenzerhöhung der Kernschnittstelle 314 verfügbar ist. Es wird angemerkt, dass das Leistungsmanagement 312 Leistung einstellen (zum Beispiel erhöhen oder verringern) kann, die für andere Vorrichtungen als Kerne, wie etwa Beschleuniger, Medienprozessoren, Video-Offload-Engine, Entschlüsselungs-/Verschlüsselungs-Offload-Engines, Netzwerkschnittstellenkarten, Grafikverarbeitungseinheiten (GPUs) und so weiter verfügbar ist.
  • Bei einigen Beispielen können die Kernschnittstelle 314 und die Kerne 316 auf getrennten variablen Spannungs- und Frequenzdomänen arbeiten. Dies ermöglicht es dem System, alle Vorteile einer variablen Uncore-Domäne zu nutzen, während eine verbesserte Leistungseffizienz erlaubt wird. Für ein gegebenes Leistungsbudget kann das Absenken der Frequenz der Kernschnittstelle 314 zusätzliche Reserve für eine höhere Betriebsfrequenz der Kerne 316 erlauben. Eine höhere Kernfrequenz kann dabei helfen, präventive Handlungen, die von dem Eindringerfassungssystem 350 oder einem Betriebssystem (OS) vorgeschrieben werden, auszuführen.
  • Bei einigen Beispielen kann ein Kern ein Ausführungskern oder eine Rechen-Engine sein, der/die in der Lage ist, Anweisungen auszuführen. Ein Kern kann Zugriff auf seinen eigenen Cache und Nurlesespeicher (ROM) aufweisen, oder mehrere Kerne können einen Cache oder ROM gemeinsam nutzen. Kerne können homogene und/oder heterogene Vorrichtungen sein. Eine beliebige Art von Interprozessorkommunikationstechniken kann verwendet werden, wie etwa unter anderem Messaging, Interprozessor-Interrupts (IPI), Interprozessorkommunikationen und so weiter. Kerne können auf eine beliebige Art und Weise verbunden sein, wie etwa, ohne darauf beschränkt zu sein, Bus, Ring oder Mesh.
  • Bei einigen Beispielen kann ein Uncore oder Systemagent eine Speichersteuerung, einen gemeinsam genutzten Cache (zum Beispiel LLC), einen Cache-Kohärenzmanager, arithmetische Logikeinheiten, Gleitkommaeinheiten, Kern- oder Prozessor-Interconnects oder Bus- oder Linksteuervorrichtungen (zum Beispiel PCIe-Schnittstelle) oder mehr beinhalten. Der Systemagent kann eines oder mehrere der Folgenden bereitstellen: Direktspeicherzugriff -Maschinenverbindung (DMA-Maschinenverbindung), nicht zwischengespeicherte kohärente Masterverbindung, Daten-Cache-Kohärenz zwischen Kernen und kann Cache-Anforderungen oder Advanced-Microcontroller-Bus-Architecture-Fähigkeiten (AMBA-Fähigkeiten) entscheiden.
  • Bei einigen Beispielen kann das Leistungsmanagement 312 die Betriebsfrequenz der Kerne 316, der Kernschnittstelle 314 und anderer Vorrichtungen unabhängig anpassen, indem Werte in Registern, wie etwa modellspezifischen Registern (Model Specific Registers - MSR), eingestellt werden. MSR können zum Beispiel Steuerregister beinhalten, die zur Programmausführungsverfolgung, zum Umschalten zwischen Rechenmerkmalen und/oder zur Leistungsfähigkeitsüberwachung verwendet werden. Die MSR eines oder mehrerer der Folgenden können beinhalten: Speicherreihenfolgepuffersteuerung (MOB-Steuerung) und Status; Seitenfehler-Fehlercodes; Löschen von Seitenverzeichnis-Cache- und Übersetzungspuffer-Einträgen (TLB-Einträgen); Steuern der verschiedenen Cache-Speicher in der Cache-Hierarchie des Mikroprozessors, wie zum Beispiel Deaktivieren von Abschnitten oder dem gesamten Cache, Entfernen von Leistung aus Abschnitten oder dem gesamten Cache und Ungültigmachen von Cache-Tags; Microcode-Patch-Mechanismus-Steuerung; Debug-Steuerung; Prozessorbussteuerung; Hardwaredaten- und Anweisungs-Vorabrufsteuerung; Leistungsmanagementsteuerung, wie etwa Schlaf- und Wecksteuerung, Zustandsübergänge, wie sie durch Advanced-Configuration- and Power-Interface-Industriestandards (ACPI-Industriestandards) (zum Beispiel P-Zustände und C-Zustände) definiert sind, und Deaktivieren von Takten oder Leistung zu verschiedenen Funktionsblöcken; Steuern und Status der Anweisungszusammenführung; Fehlerkorrekturcode-Speicherfehlerstatus (ECC-Speicheranweisungsstatus); Busparitätsfehlerstatus; Steuern und Status des thermischen Managements; Steuern und Status des Service-Prozessors; Inter-Core-Kommunikation; Inter-Chip-Kommunikation; Funktionen im Zusammenhang auf Sicherungen des Mikroprozessors; Spannungsregler-Modulspannungsidentifikatorsteuerung; Phasenregelschleifensteuerung (PLL-Steuerung); Cache-Snoop-Steuerung; Schreibkombinationspuffersteuerung und -status; Übertaktungsmerkmalsteuerung; Interrupt-Steuervorrichtungssteuerung und -status; Temperatursensorsteuerung und -status; Aktivieren und Deaktivieren verschiedener Merkmale, wie etwa Verschlüsselung/Entschlüsselung, MSR-Passwortschutz, Ausführen paralleler Anforderungen an den L2-Cache und den Prozessorbus, individuelle Verzweigungsvorhersagemerkmale, Anweisungszusammenführung, Mikroanweisungs-Timeout, Leistungszähler, Speicherweiterleitung und spekulative Tabellenläufe; Ladewarteschlangengröße; Cache-Speichergröße; Steuerung, wie Zugriffe auf undefinierte MSRs gehandhabt werden; Mehrkernkonfiguration; Konfiguration eines Cache-Speichers (zum Beispiel Abwählen einer Spalte von Bitzellen in einem Cache und Ersetzen der Spalte mit einer redundanten Spalte von Bitzellen), ein Tastverhältnis und/oder ein Taktverhältnis von Phasenregelschleifen (PLLs) des Mikroprozessors, und Einstellen von Spannungskennungsstiften (VID-Stiften), die eine Spannungsquelle zu dem Mikroprozessor steuern.
  • 3B bildet eine beispielhafte Pipeline zur Paketfilterung nach Paketfragmenten ab. Eine NIC oder ein Switch oder eine andere Vorrichtung oder Software (zum Beispiel IPS) kann ein Paketfragment erfassen. Kollektiv können Klassifikation 362, IP-Filter 364, Fragmentierungs-IP-Filter 366 und IP-Reassemblierung 368 identifizieren, ob ein Paket Teil eines winzigen Fragmentangriffs, Pufferüberlaufangriffs oder überlappenden Fragmentangriffs ist, und das Paket fallen lassen, wenn das Paket als Teil eines winzigen Fragmentangriffs, Pufferüberlaufangriffs oder überlappenden Fragmentangriffs angesehen wird. Falls das Paket nicht als Teil eines winzigen Fragmentangriffs, eines Pufferüberlaufangriffs oder eines überlappenden Fragmentangriffs angesehen wird, kann die IP-Reassemblierung 368 ein Paket reassemblieren und das reassemblierte Paket einer NIC oder einem Switch bereitstellen oder das reassemblierte Paket an einen Server weiterleiten.
  • 4 bildet einen beispielhaften Prozess ab. Bei 402 kann eine Netzwerkschnittstelle (zum Beispiel NIC, Netzwerkschnittstellensteuervorrichtung, Fabric-Schnittstelle und so weiter) ein Paket von einer Verbindung empfangen. Ein Systemagent oder Uncore kann Paketinhalt kommunikativ von der Netzwerkschnittstelle zu einem oder mehreren Kernen koppeln und transferieren. Bei 404 kann eine Frequenz eines Uncore basierend auf einer Richtung von einem Überlastungsmanagementsystem angepasst werden. Eine reduzierte Betriebsfrequenz des Uncore kann eine Rate reduzieren, mit der empfangene Pakete an die Kerne geliefert werden. Eine erhöhte Betriebsfrequenz des Uncore kann eine Rate erhöhen, mit der empfangene Pakete an die Kerne geliefert werden. Bei 406 kann eine Paketklassifikation stattfinden, um basierend auf einer Anzahl von erfassten fragmentierten Paketen über ein Zeitintervall zu bestimmen, ob irgendwelche DoS- oder DDoS-Angriffe aufgetreten sind. Zum Beispiel können DoS- oder DDoS-Angriffe basierend auf einer Anzahl von winzigen Fragmentangriffen, Pufferüberlaufangriffen oder überlappenden Fragmentangriffen erfasst werden, die innerhalb eines Zeitfensters für einen Fluss oder mehrere Flüsse auftreten.
  • Bei 408 kann ein Überlastungsvermeidungsschema auftreten, um ein Überlastungsmanagement in einem Fall erfasster DoS- oder DDoS-Angriffe anzufordern. Überlastungsmanagement kann Reduzieren der Häufigkeit eines Uncore, Erhöhen der Betriebsfrequenz eines Kerns oder Prozessors, Zuordnen von zusätzlichem Pufferraum für empfangene Pakete im Speicher und so weiter beinhalten. Falls bei 410 ein Überlastungsmanagement bestimmt, dass eine Frequenzanpassung aufgrund eines Angriffs stattfinden soll, kann die Uncore-Frequenz durch Signalisieren von Frequenzsteuerung zu Uncore-Frequenzsteuerung reduziert werden. Falls bei 410 eine Überlastungsmanagement bestimmt, dass eine Frequenzanpassung stattfinden soll, weil ein Angriff bestanden wird oder kein Angriff erfasst wird, kann die Uncore-Frequenz durch Signalisieren von Frequenzsteuerung an Uncore-Frequenzsteuerung erhöht oder beibehalten werden.
  • Bei 412 kann eine Verkehrsregelung stattfinden, um Verkehrspakete zu regulieren. Wenn die Verkehrsrate eine konfigurierte Maximalrate erreicht, kann überschüssiger Verkehr fallengelassen (oder ummarkiert) werden. Bei 414 kann Verkehrsformen auftreten, wodurch überschüssige Pakete in einer Warteschlange gehalten werden und überschüssige Pakete für eine spätere Übertragung über Zeitinkremente geplant werden, um eine geglättete Paketausgaberate bereitzustellen. Verkehrsformen kann den Fluss von Paketen regulieren, die von einer Schnittstelle oder Unterschnittstelle ausgehen, den Paketfluss an die Geschwindigkeit der Schnittstelle, Fähigkeit zum Konfigurieren von Frame Relay Traffic Shaping (FRTS) unter Verwenden modularer Anweisungsleitungsschnittstellen-Anweisungen (CLI-Anweisungen der Dienstgüte (QoS) anpassen oder den Fluss von Paketen (auf einer Pro-Verkehrsklassenbasis), die von einer Schnittstelle ausgehen, gemäß dem Paketflusses an die Geschwindigkeit der Schnittstelle anpassen. Pakete können zu einem Puffer oder Cache zur Verarbeitung durch einen oder mehrere Kerne oder andere Vorrichtungen bereitgestellt werden.
  • 5A bildet einen beispielhaften Prozess ab. Bei 502 kann eine Arbeitslast auf einem oder mehreren Kernen oder Vorrichtungen zur Ausführung eingesetzt werden. Eine Vorrichtung kann zum Beispiel Beschleuniger, Medienprozessoren, Video-Offload-Engine, Entschlüsselungs-/Verschlüsselungs-Offload-Engines, Netzwerkschnittstellenkarten, Grafikverarbeitungseinheiten (GPUs) beinhalten. Bei 504 kann eine Standardfrequenz für eine Peripherievorrichtungsschnittstelle eingestellt werden. Zum Beispiel kann die Peripherievorrichtungsschnittstelle eines oder mehrere der Folgenden beinhalten: eine PCIe-Schnittstelle, eine CXL-Schnittstelle, eine DDR-Schnittstelle, eine Busschnittstelle, einen Systemagenten, einen Uncore und/oder einen Cache. Bei einigen Beispielen kann die Peripherievorrichtungsschnittstelle eine Kommunikation zwischen einer Kommunikationsschnittstelle und einem Kern, Prozessor oder Beschleuniger bereitstellen. Die Kommunikationsschnittstelle kann eine Netzwerkschnittstellenkarte, eine Host-Schnittstelle, eine Busschnittstelle oder eine andere Kommunikationsvorrichtung beinhalten, die bösartigem oder nicht bösartigem Flooding von Verkehr unterliegen kann. Bei einigen Beispielen kann eine Standardtaktfrequenz für die Peripherievorrichtungsschnittstelle eingestellt werden, die eine Rate steuern kann, mit der Daten von der Kommunikationsschnittstelle zu dem Kern, Prozessor oder Beschleuniger transferiert werden. Bei einigen Beispielen kann das Erhöhen einer Standardbetriebsfrequenz der Peripherievorrichtungsschnittstelle dazu führen, dass weniger Leistungsbudget für einen Kern oder eine Vorrichtung verfügbar ist, und die Betriebsfrequenz des Kerns oder der Vorrichtung kann verringert werden, so dass das Gesamtleistungsbudget für die Peripherievorrichtungsschnittstelle und den Kern und die Vorrichtung nicht überschritten wird.
  • Bei 506 kann beobachtet werden, dass an der Kommunikationsschnittstelle empfangener Verkehr Verkehrs-Flooding erfasst. Verkehrs-Flooding kann durch DoS- oder DDoS-Angriffe auf eine Netzwerkschnittstelle oder einen Server entstehen. Beispielsweise kann ein IPS oder ein Überlastungsmonitor Eigenschaften eines Pakets beobachten, wie etwa (1) IP-Paketfragmente, die unvollständige Pakete sind, (2) IP-Paketfragmente, die zu klein sind, (3) IP-Paketfragmente, die zu übermäßigen Paketen führen, (4) IP-Paketfragmentierungspuffer, der voll ist, oder (5) jegliche Dienstverweigerung (DoS), die beim Eintritt gemeldet wird. Zum Beispiel kann das IPS Verkehrs-Flooding identifizieren, falls irgendwelche von (1) bis (5) eine ausreichende Anzahl von Malen über ein Zeitintervall für einen bestimmten Fluss oder Flüsse auftreten. Beispielsweise kann Verkehrs-Flooding durch bestimmte Anzahlen von Vorkommnissen von (1) bis (4) über ein Zeitintervall für einen bestimmten Fluss oder bestimmte Flüsse erfasst werden.
  • Bei 508 wird bestimmt, ob ein Verkehrsverstoß aufgetreten ist. Ein Verkehrsverstoß kann auftreten, wenn ein Verkehrs-Flooding erfasst wird. Wird kein Verkehrsverstoß beobachtet, kann zu 506 zurückgekehrt werden. Wird ein Verkehrsverstoß beobachtet, kann der Prozess zu 510 weitergehen.
  • Bei 510 wird bestimmt, ob der Verkehrsverstoß behoben wurde. IP-Verstoßbehebung kann auftreten, falls ein OS IP-Pakete verarbeitet und IP-Pakete verwirft, die als eines von (1) bis (4) oben angesehen werden, während eine ausreichende Verarbeitungsrate empfangener Pakete beibehalten wird (zum Beispiel unter anwendbarer Dienstgütevereinbarung (SLA)) und eine akzeptable Menge an Paketpufferraum für empfangene Pakete genutzt wird (zum Beispiel Menge an Pufferraum verstößt nicht gegen SLA). Ein Betriebssystem oder eine Networking-Software, zum Beispiel TCP/IP-Stack oder Berkley-Paketfilter oder eine Networking-Softwareanwendung, die Pakete direkt von dem NIC-Port verarbeitet, wie etwa auf Data Plane Development Kit (DPDK) oder Storage Performance Development Kit (SPDK) basierte Anwendungen, können entscheiden, ob ein Verkehrsverstoß behoben wurde oder nicht. Falls der Verkehrsverstoß behoben wurde, geht der Prozess weiter zu 504, wo eine Frequenz der Peripherievorrichtungsschnittstelle zu einer Standardbetriebsfrequenz für die Peripherievorrichtungsschnittstelle zurückgebracht oder um einen Schritt erhöht werden kann, aber nicht zu der Standardbetriebsfrequenz für die Peripherievorrichtungsschnittstelle.
  • Bei einigen Beispielen kann ein beliebiges von 504, 506, 508 oder 510 durch Netzwerkvorrichtung, NIC, ACLs, einen Prozessor oder Schaltungen in dem Uncore oder Systemagenten oder prozessorausgeführte Software (zum Beispiel Linux-Networking-Stapel, DPDK-Anwendung oder SPDK-Anwendung) ausgeführt werden.
  • Ist der Verkehrsverstoß nicht behoben, geht der Prozess zu 512 über. Bei 512 kann eine Betriebsfrequenz der Peripherievorrichtungsschnittstelle reduziert werden. Die Reduktion der Frequenz kann stufenweise erfolgen. Eine Menge an Frequenzreduktion kann von einer Anzahl von Verkehrsverstößen ohne Behebung abhängen. Für einen ersten beobachteten Verkehrsverstoß ohne Behebung kann die Reduzierung eine Stufe sein. Für einen zweiten beobachteten Verkehrsverstoß ohne Behebung (zum Beispiel zweite Iteration von 510 gibt Nein an) kann eine Frequenz der Schnittstelle um einen zweiten Schritt, der größer ist als der Schritt, gesenkt werden. Für einen dritten beobachteten Verkehrsverstoß ohne Behebung (zum Beispiel dritte Iteration von 510 gibt Nein an) kann eine Frequenz der Schnittstelle um einen größeren Menge als der zweite Schritt gesenkt werden. Jedoch kann beispielsweise eine Untergrenze der Betriebsfrequenz der Schnittstelle festgelegt werden, wobei die Schnittstelle ein Uncore oder Systemagent ist. Zusätzlich zum Senken der Betriebsfrequenz der Peripherievorrichtungsschnittstelle kann eine Betriebsfrequenz eines Kerns oder einer Vorrichtung erhöht werden, falls ausreichend Leistungsbudget zum Erhöhen einer Betriebsfrequenz eines Kerns oder einer Vorrichtung verfügbar ist. Der Prozess geht weiter zu 510.
  • 5B bildet Beispiele für Arten des Modifizierens der Betriebsfrequenz eines Uncore oder Systemagenten ab. In dem Szenario 550 kann eine Vorrichtung, wie etwa eine NIC-, FPGA-, ASIC-, ACL- und Fragmentierungsvorrichtung, Paketfragmente erfassen, die einen Angriff ausmachen, und (1) eine Uncore-Frequenzsteuerung anfordern, eine Frequenz anzupassen, oder (2) ein OS anfordern, eine Frequenz des Uncore anzupassen. In dem Szenario 552 kann die Vorrichtung Paketfragmente erfassen, die einen Angriff ausmachen, und einen Betriebssystem-Netzwerkstapel (OS-Netzwerkstapel) (zum Beispiel Linux® eBPF oder ACL und Fragmentierungslogik) anfordern, um eine Frequenz des Uncore anzupassen.
  • In dem Szenario 554 kann die Vorrichtung Paketfragmente erfassen, die einen Angriff ausmachen, und eine DPDK-Anwendung (zum Beispiel ACL und Fragmentierungslogik) anfordern, um eine Frequenz des Uncore anzupassen. In dem Szenario 556 kann die Vorrichtung Paketfragmente erfassen, die einen Angriff ausmachen, und einen virtuellen Switch (zum Beispiel ACL und Fragmentierungslogik) anfordern, um eine Frequenz des Uncore anzupassen. Ein virtueller Switch kann vSwitch, VMWare® virtueller Switch (zum Beispiel ESXi), Microsoft® Hyper-V oder Open vSwitch beinhalten.
  • 6 bildet ein System ab. Das System kann hier beschriebene Ausführungsformen verwenden, um die Betriebsfrequenz einer Peripherievorrichtungsschnittstelle, eines Systemagenten, eines Uncore, eines Kerns oder von Vorrichtungen als Reaktion auf einen erfassten Angriff oder keinen erfassten Angriff anzupassen. Das System 600 beinhaltet einen Prozessor 610, der die Verarbeitung, das Betriebsmanagement und die Ausführung von Anweisungen für das System 600 bereitstellt. Der Prozessor 610 kann einen beliebigen Typ von Mikroprozessor, Zentraleinheit (CPU), Grafikverarbeitungseinheit (GPU), Verarbeitungskern oder anderer Verarbeitungshardware zum Bereitstellen von Verarbeitung für das System 600 oder eine Kombination von Prozessoren beinhalten. Der Prozessor 610 steuert den Gesamtbetrieb des Systems 600 und kann einen oder mehrere programmierbare Allzweck- oder Spezialmikroprozessoren, Digitalsignalprozessoren (DSPs), programmierbare Steuervorrichtungen, anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Logikvorrichtungen (PLDs) oder dergleichen oder eine Kombination solcher Vorrichtungen sein oder beinhalten.
  • Bei einem Beispiel beinhaltet das System 600 eine Schnittstelle 612, die mit dem Prozessor 610 gekoppelt ist, die eine Schnittstelle mit höherer Geschwindigkeit oder eine Schnittstelle mit hohem Durchsatz für Systembauelemente darstellen kann, die Verbindungen mit höherer Bandbreite benötigen, wie etwa das Speichersubsystem 620 oder die Grafikschnittstellenbauelemente 640 oder Beschleuniger 642. Die Schnittstelle 612 repräsentiert eine Schnittstellenschaltung, die ein eigenständiges Bauelement sein oder auf einem Prozessor-Die integriert sein kann. Wo vorhanden, bildet die Grafikschnittstelle 640 mit Grafikbauelementen eine Schnittstelle, um einem Benutzer des Systems 600 eine visuelle Anzeige bereitzustellen. Bei einem Beispiel kann die Grafikschnittstelle 640 eine HD-Anzeige (High Definition-Anzeige ansteuern, die einem Benutzer eine Ausgabe liefert. High-Definition kann eine Anzeige betreffen, die eine Pixeldichte von ungefähr 100 PPI (Pixel pro Zoll) oder mehr aufweist, und Formate, wie etwa Full-HD (zum Beispiel 1080p), Retina-Displays, 4K (Ultra-High-Definition oder UHD) oder andere beinhalten kann. Bei einem Beispiel kann die Anzeige eine Touchscreen-Anzeige beinhalten. Bei einem Beispiel erzeugt die Grafikschnittstelle 640 eine Anzeige basierend auf Daten, die in dem Speicher 630 gespeichert sind, oder basierend auf Operationen, die von dem Prozessor 610 ausgeführt werden, oder oder auf beiden. Bei einem Beispiel erzeugt die Grafikschnittstelle 640 eine Anzeige basierend auf Daten, die in dem Speicher 630 gespeichert sind, oder basierend auf Operationen, die von dem Prozessor 610 oder oder auf beiden ausgeführt werden.
  • Die Beschleuniger 642 können eine programmierbare oder Festfunktions-Offload-Engine sein, auf die von einem Prozessor 610 zugegriffen werden kann oder die von diesem verwendet werden kann. Ein Beschleuniger unter den Beschleunigern 642 kann zum Beispiel Kompressionsfähigkeit (DC-Fähigkeit), Kryptographiedienste, wie etwa Public-Key-Verschlüsselung (PKE), Chiffre, Hash-/Authentifizierungsfähigkeiten, Entschlüsselung oder andere Fähigkeiten oder Dienste bereitstellen. Bei einigen Ausführungsformen stellt zusätzlich oder alternativ ein Beschleuniger unter den Beschleunigern 642 Feldauswahl-Steuervorrichtungsfähigkeiten, wie hier beschrieben, bereit. In einigen Fällen können Beschleuniger 642 in einen CPU-Sockel (zum Beispiel einen Steckverbinder zu einer Hauptplatine oder Leiterplatte, die eine CPU beinhaltet und eine elektrische Schnittstelle mit der CPU bereitstellt) integriert sein. Die Beschleuniger 642 können zum Beispiel einen Einzel- oder Mehrkernprozessor, eine Grafikverarbeitungseinheit, einen Einzel- oder Mehrstufen-Cache einer logischen Ausführungseinheit, Funktionseinheiten, die zum unabhängigen Ausführen von Programmen oder Threads verwendet werden können, anwendungsspezifische integrierte Schaltungen (ASICs), neuronale Netzwerkprozessoren (NNPs), programmierbare Steuerlogik und programmierbare Verarbeitungselemente, wie etwa feldprogrammierbare Gate-Arrays (FPGAs) beinhalten. Beschleuniger 642 können mehrere neuronale Netzwerke, CPUs, Prozessorkerne, Universal-Grafikverarbeitungseinheiten bereitstellen, oder Grafikverarbeitungseinheiten können zur Verwendung durch künstliche Intelligenz (AI) oder Modelle zum maschinellen Lernen (ML) verfügbar gemacht werden. Das AI-Modell kann zum Beispiel eines oder eine Kombination der Folgenden verwenden oder beinhalten: ein Verstärkungs-Lernsystem, Q-Lernsystem, Deep-Q-Lernen oder Asynchronous Advantage Actor-Critic (A3C), kombinatorisches neuronales Netzwerk, rekurrentes kombinatorisches neuronales Netzwerk oder ein anderes AI- oder ML-Modell. Mehrere neuronale Netze, Prozessorkerne oder Grafikverarbeitungseinheiten können zur Verwendung durch AI- oder ML-Modelle verfügbar gemacht werden.
  • Das Speichersubsystem 620 repräsentiert den Hauptspeicher des Systems 600 und stellt Speicherung für Code, der von dem Prozessor 610 ausgeführt werden soll, oder Datenwerte, die beim Ausführen einer Routine verwendet werden sollen, bereit. Das Speichersubsystem 620 kann eine oder mehrere Speichervorrichtungen 630, wie etwa einen Nur-Lese-Speicher (ROM), einen Flash-Speicher, eine oder mehrere Arten von Direktzugriffsspeicher (RAM), wie etwa DRAM oder andere Speichervorrichtungen oder eine Kombination solcher Vorrichtungen beinhalten. Der Speicher 630 speichert und hostet unter anderem das Betriebssystem (OS) 632, um eine Softwareplattform zur Ausführung von Anweisungen im System 600 bereitzustellen. Zusätzlich können Anwendungen 634 auf der Softwareplattform des OS 632 aus dem Speicher 630 laufen. Die Anwendungen 634 repräsentieren Programme, die ihre eigene Betriebslogik aufweisen, um die Ausführung einer oder mehrerer Funktionen auszuführen. Die Prozesse 636 repräsentieren Agenten oder Routinen, die dem OS 632 oder einer oder mehreren Anwendungen 634 oder einer Kombination Hilfsfunktionen bereitstellen. Das OS 632, die Anwendungen 634 und die Prozesse 636 stellen Softwarelogik bereit, um Funktionen für das System 600 bereitzustellen. Bei einem Beispiel beinhaltet das Speichersubsystem 620 eine Speichersteuervorrichtung 622, die eine Speichersteuervorrichtung zum Erzeugen und Ausgeben von Befehlen zu dem Speicher 630 ist. Es versteht sich, dass die Speichersteuervorrichtung 622 ein physischer Teil des Prozessors 610 oder ein physischer Teil der Schnittstelle 612 sein könnte. Beispielsweise kann die Speichersteuervorrichtung 622 eine integrierte Speichersteuervorrichtung sein, die in eine Schaltung mit dem Prozessor 610 integriert ist.
  • Obwohl dies nicht speziell veranschaulicht ist, versteht es sich, dass das System 600 einen oder mehrere Busse oder ein oder mehrere Bussysteme zwischen Vorrichtungen, wie etwa einen Speicherbus, einen Grafikbus, Schnittstellenbusse oder andere, beinhalten kann. Busse oder andere Signalleitungen können Bauelemente kommunikativ oder elektrisch miteinander koppeln oder die Bauelemente sowohl kommunikativ als auch elektrisch koppeln. Busse können physische Kommunikationsleitungen, Punkt-zu-Punkt-Verbindungen, Brücken, Adapter, Steuervorrichtungen oder andere Schaltungen oder eine Kombination beinhalten. Busse können zum Beispiel einen Systembus und/oder einen Peripheral Component-Interconnect-Bus (PCI-Bus) und/oder einen Hyper-Transport- oder Industriestandard-Architektur-Bus (ISA-Bus) und/oder einen Small-Computer-System-Interface-Bus (SCSI-Bus) und/oder einen Universal-Serial-Bus (USB) oder einen Bus gemäß dem Institute of Electrical and Electronics Engineers-Standard (IEEE-Standard) 1394-Bus (Firewire) beinhalten.
  • Bei einem Beispiel beinhaltet das System 600 die Schnittstelle 614, die mit der Schnittstelle 612 gekoppelt sein kann. Bei einem Beispiel repräsentiert die Schnittstelle 614 eine Schnittstellenschaltung, die eigenständige Bauelemente und integrierte Schaltungen beinhalten kann. Bei einem Beispiel sind mehrere Benutzerschnittstellenbauelemente oder Peripheriebauelemente oder beide mit der Schnittstelle 614 gekoppelt. Die Netzwerkschnittstelle 650 stellt dem System 600 die Fähigkeit bereit, mit entfernten Vorrichtungen (zum Beispiel Servern oder anderen Rechenvorrichtungen) über ein oder mehrere Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 650 kann einen Ethernet-Adapter, drahtlose Verbindungsbauelemente, Mobilfunknetzwerkverbindungsbauelemente, USB (Universal Serial Bus) oder andere auf drahtgebundenen oder drahtlosen Standards basierende oder proprietäre Schnittstellen beinhalten. Die Netzwerkschnittstelle 650 kann Daten zu einer Vorrichtung übertragen, die sich in demselben Rechenzentrum oder Rack befindet, oder zu einer entfernten Vorrichtung, die Senden von im Speicher gespeicherten Daten beinhalten kann. Die Netzwerkschnittstelle 650 kann Daten von einer entfernten Vorrichtung empfangen, was das Speichern empfangener Daten im Speicher beinhalten kann. Verschiedene Ausführungsformen können in Verbindung mit der Netzwerkschnittstelle 650, dem Prozessor 610 und dem Speichersubsystem 620 verwendet werden.
  • Bei einem Beispiel beinhaltet das System 600 eine oder mehrere Eingabe-/Ausgabe-Schnittstellen (E/A-Schnittstellen) 660. Die E/A-Schnittstelle 660 kann ein oder mehrere Schnittstellenbauelemente beinhalten, über die ein Benutzer mit dem System 600 interagiert (zum Beispiel Audio, alphanumerisch, taktil/berührend oder eine andere Schnittstelle). Die Peripherieschnittstelle 670 kann eine beliebige Hardwareschnittstelle beinhalten, die oben nicht speziell erwähnt wurde. Peripheriegeräte bezeichnen im Allgemeinen Vorrichtungen, die sich abhängige zum System 600 verbinden. Eine abhängige Verbindung ist eine Verbindung, bei der das System 600 die Softwareplattform oder Hardwareplattform oder beide bereitstellt, auf der die Operation ausgeführt wird und mit der ein Benutzer interagiert.
  • Bei einem Beispiel beinhaltet das System 600 das Speicherungssubsystem 680, um Daten auf eine nichtflüchtige Weise zu speichern. Bei einem Beispiel können sich in bestimmten Systemumsetzungen zumindest bestimmte Bauteile der Speicherung 680 mit Komponenten des Speichersubsystems 620 überlappen. Das Speicherungssubsystem 680 beinhaltet eine oder mehrere Speicherungsvorrichtungen 684, die ein beliebiges herkömmliches Medium zum Speichern großer Datenmengen auf beständige Weise sein können oder beinhalten können, wie etwa eine oder mehrere magnetische, Festkörper- oder optische Platten oder eine Kombination. Die Speicherung 684 hält Code oder Anweisungen und Daten 686 in einem persistenten Zustand (zum Beispiel wird der Wert trotz Unterbrechung der Stromversorgung des Systems 600 beibehalten). Die Speicherung 684 kann allgemein als ein „Speicher“ betrachtet werden,obwohl der Speicher 630 typischerweise der Ausführungs- oder Betriebsspeicher ist, um Anweisungen zu dem Prozessor 610 bereitzustellen. Während die Speicherung 684 nichtflüchtig ist, kann der Speicher 630 flüchtigen Speicher beinhalten (zum Beispiel ist der Wert oder Zustand der Daten unbestimmt, falls Strom zu dem System 600 unterbrochen wird). Bei einem Beispiel beinhaltet das Speicherungssubsystem 680 eine Steuervorrichtung 682 zum Bilden einer Schnittstelle mit der Speicherung 684. Bei einem Beispiel ist die Steuervorrichtung 682 ein physisches Teil der Schnittstelle 614 oder des Prozessors 610 oder kann Schaltungen oder Logik sowohl im Prozessor 610 als auch in der Schnittstelle 614 beinhalten.
  • Ein flüchtiger Speicher ist ein Speicher, dessen Zustand (und damit die in ihm gespeicherten Daten) unbestimmt ist, falls die Stromversorgung zu der Vorrichtung unterbrochen wird. Dynamischer flüchtiger Speicher erfordert ein Auffrischen der in der Vorrichtung gespeicherten Daten, um einen Zustand beizubehalten. Ein Beispiel für dynamischen flüchtigen Speicher beinhaltet DRAM (Dynamic Random Access Memory) oder irgendeine Variante, wie etwa synchronen DRAM (SDRAM). Ein anderes Beispiel für flüchtigen Speicher beinhaltet Cache- oder statischen Direktzugriffsspeicher (SRAM). Ein Speichersubsystem, wie hierin beschrieben, kann mit einer Anzahl von Speichertechnologien kompatibel sein, wie etwa mit DDR3 (Double Data Rate Version 3, Originalversion von JEDEC (Joint Electronic Device Engineering Council) am 27. Juni 2007). DDR4 (DDR Version 4, anfängliche Spezifikation veröffentlicht im September 2012 von JEDEC), DDR4E (DDR Version 4), LPDDR3 (Low Power DDR Version 3, JESD209-3B, August 2013 von JEDEC), LPDDR4) LPDDR Version 4, JESD209-4, ursprünglich veröffentlicht von JEDEC im August 2014), WIO2 (Wide Input/Output Version 2, JESD229-2, ursprünglich veröffentlicht von JEDEC im August 2014, HBM (High Bandwidth Memory, JESD325, ursprünglich veröffentlicht von JEDEC im Oktober 2013, LPDDR5 (gegenwärtig diskutiert von JEDEC), HBM2 (HBM Version 2), gegenwärtig diskutiert von JEDEC, oder andere oder Kombinationen von Speichertechnologien und Technologien basierend auf Ableitungen oder Erweiterungen derartiger Spezifikationen. Die JEDEC-Standards sind bei www.jedec.org verfügbar.
  • Ein nichtflüchtiger Speicher (NVM) ist ein Speicher, dessen Zustand selbst bei Unterbrechung einer Stromversorgung zur Vorrichtung bestimmt ist. Bei einigen Ausführungsformen kann die NVM-Vorrichtung eine blockadressierbare Speichervorrichtung umfassen, wie etwa NAND-Technologien oder insbesondere NAND-Flash-Speicher mit mehreren Schwellenebenen (zum Beispiel Single-Level-Cell („SLC“), Multi-Level-Cell („MLC“), Quad-Level-Cell („QLC“), Tri-Level-Cell („TLC“) oder irgendein anderes NAND). Eine NVM-Vorrichtung kann auch eine byteadressierbare dreidimensionale Kreuzungspunktspeichervorrichtung oder eine andere byteadressierbare NVM-Vorrichtung (auch als persistenter Speicher bezeichnet) umfassen, wie etwa ein- oder mehrstufige Phasenwechselspeicher (PCM) oder Phasenwechselspeicher mit Schalter (PCMS), Intel@ Optane™-Speicher, NVM-vorrichtungen, die Chalkogenid-Phasenwechselmaterial verwenden (zum Beispiel Chalkogenidglas), resistiven Speicher einschließlich Metalloxidbasis, Sauerstoff-Vacancy-Basis und Conductive Bridge Random Access Memory-RAM (CB-RAM), Nanodrahtspeicher, ferroelektrischen Direktzugriffsspeicher (FeRAM, FRAM), magneto-resistiven Direktzugriffsspeicher (MRAM), der Memristortechnologie beinhaltet, Spintransferdrehmoment (STT)-MRAM, eine Spintronic-Magnetic-Junction-Memory-basierte Vorrichtung, eine Magnetic Tunneling Junction-basierte Vorrichtung (MTJ-basierte Vorrichtung), eine DW- (Domain Wall) und SOT- (Spin Orbit Transfer) -basierte Vorrichtung, eine Thyristor-basierte Speichervorrichtung oder eine Kombination beliebiger der obigen oder anderer Speicher.
  • Eine Leistungsquelle (nicht abgebildet) versorgt die Bauelemente des Systems 600 mit Leistung. Spezifischer bildet die Leistungsquelle typischerweise mit einer oder mehreren Leistungsversorgungen im System 600 eine Schnittstelle, um die Bauelemente des Systems 600 mit Leistung zu versorgen. Bei einem Beispiel beinhaltet die Leistungsversorgung einen AC-DC-Adapter (Wechselstrom-zu-Gleichstrom-Adapter) zum Anschließen an eine Wandsteckdose. Eine derartige AC-Leistung kann eine Leistungsquelle für erneuerbare Energie (zum Beispiel Solarenergie) sein. Bei einem Beispiel beinhaltet die Leistungsquelle eine DC-Leistungsquelle, wie etwa einen externen AC-DC-Wandler. Bei einem Beispiel beinhaltet eine Leistungsquelle oder eine Leistungsversorgung drahtlose Lade-Hardware zum Laden über die Nähe zu einem Ladefeld. Bei einem Beispiel kann die Leistungsquelle eine interne Batterie, eine Wechselstromversorgung, eine bewegungsbasierte Leistungsversorgung, eine Solarenergieversorgung oder eine Brennstoffzellenquelle beinhalten.
  • Bei einem Beispiel kann das System 600 unter Verwenden miteinander verbundener Rechen-Sleds von Prozessoren, Speichern, Speicherungen, Netzwerkschnittstellen und anderen Bauelementen umgesetzt werden. Hochgeschwindigkeits-Interconnects können verwendet werden, wie etwa PCIe, Ethernet oder optische Interconnects (oder eine Kombination davon).
  • 7 bildet eine Umgebung 700 ab, die mehrere Rechen-Racks 702 beinhaltet, die jeweils einen Top-of-Rack-Switch (ToR-Switch) 704, einen Pod-Manager 706 und mehrere gepoolte Systemeinschübe beinhalten. Die Umgebung kann hierin beschriebene Ausführungsformen verwenden, um die Betriebsfrequenz einer Peripherievorrichtungsschnittstelle, eines Systemagenten, eines Uncore, eines Kerns oder von Vorrichtungen als Reaktion auf einen erfassten Angriff oder keinen erfassten Angriff anzupassen. Allgemein können die gepoolten Systemeinschübe gepoolte Recheneinschübe und gepoolte Speicherungseinschübe beinhalten. Optional können die gepoolten Systemeinschübe auch gepoolte Speicherungseinschübe und gepoolte Eingangs-/Ausgangs-Einschübe (E/A-Einschübe beinhalten. Bei der veranschaulichten Ausführungsform weisen die gepoolten Systemeinschübe einen gepoolten Intel®-XEON®-Computereinschub 708 und einen gepoolten Intel®-ATOM™-Computereinschub 710, einen gepoolten Speicherungseinschub 712, einen gepoolten Speicherungseinschub 714 und einen gepoolten E/A-Einschub 716 auf. Jeder der gepoolten Systemeinschübe ist über einen Hochgeschwindigkeitslink 718, wie etwa einen 40-Gigabit/Sekunde- (Gb/s)- oder 100-Gb/s-Ethernet-Link oder einen optischen 100+ Gb/s-Siliciumphotonik-Link (SiPh-Link), mit dem ToR-Schalter 704 verbunden. Bei einigen Ausführungsformen umfasst der Hochgeschwindigkeitslink 718 einen optischen 800-Gb/s-SiPh-Link.
  • Mehrere der Rechen-Racks 702 können über ihre ToR-Schalter 704 (zum Beispiel mit einem Pod-Level-Switch oder Rechenzentrum-Switch) miteinander verbunden sein, wie durch Verbindungen mit einem Netzwerk 720 veranschaulicht ist. Bei einigen Ausführungsformen werden Gruppen von Rechen-Racks 702 als separate Pods über (einen oder mehrere) Pod-Manager 706 verwaltet. Bei einigen Ausführungsformen wird ein einziger Pod-Manager verwendet, um alle Racks in dem Pod zu verwalten. Alternativ können verteilte Pod-Manager für Pod-Management-Operationen verwendet werden.
  • Die Umgebung 700 beinhaltet ferner eine Verwaltungsschnittstelle 722, die zum Verwalten verschiedener Aspekte der Umgebung verwendet wird. Dies beinhaltet das Managen der Rack-Konfiguration mit entsprechenden als Rack-Konfigurationsdaten 724 gespeicherten Parametern. Die Umgebung 700 kann für Rechen-Racks verwendet werden.
  • Ausführungsformen hierin können in verschiedenen Arten von Rechen- und Networking-Ausrüstung umgesetzt werden, wie etwa Switches, Router, Racks und Blade-Server, wie etwa jenen, die in einem Rechenzentrum und/oder einer Serverfarmumgebung eingesetzt werden. Die in Datenzentren und Serverfarmen verwendeten Server umfassen gereihte Serverkonfigurationen, wie rackbasierte Server oder Blade Server. Diese Server stehen über verschiedene Netzwerkbereitstellungen miteinander in Kommunikation, wie etwa Partitionssätze von Servern in Local Area Networks (LANs) mit geeigneten Schalt- und Routingeinrichtungen zwischen den LANs, um ein privates Intranet zu bilden. Cloud-Hosting-Einrichtungen können zum Beispiel typischerweise große Datenzentren mit einer Vielzahl von Servern einsetzen. Ein Blade umfasst eine separate Rechenplattform, die dazu konfiguriert ist, Servertyp-Funktionen durchzuführen, das heißt einen „Server auf einer Karte“. Dementsprechend beinhaltet jedes Blade Bauelemente, die bei herkömmlichen Servern üblich sind, einschließlich einer gedruckten Hauptleiterplatte (Hauptplatine), die interne Verdrahtungen (zum Beispiel Busse) zum Koppeln geeigneter integrierter Schaltungen (ICs) bereitstellt, und anderer Bauelemente, die auf der Platine montiert sind.
  • 8 bildet eine Netzwerkschnittstelle ab, die Ausführungsformen verwenden kann oder von Ausführungsformen verwendet werden kann. Die Netzwerkschnittstelle kann hierin beschriebene Ausführungsformen verwenden, um die Betriebsfrequenz einer Peripherievorrichtungsschnittstelle, eines Systemagenten, eines Uncore, eines Kerns oder von Vorrichtungen als Reaktion auf einen erfassten Angriff oder keinen erfassten Angriff anzupassen. Die Netzwerkschnittstelle 800 kann einen Transceiver 802, Prozessoren 804, eine Sendewarteschlange 806, eine Empfangswarteschlange 808, einen Speicher 810 und eine Busschnittstelle 812 und eine DMA-Engine 852 beinhalten. Der Transceiver 802 kann in der Lage sein, Pakete in Übereinstimmung mit den anwendbaren Protokollen, wie etwa Ethernet, wie etwa in IEEE 802.3 beschrieben, zu empfangen und zu übertragen, obwohl andere Protokolle verwendet werden können. Der Transceiver 802 kann Pakete von und zu einem Netzwerk über ein Netzwerkmedium (nicht abgebildet) empfangen und senden. Der Transceiver 802 kann PHY-Schaltungen 814 und Medienzugriffssteuerschaltungen (MAC-Schaltungen) 816 beinhalten. Die PHY-Schaltungen 814 können (nicht gezeigte) Codierungs- und Decodierungsschaltungen zum Codieren und Decodieren von Datenpaketen gemäß anwendbaren Bitübertragungsschichtspezifikationen oder Standards beinhalten. Die MAC-Schaltungen 816 können dazu konfiguriert sein, zu übertragende Daten zu Paketen zu assemblieren, die Ziel- und Quelladressen gemeinsam mit Netzwerksteuerinformationen und Fehlererfassungs-Hashwerten beinhalten. Die Prozessoren 804 können eine beliebige Kombination der Folgenden sein: Prozessor, Kern, Grafikverarbeitungseinheit (GPU), feldprogrammierbares Gate-Array (FPGA), anwendungsspezifische integrierte Schaltung (ASIC) oder eine andere programmierbare Hardwarevorrichtung, die das Programmieren der Netzwerkschnittstelle 800 erlaubt. Die Prozessoren 804 können zum Beispiel eine Identifikation einer Ressource, die zum Ausführen einer Arbeitslast zu verwenden ist, und eine Erzeugung eines Bitstroms zur Ausführung auf der ausgewählten Ressource bereitstellen. Zum Beispiel kann eine „intelligente Netzwerkschnittstelle“ Paketverarbeitungsfähigkeiten in der Netzwerkschnittstelle unter Verwenden der Prozessoren 804 bereitstellen.
  • Der Paketzuordner 824 kann eine Verteilung empfangener Pakete zur Verarbeitung durch mehrere CPUs oder Kerne unter Verwenden von hierin beschriebener Zeitschlitzzuordnung oder RSS bereitstellen. Wenn der Paketzuordner 824 RSS verwendet, kann der Paketzuordner 824 einen Hash berechnen oder eine andere Bestimmung basierend auf Inhalten eines empfangenen Pakets vornehmen, um zu bestimmen, welche CPU oder welcher Kern ein Paket verarbeiten soll.
  • Interrupt-Koaleszenz 822 kann eine Interrupt-Moderation ausführen, wobei die Netzwerkschnittstellen-Interrupt-Koaleszenz 822 darauf wartet, dass mehrere Pakete eintreffen oder dass ein Timeout abläuft, bevor sie einen Interrupt zu dem Hostsystem erzeugt, um empfangene Pakete zu verarbeiten. Empfangssegmentkoaleszenz (Receive Segment Coalescing - RSC) kann von der Netzwerkschnittstelle 800 ausgeführt werden, wodurch Teile eingehender Pakete zu Segmenten eines Pakets kombiniert werden. Die Netzwerkschnittstelle 800 stellt dieses koaleszierte Paket zu einer Anwendung bereit.
  • Die Direktspeicherzugriff-Engine (DMA-Engine) 852 kann einen Paket-Header, Paketnutzlast und/oder Deskriptor direkt von dem Host-Speicher zu der Netzwerkschnittstelle kopieren oder umgekehrt, anstatt das Paket in einen Zwischenpuffer an dem Host zu kopieren und dann eine andere Kopieroperation von dem Zwischenpuffer zu dem Zielpuffer zu verwenden.
  • Der Speicher 810 kann eine beliebige Art flüchtiger oder nichtflüchtiger Speichervorrichtung sein und kann eine beliebige Warteschlange oder Anweisungen speichern, die zum Programmieren der Netzwerkschnittstelle 800 verwendet werden. Die Übertragungswarteschlange 806 kann Daten oder Referenzen zu Daten zur Übertragung durch die Netzwerkschnittstelle beinhalten. Die Empfangswarteschlange 808 kann Daten oder Referenzen zu Daten beinhalten, die von der Netzwerkschnittstelle von einem Netzwerk empfangen wurden. Die Deskriptorwarteschlangen 820 können Deskriptoren beinhalten, die Daten oder Pakete in der Sendewarteschlange 806 oder der Empfangswarteschlange 808 referenzieren. Die Busschnittstelle 812 kann eine Schnittstelle mit der Host-Vorrichtung (nicht abgebildet) bereitstellen. Zum Beispiel kann die Busschnittstelle 812 mit der PCI-, PCI-EXPRESS-, PCI-x-, SERIAL-ATA- und/oder USB-kompatiblen Schnittstelle kompatibel sein (obwohl andere Verschaltungsstandards verwendet werden können).
  • Bei einigen Beispielen können die Prozessoren 804 eines oder mehrere der Folgenden ausführen: LRO (Large Receive Offload), LSO (Large Send / Segmentation Offload), TSO (TCP Segmentation Offload), TLS-Offload (Transport Layer Security-Offload), RSS (Receive Side Scaling), um eine Warteschlange oder einen Kern zuzuordnen, um eine Nutzlast zu verarbeiten. LRO kann das Reassemblieren eingehender Netzwerkpakete und den Transfer von Paketinhalten (zum Beispiel Nutzlasten) in größere Inhalte und das Transferieren der resultierenden größeren Inhalte betreffen, aber weniger Pakete für den Zugriff durch das Hostsystem oder eine VEE.
  • LSO kann das Erzeugen eines Multipaketpuffers und das Bereitstellen von Inhalt des Puffers zur Übertragung betreffen. Eine Host-Vorrichtung kann eine größere TCP-Nachricht (oder eine andere Transportschicht) (zum Beispiel 64 KB Länge) aufbauen, und Prozessoren 804 können die Nachricht in kleinere Datenpakete zur Übertragung segmentieren.
  • TLS ist zumindest in The Transport Layer Security (TLS) Protocol Version 1.3, RFC 8446 (August 2018) definiert. TLS-Offload kann das Offload von Verschlüsselung oder Entschlüsselung von Inhalten gemäß TLS in den Prozessoren 804 betreffen. Die Netzwerkschnittstelle 800 kann Daten zur Verschlüsselung empfangen und die Verschlüsselung von Daten vor der Übertragung verschlüsselter Daten in einem oder mehreren Paketen ausführen. Die Netzwerkschnittstelle 800 kann Pakete empfangen und Inhalt von Paketen vor dem Transfer entschlüsselter Daten zu einem Hostsystem entschlüsseln. Bei einigen Beispielen wird eine beliebige Art von Verschlüsselung oder Entschlüsselung ausgeführt, wie etwa unter anderem SSL (Secure Sockets Layer).
  • Bei einigen Beispielen können die Netzwerkschnittstelle und andere hierin beschriebene Ausführungsformen in Verbindung mit einer Basisstation (zum Beispiel 3G, 4G, 5G und so weiter), einer Makrobasisstation (zum Beispiel 5G Netzwerke), einer Pikostation (zum Beispiel einem mit IEEE 802.11 kompatiblen Zugangspunkt), einer Nanostation (zum Beispiel für Point-to-MultiPoint-Anwendungen (PtMP-Anwendungen), Datenzentren vor Ort, Datenzentren nicht vor Ort, Edge-Netzwerkelemente, Fog-Netzwerkelemente und/oder hybride Datenzentren (zum Beispiel Datenzentren, die Virtualisierungs-, Cloud- und softwaredefiniertes Networking verwenden, um Anwendungsarbeitslasten über physische Datenzentren und verteilte Multi-Cloud-Umgebungen zu liefern).
  • Verschiedene Beispiele können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination beider umgesetzt werden. Bei einigen Beispielen können Hardwareelemente Vorrichtungen, Bauelemente, Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (zum Beispiel Transistoren, Widerstände, Kondensatoren, Induktivitäten und so weiter), integrierte Schaltungen, ASICs, PLDs, DSPs, FPGAs, Speichereinheiten, Logikgatter, Register, eine Halbleitervorrichtung, Chips, Mikrochips, Chipsätze und so weiter beinhalten. Bei einigen Beispielen können Softwareelemente Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Verfahren, Vorgehensweisen, Softwareschnittstellen, APIs, Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon beinhalten. Das Bestimmen, ob ein Beispiel unter Verwenden von Hardwareelementen und/oder Softwareelementen umgesetzt wird, kann gemäß einer beliebigen Anzahl von Faktoren variieren, wie zum Beispiel gemäß einer gewünschten Rechenrate, Leistungspegeln, Wärmetoleranzen, einem Verarbeitungszyklusbudget, Eingangsdatenraten, Ausgangsdatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und anderen Design- oder Leistungsauflagen, wie es für eine gegebene Umsetzung wünschenswert ist. Es wird angemerkt, dass Hardware-, Firmware- und/oder Softwareelemente hierin kollektiv oder einzeln als „Modul“, „Logik“ bezeichnet werden können. Ein Prozessor kann eine oder mehrere Kombinationen aus einer Hardwarezustandsmaschine, digitaler Steuerlogik, Zentraleinheit oder beliebigen Hardware-, Firmware- und/oder Softwareelementen sein.
  • Einige Beispiele können unter Verwenden eines oder als ein Herstellungsartikel oder mindestens ein computerlesbares Medium umgesetzt werden. Ein computerlesbares Medium kann ein nichtflüchtiges Speicherungsmedium zum Speichern von Logik beinhalten. Bei einigen Beispielen kann das nichtflüchtige Speicherungsmedium einen oder mehrere Typen computerlesbarer Speicherungsmedien beinhalten, die elektronische Daten speichern können, einschließlich flüchtigen Speichers oder nichtflüchtigen Speichers, entfernbaren oder nicht entfernbaren Speichers, löschbaren oder nicht löschbaren Speichers, beschreibbaren oder wiederbeschreibbaren Speichers und so weiter. Bei einigen Beispielen kann die Logik verschiedene Softwareelemente, wie etwa Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Verfahren, Vorgehensweisen, Softwareschnittstellen, API, Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon beinhalten.
  • Gemäß einigen Beispielen kann ein computerlesbares Medium ein nichtflüchtiges Speicherungsmedium zum Speichern oder Beibehalten von Anweisungen beinhalten, die, wenn sie von einer Maschine einer Recheneinrichtung oder einem System ausgeführt werden die Maschine, die Rechenvorrichtung oder das System veranlassen, Verfahren und/oder Operationen gemäß den beschriebenen Beispielen auszuführen. Die Anweisungen können einen beliebigen geeigneten Typ von Code beinhalten, wie etwa Quellcode, kompilierten Code, interpretierten Code, ausführbaren Code, statischen Code, dynamischen Code und dergleichen. Die Anweisungen können gemäß einer vorbestimmten Computersprache, Art oder Syntax umgesetzt werden, um eine Maschine, eine Rechenvorrichtung oder ein System zum Ausführen einer bestimmten Funktion anzuweisen. Die Anweisungen können unter Verwenden einer beliebigen geeigneten höheren, niedrigeren, objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache umgesetzt werden.
  • Ein oder mehrere Aspekte mindestens eines Beispiels können von repräsentativen Anweisungen umgesetzt werden, die auf mindestens einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik innerhalb des Prozessors repräsentiert, die, wenn sie von einer Maschine, einer Rechenvorrichtung oder einem System gelesen werden, bewirken, dass die Maschine, die Rechenvorrichtung oder das System Logik zum Ausführen der hierin beschriebenen Techniken herstellt. Derartige Repräsentationen, als „IP-Kerne“ bekannt, können auf einem konkreten maschinenlesbaren Medium gespeichert sein und zu verschiedenen Kunden oder Herstellungsanlagen geliefert werden, um in die Fabrikationsmaschinen, die die Logik oder den Prozessor tatsächlich herstellen, geladen zu werden.
  • Die Erscheinungen des Ausdrucks „ein Beispiel“ oder „ein Beispiel“ betreffen nicht notwendigerweise alle dasselbe Beispiel oder dieselbe Ausführungsform. Jeder hierin beschriebene Aspekt kann mit jedem anderen hierin beschriebenen Aspekt oder ähnlichen Aspekt, unabhängig davon, ob die Aspekte in Bezug auf dieselbe Figur oder dasselbe Element beschrieben sind, kombiniert werden. Eine Unterteilung, Weglassung oder Einschließung von in den begleitenden Figuren abgebildeten Blockfunktionen bedeutet nicht, dass die Hardwarebauelemente, Schaltungen, Software und/oder Elemente zum Umsetzen dieser Funktionen notwendigerweise in Ausführungsformen unterteilt, weggelassen oder eingeschlossen sein müssen.
  • Einige Beispiele können unter Verwenden des Ausdrucks „gekoppelt“ und „verbunden“ mit ihren jeweiligen Ableitungen beschrieben sein. Diese Ausdrücke sind nicht notwendigerweise als synonym zueinander zu betrachten. Zum Beispiel können Beschreibungen unter Verwenden der Begriffe „verbunden“ und/oder „gekoppelt“ angeben, dass zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt miteinander stehen. Der Begriff „gekoppelt“ kann jedoch auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, aber dennoch miteinander zusammenwirken oder interagieren.
  • Die Begriffe „erster“, „zweiter“ und dergleichen bezeichnen hierin keine Reihenfolge, Quantität oder Wichtigkeit, sondern werden vielmehr verwendet, um ein Element von einem anderen zu unterscheiden. Die Begriffe „ein“, „eine“ und „eines“ bezeichnen hierin keine Mengenbegrenzung, sondern bezeichnen vielmehr das Vorhandensein mindestens eines der referenzierten Elemente. Der Ausdruck „aktiv“, der hierin unter Bezugnahme auf ein Signal verwendet wird, bezeichnet einen Zustand des Signals, in dem das Signal aktiv ist und der durch Anwenden eines beliebigen logischen Niveaus von entweder logisch 0 oder logisch 1 auf das Signal erreicht werden kann. Die Begriffe „folgen“ oder „nach“ können auf unmittelbar nachfolgend oder nach einem Ereignis oder Ereignissen unmittelbar nachfolgend verweisen. Andere Folgen von Schritten können gemäß alternativen Ausführungsformen auch ausgeführt werden. Darüber hinaus können abhängig von den jeweiligen Anwendungen zusätzliche Schritte hinzugefügt oder entfernt werden. Jede Kombination von Änderungen kann verwendet werden, und ein Durchschnittsfachmann mit dem Vorteil dieser Offenbarung würde die vielen Variationen, Modifikationen und alternativen Ausführungsformen davon verstehen.
  • Disjunktive Ausdrucksweise, wie etwa der Ausdruck „mindestens eines von X, Y oder Z“,wird, sofern nicht spezifisch anders angegeben, in dem Kontext verstanden, wie er allgemein verwendet wird, um darzustellen, dass ein Element, ein Begriff usw. entweder X, Y oder Z oder eine beliebige Kombination davon (zum Beispiel X, Y und/oder Z) sein kann. Somit soll und sollte eine solche disjunktive Ausdrucksweise im Allgemeinen nicht bezwecken, dass bestimmte Ausführungsformen erfordern, dass jeweils mindestens eines von X, mindestens eines von Y oder mindestens eines von Z vorhanden ist. Zusätzlich sollte konjunktive Ausdrucksweise, wie etwa der Ausdruck „mindestens eines von X, Y und Z“, sofern nicht spezifisch anders angegeben, auch als X, Y, Z oder eine beliebige Kombination davon bedeutend verstanden werden, einschließlich „X, Y und/oder Z“.
  • Veranschaulichende Beispiele der hierin offenbarten Vorrichtungen, Systeme und Verfahren sind nachstehend bereitgestellt. Eine Ausführungsform der Vorrichtungen, Systeme und Verfahren kann eines oder mehrere der nachstehend beschriebenen Beispiele und jede Kombination davon beinhalten.
  • Flussdiagramme, wie hierin veranschaulicht, stellen Beispiele für Folgen verschiedener Prozesshandlungen bereit. Die Flussdiagramme können Operationen, die von einer Software- oder Firmware-Routine auszuführen sind, sowie physische Operationen angeben. Bei einigen Ausführungsformen kann ein Flussdiagramm den Zustand eines endlichen Zustandsautomaten (Finite State Machine - FSM) veranschaulichen, der in Hardware und/oder Software umgesetzt sein kann. Obgleich sie in einer besonderen Folge oder Reihenfolge gezeigt sind, kann die Reihenfolge der Handlungen modifiziert werden, sofern nichts anderes angegeben ist. Dementsprechend sollten die veranschaulichten Ausführungsformen nur als ein Beispiel verstanden werden, und kann der Prozess in einer unterschiedlichen Reihenfolge ausgeführt werden und einige Handlungen können parallel ausgeführt werden. Außerdem können eine oder mehrere Handlungen bei verschiedenen Ausführungsformen ausgelassen werden; es sind also nicht alle Handlungen in jeder Ausführungsform notwendig. Andere Prozessflüsse sind möglich.
  • Verschiedene hierin beschriebene Bauelemente können ein Mittel zum Ausführen der beschriebenen Operationen oder Funktionen sein. Jedes hierin beschriebene Bauelement beinhaltet Software, Hardware oder eine Kombination davon. Die Bauelemente können als Softwaremodule, Hardwaremodule, Spezialhardware (zum Beispiel anwendungsspezifische Hardware, anwendungsspezifische integrierte Schaltungen (ASICs), digitale Signalprozessoren (DSPs) usw.), eingebettete Steuerungen, festverdrahtete Schaltungen und so weiter umgesetzt werden.
  • Beispiel 1 beinhaltet ein Verfahren, das das Ändern einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf einer Erfassung eines Verkehrsverstoßes beinhaltet.
  • Beispiel 2 beinhaltet ein beliebiges Beispiel und beinhaltet Erfassen eines Verkehrsverstoßes basierend auf Erfassung von IP-Paketfragmenten, wobei das Ändern einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf der Erfassung eines Verkehrsverstoßes das Reduzieren einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf der Erfassung eines Verkehrsverstoßes umfasst.
  • Beispiel 3 beinhaltet ein beliebiges Beispiel, wobei IP-Paketfragmente eines oder mehrere der Folgenden umfassen: IP-Paketfragmente, die unvollständige Pakete sind, IP-Paketfragmente, die zu klein sind, IP-Paketfragmente, die zu übermäßigen Paketen führen, oder IP-Paketfragmentierung Puffer, der voll ist.
  • Beispiel 4 beinhaltet ein beliebiges Beispiel, wobei das Erfassen eines Verkehrsverstoßes basierend auf Erfassung von IP-Paketfragmenten Erfassen eines Verkehrsverstoßes basierend auf Erfassung von IP-Erfassen an einem oder mehreren der Folgenden umfasst: einer Netzwerkvorrichtung, der Netzwerkschnittstellenkarte, einem Uncore, einem Systemagenten, einem Betriebssystem, einer Anwendung oder einer Rechenplattform.
  • Beispiel 5 beinhaltet ein beliebiges Beispiel, wobei die Peripherievorrichtungsschnittstelle eines oder mehrere der Folgenden umfasst: einen Systemagenten, einen Uncore, einen Bus, eine Peripheriekomponenten-Interconnect-Express-Schnittstelle (PCIe-Schnittstelle) und einen Cache.
  • Beispiel 6 beinhaltet ein beliebiges Beispiel, wobei die Peripherievorrichtungsschnittstelle Teil eines System-on-Chip (SoC) ist und das SoC eines oder mehrere der Folgenden beinhaltet: einen Kern, Systemagenten oder Uncore.
  • Beispiel 7 beinhaltet ein beliebiges Beispiel, wobei der Prozessor eines oder mehrere der Folgenden umfasst: einen Kern, Beschleuniger oder Grafikverarbeitungseinheit (GPU).
  • Beispiel 8 beinhaltet ein beliebiges Beispiel, wobei das Ändern einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf einer Erfassung eines Verkehrsverstoßes Erhöhen einer Betriebsfrequenz der Peripherievorrichtungsschnittstelle basierend auf einem oder mehreren der Folgenden umfasst: Verwalten des Verkehrsverstoßes an dem Prozessor oder nicht Erfassen eines Verkehrsverstoßes und Erhöhen einer Betriebsfrequenz des Prozessors können auftreten, wenn ein Leistungsbudget, das für den Prozessor und die Peripherievorrichtungsschnittstelle zugeordnet ist, das Erhöhen der Betriebsfrequenz des Prozessors erlaubt.
  • Beispiel 9 beinhaltet ein beliebiges Beispiel, wobei das Ändern einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf einer Erfassung eines Verkehrsverstoßes Folgendes umfasst: Ändern einer Frequenz eines Takts, der anderen Schaltungen als Kernen basierend auf Netzwerkverkehr bereitgestellt wird.
  • Beispiel 10 beinhaltet ein beliebiges Beispiel und beinhaltet ein nicht konkretes computerlesbares Medium, das darauf gespeicherte Anweisungen beinhaltet, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erfassen von Verkehrsverstößen basierend auf Erfassung von IP-Paketfragmenten und Reduzieren einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf Erfassung eines Verkehrsverstoßes.
  • Beispiel 11 beinhaltet ein beliebiges Beispiel, wobei IP-Paketfragmente eines oder mehrere der Folgenden umfassen: IP-Paketfragmente, die unvollständige Pakete sind, IP-Paketfragmente, die zu klein sind, IP-Paketfragmente, die zu übermäßigen Paketen führen, oder IP-Paketfragmentierung Puffer, der voll ist.
  • Beispiel 12 beinhaltet ein beliebiges Beispiel und beinhaltet darauf gespeicherte Anweisungen, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erfassen von Verkehrsverstößen basierend auf Erfassung von IP-Paketfragmenten an einem oder mehreren der Folgenden: einer Netzwerkanwendung, der Netzwerkschnittstellenkarte, einem Uncore, einem Systemagenten, einem Betriebssystem, einer Anwendung oder einer Rechenplattform.
  • Beispiel 13 beinhaltet ein beliebiges Beispiel, wobei die Peripherievorrichtungsschnittstelle einen Systemagenten oder einen Uncore umfasst.
  • Beispiel 14 beinhaltet ein beliebiges Beispiel, wobei die Peripherievorrichtungsschnittstelle einen Bus, eine Peripheriekomponenten-Interconnect-Express-Schnittstelle (PCIe-Schnittstelle) und einen Cache umfasst.
  • Beispiel 15 beinhaltet ein beliebiges Beispiel, wobei der Prozessor einen Kern, Beschleuniger oder eine Grafikverarbeitungseinheit (GPU) umfasst.
  • Beispiel 16 beinhaltet ein beliebiges Beispiel und beinhaltet darauf gespeicherte Anweisungen, die, falls sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erhöhen einer Betriebsfrequenz der Peripherievorrichtungsschnittstelle basierend auf einem oder mehreren der Folgenden: Management von Verkehrsverstößen an einem Kern oder Nichterfassen eines Verkehrsverstoßes.
  • Beispiel 17 beinhaltet ein beliebiges Beispiel und beinhaltet darauf gespeicherte Anweisungen, die, falls sie von einem oder mehrere Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erhöhen einer Betriebsfrequenz des Prozessors, falls ein Leistungsbudget für die Peripherievorrichtungsschnittstelle und den Prozessor das Erhöhen der Betriebsfrequenz des Prozessors ermöglicht.
  • Beispiel 18 beinhaltet ein beliebiges Beispiel und beinhaltet ein Gerät, das Folgendes beinhaltet: mindestens einen Kern; einen Systemagenten, der gekoppelt ist, um Pakete von einer Netzwerkschnittstellenkarte zu empfangen und das empfangene Paket zur Verarbeitung durch einen Kern bereitzustellen; und einen Leistungsmanager zum: Reduzieren einer Betriebsfrequenz des Systemagenten basierend auf einer Anforderung, wobei die Anforderung auf einer Erfassung eines Verkehrsverstoßes basiert.
  • Beispiel 19 beinhaltet ein beliebiges Beispiel und beinhaltet einen Prozessor zum: Erfassen von Verkehrsverstößen basierend auf der Erfassung von IP-Paketfragmenten, wobei IP-Paketfragmente eines oder mehrere der Folgenden beinhalten: IP-Paketfragmente, die unvollständige Pakete sind, IP-Paketfragmente, die zu klein sind, IP-Paketfragmente, die zu übermäßigen Paketen führen, oder IP-Paketfragmentierung Puffer, der voll ist.
  • Beispiel 20 beinhaltet ein beliebiges Beispiel und beinhaltet einen Prozessor zum Erhöhen einer Betriebsfrequenz des Systemagenten basierend auf einem oder mehreren von: Management von Verkehrsverstößen an einem Kern oder Nichterfassen eines Verkehrsverstoßes und Auffordern des Leistungsmanagers, eine Betriebsfrequenz des Systemagenten zu erhöhen.

Claims (15)

  1. Verfahren, das umfasst: Ändern einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf der Erfassung eines Verkehrsverstoßes.
  2. Verfahren nach Anspruch 1, das das Erfassen eines Verkehrsverstoßes basierend auf der Erfassung von Internet-Protokoll-Paketfragmenten(IP-Paketfragmenten) umfasst, wobei: das Ändern einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf der Erfassung eines Verkehrsverstoßes das Reduzieren einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf Erfassung eines Verkehrsverstoßes umfasst.
  3. Verfahren nach Anspruch 2, wobei IP-Paketfragmente eines oder mehrere der Folgenden umfassen: IP-Paketfragmente, die unvollständige Pakete sind, IP-Paketfragmente, die zu klein sind, IP-Paketfragmente, die zu übermäßigen Paketen führen, oder IP-Paketfragmentierungspuffer, der voll ist.
  4. Verfahren nach Anspruch 2, wobei das Erfassen eines Verkehrsverstoßes basierend auf Erfassung von IP-Paketfragmenten Erfassen eines Verkehrsverstoßes basierend auf Erfassung von IP-Paketfragmenten an einem oder mehreren der Folgenden aufweist: einer Netzwerkanwendung, der Netzwerkschnittstellenkarte, einem Uncore, einem Systemagenten, einem Betriebssystem, einer Anwendung oder einer Rechenplattform.
  5. Verfahren nach Anspruch 1, wobei das Ändern einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf der Erfassung eines Verkehrsverstoßes das Erhöhen einer Betriebsfrequenz der Peripherievorrichtungsschnittstelle basierend auf einem oder mehreren der Folgenden umfasst: Management des Verkehrsverstoßes an dem Prozessor oder Nichterfassen eines Verkehrsverstoßes, und das umfasst: Erhöhen einer Betriebsfrequenz des Prozessors, falls ein Leistungsbudget, das für den Prozessor und die Peripherievorrichtungsschnittstelle zugeordnet ist, das Erhöhen der Betriebsfrequenz des Prozessors erlaubt.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Ändern einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf Erfassung eines Verkehrsverstoßes umfasst: Ändern einer Frequenz eines Taktgebers, der anderen Schaltungen als Kernen bereitgestellt wird, basierend auf Netzwerkverkehr.
  7. Nicht konkretes computerlesbares Medium, das darauf gespeicherte Anweisungen umfasst, die, falls sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erfassen von Verkehrsverstößen basierend auf Erfassung von Internetprotokoll-Paketfragmenten (IP-Paketfragmenten) und Reduzieren einer Betriebsfrequenz einer Peripherievorrichtungsschnittstelle zwischen einer Netzwerkschnittstellenkarte und einem Prozessor basierend auf Erfassung eines Verkehrsverstoßes.
  8. Computerlesbares Medium nach Anspruch 7, wobei IP-Paketfragmente eines oder mehrere der Folgenden umfassen: IP-Paketfragmente, die unvollständige Pakete sind, IP-Paketfragmente, die zu klein sind, IP-Paketfragmente, die zu übermäßigen Paketen führen, oder IP-Paketfragmentierungspuffer, der voll ist.
  9. Computerlesbares Medium nach Anspruch 7, das darauf gespeicherte Anweisungen umfasst, die, falls sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erfassen von Verkehrsverstößen basierend auf Erfassung von IP-Paketfragmenten an einem oder mehreren von: einer Netzwerkvorrichtung, der Netzwerkschnittstellenkarte, dem Uncore, dem Systemagenten, dem Betriebssystem, der Anwendung oder einer Rechenplattform.
  10. Computerlesbares Medium nach Anspruch 7, das darauf gespeicherte Anweisungen umfasst, die, falls sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erhöhen einer Betriebsfrequenz der Peripherievorrichtungsschnittstelle basierend auf einem oder mehreren von: Management von Verkehrsverstößen an einem Kern oder Nichterfassen eines Verkehrsverstoßes.
  11. Computerlesbares Medium nach einem der Ansprüche 7-10, das darauf gespeicherte Anweisungen umfasst, die, falls sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren zu Folgendem veranlassen: Erhöhen einer Betriebsfrequenz des Prozessors, falls ein Leistungsbudget für die Peripherievorrichtungsschnittstelle und den Prozessor das Erhöhen der Betriebsfrequenz des Prozessors erlaubt.
  12. Gerät, das Folgendes umfasst: mindestens einen Kern; eine Peripherievorrichtungsschnittstelle, die gekoppelt ist, um Pakete von einer Netzwerkschnittstellenkarte zu empfangen und die empfangenen Pakete zur Verarbeitung durch einen Kern bereitzustellen; und einen Leistungsmanager zum: Reduzieren einer Betriebsfrequenz der Peripherievorrichtungsschnittstelle basierend auf einer Anfrage, wobei die Anfrage auf Erfassung eines Verkehrsverstoßes basiert.
  13. Vorrichtung nach Anspruch 12, die einen Prozessor umfasst zum: Erfassen von Verkehrsverstößen basierend auf Erfassung von Internetprotokoll-Paketfragmenten (IP-Paketfragmenten), wobei IP-Paketfragmente eines oder mehrere der Folgenden umfassen: IP-Paketfragmente, die unvollständige Pakete sind, IP-Paketfragmente, die zu klein sind, IP-Paketfragmente, die zu übermäßigen Paketen führen, oder IP-Paketfragmentierungspuffer, der voll ist.
  14. Gerät nach einem der Ansprüche 12, das einen Prozessor umfasst zum Erhöhen einer Betriebsfrequenz der Peripherievorrichtungsschnittstelle basierend auf einem oder mehreren der Folgenden: Management von Verkehrsverstößen an einem Kern oder Nichterfassen eines Verkehrsverstoßes und Auffordern des Leistungsmanagers, eine Betriebsfrequenz der Peripherievorrichtungsschnittstelle zu erhöhen.
  15. Gerät nach einem der Ansprüche 12 bis 14, wobei die Peripherievorrichtungsschnittstelle eines oder mehrere der Folgenden umfasst: einen Systemagenten, einen Uncore, einen Bus, eine Peripheriebauelement-Interconnect-Express-Schnittstelle (PCIe-Schnittstelle) und einen Cache.
DE102021117755.3A 2020-08-11 2021-07-09 Schutz vor netzwerk-initiierten angriffen Pending DE102021117755A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/990,684 2020-08-11
US16/990,684 US20200374310A1 (en) 2020-08-11 2020-08-11 Protection from network initiated attacks

Publications (1)

Publication Number Publication Date
DE102021117755A1 true DE102021117755A1 (de) 2022-02-17

Family

ID=73456476

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021117755.3A Pending DE102021117755A1 (de) 2020-08-11 2021-07-09 Schutz vor netzwerk-initiierten angriffen

Country Status (5)

Country Link
US (1) US20200374310A1 (de)
JP (1) JP2022032974A (de)
KR (1) KR20220020199A (de)
CN (1) CN114124426A (de)
DE (1) DE102021117755A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11489815B2 (en) 2021-02-21 2022-11-01 Path Network Inc. Methods and systems for synchronizing state amongst monitoring nodes
CN114189368B (zh) * 2021-11-30 2023-02-14 华中科技大学 一种多推理引擎兼容的实时流量检测系统和方法
CN114500102B (zh) * 2022-03-09 2024-02-13 绍兴文理学院 一种基于抽样的边缘计算架构物联网入侵检测系统及方法
CN117150493A (zh) * 2023-09-26 2023-12-01 中电云计算技术有限公司 一种识别api接口参数值递增型遍历的方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6609151B1 (en) * 1999-08-31 2003-08-19 Intel Corporation System for configuring a computer with or without an operating system to allow another computer to remotely exchange data and control the computer
US7886359B2 (en) * 2002-09-18 2011-02-08 Symantec Corporation Method and apparatus to report policy violations in messages
US7463590B2 (en) * 2003-07-25 2008-12-09 Reflex Security, Inc. System and method for threat detection and response
US8914650B2 (en) * 2011-09-28 2014-12-16 Intel Corporation Dynamically adjusting power of non-core processor circuitry including buffer circuitry
US9596286B2 (en) * 2012-05-25 2017-03-14 A10 Networks, Inc. Method to process HTTP header with hardware assistance
US10097578B2 (en) * 2013-07-23 2018-10-09 Oasis Technology, Inc. Anti-cyber hacking defense system
WO2016206012A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Systems and methods for isolating input/output computing resources
FI127335B (en) * 2016-05-27 2018-04-13 Cysec Ice Wall Oy Logging of telecommunications on a computer network
US11457035B2 (en) * 2019-05-17 2022-09-27 Harman Becker Automotive Systems Gmbh Network intrusion detection system and methods with statistic profile based network interface controllers
JP2021015384A (ja) * 2019-07-10 2021-02-12 富士通株式会社 情報処理回路、情報処理装置、情報処理方法及び情報処理プログラム
US11366506B2 (en) * 2019-11-22 2022-06-21 Intel Corporation System, apparatus and method for globally aware reactive local power control in a processor

Also Published As

Publication number Publication date
US20200374310A1 (en) 2020-11-26
KR20220020199A (ko) 2022-02-18
JP2022032974A (ja) 2022-02-25
CN114124426A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
DE102021117755A1 (de) Schutz vor netzwerk-initiierten angriffen
DE112020007201T5 (de) Speicherzuordnung für verteilte Verarbeitungsvorrichtungen
US20200280518A1 (en) Congestion management techniques
US20200322287A1 (en) Switch-managed resource allocation and software execution
US20200150734A1 (en) Remote register updates
EP4231158A2 (de) Steuerung zum sperren ausgewählter cache-bereiche
DE102020133262A1 (de) Arbeitslastscheduler für Speicherzuweisung
DE102020122301A1 (de) Konfigurationsschema für link-herstellung
DE102018109397A1 (de) Techniken für sicherheitschip-speicher für vertrauenswürdige ausführungsumgebungen
US11567556B2 (en) Platform slicing of central processing unit (CPU) resources
US20210014324A1 (en) Cache and memory content management
DE102021134581A1 (de) Auslagerung von entschlüsselungsoperationen
US20220210075A1 (en) Selective congestion notification by a network interface device
US20210303477A1 (en) Management of distributed shared memory
DE102021122231A1 (de) Dynamische netzwerksteuerungs-leistungsverwaltung
US20200117625A1 (en) Management of fault notifications
DE112020006858T5 (de) Dynamische interrupt-bereitstellung
DE102022124530A1 (de) Speicherpoolmanagement
DE102022126611A1 (de) Service-mesh-auslagerung an netzwerkvorrichtungen
DE102022129250A1 (de) Übertragungsrate basierend auf detektierter verfügbarer Bandbreite
DE102022121268A1 (de) Überlastungssteuerung auf basis von netzwerktelemetrie
DE102022103981A1 (de) Flusssteuerungstechnologien
DE102020130555A1 (de) Adaptiver datenversand basierend auf lastfunktionen
US10944695B2 (en) Uplink port oversubscription determination
DE102020102981A1 (de) Auswahl von Eingängen für Nachschlagoperationen

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012260000

Ipc: H04L0043000000