1. 程式人生 > >【計算機網路實驗】乙太網交換機的自學習演算法

【計算機網路實驗】乙太網交換機的自學習演算法

題目描述乙太網交換機是一種即插即用的裝置,其內部的幀交換表(又稱為MAC地址表)是通過自學習演算法自動地逐漸建立起來的。
自學習演算法:
交換機收到一個幀之後,查詢MAC地址表中與收到幀的源地址有無相匹配的專案。
如沒有,就在MAC地址表中增加一個專案(源地址、進入的介面和時間);
如有,則更新原有的專案。
現假設有一臺24埠的乙太網交換機,在一開始,乙太網交換機裡面的MAC地址表是空的。你的任務是編寫程式使用自學習演算法建立乙太網交換機的MAC地址表(最多24條專案)。輸入描述輸入有若干行,每行表示進入交換機的幀相關的資訊。包括4個部分:目的MAC地址 源MAC地址 進入的埠號 進入的時間,相互之間以空格分隔,其中MAC地址用十六進位制表示。

輸出描述

當所有輸入結束後,按照MAC地址從小到大的順序輸出乙太網交換機的MAC地址表,具體格式詳見樣例輸出。其中Mac Address佔18位,左對齊;Ports佔8位,左對齊;Time左對齊。

輸入樣例

0009.7c7c.c95e 0001.422b.486b 12 25
0050.0fc3.7770 0001.4252.89e7 3 48
ffff.ffff.ffff 0001.4339.b5a9 8 112

輸出樣例

Mac Address       Ports   Time
0001.422b.486b    12      25
0001.4252.89e7    3       48
0001.4339.b5a9    8       112
#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<sstream>
using namespace std;

const int maxn = 1e3 + 10;

struct Node
{
    string addres;
    int port;
    int time;
}addr[maxn];

bool cmp(const Node &a, const Node &b)
{
    return a.addres < b.addres;
}

int main()
{
    string addres1, addres2;
    int ports, time;
    int k = 0;
    while(cin >> addres1 >> addres2 >> ports >> time)
    {
        addr[k].addres = addres2;
        addr[k].port = ports;
        addr[k].time = time;
        k++;
    }
    sort(addr, addr+k, cmp);
    printf("Mac Address       Ports   Time\n");
    for(int i = 0; i < k; i++)
    {
        printf("%-18s%-8d%d\n", addr[i].addres.c_str(), addr[i].port, addr[i].time);
    }
    return 0;
}

相關推薦

計算機網路實驗乙太網交換機學習演算法

題目描述:乙太網交換機是一種即插即用的裝置,其內部的幀交換表(又稱為MAC地址表)是通過自學習演算法自動地逐漸建立起來的。自學習演算法:交換機收到一個幀之後,查詢MAC地址表中與收到幀的源地址有無相匹配

計算機網路實驗4 web服務,路由器連線兩個網路

目錄 一、實驗目的 二、實驗裝置 三、實驗步驟 1、新增實驗裝置 2、設定伺服器ip,閘道器 3、設定路由器1的ip  4、設定客戶機ip、閘道器 5、設定路由器2的ip  6、測試連通性 一、實驗目的 1.用路由器連線兩個網路

計算機網路實驗2 DHCP伺服器的應用

目錄 一、實驗目的 二、實驗步驟 1、新增一臺路由器 2、新增三臺臺式電腦 3、新增一臺筆記本 4、新增一個交換機 5、切換筆記本為無線 6、設定3臺臺式機的DHCP 7、執行ipconfig命令 一、實驗目的 研究DHCP伺服器的應用。 二、

計算機網路實驗1 小型網路的組建

目錄 一、實驗目的 二、實驗內容 三、實驗器材 四、實驗步驟 1、新增交換機  2、新增無線路由器 3、新增兩臺桌上型電腦 4、新增一臺筆記本 5、膝上型電腦暫不使用雙絞線連線 6、設定三臺電腦的IP地址、子網掩碼、閘道器和DNS伺服器地址

計算機網路實驗迴圈冗餘檢驗CRC

CRC的基本思想:將二進位制位串看成係數為0或1的多項式。使用CRC編碼時,傳送方和接收方必須事先商定一個生成多項式G(x),生成多項式的最高位和最低位的係數必須是1。假設一個幀有m位,對應的多項式為M(x),為了計算它的校驗和,該幀必須比生成多項式長。CRC的原理:在幀的尾部追加一個校驗和,使得追加之後的幀

計算機網路原理第二章 計算機網路體系結構

 計算機網路體系是現代計算機的核心,本章主要介紹了計算機體系結構和開放互連參考模型、TCP/IP協議以及比較。 一,總體概述 首先介紹了網路分層體系結構 第一,首先介紹了網路傳輸遵守的協議主要內容

前端計算機網路原理網路基礎總結

