超越LAN之外 --- Internetworking

基于MATLAB的太阳能光伏电力仿真,模拟每日太阳能发电,可视化功率曲线,并通过数值积分计算总能量输出。.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

基本上我們前面所接觸的都是在LAN的範圍﹐但時至今日的網絡﹐尤其是 Internet 的蓬勃發展﹐我想也很少網絡會獨立在局域之內吧﹐所以了解一下網路和網路之間的通訊是勢在必行的了。

在某些定義來看﹐一個 LAN 就好像一台放大比例的電腦﹐只不過更加複雜而已﹔那麼在 LAN 和 LAN 之間組建網路﹐我們稱之為 internetworking 。其應用非常廣泛,比如﹕

  • 圖書館可以通過它安排聯網借還
  • 可以將各醫院的病人記錄集中管理
  • 銀行可以通過它進行轉帳
  • 報館之間可以進行新聞交換
  • 旅行社可以為客人預定全世界的機票和座位

可以說 internetworking 所帶來的便利遠超過我們能夠想象的。

Internetworking設備

增益器(Repeater)

我們已經在前面講述過 repeater 的功能了﹕它是用來放大傳輸信號的。當我們的網路線路過長的時候﹐信號會因為損耗而減弱甚至丟失﹐這樣的話﹐repeator 就可以在中間幫我們將信號接收下來﹐然後把它放大重新繼續傳送以達到我們預定的距離。

準確來講﹐repeater 不能算是 internetworking 的設備﹐僅可以算是網路的延伸設備﹐基本上它做到的只是重複它所收到的信號而已。如下圖:

集線器(Hub)

Hub 和 Repeater 都是 OSI 中第一層(Physical) 的設備。在技術上差不多是同一樣的動西,只不過在早期的 physical bus topology 上,我們稱之為 repeater :通常有兩各 port 分別連接兩個 segment (一個 segment 就是一個無需借助 Internetworking 設備連接的彼此相鄰的電腦群體)。而 Hub 則常見於 physical star topology 上,有多各 port ,分別連接主機/設備或是其它 Hub 。功能上,兩者都是一樣的:將信號放大,再重送一遍。或許,我們可以簡單的將 hub 的每一各 port 都視為 repeater 就是了。

橋接器(Bridge)

它是一個硬體或軟體用來連接不同的網路區段(segment)的設備。例如﹐您可以用一個 bridge 來連接兩個 Ethernet segment﹑或連接一個 Token Ring segment 到一個 Ethernet segment﹑或連接一個 Mac segment 到一個 PC segment。

只要網路間使用相同的傳輸協定(如 IPX 或 TCP/IP )﹐bridge 就可以成功的將任何網路連接到其它網路﹐它們之間的溝通就無需理會對方使用的是何種網路硬體了。

一個 bridge 的資料傳輸主要有三個步驟﹕

  1. Discovery﹐就是 bridge 的任意一端是否有資料到達
  2. Filtering﹐接著 bridbe 過濾(filter)資料,並決定是否需要傳送到另一端
  3. Forwarding﹐然後 bridge 將資料傳送(forward)給目的端位址,若使用的格式不一致,則同時進行轉換。

其實 bridge 是很簡單的﹐就像一座橋架於不同的網路之間﹐您可以將它想象成兩個國家之間的邊境橋樑﹐而兩國都使用著自己各自的語言﹕一邊說 Token 語﹔另一邊說 Ether 語。由於兩國過從甚密﹐然語言又互不相通﹐所以他們就聘請了一個傳譯員坐在橋中間﹐再另外聘兩個跑腿各站兩邊。當說 Token 語的跑腿來告訴傳譯員他們有信息傳到另一邊﹐傳譯員首先將地址翻譯成 Ether 語﹐再將信息重新裝進 Ether 國的信封﹐然後叫說 Ether 語的跑腿將信送到該地址去。傳譯員一點也不在乎信是從哪邊過來的﹐他只關心的是地址之準確性就行。

另外﹐bridge 除了是一個傳譯員之外﹐它還可以充當交通警察。當我們發現網路過于繁忙的時候﹐那麼我們就可以將網路分成兩個或多個 segment﹐而 bridge 就可以幫助網路更好的管理交通和解決瓶頸問題了。事實上,我們也經常用 bridge 將一個相同類型的大 segment 切成多個小 segment ,利用其 filtering 的功能將網路廣播降下來,以提高整體網路的傳送能力。請大家復習一下 CSMA/CD 就知道 bridge 的好了:

若沒有 bridge 的 segment 中(或是用 repeater 連接兩個 segment),當任意一台主機在傳送資料的時侯,其它主機就要等(CS)﹔若是兩台主機在同時進行傳送,就會發生碰撞而導致重送(CD)。如下圖:

若在中間部署一台 bridge 的話,因為 bridge 的 filter 能力,讓不同 segment 的信號互不干繞(除非兩端跨 segment 傳送)。因此,對 CS 與 CD 都有很大提昇,當節點越多的時侯,bridge 的好處就更明顯:

交換器(Switch)

當您了解 Repeater 與 Bridge 的差異之後,您大概也能理解 Hub 與 Switch 的差別:我們知道 hub 就好比一個多 port 的 repeater ,那麼 switch 大概就是一個多 port 的 bridge 而已。當然了,現在的 switch 除了擁有自己的 switch table 而做到類似 bridge 的過濾功能外,還有自己的 CPU 與 Memory ,提供不同的 queue 及運算能力,在整體上提高整個網路的傳送速度。在 switch 上所採用的傳送方式,大致分 store & forward 及 cut through 兩種技術(通常同時提供)。再加上 full duplex 的設計,避免了共享單一傳送媒體所導致的 collision ,在某一程度上,將 CSMA/CD 的弊端作了最大的化解(甚至有人認為連 CSMA/CD 都不存在了)!

