計算機網路體系結構
-
網路通信協議
從應用的角度出發,協議可理解為“規則”,是資料傳輸和資料的解釋的規則,
假設,A、B雙方欲傳輸檔案,規定:
第一次,傳輸檔案名,接收方接收到檔案名,應答OK給傳輸方;
第二次,發送檔案的尺寸,接收方接收到該資料再次應答一個OK;
第三次,傳輸檔案內容,同樣,接收方接收資料完成后應答OK表示檔案內容接收成功,
由此,無論A、B之間傳遞何種檔案,都是通過三次資料傳輸來完成,A、B之間形成了一個最簡單的資料傳輸規則,雙方都按此規則發送、接收資料,A、B之間達成的這個相互遵守的規則即為協議,
這種僅在A、B之間被遵守的協議稱之為原始協議,當此協議被更多的人采用,不斷的增加、改進、維護、完善,最終形成一個穩定的、完整的檔案傳輸協議,被廣泛應用于各種檔案傳輸程序中,該協議就成為一個標準協議,最早的ftp協議就是由此衍生而來,
協議 :一套關于資訊傳輸順序,資訊格式和資訊內容等的約定,
協議三要素:
語法:資料與控制資訊的結構或格式
語意:用來說明通信雙方應當怎么做
同步:詳細說明事件如何實作
例:甲乙兩個人通電話
語法:電話號碼;
語意:響鈴(表示有電話打進),乙接電話,通話等一系列的動作;
同步:甲先撥電話,響鈴,乙接聽電話,等一系列的通話時序,
-
典型網路協議
傳輸層 常見協議有TCP/UDP協議,
應用層 常見的協議有HTTP協議,FTP協議,
網路層 常見協議有IP協議、ICMP協議、IGMP協議,
網路介面層 常見協議有ARP協議、RARP協議,
- TCP傳輸控制協議(Transmission Control Protocol)是一種面向連接的、可靠的、基于位元組流的傳輸層通信協議,
- UDP用戶資料報協議(User Datagram Protocol)是OSI參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,
- HTTP超文本傳輸協議(Hyper Text Transfer Protocol)是互聯網上應用最為廣泛的一種網路協議,
- FTP檔案傳輸協議(File Transfer Protocol)
- IP協議是因特網互聯協議(Internet Protocol)
- ICMP協議是Internet控制報文協議(Internet Control Message Protocol)它是TCP/IP協議族的一個子協議,用于在IP主機、路由器之間傳遞控制訊息,
- IGMP協議是 Internet 組管理協議(Internet Group Management Protocol),是因特網協議家族中的一個組播協議,該協議運行在主機和組播路由器之間,
- ARP協議是正向地址決議協議(Address Resolution Protocol),通過已知的IP,尋找對應主機的MAC地址
- RARP是反向地址轉換協議,通過MAC地址確定IP地址,
- TCP/IP協議(傳輸控制協議/網際協議)是目前使用最廣泛的協議,也是Internet上使用的協議,由于TCP/IP具有跨平臺、可路由的特點,可以實作導構網路的互聯,同時也可以跨網段通信,這使得許多網路作業系統將TCP/IP作為內置網路協議,我們組建局域網時,一般主要使用TCP/IP協議,
當然,TCP/IP協議相對于其他協議來說,配置起來也比較復雜,因為每個節點至少需要一個IP地址、一個子網掩碼、一個默認網關、一個計算機名等,
-
網路應用程式設計模型
C/S模式
- 傳統的網路應用設計模式,客戶機(client)/服務器(server)模式,需要在通訊兩端各自部署客戶機和服務器來完成資料通信,
B/S模式
- 瀏覽器()/服務器(server)模式,只需在一端部署服務器,而另外一端使用每臺PC都默認配置的瀏覽器即可完成資料的傳輸,
優缺點
? 對于C/S模式來說,其優點明顯,客戶端位于目標主機上可以保證性能,將資料快取至客戶端本地,從而提高資料傳輸效率,且,一般來說客戶端和服務器程式由一個開發團隊創作,所以他們之間所采用的協議相對靈活,可以在標準協議的基礎上根據需求裁剪及定制,例如,騰訊公司所采用的通信協議,即為ftp協議的修改剪裁版,
因此,傳統的網路應用程式及較大型的網路應用程式都首選C/S模式進行開發,如,知名的網路游戲魔獸世界,3D畫面,資料量龐大,使用C/S模式可以提前在本地進行大量資料的快取處理,從而提高觀感,
C/S模式的缺點也較突出,由于客戶端和服務器都需要有一個開發團隊來完成開發,作業量將成倍提升,開發周期較長,另外,從用戶角度出發,需要將客戶端安插至用戶主機上,對用戶主機的安全性構成威脅,這也是很多用戶不愿使用C/S模式應用程式的重要原因,
B/S模式相比C/S模式而言,由于它沒有獨立的客戶端,使用標準瀏覽器作為客戶端,其作業開發量較小,只需開發服務器端即可,另外由于其采用瀏覽器顯示資料,因此移植性非常好,不受平臺限制,如早期的偷菜游戲,在各個平臺上都可以完美運行,
? B/S模式的缺點也較明顯,由于使用第三方瀏覽器,因此網路應用支持受限,另外,沒有客戶端放到對方主機上,快取資料不盡如人意,從而傳輸資料量受到限制,應用的觀感大打折扣,第三,必須與瀏覽器一樣,采用標準http協議進行通信,協議選擇不靈活,
? 因此在開發程序中,模式的選擇由上述各自的特點決定,根據實際需求選擇應用程式設計模式,
-
網路體系結構
就是對構成計算機網路的各組成部分之間的關系及所要實作功能的一組精確定義(層次和相關規定總稱),

