接上篇:7.7 網(wǎng)絡(luò)(一)_龍赤子的博客-博客
創(chuàng)新互聯(lián)主營(yíng)三水網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開(kāi)發(fā),三水h5小程序定制開(kāi)發(fā)搭建,三水網(wǎng)站營(yíng)銷推廣歡迎三水等地區(qū)企業(yè)咨詢目錄
三 操作系統(tǒng)涉及的網(wǎng)絡(luò)內(nèi)容
1 網(wǎng)絡(luò)棧
2 協(xié)議
3 應(yīng)用
這里我們重點(diǎn)討論操作系統(tǒng)里面的網(wǎng)絡(luò)。這部分在整個(gè)網(wǎng)絡(luò)架構(gòu)中,屬于端的技術(shù)。對(duì)于端來(lái)講,要么是數(shù)據(jù)的生產(chǎn)者,要么是數(shù)據(jù)的消費(fèi)者,所以主要任務(wù)就是數(shù)據(jù)的收發(fā)處理。其實(shí)這種收發(fā)也離不開(kāi)分析處理,本質(zhì)上,仍然是管道上的一截。如何來(lái)理解這一點(diǎn)呢?想想看,數(shù)據(jù)本身在線路上是不是不被處理?根據(jù)二進(jìn)制的0和1調(diào)制而成的波形,是根據(jù)物理規(guī)律,在線路上以接近光的速度一路狂奔,原樣到達(dá)對(duì)端。因此,中間的路由器,也是屬于一個(gè)端點(diǎn),雖然我們更常用節(jié)點(diǎn)來(lái)稱呼。只有端點(diǎn),才能收發(fā)數(shù)據(jù),處理數(shù)據(jù),只不過(guò),在這些所謂的“節(jié)點(diǎn)”端點(diǎn)上,更多的是處理如何轉(zhuǎn)發(fā)數(shù)據(jù)。這種差異,并不影響大家對(duì)網(wǎng)絡(luò)及其協(xié)議的理解。基于前面的網(wǎng)絡(luò)拓?fù)鋱D,我們可以參考下圖來(lái)理解這一點(diǎn):

上面這幅圖片來(lái)自下面這本經(jīng)典的網(wǎng)絡(luò)教材,國(guó)內(nèi)是有引進(jìn)影印版的,現(xiàn)在據(jù)說(shuō)到了第七版。對(duì)計(jì)算機(jī)網(wǎng)絡(luò)感興趣的讀者,可以買來(lái)看看。

過(guò)濾掉本節(jié)第一幅圖中的路由器等中間節(jié)點(diǎn),只看紅色箭頭連接的兩個(gè)端點(diǎn)。我們可以用下圖來(lái)更清晰的展示這個(gè)過(guò)程:

