網絡嘛,就是把個體連接起來,相互間可以通信。清朝閉關鎖國,完全不跟外界聯系,就是一個個體,直到八國聯軍打到北京城,才開始了與外界的聯系,這是被動地接入網絡。建國后,改革開放,加入wto,這是主動地接入網絡。如果你看過機場的航線,把每個國家的各個城市相互聯起來,這也是網絡。 就拿加入WTO來說,你自己怎么在國內玩,WTO不管,如果你想要加入這個組織,并且通過這個組織跟其他國家通商的話,就得遵守規定。WTO下有很多國家,大家都遵守同樣的規定,統一的規定的目的有兩個:1是這是游戲規則,你不遵守你就不能同別國同上,2是當有新的國家加入的時候,直接遵守這個規則就行了,不用再勞神費力專門為這個國家制定特殊的規則。這個規定在網絡上就叫協議。
為了便于管理和模塊化,網絡連接把這些協議模塊化地劃分了七層,就是osi七層模型,旨在更容易地理解網絡通信。
從高往下,第一層是應用層,應用層是用來提供標準服務的,我感覺就像是外貿部,提供標準服務的,你要通訊,必須有通訊的程序,能完成通訊的功能,當然每個國家都得提供這么一個外貿部才行。
第二層是表示層,表示層用電腦的例子來解釋比較好。現在都提倡個性,蘋果筆記本,windows 8系統,IBM系統,大家都有個性,有個性的意思就是數據組成大家各不相同,就相當于蘋果說的是蘋果話,Windows 8 說的是win話,IBM說的是IBM話,相互間聽不懂怎么辦,這就要表示層這個師爺給翻譯翻譯,想要在網絡上通信,必須翻譯成大家都聽得懂的話,所以這里面就得有個協議協調一下。所以說表示層的作用就是掩蓋不同系統間的數據格式的不同,并且給數據編碼解碼,加密解密。
第三層是會話層,一直沒理解會話層是什么意思,目的是來管理會話的,說是兩個端鏈接的時候有個短暫的會話。是不是感覺像外貿部之間打個電話說,我這邊有批貨要到你們那邊去,你們給看看走什么路線,到了那邊給安排一下卸貨之類的。 規定了雙方是以雙工,半雙工,單工模式通信。
第四層是傳輸層,各個國家的碼頭吞吐量和傳輸速率不太一樣,傳輸層就是要把這些協調一下,讓大家感覺不出來不一樣。主要功能就是管理網絡間端到端的信息傳送,錯誤恢復和流量控制,提供可靠有序的數據包傳輸。
第五層是網絡層,就是網絡間怎么傳數據,走哪條路的問題,還要提供擁塞控制,防止網絡資源的損耗。
第六層是數據鏈路層,數據通道的建立,拆除,還要對數據糾錯。
第七層是物理層,你國的貨輪要能停在別國的碼頭上,那到美國是一個類型的碼頭,到德國又是另一個類型的碼頭,我一輛船能停在美國不能停在德國肯定不行啊,所以啊,大家的船都得規定做成什么樣,碼頭也得做成相應的摸樣,大家統一了,這些都是機械特征,就是物理層的協議了。
另外看鳥哥linux私房菜學到的知識:
用Hub或者用一條總線連接多個主機間的通信:因為是一條總線,所以不能復用,當一個機器想要使用總線的時候,就會廣播信息,我要發信了,其他的就要停下自己的網絡活動,等該機器發完信息之后再去搶占總線。所以不能復用,而且如果一條總線上因為某些原因有兩個機器同時發送信息,就會湮滅,大家重新發送,所以,這種一條總線總是不好的。Hub就跟一條總線道理相同。
交換機把這個復用的問題解決了,通過電路,算法,當a與b通訊時,c和d之間也可以通訊。
解決這個問題的方法是不是就是通過子網的劃分來實現的。不同的子網間不能物理廣播,物理廣播的意思就是,a要給b發信息,b,c,d都會收到,并跟自己的MAC比較,如果MAC相同,那就接收信息,如果不同,丟掉,如果這個網絡中的主機太多了話,那么,這個時間會比較長。而把這個網段劃分成多個子網,子網間不能物理廣播,只能在子網內廣播,這樣就能保證減少物理廣播的時間,并且減少湮滅。
還有個問題是ip與MAC的對應問題,這要靠邏輯廣播,主要方法就是發一個包,大家都接收,和目標ip相同的那個主機把自己的MAC返回,返回后,那個發送包的主機將這個MAC同ip聯系起來,但是這個聯系是動態的。
哦,還有子網的劃分的問題。ABC網絡的劃分就是通過NET_ID的多少來劃分的,拿C網來說,NET_ID是3個字節,可以有255個主機,但是這么多主機的話會造成加大物理廣播的時間。劃分子網的方法就是從HOST_ID中劃分幾個bit作為NET_ID.
下次研究研究文件系統。
posted @
2012-03-07 11:55 Dino-Tech 閱讀(170) |
評論 (0) |
編輯 收藏
摘要: 本文介紹了WinRT中Boxing和UnBox的方法,這兩種方法目前只支持內建類型,不支持自定義類型。更多Windows 8 方面的分享請關注Dino的博客。
閱讀全文
posted @
2012-02-16 12:05 Dino-Tech 閱讀(288) |
評論 (0) |
編輯 收藏
摘要: 介紹了在Windows 8 中如何修改Button中Content屬性的方法,因為Content不是一個string類型,所以進行判斷的時候要把它改成String^,才能做比較,不然比較的東西不一樣。
閱讀全文
posted @
2012-02-15 15:31 Dino-Tech 閱讀(417) |
評論 (0) |
編輯 收藏
摘要: 本文簡單介紹了一下Windows 8 中的delegate類型,其實不過是對一個方法的再封裝,類似于對int類型封裝成INT類型,多了些東西,最本質的東西還是方法本身,不過delegate更關注方法的參數
閱讀全文
posted @
2012-02-14 15:19 Dino-Tech 閱讀(293) |
評論 (0) |
編輯 收藏
摘要: 本文為翻譯文章,是Petzold大師的關于Windows 8 異步處理的博客,講的鞭辟入里,看著覺得很有幫助就翻譯來了,是c++下的,跟C#版本略微有些不同。文章講述了異步處理的背景和原理。異步處理的主要目的是為了Unblocking UI Thread,通過文中的介紹,Windows 8 確實也做到了,給我的感覺是,這種處理方式很適合手機觸摸屏。關于Xaml的知識已經很多了,大家可以在網上查找。
閱讀全文
posted @
2012-02-14 10:51 Dino-Tech 閱讀(1199) |
評論 (1) |
編輯 收藏