TCP/IP系列文章(1):概述

分層

OSI模型
網絡設備
TCP/IP協議
以太幀自底向上分解
  圖1.6展示了鏈路層自底向上如何進行分解,這裏使用以太網作爲例子:以太網幀包含一個48位的目的地址(又稱MAC地址)和一個16位的以太網類型字段。0x0800表示這個幀包含IPv4數據報、0x0806表示ARP、0x86DD表示IPv6。假設目的地址與接收方的一個地址匹配,這個幀將被接收並校驗差錯,以太網類型字段用於選擇處理它的網絡層協議。
  如果接收到的幀包含一個IP數據報,以太網頭部和尾部信息將被清除,並將剩餘字節(包含幀的有效載荷)交給IP來處理。IP檢測一系列的字段,包括數據報中的目的IP地址。如果目的地址與自己的一個IP地址匹配,並且數據報頭部(IP不檢測有效載荷)沒有錯誤,則檢測8位的IPv4協議字段(在IPv6中稱爲下一個頭部字段),以決定接下來調用哪些協議來處理。常見的值包括1(ICMP)、2(IGMP)、4(IPv4)、6(TCP)和17(UDP)。
  如果網絡層(IPv4或IPv6)認爲傳入的數據報有效,並且已確定正確的傳輸層協議,則將數據報(必要時由分片重組組成)交給傳輸層處理。在傳輸層中,大部分協議(包括TCP和UDP)通過端口號將複用分解到適當的應用。

端口

  端口號是16位的非負整數(範圍是0~65535)。每個IP地址有65536個可用的端口號,每個傳輸協議可使用這些端口號,它們被用於確定正確的接收數據的具體服務。對於客戶機/服務器應用,一臺服務器首先“綁定”到一個端口號,然後一個或多個客戶機可使用某種特定的傳輸協議與一臺服務器上的端口號建立連接。
  標準的端口號由Internet號碼分配機構(IANA)分配,這組數字被劃分爲特定範圍,包括熟知端口號(0-1023),註冊端口號(1024-49151)和動態/私有端口號(49152-65535)。熟知端口號用於識別很多衆所周知的服務,例如ssh(22),FTP(20和21),DNS(53),HTTP(80),HTTPS(443)。註冊端口號提供給有特殊權限的客戶機或服務器,但IANA會維護一個爲特定用途而保留的註冊表,開發新應用時通常應避免使用這些端口號,除非你已購買某些IANA分配的端口號。動態/私有端口號基本不受監管,它們只被短期使用,因爲客戶機只需支持一個應用的客戶程序,並不需要被服務器發現以建立一個連接,相反,服務器通常需要不變的名稱和端口號,以便被客戶機發現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章