通常來說,Switch 是用來建構高速乙太網( fast ethernet,最低為 100Mbps ) 的設備,不太可能用 hub(repeater) 來連接的。在我們的應用中,switch 也可以工作於 OSI 模型中的不同層級:L2、L3、L4、L7 等。不同的層級,在封包的處理能力上也大大不同,若沒有特別指明,一般是指 L2 Switch 。就算是同層級的 Switch,不同 的功能其價格上也差異很大,比方說,是否能切割 VLAN 、是否可作 Truncking、是否支援 SNMP、CPU/RAM/演算法、等等... 總之,一分錢一分貨就對了!只是要看錢是否花得其所而已。

路由器(Router)

和 bridge 差不多﹐router 是一個用來將資料從一個網路主機傳送到其它網路主機的硬體或軟體設備。

在使用 bridge 的時候﹐它的工作較累,就算是同一國度裡面的人民相互分享資料﹐傳譯員也要先檢查一下﹐確定是否要進行翻譯傳遞。就算真的不需傳遞,bridge 也要進行判斷。這方面﹐router 比 bridge 聰明些﹐也不像 bridge 那樣勞碌。在 router 上面,如果資料是傳遞到相同的國度裡去﹐router 就根本無需理會﹐而讓資料按其正常的方法傳遞﹐就如根本沒有 router 存在一樣。只有那些需要翻譯的資料﹐router 才會理會。因為在 routing 的層面來說,每一台主機在將封包丟出去之前,就已自行判斷了該封包是否需要傳給 router ﹔但在低層的硬體傳輸層面來說,信號是以廣播方式在共享媒體上傳輸,bridge 必需比較完兩端的實體位址才能決定是否要 filter/forward 。

從 OSI 層級來分﹕bridge 屬於第二層,只要上層的傳輸協定是一致的,那 bridge 就能讓不同的硬體 segment 溝通。而 router 則是第三層的設備,它所負責的是傳輸協定本身的溝通。換句話說,bridge 跟本不必操心也讀不懂傳輸協定的羅輯位址長甚麼樣子,它只讀得懂底層的硬體位﹔反過來,router 只需讀懂羅輯位址就行,而跟本不需要知到硬體位址如何,因為, router 在判斷完羅輯位址後,真正的傳輸工作,則往下交給底層的設備完城。這需要您對 OSI 模型非常了解才能理解,若現在不是很清楚,沒關係,等我們日後講完 OSI 再回來溫習就好。

還要一種叫做Brouter(我也不知道如何翻譯)的設備﹐可以應用於不同的傳輸協定上面﹐它揉合了bidge 和 router 的優點所在﹕既可以使用不同的上層協定﹐也可以直接將數據以最快的路徑傳遞。當然﹐它的問題是比較難昂貴﹐而且安裝也是件非常頭疼的事情﹕它需要對每一個不同的網路進行細緻的調校。如果您有一個比較複雜的具有多種平臺的大型網路環境﹐使用 brouter 通常可以獲得最佳的效能﹐盡管安裝比較困難﹐但一旦設好了﹐自是受益非淺。然而,由於 Switch 的應用技術越來越廣,或許今天很難找到 Broter 設備了,通常可見的,多應是 L3 Swtich 了吧?

網關(Gateway)

Gateway 可以說是 internerworking 的最終極設備了﹐它通常是一些硬卡跑著一些軟體﹐專門是設計給兩個完全不同的網路結構(比如 PC 網路和 SNA Mainframe)之間進行溝通的。因為, gateway 的工作囊括了整個 OSI 的七個層級。

如若 bridge (工作於第二層) 和 router (工作於第三層) 所使用的傳譯員僅能夠翻譯語言﹐gateway 這個更高級的翻譯卻能完全的將各自不同的交流模式進行翻譯﹐並能讓對方可以理解﹐不管他們使用的是畫畫還是跳舞。

Bridge 的使用

正如剛才提到 bridge 的時候﹐已經知道它的主要功能就是過濾(filter)和傳遞(forward)﹐當 bridge 接到一個封包的時候﹐它就得問自己﹕“這個封包究竟是留在這個區段內﹐還是應該傳遞到下一個區段呢﹖”

讓我們先假設在兩個 Ethernet 區段之間架設了一個 bridge ﹐您有一個資料想從區段甲的節點 A 送到區段乙的節點 B﹐其過程有的像這樣﹕當節點 A 送出的封包抵達 bridge 的時候﹐bridge 會先檢查封包的來源地和目的地﹐如果是寄往同一區段的其它節點的話(在 bridge 的同一邊)﹐橋就不會向區段乙進行傳送了﹐我們稱這功能為過濾﹐這樣區段乙就減少了無必要的交通﹐參考下圖﹕

但是﹐如果封包的來源地與目的地不一個區段的﹐或是一個 Layer 2 層級的廣播封包,那麼 bridge 就將封包向另外一邊傳送﹐這動作我們稱之為傳遞﹕

Bridge 通常是獨立協定之外的﹐可以同時支持多個協定﹐它只關心封包的來源和目的位址﹐不管雙方使用的封包是 IPX 還是 TCP/IP﹐bridge 都毫不理會。只要它讀得懂來源和目的位址﹐就能夠判定要對封包進行過濾還是傳遞。