這個(gè)圖的最底層部分,我們?cè)谇懊娴木W(wǎng)絡(luò)傳輸部分,已經(jīng)看到過(guò)了。物理層就是網(wǎng)卡硬件負(fù)責(zé)的事情了,而網(wǎng)絡(luò)接口層和物理層之間,就是驅(qū)動(dòng)跟網(wǎng)卡的銜接之處。
其實(shí),從上圖可以明顯的看出,整個(gè)傳輸系統(tǒng)有兩個(gè)管道,一個(gè)是最底層的物理管道,一個(gè)是在其之上,由對(duì)等節(jié)點(diǎn)構(gòu)成的邏輯管道(右邊部分為了展示解封裝,去掉了各個(gè)層的頭部,特此說(shuō)明)。一個(gè)物理管道加n個(gè)邏輯管道,構(gòu)成了操作系統(tǒng)的網(wǎng)絡(luò)系統(tǒng)。而邏輯管道,又是大部分計(jì)算機(jī)網(wǎng)絡(luò)教材所重點(diǎn)講述的部分。
在物理管道之上,其實(shí)是有兩層關(guān)系的。一層是上面所述的,通過(guò)水平關(guān)系展示的邏輯管道;一層則是通過(guò)上下關(guān)系展示的封裝棧道。如果要用四個(gè)字來(lái)描述計(jì)算機(jī)的網(wǎng)絡(luò),就可以用上下左右這四個(gè)字來(lái)概括了。計(jì)算機(jī)網(wǎng)絡(luò)所要解決的,也就是這兩個(gè)關(guān)系問(wèn)題:上下問(wèn)題和左右問(wèn)題。上下問(wèn)題解決數(shù)據(jù)如何建,左右問(wèn)題解決數(shù)據(jù)如何傳。
關(guān)于數(shù)據(jù)如何建,也就是數(shù)據(jù)如何封裝的問(wèn)題,前面已有論述到,主要是建立一套約定的規(guī)則,大家遵守規(guī)則,這樣接收方才能解封裝。這套規(guī)則,就叫協(xié)議。但是,協(xié)議不僅僅要封裝數(shù)據(jù),就如在網(wǎng)絡(luò)傳輸部分所說(shuō)的,通道存在丟失數(shù)據(jù)的可能性,因此,這里的協(xié)議,還需要處理數(shù)據(jù)的可靠傳輸問(wèn)題,也就是數(shù)據(jù)如何傳的問(wèn)題。可見(jiàn),只要搞定了協(xié)議,就搞定了網(wǎng)絡(luò)。
但是,網(wǎng)絡(luò)要處理的問(wèn)題很多很多,如果只用一兩個(gè)協(xié)議來(lái)囊括網(wǎng)絡(luò)的所有內(nèi)容,那么協(xié)議就會(huì)顯得過(guò)于臃腫和復(fù)雜。所以,為了簡(jiǎn)化問(wèn)題的處理,進(jìn)一步的,人們把這些問(wèn)題分開(kāi)處理,劃分成許多層,每層只關(guān)注問(wèn)題的一個(gè)方面,處理一個(gè)抽象層面的內(nèi)容。比如,如下圖所示,ISO將網(wǎng)絡(luò)劃分為七層。其中,應(yīng)用層關(guān)注數(shù)據(jù)如何應(yīng)對(duì)業(yè)務(wù)的問(wèn)題;傳輸層關(guān)注數(shù)據(jù)可靠與否及如何處理丟失、重復(fù)、亂序等問(wèn)題;而網(wǎng)絡(luò)層則只是關(guān)注數(shù)據(jù)如何路由的問(wèn)題;最后,鏈路層關(guān)注與底層物理通道的銜接。這樣,應(yīng)用層將數(shù)據(jù)交給傳輸層傳輸,傳輸層又將數(shù)據(jù)交給網(wǎng)絡(luò)層路由,網(wǎng)絡(luò)層又將數(shù)據(jù)交給鏈路層發(fā)送。這樣,一層銜接一層,最終完成數(shù)據(jù)傳輸任務(wù)。

分層是個(gè)好主意,但是分太多層,則問(wèn)題處理又顯得過(guò)于啰嗦,容易出現(xiàn)邊界不清、職責(zé)不明確的問(wèn)題,反而將問(wèn)題復(fù)雜化。因此,計(jì)算機(jī)網(wǎng)絡(luò)中,實(shí)際常用的是上圖中間的四層結(jié)構(gòu)。
層分好了,新的問(wèn)題又來(lái)了。雖然通過(guò)分層,問(wèn)題得到了簡(jiǎn)化,但是網(wǎng)絡(luò)傳輸?shù)男枨笫嵌喾N多樣的。為了完成某個(gè)層的任務(wù),實(shí)際中發(fā)現(xiàn),通過(guò)一兩個(gè)協(xié)議搞定一個(gè)層,也似乎是過(guò)于絕對(duì)了。尤其是對(duì)應(yīng)用層,業(yè)務(wù)種類千變?nèi)f化,視頻的、音頻的、文字的,各有各的特點(diǎn),因此,要高效利用網(wǎng)絡(luò),還得繼續(xù)切割。這樣,每個(gè)層又可以劃分為多個(gè)協(xié)議, 每一個(gè)協(xié)議只處理一個(gè)相對(duì)獨(dú)立的問(wèn)題,如此一來(lái),就形成了一個(gè)協(xié)議棧簇,如下圖所示:

整個(gè)協(xié)議棧就像搭積木,一層一層,一塊一塊構(gòu)建起來(lái)的,如下圖所示:

上面圖中所示的協(xié)議類型,只是作為例子說(shuō)明問(wèn)題。實(shí)際中協(xié)議的數(shù)量和種類遠(yuǎn)遠(yuǎn)不止這些。另外,棧也只是為了形象的說(shuō)明協(xié)議簇的構(gòu)成。又因?yàn)閰f(xié)議棧中,TCP和IP這兩個(gè)協(xié)議最為流行,也最為基礎(chǔ),因此,這個(gè)協(xié)議棧就常常叫做TCP/IP協(xié)議棧。這就是我們常說(shuō)的 TCP/IP協(xié)議棧叫法的來(lái)由。
2 協(xié)議通過(guò)前面的內(nèi)容,我們了解到,網(wǎng)絡(luò)棧主要由協(xié)議構(gòu)成,這里我們來(lái)看看協(xié)議是做什么用的,有哪些共性的東西。
協(xié)議在計(jì)算機(jī)網(wǎng)絡(luò)中的重要性不言而喻。但是,協(xié)議到底是指什么呢?從名稱上,我們可以直觀的感受到,協(xié)議應(yīng)該是一套行為準(zhǔn)則及其約束規(guī)則。一件事情,做什么、怎么做、有哪些約束(時(shí)間、“地點(diǎn)”等),這些就是協(xié)議要解決的問(wèn)題。
沒(méi)有接觸過(guò)具體協(xié)議的讀者,根據(jù)上面所述的內(nèi)容,可能還是會(huì)有太抽象、太縹緲,無(wú)法觸摸的感覺(jué)。即使是開(kāi)始學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)的讀者,大部分對(duì)協(xié)議的理解也是有限。可能覺(jué)得自己懂了,但是,真正要用起來(lái),還是會(huì)無(wú)處下手。記得筆者當(dāng)年學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)時(shí),有一個(gè)作業(yè)是實(shí)現(xiàn)一個(gè)郵件收發(fā)的客戶端。老師只給了協(xié)議要求,沒(méi)有提其他約束,也就是語(yǔ)言不限,平臺(tái)不限,選自己熟悉的來(lái)。界面也不限,只看最后功能結(jié)果。那時(shí),雖然在課堂上,協(xié)議二字已經(jīng)聽(tīng)到過(guò)無(wú)數(shù)次了,但是當(dāng)真正要編碼實(shí)現(xiàn)時(shí),不知該如何入手。最關(guān)鍵的是,不知道該如何使用給的郵件“協(xié)議”。這就是對(duì)協(xié)議的理解過(guò)于抽象的緣故,說(shuō)白了,就是沒(méi)有實(shí)際具體的感受一下,協(xié)議是什么,怎么用。
摒棄傳統(tǒng)教科書(shū)的概念,我們先用一種較為通俗的說(shuō)法來(lái)解釋協(xié)議二字。我認(rèn)為,協(xié)議是數(shù)據(jù)封裝加邏輯處理。就是說(shuō),數(shù)據(jù)該怎么封裝,有哪些字段,協(xié)議需要說(shuō)明,這是基礎(chǔ)。然后,基于封裝所用到的數(shù)據(jù)字段,來(lái)定義一套運(yùn)行流程。當(dāng)然,也可以反過(guò)來(lái),先定義一套運(yùn)行流程,比如有限狀態(tài)機(jī)。然后再根據(jù)流程的運(yùn)行需要,定義所需的字段。一般來(lái)講,協(xié)議中所定義的流程,在邏輯上需要是完備的。但是大部分并不能通過(guò)數(shù)學(xué)語(yǔ)言來(lái)嚴(yán)格的證明,就如計(jì)算機(jī)里的很多算法一樣,正確性難以通過(guò)數(shù)學(xué)模型來(lái)證明。因此,協(xié)議可能存在漏洞。
對(duì)協(xié)議的完整理解,實(shí)際上是需要通過(guò)語(yǔ)法、語(yǔ)義、語(yǔ)用三個(gè)層面來(lái)把握的。
首先,語(yǔ)法層面。語(yǔ)法層面主要涵蓋了協(xié)議的字段構(gòu)成。這跟我們平常交流的語(yǔ)言是類似的。“我吃飯”是一個(gè)合規(guī)的主謂賓結(jié)構(gòu),大家都按此來(lái)。如果有人說(shuō)“我飯吃”,聽(tīng)者大概是可以理解的,但是在計(jì)算機(jī)世界里,嚴(yán)格的數(shù)學(xué)要求,是不允許出現(xiàn)這種病句的。這類“病句”在接收端是無(wú)法正確解析的。所以,要想互聯(lián)互通,就要遵守協(xié)議的格式要求。
其次,語(yǔ)義層面。語(yǔ)義層面主要是展示一條協(xié)議要表達(dá)的具體含義。協(xié)議中應(yīng)該包含哪些字段,這就是語(yǔ)義要求的。我們?nèi)粘贤ㄖ校痪湓捒赡荛L(zhǎng),也可能短,這是由溝通要傳達(dá)的信息所決定的,協(xié)議也類似。以常見(jiàn)的網(wǎng)絡(luò)媒體流播放協(xié)議RTSP為例,就包括了流描述、建立、播放、暫停、終止等多條具體協(xié)議。每一條的字段都是為完成這條協(xié)議的任務(wù)而設(shè)定的。
最后,語(yǔ)用層面。語(yǔ)用層面主要是整體的反映協(xié)議的功能作用,涵蓋了協(xié)議的邏輯流程。就像我們的文章是由很多句子構(gòu)成的,協(xié)議要干成一件事,很多時(shí)候,也是通過(guò)多條具體的協(xié)議組合來(lái)完成的。還是以前面的RTSP為例,在語(yǔ)用層面,體現(xiàn)的就是播放媒體這件事的過(guò)程。要做這件事,需要先發(fā)現(xiàn)支持哪些媒體格式,然后建立媒體會(huì)話,之后播放。播放過(guò)程中可能出現(xiàn)暫停、恢復(fù)反復(fù)交替的過(guò)程。最后,終止會(huì)話,釋放資源。這個(gè)嚴(yán)密設(shè)計(jì)的流程,體現(xiàn)的就是語(yǔ)用層面的內(nèi)容。
通過(guò)上面的內(nèi)容,我們?cè)賮?lái)理解協(xié)議的概念,可能就更清晰具體一些了。回到前面郵件作業(yè)的例子,當(dāng)時(shí)無(wú)處下手,就是因?yàn)闆](méi)有一個(gè)具體的東西可以輔助來(lái)理解協(xié)議的概念。后來(lái),我發(fā)現(xiàn),通過(guò)抓包學(xué)習(xí)網(wǎng)絡(luò),尤其是協(xié)議,倒是一個(gè)好方法。讀者如果感興趣,可以試試。如果筆者當(dāng)時(shí)知道這個(gè)方法,那么,完成那個(gè)郵件客戶端的作業(yè),也就不會(huì)那么痛苦了。這里,以RTSP協(xié)議為例,一個(gè)抓包的結(jié)果如下:

