天天看點

揭秘TCP/IP協定:分層模式一、網際網路的基礎知識二、TCP/IP協定的分層模式

TCP/IP與網際網路

咱做技術還是得踏實,越往後走,越多的是建立下紮實的基礎知識之上的。

凡事欲速則不達,一步步慢慢來,不積矽步無以至千裡。

TCP/IP是當今計算機網絡界使用最為廣泛的協定。TCP/IP的知識對于那些想構築網絡、搭建網絡以及管理網絡、設計和制造網絡裝置甚至是做網絡裝置程式設計的人來說都是至關重要的。

一、網際網路的基礎知識

“網際網路”一詞家喻戶曉,那麼網際網路究竟是什麼?它與TCP/IP之間又有什麼關系?

  • “網際網路”,英文單詞為“Internet”。從字面上了解,internet指的是将多個網絡連接配接使其構成一個更大的網絡,是以internet一詞本意為網際網。将兩個以太網網段用路由器相連是網際網路,将企業内部各部門的網絡或公司的内網與其他企業相連接配接,并實作互相通信的網絡也是網際網路,甚至一個區域的網絡與另一個區域的網絡互相連接配接形成全世界規模的網絡也可以稱作網際網路。然而,現在“網際網路”這個詞的意思卻有所變化。當專門指代網絡之間的連接配接時,可以使用“網際網”這個詞。“網際網路”是指由ARPANET發展而來、互連全世界的計算機網絡。現在,“網際網路”已經是一個專有名詞了,其對應的英文單詞“TheInternet”也早已成為固有名詞(Internet指網際網,TheInternet指網際網路,首字母大寫)(與Internet對應的另一種網絡叫做Intranet。該網絡是指使用Internet技術将企業内部的組織機構連接配接起來形成一個企業範圍内的封閉網絡,提供面向企業内部的通信服務。)。

二、TCP/IP協定的分層模式

2.1 TCP/IP與OSI參考模型

2.2 硬體(實體層)

TCP/IP的最底層是負責資料傳輸的硬體。這種硬體就相當于以太網或電話線路等實體層的裝置。關于它的内容一直無法統一定義。因為隻要人們在實體層面上所使用的傳輸媒介不同(如使用網線或無線),網絡的帶寬、可靠性、安全性、延遲等都會有所不同,而在這些方面又沒有一個既定的名額。總之,TCP/IP是在網絡互連的裝置之間能夠通信的前提下才被提出的協定。

2.3 網卡層(網絡接口層、資料鍊路層)

說簡單點,就是硬體和軟體的結合的地方。

網絡接口層(有時人們也将網絡接口層與硬體層合并起來稱作網絡通信層。)利用以太網中的資料鍊路層進行通信,是以屬于接口層。也就是說,把它當做讓NIC起作用的“驅動程式”也無妨。驅動程式是在作業系統與硬體之間起橋梁作用的軟體。計算機的外圍附加裝置或擴充卡,不是直接插到電腦上或電腦的擴充槽上就能馬上使用的,還需要有相應驅動程式的支援。例如換了一個新的NIC網卡,不僅需要硬體,還需要軟體才能真正投入使用。是以,人們常常還需要在作業系統的基礎上安裝一些驅動軟體以便使用這些附加硬體(現在也有很多是即插即拔的裝置,那是因為計算機的作業系統中早已經内置安裝好了對應網卡的驅動程式,而并非不需驅動。)。

2.4 網際網路層(網絡層)

網際網路層使用IP協定,它相當于OSI模型中的第3層網絡層。IP協定基于IP位址轉發分包資料。