一般的 bridge 都有一種 learning 能力,會保持一個表格記錄哪些位址屬於哪個區段﹐每次有封包在網路中傳遞的時候﹐bridge 都會參考記錄檢查其封包位址﹐並進行必要的更新。但並不是所有 bridge 都會這樣做﹐有些比較低檔的 bridge 就不管三七二十一﹐凡是接到封包就給它傳遞出去﹐我們稱這樣的 bridge 為forward-only bridge﹐請參考下圖﹕


Learning Bridge: 只對不同區段的封包進行傳遞。

有些 bridge 或會連接兩個以上的區段﹐當有廣播封包(就是給所有節點的封包)要發送的時候﹐由於它是要傳遞給網路上所有節點的﹐bridge 就會將它傳遞給所有連接上來的區段﹐我們稱這樣的情形為flooding。越多這樣的廣播封包﹐flooding 的出現也就越頻繁﹐網路也就越慢﹕

那究竟我們如何避免 floodin g呢﹖下面有兩個選擇﹕

  • 如果您需要使用一個 bridge 來連接多個區段﹐確定您購買的是 learning bridge﹐也就是能夠追蹤每個節點位址的bridge。
  • 您還可以購買half-bridge﹐也就是使用一對 bridge 將過濾和傳遞工作分開。見圖﹕

Half-bridge 也有被稱做 remote bridge ﹐通常是配對的用來連接兩個區段﹐而各自只負責一半處理。例如﹐有一個封包要由區段甲的節點 A 送到區段乙的節點 B ﹐先會到達區段甲的 half-bridge ﹐這個 half-bridge 只會記著自己所連接的區段之內的位址﹐如果位址不是在此區段﹐那麼就將封包傳給另外一個 half-bridge ﹔當另外的 half-bridge 收到封包之後﹐看看位址是否屬于它所屬的區段﹐如果不是的話﹐這個封包就會被忽略﹐也不會被重發。這樣﹐網路的交通就會被限制在最低的情況之下了。

如果您的網路擴展到一定範圍的時候﹐您就要考慮增加 bridge 了。然而﹐當使用多個 bridge 的時候﹐您就會有風險遇到 broadcast storm 的問題。這通常發生在當區段之間有超過一個路徑的時候﹕

如上圖所示﹐當區段甲的節點 A 對本區段進行廣播(在 Layer 2 上的廣博)﹐有兩個 bridge 接收到信息﹐因為是廣播的關系,皆認為可以向區段乙傳遞。但是,當其中一個 bridge 將信號 forward 到另一個 bridge 的時侯,這個廣播會讓 bridge 再 forward 一次(回到區段甲)﹔然後又送到另一個 bridge ,再重復 forward 下去,因而造成一個無窮回迴圈(loop)。

不過可以告訴大家的是﹐bridge looping 只會在 Ethernet 邏輯形態和 Bus 物理形態上面出現﹐若使用 802.5 的 Token Ring 網路,對它是免疫的。

Bridge 的標準

由於 bridge 只有很低的處理能力﹐如果網路交通太忙的話﹐有可能出現封包丟失的情形。為了解決這樣的問題﹐一些 bridge 的標準相繼的被開發出來﹐通常有兩個標準是比較廣泛被接受的﹐它們是﹕spanning tree 和 source-route bridging 標準。而且﹐這些標準都可以解決 looping 和 flooding 的問題﹗不錯哦~~

Spanning Tree Standard

此標準裡面﹐網路會有一個 root bridge ﹐然後其下還有一些 child bridge ﹐這個 root bridge 會決定目的封包要傳遞給哪一個 child bridge。由於上級 bridge 只會將封包傳遞給包含該目的位址的下級 bridge ﹐因而也就避免了產生 looping 的可能性。

Spanning Tree 是由 Digital Equipment Corporation (DEC) 開發的﹐是專門給 802.3 (邏輯 bus 或 Ethernet ) 和 802.4( token bus )網路使用的。給 802.5 的 Token Ring 使用的是下個要說的標準。

Source-route Bridging Standard

在 Source-rout Bridging 標準裡面﹐發送端節點要先判定哪個傳送路徑是最佳的﹐再將封包傳給 bridge ﹐然後再傳給目的地的 bridge。這時候 bridge 可以當成網關(gateway)一樣。它們的連接如下圖﹕

當一個 bridge 判定了兩個節點之間的最佳路徑之後﹐就會永遠地使用此一路徑﹐就算以後還有更佳路徑的出現也不會被考慮的了。如果您想您的 bridge 能夠適應不同的網路交通層次﹐並能報告出進行橋接過程的錯誤信息﹐那麼您需要的並非 bridge ﹐而是 router 了。

Router 的使用

Router 有那些功能呢﹖先讓我們先將它和 bridge 做一個透視比較﹕

  • Router 可以在節點間進行多工處理
  • Router 可以直接和使用者設備溝通
  • Router 可以協助管理網路交通
  • 不像 bridge﹐router並不會閱讀所有在網路上面的封包﹐只會閱讀那些需要進行路由的封包
  • 由於 router 是用來連接不同網路的﹐所以他們並不能獨立協定之外

為了更好的了解 router 的功能﹐您最好先要明白 router 是如何工作的﹐以及它和 bridge 的分別。它們主要的分別是它們如何看待所連接上來的區段﹕當使用 bridge 連接兩個網路的時候﹐它們僅屬於同一網路之內的兩個區段﹔如果使用 router 來連接兩個網路﹐它們是各自獨立的網路。