雖然可以通過(guò)上面三個(gè)層面來(lái)理解協(xié)議,但是,有些協(xié)議實(shí)現(xiàn)的并不那么簡(jiǎn)明,相反,因?yàn)橐幚淼膯?wèn)題本身就比較復(fù)雜,所以協(xié)議的設(shè)計(jì)和實(shí)現(xiàn)也相對(duì)復(fù)雜許多。TCP就是這樣一個(gè)典型例子。除此,協(xié)議畢竟是要計(jì)算機(jī)處理的,雖然作用類似我們溝通交流的語(yǔ)言,但是,要照顧到機(jī)器的需求,因此很多信息是隱含在字段中的,這就是為啥協(xié)議要通過(guò)學(xué)習(xí)才能理解的原因。舉個(gè)例子,拿TCP的超時(shí)重傳來(lái)講,協(xié)議中可能只包含確認(rèn)序號(hào),而不會(huì)直接提供是否超時(shí),是否需要重傳的信息,因此,協(xié)議的實(shí)現(xiàn)者要通過(guò)確認(rèn)序號(hào)字段和上下文,自己判斷是否超時(shí)了,是否需要重傳。
在前面提到,網(wǎng)絡(luò)可能存在的丟包,讓可靠傳輸?shù)脑O(shè)計(jì)陡然變復(fù)雜了許多。這種復(fù)雜性,主要在于處理很多細(xì)節(jié)的問(wèn)題。就本質(zhì)而言,TCP實(shí)現(xiàn)可靠傳輸無(wú)外乎兩大法寶,一個(gè)是確認(rèn),一個(gè)是重傳。首先,通過(guò)確認(rèn),判斷數(shù)據(jù)是否可靠到達(dá)了對(duì)端。如果沒(méi)有,那么就通過(guò)重傳,將數(shù)據(jù)再傳輸一次,然后再次確認(rèn),直到數(shù)據(jù)到達(dá)目的端。
了解了協(xié)議是什么后,我們?cè)賮?lái)看看協(xié)議的實(shí)現(xiàn)。
協(xié)議畢竟不是語(yǔ)言,能夠變化無(wú)窮。相反,機(jī)器能夠處理的情況都是有限的,這是圖靈機(jī)理論上的要求。因此,實(shí)際中,無(wú)論協(xié)議多么的復(fù)雜,其運(yùn)作流程,都可以通過(guò)一個(gè)有限狀態(tài)機(jī)來(lái)描述。如果一個(gè)不夠,那就來(lái)多個(gè)。這不是開(kāi)玩笑,而是有實(shí)際例子的。筆者之前搞過(guò)PPP協(xié)議的實(shí)現(xiàn),當(dāng)時(shí),那是我遇到的最復(fù)雜的協(xié)議處理。我將其稱為多層螺旋結(jié)構(gòu),如下圖所示:

