《TCP/IP詳解卷1:協議》第1章 概述-讀書筆記

QingLiXueShi發表於2015-04-14

章節回顧:

《TCP/IP詳解卷1:協議》第1章 概述-讀書筆記

《TCP/IP詳解卷1:協議》第2章 鏈路層-讀書筆記

《TCP/IP詳解卷1:協議》第3章 IP:網際協議(1)-讀書筆記

《TCP/IP詳解卷1:協議》第3章 IP:網際協議(2)-讀書筆記

《TCP/IP詳解卷1:協議》第4章 ARP:地址解析協議-讀書筆記

《TCP/IP詳解卷1:協議》第5章 RARP:逆地址解析協議-讀書筆記

《TCP/IP詳解卷1:協議》第6章 ICMP:Internet控制報文協議-讀書筆記

《TCP/IP詳解卷1:協議》第11章 UDP:使用者資料包協議-讀書筆記

《TCP/IP詳解卷1:協議》第17、18章 TCP:傳輸控制協議(1)-讀書筆記

《TCP/IP詳解卷1:協議》第17、18章 TCP:傳輸控制協議(2)-讀書筆記

《TCP/IP詳解卷1:協議》第19章 TCP的互動資料流-讀書筆記

 

1、引言

很多不同的廠家生產各種型號的計算機,它們執行完全不同的作業系統,但TCP/IP協議族允許它們互相進行通訊。TCP/IP起源於60年代末美國政府資助的一個分組交換網路研究專案,到90年代已發展成為計算機之間最常應用的組網形式。

 

2、分層

網路協議通常分不同層次進行開發,每一層分別負責不同的通訊功能。一個協議族,如TCP/IP是一組不同層次上的多個協議的組合。TCP/IP通常被認為是一個四層協議系統。

每一層負責不同的功能:

(1)鏈路層

也稱作資料鏈路層或網路介面層。通常包括作業系統中的裝置驅動程式和計算機中對應的網路介面卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理介面細節。

(2)網路層

也稱作網際網路層,處理分組在網路中的活動,例如分組的選路。在TCP/IP協議族中,網路層協議包括IP協議(網際協議),ICMP協議(Internet網際網路控制報文協議),以及IGMP協議(Internet組管理協議)。

(3)運輸層

為兩臺主機上的應用程式提供端到端的通訊。在TCP/IP協議族中,有兩個互不相同的傳輸協議:TCP(傳輸控制協議)和UDP(使用者資料包協議)。

TCP為兩臺主機提供高可靠性的資料通訊。它所做的工作包括把應用程式交給它的資料分成合適的小塊交給下面的網路層,確認接收到的分組,設定傳送最後確認分組的超時時鐘等。UDP為應用層提供一種非常簡單的服務。它只是把稱作資料包的分組從一臺主機傳送到另一臺主機,但並不保證該資料包能到達另一端。

(4)應用層

處理特定的應用程式細節。例如:Telnet遠端登入、FTP檔案傳輸協議、SMTP簡單郵件傳送協議,SNMP簡單網路管理協議等。

 

假設在一個區域網(LAN)如乙太網中有兩臺主機,二者都執行FTP協議,圖1-2列出了該過程所涉及到的所有協議。

說明:

(1)大多數網路應用程式都被設計成客戶-伺服器模式,伺服器為客戶提供某種服務。

(2)在同一層上,雙方都有對應的一個或多個協議進行通訊。

(3)應用程式通常是一個使用者程式,而下三層則一般在(作業系統)核心中執行。

(4)應用層關心的是應用程式的細節,而不是資料在網路中的傳輸活動。下三層對應用程式一無所知,但它們要處理所有的通訊細節。

 

在圖1-3中,可以劃分出端系統(兩邊的兩臺主機)和中間系統(中間的路由器)。應用層和運輸層使用端到端協議。網路層提供的是逐跳協議,點到點的服務。兩個端系統和每個中間系統都要使用它。

連線網路的另一個途徑是使用網橋。網橋是在鏈路層上對網路進行互連,而路由器則是在網路層上對網路進行互連。網橋使得多個區域網組合在一起,這樣對上層來說就好像是一個區域網。

 

3、TCP/IP的分層

說明:

(1)TCP和UDP是運輸層協議,二者都使用IP作為網路層協議。雖然TCP使用不可靠的IP服務,但它卻提供一種可靠的運輸層服務。UDP為應用程式傳送和接收資料包。一個資料包是指從傳送方傳輸到接收方的一個資訊單元。UDP是不可靠的,它不能保證資料包能安全無誤地到達最終目的。

(2)IP是網路層上的主要協議,同時被TCP和UDP使用。TCP和UDP的每組資料都通過端系統和每個中間路由器中的IP層在網際網路中進行傳輸。

