1. 程式人生 > >TCP-IP詳解卷1:協議 學習筆記(1)

TCP-IP詳解卷1:協議 學習筆記(1)

參考自:TCP-IP詳解卷1

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

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

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

應用層負責處理特定的應用程式熙街。幾乎各種不同的TCP/IP實現都會提供下面這些通用的應用程式:Telnet遠端登入,FTP檔案傳輸協議,SMTP簡單郵件傳送協議,SNMP簡單網路管理協議。

ICMP是IP協議的附屬協議,IP層用它來與其他主機或路由器交換錯誤報文和其他重要資訊。儘管ICMP主要被IP使用,但應用程式也有可能訪問它。Ping和Traceroute都使用了ICMP。

IGMP是Internet組管理協議,用來把一個UDP資料報多播到多個主機。

網際網路的地址:

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

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

由於TCP、UDP、ICMP和IGMP都要向IP傳送資料,因此IP必須在生成的IP首部中加入某種表示,以表明資料屬於哪一層。為此,IP在首部中存入一個長度為8bit的數值,稱作協議域。1表示為ICMP協議,2表示為IGMP協議,6表示為TCP協議,17表示為UDP協議。

類似的,許多應用程式都可以使用TCP或UDP來傳送資料。運輸層協議在生成報文首部時需要存入一個應用程式的識別符號。TCP和UDP都用一個16bit的埠號來表示不同的應用程式。TCP和UDP把源埠號和目的埠號分別存入報文首部中。

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

伺服器一般都是通過知名埠號來識別的。任何TCP/IP實現所提供的服務都用知名的1-1023之間的埠號。這些知名埠號由Internet號分配機構(Internet Assigned Numbers Authority, IANA)來管理。

大多數TCP/IP實現給臨時埠號分配1024-5000之間的埠號,大於5000的埠號是為其他伺服器預留的(Internet上並不常用的服務)。

使用TCP/IP協議的應用程式通常採用兩種應用程式設計介面:socket和TLI(運輸層介面:Transport Layer Interface)。