-
開放系統互連OSI參考模型


-
物理層:主要定義物理設備標準,如網線的介面型別、光纖的介面型別、各種傳輸介質的傳輸速率等,它的主要作用是傳輸位元流(就是由1、0轉化為電流強弱來進行傳輸,到達目的地后再轉化為1、0,也就是我們常說的數模轉換與模數轉換),這一層的資料叫做位元,
-
資料鏈路層:定義了如何讓格式化資料以幀為單位進行傳輸,以及如何讓控制對物理介質的訪問,這一層通常還提供錯誤檢測和糾正,以確保資料的可靠傳輸,如:串口通信中使用到的115200、8、N、1
-
網路層:在位于不同地理位置的網路中的兩個主機系統之間提供連接和路徑選擇,Internet的發展使得從世界各站點訪問資訊的用戶數大大增加,而網路層正是管理這種連接的層,
-
傳輸層:定義了一些傳輸資料的協議和埠號(WWW埠80等),如:TCP(傳輸控制協議,傳輸效率低,可靠性強,用于傳輸可靠性要求高,資料量大的資料),UDP(用戶資料報協議,與TCP特性恰恰相反,用于傳輸可靠性要求不高,資料量小的資料,如QQ聊天資料就是通過這種方式傳輸的), 主要是將從下層接收的資料進行分段和傳輸,到達目的地址后再進行重組,常常把這一層資料叫欄位,
-
會話層:通過傳輸層(埠號:傳輸埠與接收埠)建立資料傳輸的通路,主要在你的系統之間發起會話或者接受會話請求(設備之間需要互相認識可以是IP也可以是MAC或者是主機名),
-
表示層:可確保一個系統的應用層所發送的資訊可以被另一個系統的應用層讀取,例如,PC程式與另一臺計算機進行通信,其中一臺計算機使用擴展二一十進制交換碼(EBCDIC),而另一臺則使用美國資訊交換標準碼(ASCII)來表示相同的字符,如有必要,表示層會通過使用一種通格式來實作多種資料格式之間的轉換,
-
應用層:是最靠近用戶的OSI層,這一層為用戶的應用程式(例如電子郵件、檔案傳輸和終端仿真)提供網路服務,
-
TCP/IP協議通信模型
TCP/IP網路協議堆疊分為應用層(Application)、傳輸層(Transport)、網路層(Network)和鏈路層(Link)四層,如下圖所示:


資料的封裝與傳遞程序

