TCP/IP協議族

來源:互聯網
上載者:User

標籤:style   blog   http   tar   ext   color   

第一章      TCP/IP協議族1.1 TCP/IP協議族體繫結構以及主要協議

1.1.1資料連結層

         資料連結層實現了網卡介面的網路驅動程式,以處理資料在物理媒介上的傳輸。

         資料連結層兩個常用的協議是ARP(AddressResolve Protocol,位址解析通訊協定)和RARP(Reverse Address Resolve Protocol,逆位址解析通訊協定)。他們實現了IP地址和機器物理地址之間的相互轉換。

         網路層使用IP地址定址一台機器,而資料連結層使用物理地址定址一台機器,因此網路層必須先將目標機器的IP地址轉化成其物理地址,才能使用資料連結層提供的服務,這就是ARP的用途。RARP協議僅用於網路上某些無盤工作站。因為卻反存放裝置,無盤工作站無法機制自己的IP地址,但他們可以利用網卡上的物理地址來向網路管理者查詢自身的IP地址。運行RARP服務的網路管理者通常存有該網路上所以機器的物理地址到IP地址的映射。

1.1.2網路層

        網路層實現資料報的選路和轉寄。網路層的任務是選擇路由器等中間節點,以確定兩台主機之間的通訊路徑。同時,網路層對上層協議隱藏了網路拓撲串連的細節,使得在傳輸層和網路應用程式看來,通訊雙方是直接相連的。

        網路層最核心的協議是IP協議(網際網路協議)。IP協議根據資料包的目的IP地址來決定如何投遞它,IP協議使用逐跳(hop byhop)的方式確定路徑。

        網路層另外一個重要協議是ICMP(InternrtControl Message Protocol,網際網路控制報文協議),主要用來檢查網路連接。ICMP報文分為兩類:一類是差錯報文,用來回應網路錯誤,另一類是查詢報文,用來查詢網路資訊。ping程式就是使用ICMP報文查看目標報文是否可達。


         如所示,8位類型欄位用於區分報文類型,代碼欄位用於進一步細分不同條件。使用16為校正和對整個報文進行迴圈冗餘校正(Cyclic Redundancy Check,CRC)。

1.1.3傳輸層

        傳輸層為兩台主機的應用程式提供端到端的通訊。與網路層使用的逐跳通訊方式不同,傳輸層只關心通訊的開始端點和目的端。

        傳輸層負責資料的收發、鏈路的逾時重發等功能。

        傳輸層主要有三個協議:TCP協議、UDP協議和SCTP協議

        TCP協議(Transmission Control Protocol,傳輸控制通訊協定)為應用程式層提供可靠的、連線導向的和基於流的服務。

        UDP協議(User Datagram Protocol,使用者資料報文)為應用程式層提供不可靠、無串連和基於資料報的服務。

       SCTP協議(Stream Control Trasmission Protocol,流量控制協議)是為了在網際網路上傳輸電話訊號而設計的。

1.1.4應用程式層

        應用程式層負責應用程式的邏輯。上面三層協議系統負責處理網路通訊細節,這部分必須穩定又高效,因此在核心中實現。而應用程式層則在使用者空間實現。

        應用程式層協議很多,舉例如下:

        ping是應用程式層序,而不是協議:利用ICMP報文檢測網路連接

        telnet協議是一種遠程登入協議

        OSPF(OpenShortest Path First先開啟最短的路徑)協議提供一種動態路由更新協議,用於路由器之間的通訊,以告知對方各自的路由資訊。

       DNS(Domain NameService 網域名稱服務 (DNS))協議提供機器網域名稱到IP地址的轉換。

       應用程式層協議可能跳過傳輸層直接使用網路層提供的服務,如ping和OSPF協議。通常既可以使用TCP服務,又可以使用UDP服務,比如DNS協議。

       我們可以通過/etc/services檔案查看所有知名的應用程式層協議。

1.2封裝

        上層協議通過分裝使用下層提供的服務。應用程式資料在發送到物理網路之前,將沿著協議棧從上往下依次傳遞。每層協議都將在上層資料的基礎上加上自己的頭部資訊(有時包括尾部),以實現該層的功能,這個過程就是封裝。


        經過TCP封裝後的資料成為TCP報文段,經過UDP封裝後的資料成為UDP資料報,它們UDP無須為應用程式層儲存副本,因為它提供的服務不可靠。當一個UDP資料報被成功發送之後,UDP核心緩衝區中的該資料就被丟棄,如果應用程式層序檢測到該資料報未能被接收端正接收,並打算重發這個資料報,則應用程式層序需要重新從使用者空間將該資料報拷貝到UDP核心發送緩衝區。而發送TCP報文,會在TCO緩衝區中儲存副本。

經過IP封裝後的資料成為IP資料報,也包括頭部資訊和資料部分。其中資料部分就是TCP報文段、UDP資料報或者ICMP報文。

         經過資料鏈路封裝後的資料成為幀。


        幀的傳輸單元最大值(MaxTransimit Unit, MTU),即幀最多能攜帶多少上層資料,通常受網路限制,乙太網路的MTU是1500位元組。幀才是最終在物理網路上傳送的位元組序列。

利用ifconfig命令可以查看MTU值,還可以顯示或配置網路裝置(網路介面卡)。

1.3分用

        當幀達到目的主機時,將沿著協議棧向上一次傳遞。各層協議一次處理幀中本層負責的頭部資料,以擷取所需資訊,並將最終處理後的幀交給目標應用程式,這個過程叫做分用。分用是依靠頭部資訊中的類型欄位實現的。

        幀提供的頭部資訊中的類型欄位用於區分IP,ARP,RARP。其中IP欄位值為0x800,ARP為0x806,RARP為0x835。

        同樣IP資料報的頭部採用16為協議欄位區分ICMO,TCP,UDP。

        TCP和UDP則通過頭部中的16為連接埠號碼區分上次應用程式,比如DNS連接埠號碼為53,HTTP為80。所以知名應用程式層協議使用的連接埠號碼都可以在/etc/services中找到。



轉載請註明出處,謝謝~~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.