gigabit Ethernet 的程式設計方式 |
尚未結案
|
jackyeh1021
一般會員 發表:7 回覆:13 積分:4 註冊:2004-03-16 發送簡訊給我 |
|
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
http://www.xilinx.com/xlnx/xweb/xil_publications_display.jsp?sGlobalNavPick=&sSecondaryNavPick=&iLanguageID=3&category=-1211206 這裡有一些gigabit Ethernet 相關的資料可參考.
希望對你有幫助.
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
jackyeh1021
一般會員 發表:7 回覆:13 積分:4 註冊:2004-03-16 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
jackyeh1021
一般會員 發表:7 回覆:13 積分:4 註冊:2004-03-16 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
引言: 我發現如果要發揮 Gigibit Ethernet 的威力,很多東西要更換,從網路線(Cat.6),Hub(要支援Gigibit Ethernet),等這樣才能有效果. 其實我的主要用意是,在Gigibit Ethernet 傳送的過程中,程式的撰寫是不是有不同,還是原本的程式就可以用了,程式沒說要改啊。只有你的外面的設備要變啦。 ^_^ 我還玩過 FreeBSD 是利用兩塊1G的網卡綁在一起,對一個 switch hub.那種速度。可以把雙CPU的主機操到使用率100%。 ^_^ |
8866
中階會員 發表:27 回覆:147 積分:69 註冊:2002-10-14 發送簡訊給我 |
|
jackyeh1021
一般會員 發表:7 回覆:13 積分:4 註冊:2004-03-16 發送簡訊給我 |
|
8866
中階會員 發表:27 回覆:147 積分:69 註冊:2002-10-14 發送簡訊給我 |
在 NDIS 5.0 以上的版本有提供 TaskOffload 支援,可以將傳統上由軟體來計算的 TCP/IP 包的 Checksum 的運算( 送 和 收 )以及 TCP 自動分段(發送方向,LargeSend)都交由底層的硬體來完成,這樣可以大大降低 CPU 的負載,
目前的 Gigabit 網卡多都支援此功能 . 此項功能必須透過 Driver 來設定完成 , 所以 NDIS Driver 你必須看
"清楚" !!! 我想以上的做法應可以幫你達到加速的功能 . 至於你所提 "ICS 所提供的WSocketServer" , 抱歉我不熟 Delphi 所以
無法回答 ! 給你良心的建議 , 少用元件 , 多實作 , 多看 Driver
對你的實力有絕對的幫助 . ( 當你想做別人作不到時 , 特別有用 ) 最後也請你給分啦 ! 沒事多看 >< >< > 發表人 -
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
引言: 在 NDIS 5.0 以上的版本有提供 TaskOffload 支援,可以將傳統上由軟體來計算的 TCP/IP 包的 Checksum 的運算( 送 和 收 )以及 TCP 自動分段(發送方向,LargeSend)都交由底層的硬體來完成,這樣可以大大降低 CPU 的負載, 目前的 Gigabit 網卡多都支援此功能 . 此項功能必須透過 Driver 來設定完成 , 所以 NDIS Driver 你必須看 "清楚" !!! 我想以上的做法應可以幫你達到加速的功能 .呵。你的作法應該是 sniffer 的方式。 也就是跟 BSD 下的 bpf 的東西。 在 NDIS Driver 把封包丟給你的同時。它也會把資料往”正常的”管道送。 所以你要加大你的 buffer.....etc 那本來就應該要做的。 因為 NDIS 不會管你那邊的 lose, 因為它不必為那個額外的 flow 做確保。 你如果對 UNIX Like 熟悉的話。你可以去看一下 bandwidthd 這個東西。 它在起動時,會起 4 個 daemon 來做那個部份的處理。它跟你的 sniffer 差不多。 他為了要不流失。它開了4個。我想4個是因為我的 bpf 只給它4個的關係。 所以,我另外看了你上一篇說的要加大BUFFER。而別人的作法是在 NDIS 上面 加上第一個處理。第二個處理。。。。。。這樣他就不用因為 USER 用了 Gaga 就得改程式。 至於你跟發問者要分數。我是沒差啦。 我只希望發問者可以得到正確的觀念。 |
8866
中階會員 發表:27 回覆:147 積分:69 註冊:2002-10-14 發送簡訊給我 |
至於你跟發問者要分數。我是沒差啦。
==> 如果我是為了分數才來答分的話 , 那我寧可去睡覺 !
只是一個玩笑話 , 各位不用當真啦 !!! 我只希望發問者可以得到正確的觀念。 ==> 我的回答中已經說的很清楚 PS: 如果你是用 WinSocket 那就沒差 我並沒有誤導任何人 !!! 再者利用 TaskOffload 將傳統上由軟體來計算的 TCP/IP 包的 Checksum 的運算( 送 和 收 )以及 TCP 自動分段(發送方向,LargeSend)都交由底層的硬體來完成,這樣可以大大降低 CPU 的負載 ! "且加快速度這也是不爭的事實啦" !!! 如有不對還請各位原諒 . < >< > 發表人 -
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
引言: 再者 "利用 TaskOffload 將傳統上由軟體來計算的 TCP/IP 包的 Checksum 的運算( 送 和 收 )以及 TCP 自動分段(發送方向,LargeSend)都交由底層的硬體來完成,這樣可以大大降低 CPU 的負載 ! "且加快速度這也是不爭的事實啦" !!!交由底層的”硬體”這句話我是存保留態度。 因為硬體不同時。會不會有不同的指令跟傳輸方式? 畢竟,你只是站在 Driver 層之上。直接使用 Driver 層的東西。 它並不是直接使用硬體。它還是利用 Driver 的軟體來做事。 就像我上一篇所說的。 bpf 也是很忠實的把封包的內容整個丟到 buffer 去。 當 buffer 滿了。它就會把它丟棄。 而你說的方式跟 unix 下的 libcap 很像。 它也沒有去直接使用硬體。 因為我在寫 embed system 的網路通訊。直接跟硬體說話時。並不是像寫 libcap 那樣寫。 |
8866
中階會員 發表:27 回覆:147 積分:69 註冊:2002-10-14 發送簡訊給我 |
因為硬體不同時。會不會有不同的指令跟傳輸方式? Ans : 我上文中提到 "目前的 Gigabit 網卡多都支援此功能" ,
所以啦 , 還是要網卡支援的啦 !!! 另外 TaskOffload
微軟 NDIS 所提供的一項功能 , 只要網卡的製造商能
"跟隨" 的話 , 那指令跟傳輸方式應該不是問題 . 而你說的方式跟 unix 下的 libcap 很像。 Ans : 我只是看 NDIS 的說明而已且轉述與實作罷了 , 並不了解
微軟的 NDIS 是否如你所懷疑的 ! 今天真是一個美麗的一天 , 能與各位高手談論 , 切磋 ,
真是值得高興喔 .
|
jackyeh1021
一般會員 發表:7 回覆:13 積分:4 註冊:2004-03-16 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |