1. 程式人生 > >TCP/IP詳解(一) -- 基本概念

TCP/IP詳解(一) -- 基本概念

一、什麼是TCP/IP

TCP/IP是一組協議的代名詞,包括許多別的協議,組成了TCP/IP協議簇。TCP/IP 採納了ARPANET參考模型,將協議分為4層。

二、 ARPANET參考模型
編號 名稱 描述/例子 .
7 應用層 實質上是Internet相容的任何應用,包括網頁(HTTP)、DNS、DHCP
4 傳輸層 提供在抽象的、由應用管理的“埠”之間的資料交換。可能包括差錯和流量控制。例子:TCP、UDP、SCTP、DCCP
3.5 網路層(輔助) 協助完成網路層設定、管理和安全 的非正式的“層”。例子:ICMP、IGMP、IPsec。 網路層
3 網路層 定義抽象的資料報和提供路由。例子:IP和IPv6。 網路層
2.5 鏈路層(輔助) 用於網路層到基於多接入鏈路層網路的鏈路層的地址對映的非正式的“層”。例子:ARP 。 驅動

上面的IGMP、ARP沒有被IPv6使用。
每層都會有一個識別符號,允許接收方決定哪些協議或資料流可以複用在一起。每層通常也有地址資訊,它用於保證一個PDU被交付到正確的地方。
分層體系結構的一個主要優點是具有協議複用的能力。這種複用形式允許多種協議共存於同一基礎設施中。也允許相同協議物件(例如連線)的多個例項同時存在。

三、分層到底是什麼意思,和資料傳輸有什麼關係

    很多人都知道聽說過網路分層(OSI分為7層,ARPANET分為4層),但大多不明白分層到底是什麼意思,有什麼用,他和資料傳輸有什麼關係。接下來,我們自下而上,分解從鏈路層開始資料傳輸的工作 。

    乙太網幀包含一個48位的目的地址(又稱位鏈路層或介質訪問控制(MAC)地址)和一個16位乙太網型別欄位。0x0800(十六進位制)表示這個幀包含IPv4資料報。Ox0806和0x86DD分別表示ARP和IPv6。假設目的地址與接收方的一個地址匹配,這個幀將被接收並校驗差錯,乙太網型別欄位用於選擇處理它的網路層協議。

    如果接收到的幀包含一個IP資料報,乙太網頭部和尾部資訊將被清除,並將剩餘位元組(包含幀的有效載荷)交由IP來處理。IP檢測一系列的欄位,包含資料報中的目的IP地址。如果目的地址與自己的一個IP地址匹配,並且資料報頭部(IP不檢測有效載荷)沒有錯誤,則檢測8位的IPv4協議欄位(在IPv6中成為下一個頭部欄位),以決定接下來呼叫哪個協議來處理。 常見的值包括1(ICMP)、2(IGMP)、4(IPv4)、6(TCP)、17(UDP)、41(IPv6)。

    如果網路層(IPv4或IPv6)認為傳入的資料報有效,並且已經確定正確的傳輸層協議,則將資料報(必要時由分片重組而成)交由傳輸層處理。在傳輸層中,大部分協議(包含TCP和UDP)通過埠號將資料報復用分解到適當的應用。

四、其他基本概念(持續更新)
  • ARP協議
    地址解析協議,它是IP4專用協議。只用於多接入鏈路層協議(例如乙太網、WIFI),完成Ip層使用的地址和鏈路層使用的地址之前的轉換。

  • ICMP協議
    Internet控制訊息協議,是IP的一個輔助協議。IP層使用它與其他主機或路由器的IP層之間交換差錯訊息和其他重要訊息。有ICMPv4和ICMPv6兩個版本。(ping和traceroute都使用ICMP)。ICMP訊息被封裝在IP資料報中,採用與傳輸層PDU相同的封裝方式。

  • IGMP協議
    Internet組管理協議,是IPv4的輔助協議。採用組播定址和交付來管理作為組播組成員的主機(一組接收方接收一個特定目的地址的組播流量)。

  • IP資料報
    IP傳送給鏈路層協議的PDU[2]稱為IP資料報,它的大小是64KB(IPv6將它擴大為4GB)

  • 分片
    大的分組(IP資料報)放入鏈路層PDU(資料幀)時,需要進行縮小處理,這個過程成為分片,它通常由IP主機和某些路由器在必要時執行。

  • 重組
    資料報分片後,到達目的地後重新組合,稱為重組

  • IP地址
    由於每個IP分組都是一個數據報,所以都包含傳送發和接收方的第3層(ARPANET模型的第三層,網路層)地址。這些地址成為IP地址,即32位的IPv4地址和128位的IPv6地址。

  • 轉發
    每個資料報的目的地址用於決定將該資料報傳送到哪裡,而做出決定和傳送資料報到下一跳的過程成為轉發。

  • 多接入網路: 當超過一個鄰居可以訪問共享網路時,這個網路成為多接入網路。wifi和乙太網是這種多接入鏈路層網路的例子,特定協議用於協調多個站在任何時間訪問共享介質。

  • PDU:協議資料單元,是對等層次之間傳遞的資料單位。協議資料單元(Protocol Data Unit )物理層的 PDU是資料位(bit),資料鏈路層的 PDU是資料幀(frame),網路層的PDU是資料包(packet),傳輸層的 PDU是資料段(segment),其他更高層次的PDU是報文(message)。

  • 封裝
    當某層的一個PDU的物件(分組、訊息等)被底層攜帶時,這個過程稱為在相鄰低層的封裝(作為不透明資料,不透明的意思是無需解釋的資料)

  • 複用
    複用允許多種協議共存於同一基礎設施中。也允許相同協議物件(例如連線)的多個例項同時存在。可以發生在不同層,並在每層都有不同型別的識別符號,用於確定資訊屬於哪個協議或資訊流。第N層的多個物件可以通過第N-1層的封裝而複用。

  • 組播地址
    標識一組主機介面,而不是單個介面。一個組所覆蓋的網路部分稱為組的範圍。常見範圍包括 節點本地(同一計算機)、鏈路本地(同一子網)、站點本地(使用於一些站點)、全球(整個Internet)和管理(用於一個網路區域內已手動配置到路由器的地址)。

  • 任播地址
    任播地址是一個單播IPv4或IPv6地址,這些地址根據它所在的網路確定不同的主機。這是通過配置路由器通知Internet中多個站點有相同單播路由實現。一個任播地址不是指Internet中的一臺主機,而是對於任播地址“最合適”或“最接近”的一臺主機。

  • 子網掩碼
    由路由器和主機使用,確定一個IP地址的網路/子網部分的結束和主機部分的開始。掩碼由一些1後跟一些0構成(二進位制形式)。例如,常見的子網掩碼:255.255.255.0 轉二進位制為11111111 11111111 11111111 00000000

[1]TCP/IP詳解·卷1:協議 機械工業出版社