TCP/IP分層中的網際網路層與傳輸層的功能通常由作業系統提供。尤其是路由器,它必須得實作通過網際網路層轉發分組資料包的功能。此外,連接配接網際網路的所有主機跟路由器必須都實作IP的功能。其他連接配接網際網路的網絡裝置(如網橋、中繼器或集線器)就沒必要一定實作IP或TCP的功能(有時為了監控和管理網橋、中繼器、集線器等裝置,也需要讓它們具備IP、TCP的功能。)。

  • IP

    IP是跨越網絡傳送資料包,使整個網際網路都能收到資料的協定。IP協定使資料能夠發送到地球的另一端,這期間它使用IP位址作為主機的辨別(連接配接IP網絡的所有裝置必須有自己唯一的識别号以便識别具體的裝置。分組資料在IP位址的基礎上被發送到對端。)。IP還隐含着資料鍊路層的功能。通過IP,互相通信的主機之間不論經過怎樣的底層資料鍊路都能夠實作通信。雖然IP也是分組交換的一種協定,但是它不具有重發機制。即使分組資料包未能到達對端主機也不會重發。是以,屬于非可靠性傳輸協定。

  • ICMP

    IP資料包在發送途中一旦發生異常導緻無法到達對端目标位址時,需要給發送端發送一個發生異常的通知。ICMP就是為這一功能而制定的。它有時也被用來診斷網絡的健康狀況。

  • ARP

    從分組資料包的IP位址中解析出實體位址(MAC位址)的一種協定。

2.5 傳輸層

TCP/IP的傳輸層有兩個具有代表性的協定。該層的功能本身與OSI參考模型中的傳輸層類似。

  • TCP

    TCP是一種面向有連接配接的傳輸層協定。它可以保證兩端通信主機之間的通信可達。TCP能夠正确處理在傳輸過程中丢包、傳輸順序亂掉等異常情況。此外,TCP還能夠有效利用帶寬,緩解網絡擁堵。然而,為了建立與斷開連接配接,有時它需要至少7次的發包收包,導緻網絡流量的浪費。此外,為了提高網絡的使用率,TCP協定中定義了各種各樣複雜的規範,是以不利于視訊會議(音頻、視訊的資料量既定)等場合使用。

  • UDP

    UDP有别于TCP,它是一種面向無連接配接的傳輸層協定。UDP不會關注對端是否真的收到了傳送過去的資料,如果需要檢查對端是否收到分組資料包,或者對端是否連接配接到網絡,則需要在應用程式中實作。UDP常用于分組資料較少或多點傳播、廣播通信以及視訊通信等多媒體領域。

2.6 應用層(會話層以上的分層)

TCP/IP的分層中,将OSI參考模型中的會話層、表示層和應用層的功能都集中到了應用程式中實作。這些功能有時由一個單一的程式實作,有時也可能會由多個程式實作。是以,細看TCP/IP的應用程式功能會發現,它不僅實作OSI模型中應用層的内容,還要實作會話層與表示層的功能。