在這種多層螺旋結(jié)構(gòu)中,每一層都是一個(gè)狀態(tài)機(jī)。下層狀態(tài)機(jī)成功后,就躍遷到上層狀態(tài)機(jī)。直到最高層的狀態(tài)機(jī),負(fù)責(zé)最終的數(shù)據(jù)傳輸。當(dāng)當(dāng)前層的狀態(tài)機(jī)出現(xiàn)錯(cuò)誤后,就回落到下一層的狀態(tài)機(jī),繼續(xù)協(xié)商處理。PPP就是這樣的一種協(xié)議。代碼中,針對(duì)每一個(gè)狀態(tài)機(jī),定義了處理接口,也定義了狀態(tài)機(jī)之間的遷移關(guān)系。簡(jiǎn)單表示,如下圖所示:

一般而言,協(xié)議的規(guī)范文檔中,都會(huì)對(duì)事件的處理和狀態(tài)遷移做出說(shuō)明,開(kāi)發(fā)者實(shí)現(xiàn)時(shí),只需要按照規(guī)范文檔做就可以了,不需要自己設(shè)計(jì)狀態(tài)機(jī)。這種對(duì)協(xié)議的使用,相對(duì)而言是比較簡(jiǎn)單的,真正復(fù)雜的是協(xié)議設(shè)計(jì)。針對(duì)一個(gè)問(wèn)題,如何設(shè)計(jì)一套邏輯完備的協(xié)議作為解決方案,這才是真正考驗(yàn)開(kāi)發(fā)者的。因?yàn)檫@個(gè)過(guò)程中,需要通過(guò)整體把握,考慮很多因素,作出很多取舍決策,才能完成目標(biāo)。標(biāo)準(zhǔn)制定者,就是在干這項(xiàng)工作,其工作輸出結(jié)果就是我們學(xué)習(xí)的各種協(xié)議。
提這一點(diǎn),是因?yàn)閲?guó)內(nèi)的教學(xué),都是傾向于輸出標(biāo)準(zhǔn)答案,而忽略了研究思考的過(guò)程。這種灌輸式的方式,其實(shí)是很影響創(chuàng)新的。不過(guò),我前面建議大家去看的那本計(jì)算機(jī)網(wǎng)絡(luò)教材,有一個(gè)很大的不同,就是采用啟發(fā)的方式,引導(dǎo)讀者不斷思考如何設(shè)計(jì)一個(gè)可靠傳輸協(xié)議。通過(guò)這樣一步一步的迭代,完成對(duì)TCP協(xié)議的講解,因此,很值得讀者細(xì)細(xì)品味。
3 應(yīng)用通過(guò)上面的介紹,相信大家對(duì)協(xié)議有了基本的認(rèn)識(shí)。協(xié)議設(shè)計(jì)大家可能會(huì)遇到,但對(duì)大部分讀者而言,使用操作系統(tǒng)的網(wǎng)絡(luò)棧開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用,可能才是常態(tài)。那么,如何使用協(xié)議棧來(lái)開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用呢?下面,我們就對(duì)這部分內(nèi)容進(jìn)行一些介紹。
首先,我們常見(jiàn)的或者用到的網(wǎng)絡(luò)應(yīng)用,大部分都是基于套接字程序來(lái)實(shí)現(xiàn)的。操作系統(tǒng)網(wǎng)絡(luò)棧展現(xiàn)出來(lái)的接口有兩個(gè)層面,一個(gè)是垂直方向的套接字接口,用于實(shí)現(xiàn)數(shù)據(jù)的收發(fā);一個(gè)是水平方向的配置接口,用于管理網(wǎng)絡(luò)。如下圖所示:

套接字位于傳輸層之上,也就是說(shuō),通過(guò)套接字,可以實(shí)現(xiàn)應(yīng)用層的協(xié)議。當(dāng)然,這也不絕對(duì),操作系統(tǒng)一般也提供RAW類型的套接字,方面應(yīng)用實(shí)現(xiàn)傳輸層的協(xié)議。關(guān)于套接字接口的使用,有一套標(biāo)準(zhǔn)流程,大家可以在網(wǎng)絡(luò)上搜索相關(guān)的例子來(lái)學(xué)習(xí)。應(yīng)用軟件開(kāi)發(fā)者構(gòu)造好自己的數(shù)據(jù)后,就可以交給套接字接口,由套接字接口協(xié)助將其發(fā)送給對(duì)端。接收端通過(guò)套接字接口拿到的就是發(fā)送端原樣的數(shù)據(jù)。至于數(shù)據(jù)該如何解釋,這就是應(yīng)用層協(xié)議負(fù)責(zé)的事情了。我們可以這樣來(lái)理解,收發(fā)端的套接字接口共同組成了一個(gè)虛擬的傳輸通道。
套接字接口的相關(guān)內(nèi)容本身并不復(fù)雜。但是,網(wǎng)絡(luò)編程卻并不簡(jiǎn)單。這其中的難點(diǎn)在于性能優(yōu)化上。如何實(shí)現(xiàn)高性能的并發(fā)處理,是網(wǎng)絡(luò)編程進(jìn)階的關(guān)鍵所在。在這一點(diǎn)上,不僅僅是應(yīng)用設(shè)計(jì)者,相關(guān)SDK設(shè)計(jì)者,甚至操作系統(tǒng)設(shè)計(jì)者都在持續(xù)的優(yōu)化。感興趣的讀者,可以去了解異步IO相關(guān)的一些內(nèi)容,這里就不再展開(kāi)了。
關(guān)于套接字編程,這里最后再補(bǔ)充一點(diǎn)。我們用的手機(jī)、電腦等產(chǎn)品,其上跑的網(wǎng)絡(luò)應(yīng)用豐富多彩,而且很多是同時(shí)在用的,所以,通過(guò)套接字接口構(gòu)建的虛擬通道,在一臺(tái)設(shè)備上,可以存在多個(gè),且每個(gè)彼此是獨(dú)立的,可以認(rèn)為相互不影響(排除對(duì)內(nèi)存、帶寬等資源的占用影響)。不僅僅是設(shè)備級(jí)別,即使在一個(gè)應(yīng)用中,這種虛擬通道也可能存在很多個(gè)。虛擬通道的關(guān)鍵構(gòu)建元素是網(wǎng)絡(luò)五元組,即{源地址、源端口、協(xié)議、目的地址、目的端口},所以,設(shè)備節(jié)點(diǎn)間的虛擬通道是N:N的映射關(guān)系。早年筆者接觸過(guò)BT協(xié)議下載軟件,對(duì)此還是深有感觸的。下面這幅圖,是當(dāng)時(shí)理解多個(gè)下載上傳通道時(shí)畫(huà)的。

好了,關(guān)于網(wǎng)絡(luò)的介紹就到這里,希望本文對(duì)大家理解計(jì)算機(jī)網(wǎng)絡(luò)有所幫助。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
標(biāo)題名稱:7.7網(wǎng)絡(luò)(二)-創(chuàng)新互聯(lián)
地址分享:http://chinadenli.net/article4/cohioe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站導(dǎo)航、電子商務(wù)、全網(wǎng)營(yíng)銷推廣、網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容