如下圖所見﹕當網路 1 的節點 A 要傳送一個封包網路 6 的節點 B﹐節點 A 會先將封包傳給連接到網路 1 的 router 1。當 router 1 接到封包的時候﹐他就得要判定哪條是最佳的傳遞給網路 6 的路徑,也就是下一站是誰?通常,最佳的路由路徑會在好幾個不同的 router 之間換來換去的﹐但無論如何﹐在 router 將送出封包之前﹐都會根據當前情況而選擇最佳的路徑。Router 具備這種搜索路徑的能力是非常有用的﹐不過這要基於它能否看到其它 router 的能力而定。

由於 Router 1 分別連接到 Router 2﹑3﹑4﹐它會知道它們有多忙以及它們和哪些網路連接著﹐這樣﹐當 Router 1 有封包要傳遞到其它網路的時候﹐它就會看看哪條路徑在當時是最快的。由於 router 2 和 4 都比較忙﹐所以 router 1 也就選取了沒那麼忙的 router 3 為路徑了。

每次當封包從一個 router 傳到另一個 router 的過程﹐我們稱之為“hop”,許多較為簡單的路由演算法會以最少 hop 數為成本,然後成本最低的就是最佳路逕條。然而,封包所經的路徑通常會在中游就會被改變,以補償網路交通的變化。例如﹐在網路 1 的節點 A 有一個封包要送到網路 4 的節點 B﹐必需經過 router 1﹑2﹑3 和 4 ﹐您可以從下圖看到初始路徑的選擇﹕

然而﹐當封包從 Router 1 移到 Router 2 的時候﹐Router 2 或許會說﹕“嗯~~ 我可以將這個封包傳給 Router 3 ﹐不過~~ Router 3 現在看起來挺忙的﹐我想封包如果經由 Router 5 ﹐然後到 6 ﹐再到 7 ﹐再到 4 或許比較快些咧﹐因為 5﹑6﹑7 好像比較清閑。”這條路徑就會改變成下圖那樣了﹕

雖然這路徑要經的 hop 數目更多﹐但它依然是比經由繁忙的 router 3 要快。單純以 hop 數為依據的路由協定屬於 distance vactor routing protocol ,例如 RIP (Routing Information Protocl )﹔更複雜的,更據連線狀態進行調整的稱為 link stat routing protocol ,例如 OSPF (Open Shortest Path First)。大多數的 router 都支援這兩類的路由協定。

當封包在進行路由的時候﹐有兩組位址是 router 必需追蹤的﹕封包的羅輯位址(來源跟目的)﹐以及硬體位址(來源和目的)。而一個單一的羅輯位址通常是這樣的一個組合﹕網路位址和節點位址。羅輯個位址在路由的任何過程中都不會改變,除非經過刻意修改。硬體位址則記錄著封包"當時"所經的兩個 router 的界面位址﹐而且每次跳站都有所不同。透過一個接力的方式,一站傳一站,將封包最終送抵目的地。您可以從下圖看到這過程是如何工作的﹕

正如您所見到的﹐router 和 router 之間必需相互認識才能讓路由工作正常。更重要的是﹐對使用者而言﹐所有工作站只須知道它們直接連到哪個(些) router 去。若有一個 router 加入到網路中的時候﹐它都會向 WAN 上面的其它 router 廣告自己的位址和其所連接的網路﹕

當其它 router 接收到這樣的廣播信息之後﹐就會將資料加入本身的路由表(routing table)去﹐如果越多 router 加入﹐那麼路由表也就越大。至於路由表的格式則視乎所使用的路由協定而定﹐這些協定都會規定出諸如﹕如何產生路由表﹑如何對建構的表格進行追蹤﹑要保存什麼樣的資料﹑以及每個 router 如何和別的 router 進行溝通等細節。其中有一個比較簡單的路由協定叫做 Routing Information Protocol (RIP)。

當您開啟一個 RIP router 的時候﹐它會先建立好自己的路由表﹕首先﹐它向所有它連接的網路廣播自己位址﹐並廣告其它在 WAN 上面的 router 這些信息。然後大約每隔一分鐘﹐router 就會對資料進行更新﹐在其余時間﹐它會傾聽其它 router 的廣告信息﹐如何將所有新信息加進自己的路由表。這裡的最重要字眼是 ---新。每次當 router 的狀態或連接發生改變的時候﹐它都會廣播這些信息﹐讓其它 router 將舊信息刪除掉﹐換成新的信息。這樣﹐如果 WAN 上面有一個 router 工作不良的話﹐其它 router 就會知道﹐而不會再將封包傳送給它了。

您可以把 RIP router 看成是極度信任別人的一伙﹕它們之間不斷地相互交談﹐但永遠只相信最後告訴它們的 router 所說的。不過﹐這樣有一個潛在的問題﹐如果其中一個 router 有一個錯誤的關于別的 router 的信息﹐然後將這不實信息在 WAN 上傳播開﹐其它 router 接收到信息後就會更新它們的路由表﹐而不實的路由表會導致封包的傳送速度變慢。其情形就如下圖一樣﹕

為了繞過這個問題﹐許多新的路由協定都只會廣播其直接連的網路信息﹐也就增加了資料的可信性了。

Gateway 的使用

Gateway 的工作比 bridge 和 router 都要複雜許多﹕Bridge 只是簡單的看看封包資料的來源和目的位址﹐然後將資料傳遞到正確的地方﹔Router 則會看看封包資料然後把封包傳給其它 router ﹐一路的改變硬體來源和目的位址﹐但並不改變封包裡面的資料﹔但是 Gateway 卻實際上可以有效地將資料從一種協定標準轉換成另一種協定標準﹐它在處理使用完全不同協定的網路間的數據傳輸過程中﹐可以使用兩種方法﹕tunneling 和t erminal emulation。

