1. 網絡分層
- TCP/IP模型層次
OSI參考模型與TCP/IP模型層次關系
鏈路層:處理各種傳輸媒介的物理接口細節;
網絡層:處理分組在網絡中的活動,提供逐跳(Hop by hop)的通信;
運輸層:為兩台主機上應用程序提供端對端(End to end)的通信;
應用層:處理特定應用程序細節。
端系統(End system,如主機)間通信,需要應用層和運輸層的端到端協議;
而端系統與中間系統(Intermediate system,如路由器)間的通信的,則需要網絡層的逐跳協議。
網絡層IP只是盡可能快地將分組從源節點送到目的節點,是不可靠的服務;
TCP采用超時重傳、發送和接收端到端確認分組等機制,在IP服務的基礎上實現可靠的服務。
TCP/IP協議族間不同層次協議的通信
- 連接網絡的方法
路由器具有兩個以上的網絡接口層,稱之為多接口(Multihomed),是在網絡層對網絡進行互連,功能為單純把分組從一個接口傳遞到另外一個接口;
網橋是鏈路層上對網絡進行互連;
TCP/IP更傾向於使用路由器而非網橋連接網絡。
2. 數據的封裝與分用
- 數據的封裝
應用程序往TCP傳輸數據時,數據被送入協議棧,然后逐層通過,每層在收到的數據上添加該層的首部信息。
TCP層 --> IP層:TCP報文段、TCP段(TCP segment);
IP層 --> 鏈路層:IP數據報(IP datagram)。關於IP層到鏈路層間數據傳輸的單元,更准確的說法應該是分組(packet)。分組既可以是IP數據報,也可以是IP數據報的一個片(fragment)。
以太網數據幀(即IP數據報部分)的物理特征是長度必須介於46 ~ 1500字節間。
數據進入協議棧的封裝過程
運輸層協議在生成報文首部時需要傳入一個應用程序的標示符,TCP和UDP都使用一個16bit的端口號來標識不同的應用程序。TCP和UDP的首部都包含源端口號和目標端口號;
IP首部中有一個長度為8bit的協議域,用於標識數據所屬協議,1表示為ICMP協議,2表示為IGMP協議,6表示為TCP協議,17表示為UDP協議;
以太網幀首部中含有16bit的幀類型域,其中以某種形式標識生成數據的網絡協議。
- 以太網幀的分用
每層協議盒都要去檢查報文首部中的協議標識,以確定接收數據的上層協議,該過程叫分用(Demultiplexing)。
以太網數據幀分用的過程
3. 雜項
- 互聯網地址
網絡地址由網絡號與主機號組成;
五類地址分類:
類別 |
IP地址組成 |
范圍 |
||||||
A類 |
|
0.0.0.0 ~ 127.255.255.255 |
||||||
B類 |
|
128.0.0.0 ~ 191.255.255.255 |
||||||
C類 |
|
192.0.0.0 ~ 223.255.255.255 |
||||||
D類 |
|
224.0.0.0 ~ 239.255.255.255 |
||||||
E類 |
|
240.0.0.0 ~ 255.255.255.255 |
三類IP地址:
單播地址(目的端為單個主機);
廣播地址(目的端為給定網絡上的所有主機);
多播地址(目的端為同一組內所有主機)。
- 域名系統
域名系統是一個分布的數據庫,提供IP地址和主機名間的映射信息。
- 客戶--服務器模型
服務器為客戶提供一些特定的服務;
服務分為:
重復型,客戶獨占服務器,在處理客戶請求時服務器不能為其他客戶機提供服務;
並行型,服務器啟動新的服務來處理客戶請求,完成后該服務將被終止。可以並發處理客戶機的請求。
- 端口號
TCP和UDP采用16bit的端口號來識別應用程序;
任何TCP/IP實現所提供的服務都用知名端口(1~1023),這些知名端口由IANA管理;
Unix系統有保留端口。
客戶端端口
客戶端不關心其使用的端口號,僅需保證端口號在機器上唯一即可;
又稱為臨時端口,僅在用戶運行客戶端程序時存在;而服務器只要開機其服務就運行;
大多數TCP/IP實現給臨時端口分配1024~5000之間的端口;大於5000的端口是為其他服務預留。
- 標准化
標准化過程;
RFC;
標准的簡單服務;
互聯網;
TCP/IP軟件實現;
TCP/IP應用編程接口:socket和TLI(Transport Layer Interface)