tcp/ ip協議簇是為了讓不同廠家生產的各種型號並執行完全不同作業系統的計算機相互進行通訊。
詳情請見:osi七層網路模型與tcp/ip四層模型介紹
假設在乙個區域網(lan)如乙太網中有兩台主機,二者都執行ftp協議,圖1-2列出了該過程所涉及到的所有協議。
描述:
大多數的網路應用程式都被設計成客戶_伺服器模式,伺服器為客戶提供某種服務;
在同一層上,雙方都有對應的乙個或多個協議進行通訊;
應用程式通常是乙個使用者程序,而下三層則一般在(作業系統)核心中執行;
應用層關心的是應用程式的細節,而不是資料在網路中的傳輸活動,下三層對應用程式一無所知,但它們要處理所有的通訊細節;
網路介面層處理有關通訊媒介的細節(乙太網、令牌環網等),應用層處理某個特定的使用者應用程式(ftp、telnet等);
從表面上看,網路層和運輸層之間的區別不那麼明顯,但為什麼要把它們劃分成兩個不同的層次呢?
為了理解這一點,我們可以把視野從單個網路擴充套件到一組網路即孤島(單個計算機)->島嶼(單個網路)->網際網路(多個網路);
構造互連網有多種方式:可以使用路由器(最簡單),也可以使用網橋;
路由器是一種特殊的用於網路互連的多介面硬體盒,目的是為不同型別的物理網路提供連線:乙太網、令牌環網、點對點的鏈結和fddi(光纖分布式資料介面)等;
網橋是在鏈路層上對網路進行互連,而路由器則是在網路層上對網路進行互連。網橋使得多個區域網(lan)組合在一起,這樣對上層來說就好像是乙個區域網。
在圖1-3中,我們可以劃分出端系統(end system/兩邊的兩台主機)和中間系統(intermediate system/中間的路由器)。應用層和運輸層使用端到端(end-to-end)協議。在圖中,只有端系統需要這兩層協議。但是,網路層提供的卻是逐跳(hop-by-hop)協議,兩個端系統和每個中間系統都要使用它。
在tcp/ip協議族中,網路層ip提供的是一種不可靠的服務,即它只是盡可能快地把分組從源結點送到目的結點,但是並不提供任何可靠性保證。而另一方面,tcp在不可靠的ip層上提供了乙個可靠的運輸層。為了提供這種可靠的服務,tcp採用了超時重傳、傳送和接收端到端的確認分組等機制。由此可見,運輸層和網路層分別負責不同的功能。
描述:
tcp和udp是運輸層協議,二者都使用ip作為網路層協議。雖然tcp使用不可靠的ip服務,但它卻提供一種可靠的運輸層服務。udp為應用程式傳送和接收資料報。乙個資料報是指從傳送方傳輸到接收方的乙個資訊單元。udp是不可靠的,它不能保證資料報能安全無誤地到達最終目的。
ip是網路層上的主要協議,同時被tcp和udp使用。tcp和udp的每組資料都通過端系統和每個中間路由器中的ip層在網際網路中進行傳輸。
icmp是ip協議的附屬協議,ip層用它來與其他主機或路由器交換錯誤報文和其他重要資訊。igmp是internet組管理協議,它用來把乙個udp資料報多播到多個主機。
arp(位址解析協議)和rarp(逆位址解析協議)是某些網路介面(如乙太網和令牌環網)使用的特殊協議,用來轉換ip層和網路介面層使用的位址。
網際網路上的每個介面必須有乙個唯一的internet位址(也稱作ip位址)。ip位址長32bit,internet位址並不採用平面形式的位址空間,如 1、2、3等。ip位址具有一定的結構,五類不同的網際網路位址格式如圖1-5所示,ip位址範圍如圖1-6所示。
描述:
多介面主機具有多個ip位址,其中每個介面都對應乙個ip位址。
由於網際網路上的每個介面必須有乙個唯一的 ip位址,因此必須要有乙個管理機構為接入網際網路的網路分配i p位址。這個管理機構就是網際網路絡資訊中心(internet network information centre),稱作internic。internic只分配網路號。主機號的分配由系統管理員來負責。
在 tcp/ip領域中,網域名稱系統(dns)是乙個分布的資料庫,由它來提供ip位址和主機名之間的對映資訊。
當應用程式用tcp傳送資料時,資料被送入協議棧中,然後逐個通過每一層直到被當作一串位元流送入網路。其中每一層對收到的資料都要增加一些首部資訊(有時還要增加尾部資訊),該過程如圖 1-7所示。
描述:
tcp傳給ip的資料單元稱作tcp報文段或簡稱為tcp段(tcp segment)。ip傳給網路介面層的資料單元稱作ip資料報(ip datagram)。通過乙太網傳輸的位元流稱作幀(frame)。
乙太網資料幀的物理特性是其長度必須在 4 6~1500位元組之間。
udp資料與tcp資料基本一致。唯一的不同是udp傳給ip的資訊單元稱作udp資料報(udp datagram),而且udp的首部長為8位元組。
由於tcp、udp、icmp和igmp都要向ip傳送資料,因此ip必須在生成的ip首部中加入某種標識,以表明資料屬於哪一層。為此, ip在首部中存入乙個長度為8bit的數值,稱作協議域。 1表示為icmp協議,2表示為igmp協議,6表示為tcp協議,17表示為udp協議。
tcp和
udp都用乙個
16bit
的埠號來表示不同的應用程式。 tcp和
udp把源埠號和目的埠號分別存入報文首部中。
網路介面分別要傳送和接收ip、
arp和
rarp資料,因此也必須在乙太網的幀首部中加入某種形式的標識,以指明生成資料的網路層協議。為此,乙太網的幀首部也有乙個16bit的幀型別域。
當目的主機收到乙個乙太網資料幀時,資料就開始從協議棧中由底向上公升,同時去掉各層協議加上的報文首部。每層協議盒都要去檢查報文首部中的協議標識,以確定接收資料的上層協議。這個過程稱作分用(demultiplexing),如圖1-8所示:
大部分網路應用程式在編寫時都假設一端是客戶,另一端是伺服器,其目的是為了讓伺服器為客戶提供一些特定的服務。共分為兩種型別:重複型或並髮型。
描述:重複型伺服器主要的問題發生在
i2狀態,在這個時候,它不能為其他客戶機提供服務。
描述:
在i2階段,會啟動新伺服器處理請求,可能會生成乙個新的程序、任務或者執行緒,並依賴底層作業系統的支援,處理完客戶端的請求後伺服器會終止;
併發伺服器的優點在於它是利用生成其他伺服器的方法來處理客戶的請求。每個客戶都有它自己對應的伺服器。如果作業系統允許多工,那麼就可以同時為多個客戶服務。
說明:伺服器一般都是通過知名埠號來識別的。任何tcp/ip實現所提供的服務都用知名的1~255之間的埠號,256~1023為保留埠號。
說明:
讀書筆記 《TCP IP協議詳解 卷1 協議》
tcp ip協議詳解 卷1 協議 第6章 icmp internet控制報文協議 1 icmp採用udp,在ip資料報內部所傳輸 2 有幾種情況下不會導致產生icmp差錯報文 icmp 差錯報文 廣播或多播 ip資料報,非 ip分片的第一片 3 icmp差錯報文必須包括生產該差錯報文的的資料報ip首...
《TCP IP詳解,卷一 協議》讀書筆記
ftp協議流程圖。應用層和傳輸層是端到端協議,只有端系統會使用者兩層協議,傳輸層的tcp可以保證可靠性。網路層是逐跳協議,所有中間系統和端系統都會使用這一層。網路層不保證可靠性。網橋在鏈路層使主機互聯 路由器在網路層使主機互聯。igmp是internet組管理協議,用來把乙個udp資料報多播到多個主...
《TCP IP詳解卷1 協議》讀書筆記之鏈路層
首先看下圖來了解各個協議層對資料的封裝,當應用程式用tcp傳送資料時,資料被送入協議棧中,然後逐個通過每一層直到被當作一串位元流送入網路,其中每一層對收到的資料都要增加一些首部資訊,該過程如下圖所示 從圖中可以看出,應用程式使用tcp或udp來傳送資料,運輸層協議在生成報文首部時要存入乙個應用程式的...