專利名稱::可控制數(shù)據(jù)包傳送的交換器及相關(guān)方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種交換器,特別是涉及一種可依據(jù)接收的數(shù)據(jù)包是高傳輸速度需求或高傳輸精確度需求,選擇以儲(chǔ)存全部再傳送模式或儲(chǔ)存部份包標(biāo)頭再傳輸模式來進(jìn)行傳輸?shù)慕粨Q器。
背景技術(shù):
:隨著網(wǎng)絡(luò)應(yīng)用的蓬勃發(fā)展,個(gè)人與企業(yè)對(duì)于網(wǎng)絡(luò)的依賴也越來越深。尤其是以太網(wǎng)(Ethernet)的使用更是成為網(wǎng)絡(luò)世界重要一環(huán)。國際標(biāo)準(zhǔn)組織(InternationalStandardOrganization,ISO)提供一套共通的開放系統(tǒng)連結(jié)模式(OpenSystemInterconnectmode,OSI),其規(guī)范網(wǎng)絡(luò)傳輸時(shí)一種共享的溝通模式,其中包含7層的溝通模式。規(guī)范這7層的目的是使得二系統(tǒng)之間的通信(傳送、接收、中斷等)能更加容易管理。有關(guān)OSI的功能與運(yùn)用已為本領(lǐng)域的技術(shù)人員所熟知,在此不再贅述。在傳輸數(shù)據(jù)前,把數(shù)據(jù)分成一連串的包(packet),并在這些包前附加用來控制包傳遞的標(biāo)頭信息。請(qǐng)參閱圖1,圖1為數(shù)據(jù)連接層的包10的示意圖。數(shù)據(jù)鏈路層(datalinklayer)屬于OSI規(guī)范的第二層,也是交換器一般所使用處理的層級(jí),而數(shù)據(jù)連接層包10包含一前序位(preamble)、目的地址(Destination)、原始地址(Source)、型態(tài)(Type)、數(shù)據(jù)(Data)、FCS等字段。其中前序位字段提供了數(shù)據(jù)包的起始、同步訊息以及譯碼等操作。目的地址字段儲(chǔ)存了數(shù)據(jù)包接收端的地址,原始地址字段則儲(chǔ)存該數(shù)據(jù)包傳送端的地址,而目的地址字段以及原始地址字段儲(chǔ)存的就是MAC地址,型態(tài)字段則儲(chǔ)存了數(shù)據(jù)包所使用的通訊協(xié)議(例如使用IP通訊協(xié)議),數(shù)據(jù)域位則儲(chǔ)存了包的數(shù)據(jù)內(nèi)容,最后的包監(jiān)測(cè)數(shù)據(jù)(Framechecksequence,F(xiàn)CS)字段則用來放置檢查位,作為CRC錯(cuò)誤檢查之用。請(qǐng)參閱圖2,圖2為局域網(wǎng)絡(luò)20結(jié)構(gòu)的示意圖。局域網(wǎng)絡(luò)20包含一個(gè)以上的集線器24或交換器26,而至少一個(gè)以上的主機(jī)(client)28則連接于集線器24或交換器26。由于在局域網(wǎng)絡(luò)20有數(shù)十臺(tái)甚至上百臺(tái)主機(jī)28同時(shí)連上局域網(wǎng)絡(luò)20,為了確保網(wǎng)絡(luò)20的速度,集線器24以及交換器26都是用來增加訊號(hào)強(qiáng)度以及網(wǎng)絡(luò)管理的功能。但是集線器24是運(yùn)作于OSI中的第一層實(shí)體層(PhysicalLayer),所以集線器24并不能分析出數(shù)據(jù)鏈路層包標(biāo)頭內(nèi)的MAC地址字段。換言之,一但集線器24收到一個(gè)數(shù)據(jù)包時(shí),會(huì)把接收到的數(shù)據(jù)包傳送到其余所有的連接端口。所以所有連接到同一臺(tái)集線器的主機(jī)28都必須銷耗頻寬來處理此數(shù)據(jù)包,不能消除網(wǎng)絡(luò)中包與包之間的碰撞。如果網(wǎng)絡(luò)上的主機(jī)越來越多,網(wǎng)絡(luò)的整體效能也會(huì)因頻寬瓜分而下降。交換器的產(chǎn)生正好解決上面的問題。由于交換器是運(yùn)作于OSI中的第二層數(shù)據(jù)鏈路層(DataLinkLayer),當(dāng)數(shù)據(jù)被拆成一連串的包(Packet)時(shí),交換器會(huì)依據(jù)包中目的地的MAC地址(就是圖1的目標(biāo)地址字段),以點(diǎn)對(duì)點(diǎn)模式將包傳送到目的地。由于交換器同時(shí)間可以有多個(gè)連接端口平行地傳送(parallelism),如此一來可以減少包碰撞的機(jī)會(huì)和充分使用網(wǎng)絡(luò)上的頻寬,大大提高網(wǎng)絡(luò)整體效能。除了集線器以及交換器之外,還有另一種網(wǎng)絡(luò)設(shè)備一路由器(router)。路由器主要的工作在于傳輸網(wǎng)絡(luò)上的包(packet),而且路由器必需先將包的標(biāo)頭取下,根據(jù)標(biāo)頭內(nèi)的各項(xiàng)信息分辨處理方式,以便完成包的傳輸工作。同時(shí),路由器還具有選擇適當(dāng)傳輸路徑的功能。路由器建立最佳路徑的方式,是通過建立一個(gè)路徑表(routingtable),路徑表會(huì)建立相關(guān)的地址,以供路由器作路徑選擇的參考。其中有建立相關(guān)地址以求得最佳路徑的方法有兩種常用的標(biāo)準(zhǔn),分別為RIP(RoutingInformationProtocol)與OSPF(OpenShortestPathFirst)。RIP的原理是要求包對(duì)鄰近的路由器發(fā)送出去,接受到的路由器便將路徑紀(jì)錄表(RoutingTable)傳回來,發(fā)出要求的路由器統(tǒng)計(jì)抵達(dá)每個(gè)目的位置所要經(jīng)過的節(jié)點(diǎn)數(shù),將最短的寫在自己的路徑紀(jì)錄表上。OSPF跟RIP最大的不同處在于它不是兩個(gè)鄰近路由器之間彼此交換,而是對(duì)整體網(wǎng)絡(luò)廣播,而路由器收集這些訊息建構(gòu)路徑表。另一個(gè)不同處在于路由器以距離參數(shù)(Distancemetric)取代單純的經(jīng)過節(jié)點(diǎn)數(shù),以連結(jié)狀況更新距離參數(shù),然后用動(dòng)態(tài)規(guī)劃(DynamicProgramming)的算法算出最短路徑,將下一個(gè)節(jié)點(diǎn)與計(jì)算出的總合的距離參數(shù)填入路徑表。不論采用哪種方式,各路由器會(huì)自行探測(cè)訊息來溝通而建立彼此的路徑表,所以可以顯示目前各信道間的網(wǎng)絡(luò)狀況,如阻塞或中斷,并據(jù)此產(chǎn)生最佳路徑以確保數(shù)據(jù)包傳遞的流暢。雖然路由器具有找尋最佳路徑的功能,但是路由器是作用在OSI第三層網(wǎng)絡(luò)層(networklayer)上。一般常用的IP協(xié)議即屬于網(wǎng)絡(luò)層的協(xié)議,在網(wǎng)絡(luò)層之上IP地址才有意義,網(wǎng)絡(luò)層之下都是憑MAC地址來辨認(rèn)。所以路由器在處理包時(shí),并不像交換器可直接通過MAC地址來識(shí)別所要傳送的地址,還必須通過ARP(AddressResolutionProtocol)協(xié)議將IP地址轉(zhuǎn)成MAC地址的協(xié)議,使得網(wǎng)絡(luò)層以下各層知道將數(shù)據(jù)往哪送,或利用RARP(ReverseAddressResolutionProtocol)的操作便是將ARP反過來,以MAC地址得知IP地址。所以路由器需要的成本以及復(fù)雜度都比較高,也就在商業(yè)考慮下不易普遍取代交換器與集線器。在網(wǎng)絡(luò)中數(shù)據(jù)的傳輸,多是先將數(shù)據(jù)分解為多個(gè)包,再將這些包自來源端傳輸?shù)侥康亩?,而后在目的端組合接收到的包,即可完成。然而,由于傳輸?shù)臄?shù)據(jù)種類不同,對(duì)于在線電影或在線廣播等語音影像數(shù)據(jù),由于使用者觀看收聽時(shí)會(huì)要求影音流暢,并且通過影像/影音處理時(shí)可以明顯減少部份由于包傳輸失誤所引起的錯(cuò)誤,因此對(duì)網(wǎng)絡(luò)傳輸?shù)囊笾攸c(diǎn)在于傳送速度的快速流暢。但對(duì)于電子郵件傳輸或程序文件傳輸而言,由于總是要整個(gè)完整的電子郵件/文件程序都傳輸完成才會(huì)開啟使用,但若有部份包不能正常傳輸接收時(shí)便可能導(dǎo)致電子郵件/程序文件的內(nèi)容錯(cuò)誤,因此對(duì)網(wǎng)絡(luò)傳輸?shù)囊笾攸c(diǎn)便在于傳輸內(nèi)容的的正確性。圖3顯示了已知交換器的基本結(jié)構(gòu)圖,交換器30a至少包含下列基本單元至少一輸入端口32a、至少一輸出端口34a、處理單元36a以及隊(duì)列緩沖區(qū)38a,其中任一輸入端口32a與任一輸出端口34a均連接至網(wǎng)絡(luò)上的某一端點(diǎn)40a,如一主機(jī)、一路由器、一集線器或另一交換器,隊(duì)列緩沖區(qū)38a用來暫存自輸入端口32a所接收而尚未自至輸出端口34a所輸出的包或部份包,而處理單元36a用以至少控制隊(duì)列緩沖區(qū)38a處理包的方式。在此,處理單元36a根據(jù)事先設(shè)定的規(guī)則,或是對(duì)所有被接收到的包,都是以儲(chǔ)存全部包再傳送(storeandforward)模式,在接收整個(gè)包并檢查過包的完整性與正確性后,再輸出此包;或是對(duì)所有被接收到的包,都是以儲(chǔ)存部份包標(biāo)頭再傳送(cutthrough)模式,在接收部份包并判斷出此包的傳輸目的后,便一面接收一面?zhèn)鬏敶税o@然地,已知的交換器并無法分辨出傳送數(shù)據(jù)是要求傳輸正確性或是傳輸時(shí)效性,在網(wǎng)絡(luò)傳輸過程中,往往只能依照其預(yù)先設(shè)定的模式來接收傳輸包,而不能依照所接收到包的傳輸特性,來盡可能最佳化其傳輸方式。進(jìn)一步地,雖然已知的路由器具有搜尋最佳路徑的功能,但其作法基本是針對(duì)網(wǎng)絡(luò)上各個(gè)傳輸路徑的傳輸快慢來決定最佳路徑,而不是根據(jù)要傳輸?shù)陌旧淼奶匦詠頉Q定最佳路徑,并且往往必須分解包到第三層,所需要的計(jì)算量也明顯較多。綜上所述,如何設(shè)計(jì)一個(gè)能搜尋最佳傳輸路徑以控制包傳送的交換器是很重要的一種課題。
發(fā)明內(nèi)容本發(fā)明提供一種交換器及其運(yùn)作方法,能依據(jù)接收數(shù)據(jù)包所要求的傳輸特性,選擇使用隊(duì)列暫存區(qū)等來處理數(shù)據(jù)包的輸出模式。本發(fā)明的一實(shí)施例提供一種交換器,其用來控制網(wǎng)絡(luò)內(nèi)數(shù)據(jù)包的傳送,該交換器包含至少一輸入端口,用來接收數(shù)據(jù)包;至少一輸出端口,用來輸出數(shù)據(jù)包;一隊(duì)列緩沖區(qū),用來暫存來自所接收的數(shù)據(jù)包;以及一分析選擇單元,用來依據(jù)該數(shù)據(jù)包的傳輸特性,選擇使用該隊(duì)列緩沖區(qū)輸出該數(shù)據(jù)包的模式。本發(fā)明的另一實(shí)施例提供一種交換器處理網(wǎng)絡(luò)的傳輸數(shù)據(jù)包的方法,其包含接收一數(shù)據(jù)包;依據(jù)該數(shù)據(jù)包的傳輸特性選擇處理該數(shù)據(jù)包的模式;以及依據(jù)該模式輸出該數(shù)據(jù)包。本發(fā)明所謂的判斷該數(shù)據(jù)包的傳輸特性,基本上是指判斷該數(shù)據(jù)包是高傳輸速度需求或高傳輸精確度需求。由于儲(chǔ)存全部包再傳送模式,較可以確保交換器在接收傳送包時(shí)的正確性,而儲(chǔ)存部份包標(biāo)頭便傳送模式,較可以加快交換器在接收傳送包時(shí)的速度。因此,對(duì)于傳輸特性較需要高傳輸速度需求的包,本發(fā)明便使用儲(chǔ)存部份包標(biāo)頭便傳送模式;而對(duì)于傳輸特性較需要高傳輸精確度需求的包,本發(fā)明便使用儲(chǔ)存全部包再傳送模式。本發(fā)明的進(jìn)一步的實(shí)現(xiàn)方式,可以是判斷該數(shù)據(jù)包的內(nèi)容是屬于多媒體文件或是程序文件;也可以是判斷該數(shù)據(jù)包所使用的傳輸協(xié)議是UDP或TCP,或是其它方式。對(duì)于高傳輸速度需求的數(shù)據(jù)包,是在該隊(duì)列緩沖區(qū)接收儲(chǔ)存數(shù)據(jù)包的前序(preamble)以及MAC地址字段后,即將數(shù)據(jù)包送出;而對(duì)于高傳輸精確度需求的數(shù)據(jù)包,是在該隊(duì)列緩沖區(qū)儲(chǔ)存數(shù)據(jù)包的全部字段并檢查完正確性后,再將該數(shù)據(jù)包送出。本發(fā)明的優(yōu)點(diǎn)還包括該交換器可以通過分析數(shù)據(jù)包內(nèi)特定字節(jié)的內(nèi)容,來決定數(shù)據(jù)包的傳輸特性并對(duì)應(yīng)改變使用隊(duì)列暫存區(qū)等輸出該數(shù)據(jù)包的模式。而且,本發(fā)明不用和路由器一樣需要變動(dòng)數(shù)據(jù)包的標(biāo)頭(header),不但可以簡(jiǎn)化運(yùn)作,也可以降低成本。圖1為數(shù)據(jù)鏈路層的包格式的示意圖。圖2為局域網(wǎng)絡(luò)結(jié)構(gòu)的示意圖。圖3為已知交換器與發(fā)送/接收數(shù)據(jù)包的端點(diǎn)的功能方塊圖。圖4為本發(fā)明的實(shí)施例的交換器與發(fā)送數(shù)據(jù)包的端點(diǎn)以及接收數(shù)據(jù)的端點(diǎn)的功能方塊圖。圖5為IP包的格式的示意圖。圖6為TCP包的格式的示意圖。圖7為UDP包的格式的示意圖。圖8為本發(fā)明的方法流程圖。附圖符號(hào)說明10數(shù)據(jù)鏈路層包20、50局域網(wǎng)絡(luò)24集線器26交換器28主機(jī)30a、30b交換器32a、32b輸入端口34a、34b輸出端口36a處理單元36b分析選擇單元38a、38b隊(duì)列緩沖區(qū)40a、40b端點(diǎn)具體實(shí)施方式請(qǐng)參閱圖4,圖4為本發(fā)明一實(shí)施例的交換器30b與發(fā)送數(shù)據(jù)包或接收數(shù)據(jù)的端點(diǎn)40b的功能方塊圖。其中,任一端點(diǎn)40b可以是如一主機(jī)、一路由器、一集線器或另一交換器,本實(shí)施例不限制其細(xì)節(jié)。交換器30b至少包含至少一輸入端口32b、至少一輸出端口34b、一隊(duì)列緩沖區(qū)38b以及一分析選擇單元36b。輸入端口32b用來接收端點(diǎn)40b傳來的數(shù)據(jù)包,輸出端口34B用來輸出數(shù)據(jù)包予端點(diǎn)40b,隊(duì)列緩沖區(qū)38b用來暫存來自輸入端口32b所接收的數(shù)據(jù)包;以及分析選擇單元36用來依據(jù)被至少部份儲(chǔ)存在隊(duì)列緩沖區(qū)38b的數(shù)據(jù)包的傳輸特性,選擇使用隊(duì)列緩沖區(qū)38b與輸出端口34b來處理此數(shù)據(jù)包的模式。本發(fā)明判斷數(shù)據(jù)包的傳輸特性,是要判斷數(shù)據(jù)包是高傳輸速度需求或高傳輸精確度需求。其具體作法,至少可以是通過判斷包的內(nèi)容是屬于傾向高傳輸速度需求的多媒體文件或是屬于傾向高傳輸精確度需求的程序文件;也可以通過判斷包的格式是屬于傳輸速率較快的包格式或是屬于較能確保傳輸正確性的包格式;或也可以是通過解讀包內(nèi)某些特定位的內(nèi)容,來判斷包的屬性。為了說明本發(fā)明的運(yùn)作,在此先簡(jiǎn)單介紹一下IP包、TCP包以及UDP包的格式。請(qǐng)參閱圖5,圖5是IP包的格式。從圖5可以發(fā)現(xiàn),IP包的版本(Version)字段用來規(guī)范此包所用的協(xié)議的版本,以利各開發(fā)商使用。標(biāo)頭長(zhǎng)度(InternetHeaderLength,IHL)字段是規(guī)范此IP包的IP標(biāo)頭的長(zhǎng)度,其儲(chǔ)存的值為5~15。以圖5為例,IHL字段儲(chǔ)存的值為5。而總長(zhǎng)度(TotalLength)字段則儲(chǔ)存整個(gè)IP包的長(zhǎng)度,包括IP標(biāo)頭長(zhǎng)度以及數(shù)據(jù)長(zhǎng)度。協(xié)議識(shí)別(Protocol)字段則儲(chǔ)存該IP包使用哪一種網(wǎng)絡(luò)層協(xié)議,舉例來說,協(xié)議識(shí)別字段儲(chǔ)存的值為6時(shí),表示TCP協(xié)議,協(xié)議識(shí)別字段儲(chǔ)存的值為17時(shí),表示UDP協(xié)議。標(biāo)頭檢驗(yàn)和(Checksum)字段用來確保IP標(biāo)頭的完整性,來源地址(Sourceaddress)字段用來儲(chǔ)存送出包主機(jī)的地址,而目的地址(Destinationaddress)則用來儲(chǔ)存接收主機(jī)的地址。其中,來源地址與目的地址就是所謂的IP地址。而數(shù)據(jù)域位則用來儲(chǔ)存數(shù)據(jù)。由于IP包的傳送是在不同時(shí)間抵達(dá),包到達(dá)的順序不保證是原來發(fā)送的順序,且可能在傳輸過程中發(fā)生錯(cuò)誤。所以為了確保包正確抵達(dá),一般來說,會(huì)使用TCP協(xié)議來加強(qiáng)傳輸?shù)目煽啃?,所以在IP包的數(shù)據(jù)域位還儲(chǔ)存有TCP包。請(qǐng)參閱圖6,圖6是TCP包的格式。對(duì)TCP包來說,來源端口(Sourceport)字段用來定義來源主機(jī)的行程與服務(wù)地址,與來源主機(jī)的IP地址結(jié)合后,會(huì)形成單一的發(fā)送點(diǎn)。目的端口(Destinationport)字段用來定義目的主機(jī)的行程與服務(wù)地址,與目的主機(jī)的IP地址結(jié)合后,會(huì)形成單一的發(fā)送點(diǎn)。舉例來說,若端口號(hào)碼為25,則會(huì)將該數(shù)據(jù)包交由SMTP服務(wù)使用、若端口號(hào)碼為21則給FTP服務(wù)使用、若端口號(hào)碼為23則給TELNET服務(wù)使用。序列號(hào)(sequencenumber)字段則儲(chǔ)存了來源主機(jī)所送出的第一個(gè)字節(jié)數(shù)據(jù)的順序編號(hào)。而確認(rèn)號(hào)(Acknowledgementnumber)字段則儲(chǔ)存了來源主機(jī)通知目的主機(jī)應(yīng)該送出哪個(gè)序列號(hào)的數(shù)據(jù)。一般來說,使用TCP協(xié)議傳送數(shù)據(jù)是為了確保數(shù)據(jù)傳送的可靠性,也就是保證使用TCP協(xié)議傳輸?shù)陌欢〞?huì)順序一致地抵達(dá)目的。關(guān)于TCP包的傳送機(jī)制,已為本領(lǐng)域的技術(shù)人員所熟知,在此不再贅述,詳細(xì)的內(nèi)容說明可參閱RFC-793、RFC-1122、RFC-813、RFC-879、RFC-896的說明。請(qǐng)參閱圖7,圖7是UDP包的格式。對(duì)UDP包來說,來源端口(Sourceport)字段用來定義來源主機(jī)的行程與服務(wù)地址。目的端口(Destinationport)字段用來定義目的主機(jī)的行程與服務(wù)地址。由于使用UDP協(xié)議不保證送出的數(shù)據(jù)包一定會(huì)抵達(dá)目的,或以正確的順序抵達(dá)。然而在一般局域網(wǎng)絡(luò)之中,以UDP協(xié)議傳輸?shù)臄?shù)據(jù)包幾乎能達(dá)到100%的抵送率,而且抵達(dá)速度也可能比接收端的處理速度還快,這是因?yàn)閁DP通訊協(xié)議所使用的包短且設(shè)定參數(shù)簡(jiǎn)易,不像TCP需要提供額外的字段來控制傳輸可靠性,所以在網(wǎng)絡(luò)上的負(fù)載較TCP協(xié)議輕了許多,故常用于多媒體數(shù)據(jù)的傳輸。關(guān)于UDP包的傳送機(jī)制,已為本領(lǐng)域的技術(shù)人員所熟知,在此不再贅述,詳細(xì)的內(nèi)容說明可參閱RFC-768的說明。請(qǐng)注意,對(duì)圖1的數(shù)據(jù)鏈路層包10來說,圖5的屬于網(wǎng)絡(luò)層的IP包即儲(chǔ)存在數(shù)據(jù)鏈路層包10的數(shù)據(jù)域位之中。對(duì)IP包來說,圖6的TCP包或圖7的UDP包即儲(chǔ)存于IP包之中。在本發(fā)明的一實(shí)施例中,由于每個(gè)數(shù)據(jù)包在特定的地址字段(亦即特定的字節(jié))都已經(jīng)有固定的定義。所以當(dāng)交換器30b的輸入端口32b在接收到數(shù)據(jù)包后,會(huì)依序?qū)鼤捍嬗陉?duì)列緩沖區(qū)38b。接下來,分析選擇單元36b會(huì)取下屬于數(shù)據(jù)鏈路層的MAC地址字段以判斷發(fā)送數(shù)據(jù)包的原始端點(diǎn)40b的MAC地址與預(yù)定接收該數(shù)據(jù)包的目的端點(diǎn)40b的MAC地址。此外,本實(shí)施例的交換器30b還可以在不用移除屬于網(wǎng)絡(luò)層的IP標(biāo)頭的情況下,讀取IP標(biāo)頭的特定字段上的數(shù)據(jù)以判斷接收的數(shù)據(jù)包的優(yōu)先性。這是因?yàn)槊總€(gè)數(shù)據(jù)包在特定的地址字段(亦即特定的字節(jié))都已經(jīng)有固定的定義,所以分析選擇單元36b可以在移除數(shù)據(jù)鏈路層的標(biāo)頭后,再不用移除IP標(biāo)頭的情況下,讀取屬于網(wǎng)絡(luò)層的IP標(biāo)頭的特定字段上的數(shù)據(jù),以判斷接收的數(shù)據(jù)包的屬性。舉例來說,分析選擇單元36b只需要在取下屬于數(shù)據(jù)鏈路層的標(biāo)頭后,讀取由版本字段算起第1位至第4位內(nèi)的數(shù)值判斷接收的IP包所使用的版本,第5位至第8位內(nèi)的數(shù)值判斷IP包所使用的標(biāo)頭長(zhǎng)度,第73位到第80位內(nèi)的數(shù)值來判斷此包使用何種協(xié)議來傳送,以此類推,之后的來源地址、目的地址,也可以同樣的方式來判斷。當(dāng)然,IP標(biāo)頭之后就是TCP/UDP包的標(biāo)頭,從圖5來看,標(biāo)頭長(zhǎng)度字段所儲(chǔ)存的值是5,所以從版本字段算起第161位至第176位屬于TCP/UDP包的來源端口(sourceport)字段,第177位至192位屬于TCP/UDP包的目的端口(sourceport)字段。所以分析選擇單元36b也可以快速地了解此包所使用的端口號(hào)碼為何,以決定此包屬于何種服務(wù)所使用,舉例來說,若端口號(hào)碼為25,則會(huì)將該數(shù)據(jù)包交由SMTP服務(wù)使用、若端口號(hào)碼為21則給FTP服務(wù)使用。最后,分析選擇單元36b就可以依據(jù)使用的傳輸協(xié)議等數(shù)據(jù)來決定要用哪一個(gè)輸出模式來輸出數(shù)據(jù)包。必須注意的是,已知交換器的運(yùn)作就有分解包并根據(jù)其MAC地址來傳輸包的步驟,亦即已知交換器便有用以分解包與閱讀其部份內(nèi)容的硬件/固件。因此,本實(shí)施例的解讀包以掌握其使用的傳輸協(xié)議、其對(duì)應(yīng)的端口號(hào)碼、以及其屬性等等步驟,已知技術(shù)者都可以通過修改已知交換器的硬件/固件等來實(shí)現(xiàn),例如將已知技術(shù)作為處理單元36a的硬件電路或內(nèi)存中程序代碼,修改其電路或程序代碼以加入本實(shí)施例對(duì)于包的分析閱讀規(guī)則,便可以形成本實(shí)施例的分析選擇單元,在此不再累述。但必須注意的是,由于本實(shí)施例是讓交換器可以隨著包的不同,有時(shí)執(zhí)行儲(chǔ)存全部包再傳送(storeandforward)模式而有時(shí)執(zhí)行儲(chǔ)存部分包的標(biāo)頭再傳送(cutthrough)模式,因此本實(shí)施例所對(duì)應(yīng)的硬件必須要能兼顧二種模式的需要,亦即至少隊(duì)列緩沖區(qū)38b的大小必需以儲(chǔ)存全部包再傳送(storeandforward)模式所需要的大小為準(zhǔn)。在本發(fā)明的實(shí)施例中,使用隊(duì)列緩沖區(qū)38b與輸出端口40b來處理包的模式有以下兩種第一種稱之為儲(chǔ)存全部包再傳送(storeandforward)模式。包由輸入端口32b傳送進(jìn)交換器30b時(shí),會(huì)先暫存于隊(duì)列緩沖區(qū)38b,等到數(shù)據(jù)包的全部字段都儲(chǔ)存于隊(duì)列緩沖區(qū)38b,并且通過分析選擇單元36b檢查并確認(rèn)數(shù)據(jù)包的完整性后,才會(huì)經(jīng)由至少一輸出端口34b送出該數(shù)據(jù)包。另一種稱之為儲(chǔ)存部分包的標(biāo)頭再傳送(cutthrough)模式。包由輸入端口32b傳送進(jìn)交換器30b時(shí),在接收與分析數(shù)據(jù)包的前序字段(preamble)以及目的MAC地址字段(Destination)后,利用目的MAC地址字段判斷出欲接收的目的端點(diǎn)的MAC地址后,就一面經(jīng)由輸入端口32b接收包一面經(jīng)由輸出端口34b送出包。這兩種模式差異在于處理速度與正確性的差別。前者須等到包的全部字段都接收之后,必要時(shí)還需檢查該包的正確無誤后,才會(huì)發(fā)送出去。相較之下,后者只要等到接收目的MAC地址字段(Destination)之后就立刻發(fā)送出去,雖然處理速度較短,但因無法檢測(cè)包的錯(cuò)誤,所以可能送出錯(cuò)誤的包。請(qǐng)參閱圖8,圖8為本發(fā)明另一實(shí)施例的方法流程圖。本實(shí)施例的方法的步驟說明如下。步驟100接收一數(shù)據(jù)包;步驟102判斷數(shù)據(jù)包的傳輸特性,若數(shù)據(jù)包使用的傳輸特性傾向高傳輸速度,則進(jìn)行步驟104;若數(shù)據(jù)包的傳輸特性傾向高傳輸正確性,則進(jìn)行步驟106;步驟104待接收數(shù)據(jù)包的前序字段以及目的MAC地址字段后,一面接收部份該數(shù)據(jù)包并一面輸出已經(jīng)接收的部份該數(shù)據(jù)包;步驟106待接收完整的數(shù)據(jù)包后,再輸出該數(shù)據(jù)包。假設(shè)某端點(diǎn)40b是利用UDP協(xié)議要傳送一多媒體數(shù)據(jù)文件至另一端點(diǎn)40b。本發(fā)明的交換器30b的輸入端口32b在接收一數(shù)據(jù)包(步驟100)后,分析選擇單元36b判斷數(shù)據(jù)包的傳輸特性(如判斷數(shù)據(jù)包使用的是哪一種通訊協(xié)議)(步驟102)。當(dāng)交換器30b接收到由輸入端口32b送來的數(shù)據(jù)包,分析選擇單元36b可由MAC地址字段得出該包需傳送至的端點(diǎn)40b。所以分析選擇單元36b還可以由版本字段算起第73至第80位的數(shù)值為17,判斷該數(shù)據(jù)包系使用UDP協(xié)議,于是之后傳來的數(shù)據(jù)包就可以利用儲(chǔ)存部分包的標(biāo)頭再傳送(cutthrough)模式,也就是在儲(chǔ)存并分析數(shù)據(jù)包的前序字段(preamble)以及目的MAC地址字段(Destination)后,就將前序字段以及目的MAC地址字段連同其它數(shù)據(jù)包直接經(jīng)由輸出端口34b送出。假設(shè)某端點(diǎn)40b是利用TCP協(xié)議傳送一電子郵件至另一端點(diǎn)40b。本發(fā)明的交換器30b的輸入端口32b在接收到該電子郵件的數(shù)據(jù)包(步驟100)后,分析選擇單元36b可由MAC地址字段得出該包需傳送至那個(gè)端點(diǎn)40b。并依據(jù)版本字段算起第73至第80位的數(shù)值為6,判斷該數(shù)據(jù)包使用TCP協(xié)議。于是交換器30b針對(duì)之后傳來的數(shù)據(jù)包就可以利用儲(chǔ)存全部包再傳送(storeandforward)模式,也就是等到數(shù)據(jù)包的全部字段都儲(chǔ)存于隊(duì)列緩沖區(qū)38b之后,并且通過分析選擇單元36b檢查數(shù)據(jù)包的前序字段、目的地址字段、原始地址字段、型態(tài)字段數(shù)據(jù)域位、FCS字段等全部字段都正確無誤后,才會(huì)經(jīng)由輸出端口34b送出該數(shù)據(jù)包。利用這種輸出模式雖然不會(huì)送出錯(cuò)誤的包,但是相較于儲(chǔ)存部分包的標(biāo)頭再傳送(cutthrough)模式,也增加傳送延遲的時(shí)間(latency)。相較于已知技術(shù),本發(fā)明的交換器可以利用目前網(wǎng)絡(luò)層包具有的特定位置的字節(jié)的規(guī)范下,對(duì)于用于分析數(shù)據(jù)鏈路層的交換器來說,除了拆解并分析數(shù)據(jù)鏈路層的標(biāo)頭外,在不需另外拆解網(wǎng)絡(luò)層包的標(biāo)頭的情況下,只要去讀取網(wǎng)絡(luò)層包的標(biāo)頭的固定位置字段的信息,就可以識(shí)別出該網(wǎng)絡(luò)層包所使用的協(xié)議以及使用的端口號(hào)碼等等,以決定該網(wǎng)絡(luò)層包的數(shù)據(jù)重視的是時(shí)效性或是正確性。除此之外,本發(fā)明的交換器對(duì)于重視時(shí)效性的網(wǎng)絡(luò)層包,可以利用儲(chǔ)存部分包的標(biāo)頭再傳送(cutthrough)模式傳送數(shù)據(jù)包以減少傳送延遲的時(shí)間。相對(duì)地,對(duì)于重視正確性的網(wǎng)絡(luò)層包,可以利用儲(chǔ)存全部包再傳送(storeandforward)模式傳送數(shù)據(jù)包以確保包傳送的正確性。通過這樣的控制機(jī)制,使用本發(fā)明的交換器的局域網(wǎng)絡(luò)就可以達(dá)到最佳的網(wǎng)絡(luò)傳輸管理。以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明的權(quán)利要求所做的均等變化與修飾,皆應(yīng)屬本發(fā)明專利的涵蓋范圍。權(quán)利要求1.一種交換器,用來控制網(wǎng)絡(luò)內(nèi)數(shù)據(jù)包的傳送,該交換器包含至少一輸入端口,用來接收數(shù)據(jù)包;至少一輸出端口,用來輸出數(shù)據(jù)包;一隊(duì)列緩沖區(qū),用來暫存來自該輸入端口所接收的數(shù)據(jù)包;以及一分析選擇單元,用來依據(jù)該數(shù)據(jù)包的一傳輸特性,選擇由該隊(duì)列緩沖區(qū)以及該輸出端口處理該數(shù)據(jù)包的模式。2.如權(quán)利要求1所述的交換器,其中該傳輸特性選自下列之一高傳輸速度需求和高傳輸精確度需求。3.如權(quán)利要求1所述的交換器,其中該數(shù)據(jù)包是符合IP協(xié)議的數(shù)據(jù)包。4.如權(quán)利要求1所述的交換器,其中當(dāng)該數(shù)據(jù)包的內(nèi)容為多媒體文件時(shí),該分析選擇單元便判斷該數(shù)據(jù)包的傳輸特性為高傳輸速度需求。5.如權(quán)利要求1所述的交換器,其中當(dāng)該數(shù)據(jù)包的內(nèi)容為程序文件時(shí),該分析選擇單元便判斷該數(shù)據(jù)包的傳輸特性為高傳輸精確度需求。6.如權(quán)利要求1所述的交換器,其中當(dāng)該數(shù)據(jù)包的傳輸協(xié)議為UDP時(shí),該分析選擇單元便判斷該數(shù)據(jù)包的傳輸特性為高傳輸速度需求。7.如權(quán)利要求1所述的交換器,其中當(dāng)該數(shù)據(jù)包的傳輸協(xié)議為TCP時(shí),該分析選擇單元便判斷該數(shù)據(jù)包的傳輸特性為高傳輸精確度需求。8.如權(quán)利要求1所述的交換器,其中該數(shù)據(jù)包的傳輸協(xié)議儲(chǔ)存于該數(shù)據(jù)包的協(xié)議識(shí)別字段。9.如權(quán)利要求8所述的交換器,其中該傳輸協(xié)議可為TCP或UDP。10.如權(quán)利要求2所述的交換器,其中當(dāng)該分析選擇單元判斷該數(shù)據(jù)包的傳輸特性為高傳輸速度需求,在該隊(duì)列緩沖區(qū)儲(chǔ)存該數(shù)據(jù)包的前序以及MAC地址字段后,該分析選擇單元與該隊(duì)列緩沖區(qū)一面通過至少一該輸入端口接收部份的該數(shù)據(jù)包,一面通過至少一該輸出端口輸出先前已接收并儲(chǔ)存于該隊(duì)列緩沖區(qū)的部份該數(shù)據(jù)包。11.如權(quán)利要求2所述的交換器,其中當(dāng)該分析選擇單元判斷該數(shù)據(jù)包的傳輸特性為高傳輸精確度需求,則該分析選擇單元與該隊(duì)列緩沖區(qū)先儲(chǔ)存完整的該數(shù)據(jù)包于該隊(duì)列緩沖區(qū)并檢查確認(rèn)該數(shù)據(jù)包的正確性,然后才再將該數(shù)據(jù)包送出。12.一種交換器處理網(wǎng)絡(luò)的傳輸數(shù)據(jù)包的方法,其包含接收一數(shù)據(jù)包;依據(jù)該數(shù)據(jù)包的傳輸特性選擇處理該數(shù)據(jù)包的模式;以及依據(jù)選定輸出該數(shù)據(jù)包的模式處理該數(shù)據(jù)包。13.如權(quán)利要求12所述的方法,其中該傳輸特性選自下列之一高傳輸速度需求和高傳輸精確度需求。14.如權(quán)利要求12所述的方法,其中該數(shù)據(jù)包是符合IP協(xié)議的數(shù)據(jù)包。15.如權(quán)利要求12所述的方法,其中當(dāng)該數(shù)據(jù)包的內(nèi)容為多媒體文件時(shí),便判斷該數(shù)據(jù)包的傳輸特性為高傳輸速度需求。16.如權(quán)利要求12所述的方法,其中當(dāng)該數(shù)據(jù)包的內(nèi)容為程序文件時(shí),便判斷該數(shù)據(jù)包的傳輸特性為高傳輸精確度需求。17.如權(quán)利要求12所述的方法,其中當(dāng)該數(shù)據(jù)包的傳輸協(xié)議為UDP時(shí),便判斷該數(shù)據(jù)包的傳輸特性為高傳輸速度需求。18.如權(quán)利要求12所述的方法,其中當(dāng)該數(shù)據(jù)包的傳輸協(xié)議為TCP時(shí),便判斷該數(shù)據(jù)包的傳輸特性為高傳輸精確度需求。19.如權(quán)利要求12所述的方法,其中該數(shù)據(jù)包的傳輸協(xié)議儲(chǔ)存于該數(shù)據(jù)包的協(xié)議識(shí)別字段。20.如權(quán)利要求19所述的方法,其中該傳輸協(xié)議可為TCP或UDP。21.如權(quán)利要求20所述的方法,其中當(dāng)該數(shù)據(jù)包的傳輸特性為高傳輸速度需求,在儲(chǔ)存該數(shù)據(jù)包的前序以及MAC地址字段后,一面通過至少一該輸入端口接收部份的該數(shù)據(jù)包,一面輸出端口輸出先前已接收并儲(chǔ)存的部份該數(shù)據(jù)包。22.如權(quán)利要求20所述的方法,其中當(dāng)判斷該數(shù)據(jù)包的傳輸特性為高傳輸精確度需求,則先儲(chǔ)存完整的該數(shù)據(jù)包并檢查確認(rèn)該數(shù)據(jù)包的正確性,然后才再將該數(shù)據(jù)包送出。全文摘要一種交換器,用來控制網(wǎng)絡(luò)內(nèi)數(shù)據(jù)包的傳送,該交換器包含至少一輸入端口、至少一輸出端口、一隊(duì)列緩沖區(qū)以及一分析選擇單元。該輸入端口用來接收數(shù)據(jù)包,該輸出端口用來輸出數(shù)據(jù)包,該隊(duì)列緩沖區(qū)用來暫存來自該輸入端口所接收的數(shù)據(jù)包,該分析選擇單元,用來依據(jù)該數(shù)據(jù)包的一傳輸特性,選擇由該隊(duì)列緩沖區(qū)以及該輸出端口處理該數(shù)據(jù)包的模式。文檔編號(hào)H04L12/56GK1625159SQ200410100240公開日2005年6月8日申請(qǐng)日期2004年12月13日優(yōu)先權(quán)日2003年12月12日發(fā)明者顧浩俊,陳維彬,林郁如,鄭兆成申請(qǐng)人:威盛電子股份有限公司