? TCP/IP模型
? 一般在應用開發程序中,討論最多的是TCP/IP模型,
? 鏈路層有以太網、令牌環網等標準,鏈路層負責網卡設備的驅動、幀同步(即從網線上檢測到什么信號算作新幀的開始)、沖突檢測(如果檢測到沖突就自動重發)、資料差錯校驗等作業,交換機是作業在鏈路層的網路設備,可以在不同的鏈路層網路之間轉發資料幀(比如十兆以太網和百兆以太網之間、以太網和令牌環網之間),由于不同鏈路層的幀格式不同,交換機要將進來的資料包拆掉鏈路層首部重新封裝之后再轉發,
? 網路層的IP協議是構成Internet的基礎,Internet上的主機通過IP地址來標識,Inter-net上有大量路由器負責根據IP地址選擇合適的路徑轉發資料包,資料包從Internet上的源主機到目的主機往往要經過十多個路由器,路由器是作業在第三層的網路設備,同時兼有交換機的功能,可以在不同的鏈路層介面之間轉發資料包,因此路由器需要將進來的資料包拆掉網路層和鏈路層兩層首部并重新封裝,IP協議不保證傳輸的可靠性,資料包在傳輸程序中可能丟失,可靠性可以在上層協議或應用程式中提供支持,
? 網路層負責點到點(ptop,point-to-point)的傳輸(這里的“點”指主機或路由器),而傳輸層負責端到端(etoe,end-to-end)的傳輸(這里的“端”指源主機和目的主機),傳輸層可選擇TCP或UDP協議,
? TCP是一種面向連接的、可靠的協議,有點像打電話,雙方拿起電話互通身份之后就建立了連接,然后說話就行了,這邊說的話那邊保證聽得到,并且是按說話的順序聽到的,說完話掛機斷開連接,也就是說TCP傳輸的雙方需要首先建立連接,之后由TCP協議保證資料收發的可靠性,丟失的資料包自動重發,上層應用程式收到的總是可靠的資料流,通訊之后關閉連接,
? UDP是無連接的傳輸協議,不保證可靠性,有點像寄信,信寫好放到郵筒里,既不能保證信件在郵遞程序中不會丟失,也不能保證信件寄送順序,使用UDP協議的應用程式需要自己完成丟包重發、訊息排序等作業,
兩臺計算機通過TCP/IP協議通訊的程序如下所示:

? TCP/IP通信程序
上圖對應兩臺計算機在同一網段中的情況,如果兩臺計算機在不同的網段中,那么資料從一臺計算機到另一臺計算機傳輸程序中要經過一個或多個路由器,如下圖所示:

? 跨路由通信
目的主機收到資料包后,如何經過各層協議堆疊最后到達應用程式呢?其程序如下圖所示:

? 以太網驅動程式首先根據以太網首部中的“上層協議”欄位確定該資料幀的有效載荷(payload,指除去協議首部之外實際傳輸的資料)是IP、ARP還是RARP協議的資料報,然后交給相應的協議處理,假如是IP資料報,IP協議再根據IP首部中的“上層協議”欄位確定該資料報的有效載荷是TCP、UDP、ICMP還是IGMP,然后交給相應的協議處理,假如是TCP段或UDP段,TCP或UDP協議再根據TCP首部或UDP首部的“埠號”欄位確定應該將應用層資料交給哪個用戶行程,IP地址是標識網路中不同主機的地址,而埠號就是同一臺主機上標識不同行程的地址,IP地址和埠號合起來標識網路中唯一的行程,
根據IP首部中的“上層協議”欄位確定該資料報的有效載荷是TCP、UDP、ICMP還是IGMP,然后交給相應的協議處理,假如是TCP段或UDP段,TCP或UDP協議再根據TCP首部或UDP首部的“埠號”欄位確定應該將應用層資料交給哪個用戶行程,IP地址是標識網路中不同主機的地址,而埠號就是同一臺主機上標識不同行程的地址,IP地址和埠號合起來標識網路中唯一的行程,
? 雖然IP、ARP和RARP資料報都需要以太網驅動程式來封裝成幀,但是從功能上劃分,ARP和RARP屬于鏈路層,IP屬于網路層,雖然ICMP、IGMP、TCP、UDP的資料都需要IP協議來封裝成資料報,但是從功能上劃分,ICMP、IGMP與IP同屬于網路層,TCP和UDP屬于傳輸層,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/201439.html
標籤:其他
上一篇:關于排序(直接插入排序、選擇排序、冒泡排序、歸并排序、快速排序)
下一篇:Homework
