目錄
一、簡介
二、相關概念
三、名詞解釋
3.1、IP
3.2、TCP
3.3、UDP
3.4、ICMP
3.5、通訊端口
3.6、資料格式
3.7、IPV4與IPV6
四、網絡參考模型
4.1、OSI參考模型
4.2、TCP/IP模型
4.3、OSI與TCP/IP模型比較
【擴充資料】
一、簡介
網際網路協定(Internet Protocol Suite)是一個網絡通信模型,以及一整個網絡傳輸協定家族,為網際網路通信基礎架構。常稱為TCP/IP協定族(TCP/IP Protocol Suite),簡稱TCP/IP。因為該協定家族中兩個核心協定:TCP(傳輸控制協定)和IP(網際協定),為該家族最早通過的标準。由于在網絡通信協定普遍采用分層結構,當多個層次的協定共同工作時,類似與堆棧,是以又被稱為TCP/IP協定棧(TCP/IP Protocol Stack)。這些協定最早發源于美國國防部的ARPA項目,也是以被稱為DoD模型。
TCP/IP提供點對點的連結機制,将資料應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以标準化。将軟體通信過程抽象為四個抽象層,采取協定堆棧方式,分别實作出不同通信協定。協定族下的各種協定,根據其功能不同,被分别歸屬到這四個層次,常視為簡化的七層OSI模型。
二、相關概念
在相同的網絡中,一台機器上的第N層與另一台機器上的第N層可以利用第N層協定進行通信,協定基本上是雙方關于如何進行通信所達成的一緻。
不同機器中包含的對應層的實體叫做對等程序。在對等程序利用協定進行通信時,實際上并不是直接将資料從一台機器的第N層傳送到另一台機器的第N層,而是每一層都把資料連同該層的控制資訊打包給它的下一層,它的下一層把這些内容看作資料,再加上該層控制資訊繼續交給更下一層。以此類推直至最下層。最下層是實體媒體,能進行實際的通信。相鄰層之間有接口,接口定義下層向上層提供的原語操作和服務。相鄰層之間交換資訊,對等接口必須要有一緻同意的規則。層和協定的集合被稱為網絡體系結構。
每一層中的活動元素通常稱為實體,實體既可以是軟體實體也可以是硬體實體。第N層實作的服務被N+1層所使用。這種情況下,第N層稱為服務提供者,第N+1層稱為服務使用者。服務是在服務接入點提供給上層使用的。服務可以分為面向連接配接的和面向無連接配接的服務。
三、名詞解釋
3.1、IP
IP層接收由更底層(網絡接口層例如以太網裝置驅動程式)發來的資料包,并把該資料包發送到更高層——TCP或UDP層。相反,IP層也把從TCP或UDP層接收來的資料包傳送到更底層。IP資料包是不可靠的,因為IP并沒有做任何事情來确認資料包是否按順序發送的或者有沒有被破壞,IP資料包中含有源位址和目的位址資訊。
高層的TCP和UDP服務在接收資料包時,通常假設包中源位址是有效的。也可以這樣說,IP位址形成了許多服務的認證基礎,這些服務相信資料包是從一個有效的主機發送來的。IP确認包含一個選項,叫做IP Source routing,可以用來指定一條源位址和目的位址之間的直接路徑。對于一些TCP和UDP的服務來說,使用了該選項的IP包好像是從路徑上的最後一個系統傳遞過來的,而不是來自于其真實地點。這個選項是為了測試而存在,說明了它可以被用來欺騙系統進行平常被禁止的連接配接。這樣許多依靠IP源位址做确認的服務将産生問題并且會被非法入侵。
3.2、TCP
TCP是面向連接配接的通信協定。通過三次握手建立連接配接,通訊完成時拆除連接配接,由于TCP是面向連接配接的是以隻能用于端到端的通訊。
TCP提供的是一種可靠的資料流服務,采用“帶重傳的肯定确認”機制實作傳輸可靠性。TCP還采用一種稱為“滑動視窗”的方式進行流量控制。所謂視窗表示接收能力,來限制發送方的發送速度。
如果IP資料包中有已經封裝好的TCP資料包,那麼IP将把他們向“上”傳送到TCP層。TCP将包進行排序并進行錯誤檢查,同時實作虛電路之間的連接配接。TCP資料包中包括序号和确認,是以未按照順序收到的包可以被排序,而損壞的包可以重傳。
TCP将它的資訊傳送到更高層的應用程式,例如Telnet的服務程式和客戶程式。應用程式輪流将資訊送回TCP層,TCP層便将它們向下傳送到IP層,裝置驅動程式和實體媒體,最後到接收方。
面向連接配接的服務(如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,是以它們使用了TCP。DNS在某些情況下使用TCP(發送和接收域名資料庫),但使用UDP傳送有關單個主機的資訊。
3.3、UDP
UDP是面向無連接配接的通信協定。UDP資料包括目的端口号和源端口号資訊,由于通訊不需要連接配接,是以可以實作廣播發送。UDP沒有使用虛電路連接配接。
UDP通訊時不需要接收方确認,屬于不可靠的傳輸,可能會出現丢包現象。
UDP與TCP位于同一層,但它不管資料包的順序,錯誤或重發。是以,UDP不被用于那些使用虛電路的面向連接配接的服,UDP主要面向那些面向查詢-應答的服務,如NFS。相對于FT和Telnet,這些服務需要交換的資訊量較少。使用UDP的服務包括NTP(網絡時間協定)和DNS(DNS也使用TCP)。
欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接配接(握手),也就是說,UDP相關服務面臨更大危險。
3.4、ICMP
ICMP和IP位于同一層,被用來傳送IP的控制資訊。主要是用來提供有關通向目的位址的路徑資訊。ICMP的Redirect資訊通知主機通向其它系統的更準确路徑,而Unreachable資訊則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接配接“體面地”終止。PING是最常用的基于ICMP的服務。
3.5、通訊端口
TCP和UDP服務通常有一個客戶/伺服器的關系。如一個Telnet服務程序開始在系統處于空閑狀态,等待連接配接。使用者使用Telnet客戶程式與服務程序建立一個連接配接。客戶程式向服務程序寫入資訊,服務程序讀出資訊并發出響應,客戶程式讀出響應并向使用者報告。因為這個連接配接是雙工的(可以發送也可以接收),可以用來進行讀寫。
兩個系統間的多重Telnet連接配接是如何互相确認并協調一緻的呢?TCP/UDP連接配接唯一的使用每個資訊中的如下四項進行确認:
1、源IP位址
2、目的IP位址
3、源端口
4、目的端口
端口是一個軟體結構,被客戶程式或服務程序用來發送和接收資訊。一個端口對應一個16比特數。服務程序通常使用一個固定的端口。
常用服務及端口号:
服務 | 端口号 | 解釋 | 協定 |
DHCP | 伺服器端:67 客戶機端:68 | 動态主機設定協定(Dynamic Host Configuration Protocol) 1、用于内部網或網絡服務供應商自動配置設定IP位址; 2、用于内部網管理者作為對所有計算機作中央管理的手段。 | UDP |
POP3 | 110 | 郵件接收協定 | TCP |
SMTP | 25 | 郵件發送協定,關心的是郵件能否順利到達目的地,而不是如何被傳送 | TCP |
Telnet | 23 | 遠端登入 | TCP |
FTP | 20和21 | 檔案傳輸協定。20端口用于資料傳輸,21端口用于控制信令的傳輸,控制資訊和資料能同時傳輸,這是其特殊之處。 | TCP |
TFTP | 69 | 簡單檔案傳輸協定(Trivial File Transfer Protocol) | UDP |
HTTP | 80 | 超文本傳輸服務 | TCP |
DNS | 53 | DNS域名解析服務 | UDP |
HTTPS | 443 | 加密的超文本傳輸服務 | TCP |
Oracle資料庫服務 | 1521 | Oracle資料庫服務 | TCP |
3.6、資料格式
資料幀 | 幀頭 + IP資料包 + 幀尾 | 幀頭包括源和目标主機MAC初步位址及類型,幀尾是校驗字 |
IP資料包 | IP頭部 + TCP資料資訊 | IP頭部包括源和目标IP位址、類型、生存期等 |
TCP資料資訊 | TCP頭部 + 實際資料 | TCP頭包括源和目的主機端口号、順序号、确認号、校驗字等 |
3.7、IPV4與IPV6
IP位址是一個32位的二進制位址,分為四組,每組8位,由小數點分開,用四個位元組表示,每個位元組數值範圍時0~255。如212.158.2.10,這種方式叫點數表示法(計算機網絡中稱點分十進制)。
(正規表達式比對IP位址:(([0-9]\.)|([1-9][0-9]\.)|(1[0-9][0-9]\.)|(2[0-4][0-9]\.)|(25[0-5]\.)){3} )
IPV4
目前用的IPV4是網際網路協定(IP)的第四版,傳統的TCP/IP協定基于IPV4屬于第二代網際網路,最大問題是網絡位址資源有限,理論上可編址1600萬個網絡、40億台主機。但采用A/B/C三類編址方式後,可用數目大打折扣。用動态IP及NAT位址轉換技術可實作一定緩沖。
IPV6
下一代IP協定,與IPV4比有如下優勢:
1、IP位址長度128位,有更大位址空間。
2、使用更小路由表。IPV6位址配置設定從一開始就遵循聚類原則,使得路由器能在路由表中用一條記錄表示一片子網。大大減小路由器中路由表長度,提高路由器轉發資料包速度。
3、增加了增強的多點傳播(Multicast)支援以及對流的控制。這使得網絡上多媒體應用有了長足發展機會,為服務品質控制提供了更好網絡平台。
4、加入了對自動配置的支援。這是對DHCP協定的改進和擴充,使得網絡(尤其是區域網路)的管理更加友善和快捷。
5、具有更高安全性,使用IPV6網絡的使用者可以對網絡層資料進行加密并對IP封包進行校驗,極大的增強了網絡的安全性。
四、網絡參考模型
4.1、OSI參考模型
劃分原則:
1、網絡中各節點有相同的層次。
2、不同節點的同等層具有相同功能。
3、同一節點内相鄰層之間通過接口通信。
4、每一層使用下一層提供的服務,并向其上層提供服務。
5、不同節點同等層按照協定實作對等層之間通信。
6、根據功能需要進行分層,每層應當實作定義明确的功能。
7、向應用程式提供服務。
分層好處:利用層次結構把開放系統的資訊交換問題分解到一系列容易控制的軟硬體子產品,而各層可以根據需要獨立進行修改或擴充功能,同時有利于不同制造廠家的裝置互聯,也有利于大家學習、了解資料通訊網絡。
各層功能:
1、實體層(Physical Layer):
利用傳輸媒體為資料鍊路層提供實體連接配接。關心的是通過實體鍊路從一個節點向另一個節點傳送比特流,實體鍊路的傳輸媒體可以是銅線、微網誌、衛星等。還關心的問題有:多少伏電壓表示0/1?時鐘速率是多少?采用全雙工還是半雙工傳輸?總的來說實體層關心的是鍊路的機械、電氣、功能和規程特性。
2、資料鍊路層(Data Link Layer):
資料鍊路層為網絡層服務,解決相鄰兩個節點之間通信問題,傳送的協定資料單元稱為資料幀。
資料幀中包含實體位址(MAC)、控制碼、資料及校驗碼等資訊。該層主要作用是通過校驗、确認和回報重發等手段,将不可靠的實體鍊路轉換成對網絡層來說無差錯的資料鍊路。
此外,資料鍊路層還要協調收發雙方的資料傳輸速率,即進行流量控制,以防止接收方因來不及處理發送方來的高速資料而導緻緩沖器溢出及線路阻塞。
3、網絡層(Network Layer):
網絡層是為傳輸層提供服務的,傳送的協定資料單元稱為資料包或分組。該層的主要作用是解決如何使資料包通過各節點傳送的問題,即通過路徑選擇算法(路由)将資料包傳送到目的地。另外,為避免通信子網中出現過多的資料包而造成網絡阻塞,需要對流入的資料包數量進行控制(擁塞控制)。當資料包要跨越多個通信子網才能到達目的地時,還要解決網際互連問題。
4、傳輸層(Transport Layer):
傳輸層的作用是為上層協定提供端到端的可靠和透明的資料傳輸服務,包括處理差錯控制和流量控制等問題。該層向高層屏蔽了下層資料通信的細節,使高層使用者看到的隻是在兩個傳輸實體間的一條主機到主機的、可由使用者控制和設定的、可靠的資料通路。
傳輸層傳送的協定資料單元是資料段或封包。
其功能包括:一、格式化資訊流;二、提供可靠傳輸。為實作後者,傳輸層協定規定接收端必須發回确認,并且假如分組丢失,必須重新發送,即耳熟能詳的“三次握手”過程,進而提供可靠的資料傳輸。
傳輸層協定主要是:傳輸控制協定TCP(Transmission Control Protocol)和使用者資料報協定UDP(User Datagram protocol)。
5、會話層(Session Layer):
會話層主要功能是管理和協調不同主機上各種程序之間的通信,即負責建立、管理和終止應用程式之間的會話。
6、表示層(Presentation Layer):
表示層處理流經節點的資料編碼表示方式問題。以保證一個系統應用層發出的資訊可以被另一個系統的應用層讀出。如果必要,該層可提供一種标準表示形式,用于将計算機内部多種資料表示格式轉換成網絡通信中采用的形式。資料壓縮和加密也是該層提供的轉換功能之一。
7、應用層(Application Layer):
應用層是使用者與網絡的接口。該層通過應用程式來完成網絡使用者的應用需求。如檔案傳輸、收發電子郵件。
資料封裝過程:
應用層、會話層、表示層協定資料單元統稱為資料data。
傳輸層協定資料單元為資料段segment。
網絡層稱為資料包packet。
資料鍊路層稱為資料幀frame。
實體層稱為比特流bits。
以使用者浏覽網站為例說明資料的封裝、解封裝過程:
當使用者輸入要浏覽的網站資訊後就由應用層産生相關的資料,通過表示層轉換成為計算機可識别的ASCII碼,再由會話層産生相應的主機程序傳給傳輸層。傳輸層将以上資訊作為資料并加上相應的端口号資訊以便目的主機辨識此封包,得知具體應由本機的哪個任務來處理;在網絡層加上IP位址使封包能确認應到達具體某個主機,再在資料鍊路層加上MAC位址,轉成bit流資訊,進而在網絡上傳輸。封包在網絡上被各主機接收,通過檢查封包的目的MAC位址判斷是否是自己需要處理的封包,如果發現MAC位址與自己不一緻,則丢棄該封包,一緻就去掉MAC資訊送給網絡層判斷其IP位址;然後根據封包的目的端口号确定是由本機的哪個程序來處理,這就是封包的解封裝過程。
有時候将上三層稱為高層,面向資訊處理。下四層為低層,是面向通信的。
OSI影響:
OSI是一個定義良好的協定規範集,并有許多可選部分完成類似任務。
它定義了開放系統的層次結構、層次之間的互相關系以及各層所包含的可能任務。是作為一個架構來協調群組織各層所提供的服務。
OSI參考模型并沒有提供一個可以實作的方法,而是描述了一些概念,用來協調程序間通信标準的指定。即OSI參考模型并不是一個标準,而是一個在制定标準時所使用的概念性架構。
4.2、TCP/IP模型
ARP是正向位址解析協定,通過已知的IP,尋找對應主機的MAC位址。
RARP是反向位址解析協定,通過MAC位址确定IP位址。比如無盤工作站還有DHCP服務。
ICMP是網絡層的補充,可以回送封包。用來檢測網絡是否通暢。Ping指令就是發送ICMP的echo包,通過回送的echo relay進行網絡測試。
FTP(File Transfer Protocol)是檔案傳輸協定,一般上傳下載下傳用FTP服務,資料端口是20H,控制端口是21H。
Telnet服務是使用者遠端登入服務,使用23H端口,使用明碼傳送,保密性差、簡單友善。
DNS(Domain Name Service)是域名解析服務,提供域名到IP位址之間的轉換,使用端口53。
SMTP(Simple Mail Transfer Protocol)是簡單郵件傳輸協定,用來控制信件的發送、中轉,使用端口25。
NFS(Network File System)是網絡檔案系統,用于網絡中不同主機間的檔案共享。
HTTP(Hypertext Transfer Protocol)是超文本傳輸協定,用于實作網際網路中的WWW服務,使用端口80。
4.3、OSI與TCP/IP模型比較
共同點:
1、OSI參考模型和TCP/IP參考模型都采用了層次結構概念。
2、都能提供面向連接配接和無連接配接兩種通信服務機制。
不同點:
1、OSI采用七層,TCP/IP采用四層結構。
2、TCP/IP參考模型的網絡接口層實際上并沒有真正定義,隻是一些概念性描述。而OSI參考模型不僅分了兩層,而且每層功能都很詳盡。甚至在資料鍊路層分出一個媒體通路子層,專門解決區域網路共享媒體問題。
3、OSI模型是在協定開發前設計的,具有通用性。TCP/IP是先有協定集然後建立模型,不适用于非TCP/IP網絡。
4、OSI參考模型的抽象能力高,适合描述各種網絡。而TCP/IP先是有了協定,才制定TCP/IP模型。
5、OSI參考模型概念劃厘清晰,但過于複雜。而TCP/IP參考模型在服務、接口和協定的差別上不清楚,功能描述和實作細節混在一起。
6、OSI參考模型雖然被看好,由于沒把握好時機,技術不成熟,實作困難。相反TCP/IP參考模型雖然有許多不盡人意地方,但比較成功。
【擴充資料】
1、TCP協定
2、IP協定