TCP/IP應用的架構絕大多數屬于用戶端/服務端模型。提供服務的程式叫服務端,接受服務的程式叫用戶端。在這種通信模式中,提供服務的程式會預先被部署到主機上,等待接收任何時刻客戶可能發送的請求。用戶端可以随時發送請求給服務端。有時服務端可能會有處理異常[1]、超出負載等情況,這時用戶端可以在等待片刻後重發一次請求。

  • www
  • WWW(中文叫網際網路,是一種網際網路上資料讀取的規範。有時也叫做Web、WWW或W3。)可以說是網際網路能夠如此普及的一個重要原動力。使用者在一種叫Web浏覽器(通常可以簡化稱作浏覽器。微軟公司的InternetExplore以及MozillaFoundation的Firefox等都屬于浏覽器。它們已被人們廣泛使用。)的軟體上借助滑鼠和鍵盤就可以輕輕松松地在網上自由地沖浪。也就是說輕按一下滑鼠架設在遠端伺服器上的各種資訊就會呈現到浏覽器上。浏覽器中既可以顯示文字、圖檔、動畫等資訊,還能播放聲音以及運作程式。浏覽器與服務端之間通信所用的協定是HTTP(HyperTextTransferProtocol)。所傳輸資料的主要格式是HTML(HyperTextMarkupLanguage)。WWW中的HTTP屬于OSI應用層的協定,而HTML屬于表示層的協定。
  • 電子郵件

    電子郵件其實就是指在網絡上發送信件。有了電子郵件,不管距離多遠的人,隻要連着網際網路就可以互相發送郵件。發送電子郵件時用到的協定叫做SMTP(SimpleMailTranferProtocol)。最初,人們隻能發送文本格式(隻由文字組成的資訊。日語最初隻能發送7bitJIS編碼的文字。)的電子郵件。然而現在,電子郵件的格式由MIME(在網際網路上廣泛使用的、用來定義郵件資料格式一種規範。在WWW與網絡論壇中也可以使用。關于這一點的更多細節請參考8.4.3節。)協定擴充以後,就可以發送聲音、圖像等各式各樣的資訊。甚至還可以修改郵件文字的大小、顔色(有時某些機能可能會因為郵件接收端軟體的限制不能充分展現。)。這裡提到的MIME屬于OSI參考模型的第6層——表示層。

  • 電子郵件與TCP/IP的發展

    有人可能會說“TCP/IP的發展離不開電子郵件!”這句話可能有兩方面的含義。一方面,電子郵件使用起來非常友善,便于讨論TCP/IP協定的進度和細節。而另一方面,為了正常使用電子郵件,需要具備完善的網絡環境并對某些協定進行。總之,電子郵件與TCP/IP的發展相輔相成。電子郵件協助改善協定,更加完善的協定又可以令電子郵件的形式多樣化。

  • 檔案傳輸(FTP)

    檔案傳輸是指将儲存在其他計算機硬碟上的檔案轉移到本地的硬碟上,或将本地硬碟的檔案傳送到其他機器硬碟上的意思。該過程使用的協定叫做FTP(FileTransferPrototol)。FTP很早就已經投入使用(最近在檔案傳輸中使用WWW的HTTP的情況也在增加。),傳輸過程中可以選擇用二進制方式還是文本方式(用文本方式在Windows、MacOS或Unix等系統之間進行檔案傳輸時,會自動修改換行符。這也屬于表示層的功能。)。在FTP中進行檔案傳輸時會建立兩個TCP連接配接,分别是發出傳輸請求時所要用到的控制連接配接與實際傳輸資料時所要用到的資料連接配接(這兩種連接配接的控制管理屬于會話層的功能。)。

  • 遠端登陸

    遠端登入是指登入到遠端的計算機上,使那台計算機上的程式得以運作的一種功能。TCP/IP網絡中遠端登入常用TELNET(TELetypewriterNETwork的縮寫。有時也稱作預設協定。)和SSH(SSH是SecureSHell的縮寫。)兩種協定。其實還有很多其他可以實作遠端登入的協定,如BSDUNIX系中rlogin的r指令協定以及XWindowSystem中的X協定。

  • 網絡管理

    在TCP/IP中進行網絡管理時,采用SNMP(SimpleNetworkManagementProtocol)協定。使用SNMP管理的主機、網橋、路由器等稱作SNMP代理(Agent),而進行管理的那一段叫做管理器(Manager)。SNMP正是這個Manager與Agent所要用到的協定。在SNMP的代理端,儲存着網絡接口的資訊、通信資料量、異常資料量以及裝置溫度等資訊。這些資訊可以通過MIB(ManagementInformationBase)(MIB也被稱為是一種可透過網絡的結構變量。)通路。是以,在TCP/IP的網絡管理中,SNMP屬于應用協定,MIB屬于表示層協定。一個網絡範圍越大,結構越複雜,就越需要對其進行有效的管理。而SNMP可以讓管理者及時檢查網絡擁堵情況,及早發現故障,也可以為以後擴大網絡收集必要的資訊。

本節引子:

村山公保;竹下隆史;苅田幸雄;荒井透.圖靈程式設計叢書:圖解TCP/IP(第5版)(KindleLocations1356-1362).人民郵電出版社.KindleEdition.

這本書講的非常好,我自己在學習的時候,覺得這個子產品講的非常好,就整理了一些出來,分享給大家。

繼續閱讀