TCP/IP協議分層 一、應用層 協議:HTTP 提供了web文件的請求和傳送 SMTP提供了電子郵件報文的傳輸 FTP提供了兩個端系統之間的檔案傳輸 POP3郵局協議 功能:應用層是網路應用程式以及它們的應用層協議存留的地方。 資

計算機網路:關於wireshark抓包實驗的思考

前言 關於這種抓包實驗,也不好多說啥了,老師什麼都不講明白,就讓學生咔咔就是懟,我想如果悟性不行的學生直接就會被out of the way了 = = 思考 這種東西,首先你要明白,wireshark就是一個很方便你看資料的軟體,僅此而已,而各種資料報

計算機網路第四章 網路層(4)

六.ICMP 1. 網際網路控制報文協議ICMP (1)功能:支援主機或路由器做差錯(或異常)報告,網路探詢 (2)兩類ICMP報文   ·差錯報告報文(5種):目的不可達、源抑制、超時/超期、引數問題、重定向   ·網路探詢報文(2組):回聲(Echo)請求與應答(Reply)報文、時間戳請求與應

計算機網路第四章 網路層(3)

四.DHCP協議 1. 如何獲得IP地址 (1)靜態配置:硬編碼   ·手動配置IP地址、子網掩碼、預設閘道器   ·手動配置DNS伺服器名稱及IP地址 (2)動態配置:動態主機配置協議(DHCP)   ·從伺服器動態獲取引數,即插即用   ·允許地址重用、在用地址續租   ·支援移動使用者加

計算機網路資料鏈路層總結

資料鏈路層 目錄 資料鏈路層概述 基本概念 資料鏈路層的三個基本問題 點對點通道的資料鏈路層 概述 PPP協議的組成 PPP幀的格式和要求 PPP協議的工作狀態 廣播通道的資料鏈路層 區域網和乙太

計算機網路第四章 網路層(5)

八.路由演算法 1. 路由與轉發 (1)路由演算法(協議)確定去往目的網路的最佳路徑 (2)轉發表確定在本路由器如何轉發分組 2. 網路抽象:圖   (1)應用:如P2P,N是peers集合,E是TCP連線集合 (2)費用   ·c(x, x’) = 鏈路(x, x’)的費用   

計算機網路第五章 資料鏈路層(1)

一.資料鏈路層服務 1. 概述 (1)術語   ·主機和路由器:結點   ·連線相鄰結點的通訊通道:鏈路(有線、無線、區域網)   ·鏈路層資料分組:幀 (2)資料鏈路層主要任務:通過一條鏈路從一個結點向另一個物理鏈路直接相連的相鄰結點傳送資料報 2. 鏈路層服務 (1)組幀   ·封裝資料

計算機網路第四章 網路層(6)

九.Internet路由 1. AS內部路由協議(IGP) (1)路由資訊協議:RIP (2)開放最短路徑優先:OSPF (3)內部閘道器路由協議:IGRP(Cisco私有協議) 2. RIP協議 (1)距離向量路由演算法   ·距離度量:跳步數(max = 15 hops),每條鏈路一個跳步

計算機網路第五章 資料鏈路層(2)

三.多路訪問控制(MAC)協議 1. 兩類鏈路 (1)點對點鏈路:撥號接入的PPP、乙太網交換機與主機間的點對點鏈路 (2)廣播鏈路(共享介質):早期的匯流排乙太網、HFC的上行鏈路、802.11無線區域網 2. 基本概念 (1)單一共享廣播通道 (2)兩個或兩個以上結點同時傳輸,則發生衝突;結點

計算機網路網路基礎知識和TCP/IP協議族

一、計算機網路產生 二、概要----七層 三、計算機使用模式的演變 四、OSI參考模型 五、OSI參考模型中各個分層的作用 六、OSI參考模型----通訊處理舉例 七、網路的構成要素 八、TCP/IP 協議群

計算機網路第五章 資料鏈路層(3)

四.ARP協議 1. MAC地址(LAN地址、實體地址、乙太網地址) (1)作用:用於區域網內標識一個幀從哪個介面發出,到達哪個物理相連的其他介面 (2)固化在網絡卡的ROM中(唯一的),有時可以軟體設定 (3)表示:十六進位制、六個位元組,如1A-2F-BB-76-09-AD (4)管理:IEEE

計算機網路實驗 — Cisco交換機的配置

Cisco交換機的配置實驗的具體步驟及命令程式碼: Switch> enable ——————————————觀察交換機相關資訊 Switcher#show version ——————————————檢視交換機配置 Switch#show running-config ———————

計算機網路學習筆記

第二章 應用層 目錄 第二章 應用層 2.1應用層協議原理 2.1.1    網路應用程式體系結構 2.1.2    程序通訊 2.1.3    可供應用程式使用的運輸服務 2.1.4&nbs

計算機網路輸入網址到網頁顯示的整個流程

                            輸入網址到網頁顯示的整個流程 最近在看一些大廠的筆經面經時,經常看到這個問題,索性在今天也把自己