(3)ICMP是IP協議的附屬協議,IP層用它來與其他主機或路由器交換錯誤報文和其他重要資訊。IGMP是Internet組管理協議,它用來把一個UDP資料包多播到多個主機。

(4)ARP(地址解析協議)和RARP(逆地址解析協議)是某些網路介面(如乙太網和令牌環網)使用的特殊協議,用來轉換IP層和網路介面層使用的地址。

 

4、網際網路的地址

網際網路上的每個介面必須有一個唯一的Internet地址(也稱作IP地址)。IP地址長32bit。IP地址具有一定的結構,五類不同的網際網路地址格式如圖1-5所示。

說明:

(1)多介面主機具有多個IP地址,其中每個介面都對應一個IP地址。

(2)有三類IP地址:單播地址(目的端為單個主機)、廣播地址(目的端為給定網路上的所有主機)以及多播地址(目的端為同一組內的所有主機)。

 

5、域名系統

在TCP/IP領域中,域名系統(DNS)是一個分佈的資料庫,由它來提供IP地址和主機名之間的對映資訊。

 

6、封裝

當應用程式用TCP傳送資料時,資料被送入協議棧中,然後逐個通過每一層直到被當作一串位元流送入網路。其中每一層對收到的資料都要增加一些首部資訊(有時還要增加尾部資訊)。如圖1-7所示。

說明:

(1)TCP傳給IP的資料單元稱作TCP報文段或簡稱為TCP段。IP傳給網路介面層的資料單元稱作IP資料包。通過乙太網傳輸的位元流稱作幀。

(2)乙太網資料幀的物理特性是其長度必須在46~1500位元組之間。

(3)UDP資料與TCP資料基本一致。唯一的不同是UDP傳給IP的資訊單元稱作UDP資料包,而且UDP的首部長為8位元組。

 

7、分用

當目的主機收到一個乙太網資料幀時,資料就開始從協議棧中由底向上升,同時去掉各層協議加上的報文首部。每層協議盒都要去檢查報文首部中的協議標識,以確定接收資料的上層協議。這個過程稱作分用。

 

8、客戶-伺服器模型

大部分網路應用程式在編寫時都假設一端是客戶,另一端是伺服器,其目的是為了讓伺服器為客戶提供一些特定的服務。服務分為兩種型別:重複型和併發型。

(1)重複型伺服器

1)等待一個客戶請求的到來。
2)處理客戶請求。
3)傳送響應給傳送請求的客戶。
4)返回1)步。

重複型伺服器主要的問題發生在2)狀態。在這個時候,它不能為其他客戶機提供服務

 

(2)併發型伺服器

1)等待一個客戶請求的到來。
2)啟動一個新的伺服器來處理這個客戶的請求。在這期間可能生成一個新的程式、任務或執行緒,並依賴底層作業系統的支援。這個步驟如何進行取決於作業系統。生成的新伺服器對客戶的全部請求進行處理。處理結束後,終止這個新伺服器。

3)返回1)步。

併發伺服器的優點在於它是利用生成其他伺服器的方法來處理客戶的請求。每個客戶都有它自己對應的伺服器。如果作業系統允許多工,那麼就可以同時為多個客戶服務。

說明:

(1)對伺服器,而不是對客戶進行分類的原因是因為對於一個客戶來說,它通常並不能夠辨別自己是與一個重複型伺服器或併發型伺服器進行對話。

(2)一般來說,TCP伺服器是併發的,而UDP伺服器是重複的,但也存在一些例外。

 

9、埠號

TCP和UDP採用16bit的埠號來識別應用程式。伺服器一般都是通過知名埠號來識別的。任何TCP/IP實現所提供的服務都用知名的1~1023之間的埠號。

說明:

(1)客戶端通常對它所使用的埠號並不關心,只需保證該埠號在本機上是唯一的就可以了。客戶埠號又稱作臨時埠號(即存在時間很短暫)。這是因為它通常只是在使用者執行該客戶程式時才存在,而伺服器則只要主機開著的,其服務就執行。

(2)Unix系統有保留埠號的概念。只有具有超級使用者特權的程式才允許給它自己分配一個保留埠號。這些埠號介於1~1023之間。

(3)大多數Unix系統的檔案 /etc/services都包含了人們熟知的埠號。如果你想找到某個應用的埠號,可以執行以下命令(以Telnet為例):

 

10、標準的簡單服務

 

11、其他說明

(1)所有關於Internet的正式標準都以RFC(Request for Comment)文件出版。大量的RFC並不是正式的標準,出版的目的只是為了提供資訊。

(2)internet這個詞第一個字母是否大寫決定了它具有不同的含義。internet意思是用一個共同的協議族把多個網路連線在一起。而Internet指的是世界範圍內通過TCP/IP互相通訊的所有主機集合。Internet是一個internet,但internet不等於Internet。

相關文章