Tunneling

這是最常用﹐而且也是處理器耗費最少的方法。使用 tunneling ﹐gateway 會先使用第一個網路的格式傳送封包﹐並將之包裹在雙方都容易理解的格式﹐然後在另外一個網路中﹐使用另一種格式進行傳送。

概念上﹐tunneling 和郵局系統差不多﹕如果您使用公司內部便條傳一個 memo 給同辦公室的同事﹐只要填上發信人和收信人﹐然後交由秘書就可以﹔但如果要經過郵局寄信給分公司的某經理的話﹐則不能使用這樣的格式了。因為郵局不知道如何處置這便條才好﹐所以您必須將便條裝進郵局標準信封(也就是所謂的雙方都容易理解的格式)裡面﹐然後郵局將信件傳(路由)到分公司經理﹐然後他把郵局信封(路由信封)撕掉﹐就可以得到您的便條了﹔假如便條是用英文寫的﹐而那經理卻只識中文﹐那麼就要找秘書給翻譯(數據轉換)了。

比如說﹐我有一個 Novell IPX 封包要從我的 PC 送給在 AppleTalk 網路上面的 Mac ﹐而 Netware 和 AppleTalk 都可以理解 TCP/IP。這樣﹐我就可以進行資料傳輸了﹕PC 將封包裝進一個 TCP/IP“信封”裡面﹐然後將封包發送出去﹐當抵達 Mac 之後﹐將 TCP/IP 信封撕掉而得到真正的封包﹐但此時 Mac 依然是讀不懂封包內容的﹐它還的做些數據轉換工作才能看的懂 PC 的數據。不過﹐數據轉換卻不是 gateway 的問題哦﹐一旦數據從 PC 網路抵達 Mac 網路﹐gatewate 的任務就大功告成了。如果您記不起前面討論 TCP/IP 時候的圖示﹐現在也可以重溫一下﹕

Terminal Emulation

另一種 gateway 方法是使用 terminal emulation。比方說,Mainframe 原本在設計上並不是和 PC 溝通的﹐它們是使用 dumb terminal 進行通訊的。這樣﹐當一台 PC 要和 mainframe 通訊的時候﹐它在轉換過程中就得將自己當成終端才行。

通常有兩種方法可以進行終端模擬﹕終端模擬卡和終端模擬軟體﹐同時﹐也有兩個途徑來成功地執行終端模擬﹕

PC Emulation Card﹐或稱為 gateway card﹐您可以將它插進每一台需要連接 mainframe 的 PC。不過這通常都很費勁才能將之調整正確﹐因為這比較容易引起資源衝突或是系統不穩定等問題。您可以從下圖看到這樣的配置﹕

然而﹐使用 Emulation Card 進行終端模擬都會有下面的不利因素﹕

  • 比較昂貴﹐您必須購買額外的硬體和軟體來讓您的 PC 和 mainframe 溝通。
  • 額外的軟體和硬體也容易引起更多的設備衝突。
  • 比較慢﹐每次您要由一個作業系統要求另外一個系統﹐都需要時間。

針對那些問題﹐您或許會考慮使用gateway server﹐不過您依然還是會碰到這些問題的﹐只不過將問題集中在一台機器而不是在所有機器而已﹐而且那些使用軟體的工作站還依然可能會碰到軟體上面的麻煩。

Gateway Server﹐您可以專門指定一台 PC 為工作站處理所有的模擬工作﹐這樣的 PC 就成為 gateway server 了。模擬卡只需安裝在這台機器之上就可以﹕

這樣所有工作站都使用模擬軟體連接到 gateway server ﹐再通過模擬卡和 mainframe 溝通﹐

小結

至此為止﹐相信您也已經有一定的概念去如何使用各種不同的設備將您的 LAN 連到 WAN 上面了吧。如果您管理的是一個小辦公室﹐那您很有可能是邀請外面的商家幫您連接您的 LAN。然而﹐當您的網路成長的時候﹐對各種 WAN 設備的需求也會顯得越來越重要了。 


原文:http://www.study-area.org/network/network_inter.htm

人脸识别签到考勤系统实战源码 这是一套可直接运行的人脸识别智能签到考勤系统,基于OpenCV YuNet人脸检测与SFace特征识别实现,全程本机运行,数据保存在本地SQLite,不上传任何服务器。配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、逐步骤操作截图和答辩PPT讲解。 系统围绕五个功能模块展开:人脸注册支持照片批量导入并提取特征入库;识别签到支持照片或摄像头两种方式,实时框出人脸并标注姓名、相似度与考勤状态;考勤规则引擎按config.py里配置的上下班时间与宽限分钟,自动判定迟到、早退、缺勤;Tkinter管理面板完成人员管理、流水查询与月度汇总;最后通过openpyxl一键导出整月考勤矩阵,正常绿、迟到黄、缺勤红,Excel打开即用。 选型上特意选了YuNet+SFace路线:纯pip安装免编译,CPU单帧识别不到100ms,两个ONNX模型共约37MB,出自OpenCV官方模型仓库,毕设报告引用有据可查。教程第7章整理了16条Windows下真实踩过的报错及排查方法,第8章给出换模型、换人脸、加功能的二次开发路径。 适合做计算机视觉方向毕设或课程设计的学生,也适合想给班级、实验室、小团队搭一套本地签到工具的Python学习者。运行环境为Python 3.9以上、Windows 10/11,不需要GPU。 使用时先pip install -r requirements.txt装齐依赖,再运行download_data.py下载模型,最后启动main.py即可进入图形界面;命令行register、recognize、report子命令也可脱离界面单独调用。 立即下载

相关推荐

【无人机航测】MATLAB重叠率与地面分辨率协同设计:航线间距及飞行方向优化系统 MATLAB 无人机航测重叠率设计|地面分辨率与航线间距计算

内容概要:本文档介绍了基于MATLAB R2025b开发的无人机航测重叠率与航线间距计算系统,旨在通过建立统一的航测几何计算体系,实现重叠率、地面分辨率与航线间距的动态协同设计。系统结合相机参数、飞行参数、地形数据与风场信息,通过自动化候选航向搜索与多目标优化,选择兼顾覆盖质量、飞行效率与安全性的最优航线方向。项目涵盖从参数输入、摄影测量计算、地形与安全修正,到候选路线生成、综合评价与结果可视化的全流程,并构建了五万组模拟数据用于算法验证与模型训练,支持桌面交互、批量处理与服务化部署,适用于多种复杂场景下的无人机航测任务规划。 适合人群:具备一定MATLAB编程基础和摄影测量知识的科研人员、工程技术人员及高校师生,尤其适合从事无人机航测、地理信息系统(GIS)、遥感与测绘等相关领域的从业者。 使用场景及目标:① 实现无人机航测任务中地面分辨率与航线间距的精确计算与动态优化;② 解决复杂地形与风场环境下航线方向选择困难、覆盖质量难以保障的问题;③ 通过自动化设计减少人为经验依赖,提升航测任务的可靠性与效率;④ 为后续的三维建模、正射影像生成与灾害应急评估等应用提供高质量的数据基础。 阅读建议:建议读者结合文中提供的完整代码示例与GUI界面设计,逐步实践参数配置、模型计算与结果分析流程。重点关注摄影测量公式推导、地形修正策略与多目标优化算法的实现细节,并利用模拟数据进行敏感性分析与模型验证,以深入理解系统的设计理念与工程应用价值。

跨运营商组播传送案例(multicast-proxy-register应用)

应用说明: 运营商A要把自己网络的组播信号传送给运营商B,但为了安全起见,两家运营商各自使用自己的路由域与组播域,不交互三层信息(即运营商A将组播源强制吞给运营商B)。 实验拓扑如下: 配置说明: 1.ISPA与ISPB均使用稀疏模式,分别使用R1与R6的环回口做为自己的RP 2.R2,R3模拟用户加组将组播拉到与ISB互联的接口上 3.R2,R3上与I

blakegao的专栏 2182

【电力负荷预测】项目介绍 MATLAB实现基于BO-Transformer-LSTM贝叶斯优化算法(BO)优化Transformer-LSTM组合模型进行居民用户多步电力负荷预测(含模型描述及部分示例

内容概要:本文介绍了一个基于BO-Transformer-LSTM的组合模型,用于实现居民用户多步电力负荷预测的完整项目实例。该模型融合Transformer的全局注意力机制与LSTM的局部时序记忆能力,构建能够捕捉长时依赖与周期性特征的深度学习架构,并引入贝叶斯优化(BO)自动搜索最优超参数组合,提升预测精度与训练效率。项目涵盖从原始数据清洗、特征工程、滑动窗口样本构建、模型设计到超参数优化、反归一化及多步误差评估的全流程,强调时间顺序划分以防止信息泄露,并通过周期编码、外生变量融合等方式增强数据表达能力。文中提供了详细的MATLAB代码示例,包括数据预处理、网络搭建、贝叶斯优化配置和预测结果评估等关键步骤。 适合人群:具备一定机器学习和时间序列分析基础,熟悉MATLAB编程环境,从事电力系统预测、智能电网、负荷管理等相关领域的研究人员、工程师及研究生。 使用场景及目标:①应用于居民级或多用户聚合负荷的短期至中期多步预测(如未来24小时);②服务于配电系统运行调度、需求响应基线设定、家庭能源管理系统优化、分布式能源协调控制等实际工程场景;③为科研提供可复现的深度学习+贝叶斯优化的技术路线参考。 阅读建议:此资源以实际项目为导向,建议读者结合提供的代码逐步实现并调试模型,重点关注数据质量控制、时间特征编码、组合网络结构设计与贝叶斯优化稳定性之间的协同关系,在实践中深入理解多步预测中的误差累积机制与超参数敏感性问题。

【顶级EI复现】基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法(Simulink仿真实现)

内容概要:本文详细介绍了一种基于KKT(Karush-Kuhn-Tucker)最优性条件与分段解析优化技术的双有源桥(DAB)DC-DC变换器闭环控制方法,旨在实现软开关条件下器件电压和电流应力的协同最小化,从而提升变换器的转换效率与系统可靠性。该方法通过建立精确的数学模型,结合KKT条件进行优化求解,并采用分段解析策略提高实时控制性能,在Simulink环境中完成了完整的闭环控制系统建模与仿真验证。作为“顶级EI复现”级别的研究成果,内容涵盖控制算法设计、优化机制分析、仿真架构搭建及结果对比,具有较强的理论深度与工程应用价值,适用于电力电子高频化、高效化发展的前沿研究方向。; 适合人群:面向具备电力电子、自动控制或电气工程等相关专业背景,熟悉Simulink仿真平台,且从事科研工作1年以上的研究生、博士生及科研人员;特别适合致力于DC-DC变换器拓扑优化、软开关技术、最小化开关应力控制、能量高效传输等领域研究的专业人士。; 使用场景及目标:① 复现高水平EI期刊论文中的先进优化控制算法;② 掌握KKT条件在非线性约束优化问题中的具体应用;③ 深入理解DAB变换器在不同工况下的软开关实现机制与应力抑制策略;④ 构建高精度仿真模型以支撑学术论文撰写、科研项目申报或实际工程系统的控制方案设计。; 阅读建议:建议结合提供的Simulink仿真模型同步学习,重点关注KKT条件推导过程与分段解析优化模块的实现逻辑。由于内容涉及较强的数学建模与优化理论,推荐具备扎实的电路理论、现代控制理论及数值优化基础后再行研读,并可参考同系列“顶级EI复现”资源以构建系统性知识体系。

测试用的衣橱app小软件,自己玩撒打算

测试用的衣橱app小软件,自己玩撒打算

【智能制造排程】基于双层编码遗传算法的柔性作业车间调度模型:工序排序与机器选择联合优化 项目介绍 MATLAB 柔性作业车间排程|遗传算法与机器选择双层编码

内容概要:本文介绍了一个基于MATLAB的柔性作业车间排程项目,采用遗传算法与双层染色体编码技术实现工序排序与机器选择的联合优化。项目构建了统一的排程模型,涵盖工件工序、候选机器、加工时间、设备能力、能耗及交付时间等要素,通过双层编码结构(工序序列层与机器选择层)分别处理加工顺序和设备分配问题,并设计了相应的解码机制、遗传操作与综合适应度函数,以最小化最大完工时间、降低设备空闲损失、提升负载均衡与能源效率为目标。系统支持模拟数据生成,融合多种概率分布反映实际生产不确定性,并输出甘特图、收敛曲线和设备利用率等结果,具备良好的可扩展性,可用于智能制造排程算法研究与实际系统开发。; 适合人群:具备一定编程基础,熟悉MATLAB环境,从事生产调度、智能制造、运筹优化等相关领域的研究人员、工程技术人员及高校研究生;有志于学习遗传算法在工业排程中应用的1-3年经验研发人员。; 使用场景及目标:①解决柔性作业车间中工序排序与机器选择耦合的复杂调度问题;②优化制造系统的最大完工时间、设备利用率、能耗与订单交付表现;③为MES、数字孪生、智能车间等系统提供核心排程算法模块;④作为教学案例或科研平台,用于算法对比、参数调优与动态重排程研究。; 阅读建议:此资源以MATLAB实现为核心,包含完整代码结构与数据生成逻辑,建议结合文中提供的代码示例进行实践运行与调试,深入理解双层编码机制、解码流程与遗传操作的设计思想,并可根据实际需求调整适应度权重或引入新约束条件进行二次开发。

交错并联图腾柱PFC变换器仿真设计(Simulink仿真实现)

内容概要:本文档系统性地介绍了基于Simulink平台的“交错并联图腾柱PFC变换器”仿真设计,聚焦于高效率功率因数校正技术的建模与实现。内容涵盖双闭环控制策略(电压外环与电流内环)、PI控制器设计、交错并联结构优化以及图腾柱拓扑的工作原理,旨在提升系统动态响应性能、降低输入电流谐波含量并改善功率因数。文档不仅提供详细的仿真模型构建流程,还配套Mathcad计算书用于参数设计与功率等级扩展,并列举了多种相关电力电子变换器的仿真案例,如三相维也纳整流器、LLC谐振变换器、双向Buck-Boost电路等,形成了一套完整的电力电子系统仿真资源体系,适用于从理论分析到工程实践的全流程学习与研究。; 适合人群:电气工程、自动化、电力电子及相关专业的高校本科生、研究生,以及从事新能源发电、电源设计、电能质量治理、工业自动化等领域的研发工程师;具备基本电路理论知识和Simulink/Matlab使用经验者更佳。; 使用场景及目标:①支持高校课程设计、毕业设计或科研项目中对先进PFC拓扑的仿真验证与性能优化;②帮助工程技术人员快速掌握图腾柱PFC的核心控制逻辑与建模方法,缩短产品开发周期;③作为电力电子系统教学与技术培训的标准化参考案例,强化理论与实践结合能力。; 其他说明:文档由“荔枝科研社”整理发布,所有资源可通过指定公众号或百度网盘链接获取,建议按照目录顺序系统学习,并结合提供的Mathcad计算书、参考文献及仿真文件进行参数验证与二次开发,以深化理解与应用能力。

产业园区如何通过数智工具精准识别企业技术需求,提高服务匹配效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

超全Mathcad全桥LLC谐振变换器开关电源设计mathcad计算书

内容概要:本文介绍了“Plecs全桥LLC谐振变换器仿真模型”这一技术资源,该模型基于Plecs仿真平台构建,完整实现了全桥LLC谐振变换器的电路拓扑与控制系统,用于深入研究其在变频与移相混合控制策略下的动态行为。模型涵盖了软开关实现机制、谐振腔参数设计、功率传输特性、效率优化以及闭环控制策略等核心内容,支持对启动过程、负载突变、频率调节等工况的仿真分析,有助于全面掌握LLC变换器在高效率、高功率密度电源系统中的工作原理与设计方法。; 适合人群:具备电力电子技术基础、熟悉开关电源设计原理的研究生、硬件工程师及从事高频电源产品研发的技术人员。; 使用场景及目标:①用于高校教学与科研中对LLC谐振变换器运行机理的深入理解与验证;②辅助工程师在实际产品开发中进行关键参数设计、性能预测与优化;③支持对变频控制、软启动过程、零电压开关(ZVS)实现条件、负载调整率及系统稳定性等关键指标的仿真分析与验证。; 阅读建议:建议使用者具备Plecs或类似电力电子仿真软件的操作经验,结合经典电力电子教材与LLC设计指南进行学习,通过调整谐振元件参数、开关频率与负载条件,观察系统响应变化,以深化对谐振变换器非线性动态特性的理解,并建议将仿真结果与理论计算对照分析,提升工程设计能力。

市级区域_打包.zip

这组资源是基于阿里云 DataV 平台提取的**全国省、市、县三级行政区划矢量数据**,文件格式为通用性极强的 **GeoJSON**。它轻量且结构清晰,不仅易于人类阅读,还能直接拖入 QGIS、ArcGIS 进行制图,或通过 Python (Geopandas)、JavaScript 等代码直接读取调用。 在内容涵盖上,数据从“全国 (100000)”向下细分至省级、地级市,以及县级/市辖区。每个要素(Feature)都完整包含了多边形的经纬度边界坐标,以及极其关键的 `adcode`(国家行政区划代码)、名称(name)、中心点(center)等属性。这允许你在制图时直接按代码或名称精准定位,进行数据聚合或空间裁剪。 在结构设计上,资源巧妙地兼顾了“宏观嵌套”与“微观独立”。例如,带 `_full` 后缀的市级文件,内部直接包含了该市下辖所有区县的边界,适合做全省/全市的整体可视化;而单独无后缀的区县级文件,则适合精细化拆分。此外,直辖市辖区(如北京东城区)已被正确归入县级资源,避免了层级混淆,是一套非常适合做 Web 地图可视化或本地空间分析的底图资产。

科技中介服务机构在支持企业科技成果转化时,如何实现高效资源推送与项目管理?.docx

科技中介服务机构在支持企业科技成果转化时,如何实现高效资源推送与项目管理?

game.c.docx

game.c.docx

【运维自动化】shell脚本自动化运维示例2

内容概要:本文介绍了shell脚本在自动化运维中的实际应用,重点展示了一个批量远程执行命令与文件分发的典型场景。通过编写健壮的Shell脚本,实现对多台服务器并行执行指定命令(如磁盘使用情况查询),并集成错误处理、超时控制和并发管理机制,提升运维效率与系统稳定性。脚本采用set -euo pipefail增强容错能力,利用SSH免密登录和xargs并行处理实现高效批量操作,同时强调在受控内网环境中运行以保障安全。; 适合人群:具备Linux系统基础和Shell编程经验,从事运维、DevOps或后端开发工作1-3年的技术人员。; 使用场景及目标:①用于批量服务器状态检查、配置同步、日志收集等日常运维任务;②帮助理解自动化脚本设计中的健壮性要素(如错误捕获、并发控制、安全性考虑)并应用于生产环境。; 阅读建议:此资源提供可直接修改复用的实用脚本范例,建议结合自身运维环境进行适配测试,重点关注SSH安全配置、并发参数调优及异常输出捕获,确保在真实部署中稳定可靠。

PHP 安全库 HTMLPurifier 4.19.1 富文本 XSS 过滤源码包

内容概要:HTMLPurifier 4.19.1 源码包,是 PHP 后端成熟的 HTML 白名单清洗库,可过滤 XSS 恶意代码,自动修复不规范 HTML,支持 CSS 校验。 适用人群:PHP 开发工程师、后端安全开发、CMS / 富文本系统开发者。 使用场景:评论、文章、工单等用户提交富文本内容的安全过滤,支持手动引入或 composer 安装。 其他说明:支持 PHP5.6~8.5 版本,生产建议开启缓存提升性能,基于白名单机制,安全可靠。

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

PotPlayer自用皮肤

自用 PotPlayer 皮肤,仅微调了字体大小与颜色,是按个人习惯调整,未做适配性调整。

半桥LLC谐振DCDC变换器的设计与仿真(Simulink仿真实现)

内容概要:本文系统阐述了半桥LLC谐振DCDC变换器的设计原理与Simulink仿真方法,重点围绕其开环与闭环控制系统展开建模与分析。内容涵盖LLC谐振变换器的工作原理、谐振腔参数设计、软开关实现机制、增益特性分析,以及恒压恒流双闭环控制策略的实现方式。通过构建完整的Simulink仿真模型,验证变换器在不同输入电压和负载条件下的动态响应性能与系统稳定性,深入揭示其高效率、高功率密度的技术优势,为实际电源系统如充电桩、车载电源及工业电源等应用场景提供理论支撑与仿真验证手段。; 适合人群:具备电力电子技术基础,熟悉DCDC变换器拓扑结构与控制理论,从事新能源变换系统、开关电源研发或正在进行相关课题研究的研究生、工程师及科研技术人员。; 使用场景及目标:①掌握LLC谐振变换器的关键工作模态与谐振参数设计方法;②学习基于Simulink平台的电力电子系统级建模与闭环控制器设计流程;③为高频高效DCDC变换器的实际工程项目提供设计参考与仿真验证方案; 阅读建议:建议结合文中所述仿真模型,动手搭建Simulink环境,逐步调试谐振元件参数与控制环路PI参数,深入理解谐振频率、电压增益曲线与环路稳定性之间的耦合关系,并可延伸学习全桥LLC、双有源桥DAB等先进拓扑,进一步提升电力电子系统设计能力。

2-shell及常用命令-续.pdf

2-shell及常用命令-续.pdf

上一篇: 通訊協定
下一篇: TCP/IP 工作模型
Edwingu
博客等级 码龄23年 9粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值