• QQ咨詢:4001806960
  • 咨詢熱線:400-180-6960

理解TCP/IP協議(一)

作者:珠峰架構課學員日期:2018-04-15 19:15:19 點擊:608

一、協議

在計算機網絡與信息通訊領域裏,人們經常提及 “協議” 一詞。互聯網中常用的協議有HTTP、TCP、IP等。

協議的必要性

簡單來說,協議就是計算機與計算機之間通過網絡通信時,事先達成的一種 “約定”。這種“約定”使不同廠商的設備、不同的CPU以及不同操作系統組成的計算機之間,只要遵循相同的協議就能夠實現通信。這就好比一個中國人說漢語一個外國人說英語使用不同的國家語言進行溝通,怎麽也無法理解。如果兩個人約定好 都說中文或英文,就可以互相溝通通信。協議分爲很多種,每一種協議都明確界定了它的行爲規範。兩台計算機必須能夠支持相同的協議,並遵循相同協議進行處理,這樣才能實現相互通信。

二、協議分層

TCP/IP協議

TCP/IP 是用于因特網 (Internet) 的通信協議。 TCP/IP 通信協議是對計算機必須遵守的規則的描述,只有遵守這些規則,計算機之間才能進行通信。

TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)協議屬于傳輸層協議。其中TCP提供IP環境下的數據可靠傳輸,它提供的服務包括數據流傳送、可靠性、有效流控、全雙工操作和多路複 用。通過面向連接、端到端和可靠的數據包發送。通俗說,它是事先爲所發送的數據開辟出連接好的通道,然後再進行數據發送;而UDP則不爲IP提供可靠性、 流控或差錯恢複功能。一般來說,TCP對應的是可靠性要求高的應用,而UDP對應的則是可靠性要求低、傳輸經濟的應用。 TCP支持的應用協議主要有:Telnet、FTP、SMTP等; UDP支持的應用層協議主要有:NFS(網絡文件系統)、SNMP(簡單網絡管理協議)、DNS(主域名稱系統)、TFTP(通用文件傳輸協議)等。 TCP/IP協議與低層的數據鏈路層和物理層無關,這也是TCP/IP的重要特點

  • TCP(Transimision Control Protocal)
  • 傳輸控制協議
  • 可靠的、面向連接的協議
  • 傳輸效率低
  • UDP(User Datagram Protocal)
  • 用戶數據報協議
  • 不可靠的、無連接的服務
  • 傳輸效率高

TCP/IP協議族

TCP/IP是基于TCP和IP這兩個最初的協議之上的不同的通信協議的大集合

協議的分層

網絡協議通常分不同層次進行開發,每一層分別負責不同的通信功能。一個協議族,比如TCP/IP,是一組不同層次上的多個協議的組合。 傳統上來說 TCP/IP 被認爲是一個四層協議, 而ISO(國際標准化組織),制定了一個國際標准OSI七層協議模型,OSI協議以OSI參考模型爲基礎界定了每個階層的協議和每個階層之間接口相關的標准。

分層的作用

應用層

應用層爲操作系統或網絡應用程序提供訪問網絡服務的接口。應用層協議的代表包括:Telnet、FTP、HTTP、SNMP等。

表示層

將應用處理的信息轉換爲適合網絡傳輸的格式,或將來自下一層的數據轉換爲上層能夠處理的格式。數據的表示、安全、壓縮。

會話層

負責建立和斷開通信連接(數據流動的邏輯通路),以及數據的分割等數據傳輸相關的管理。

傳輸層

管理兩個節點之間的數據傳輸。負責可靠傳輸(確保數據被可靠地傳送到目標地址)。

網絡層

地址管理與路由選擇, 在這一層,數據的單位稱爲數據包(packet)(路由器)。

數據鏈路層

互連設備之間傳送和識別數據幀(交換機)。

物理層

以”0”、 “1”代表電壓的高低,燈光的閃滅,在這一層,數據的單位稱爲比特(bit),(中繼器、集線器、還有我們通常說的雙絞線也工作在物理層)。

七層通信

發送方由第七層到第一層 由上到下按照順序傳送數據,每個分層在處理上層傳遞的數據時,附上當前層協議所必須的 “首部”信息。接收方由第一層到第七層 由下到上按照順序傳遞數據,每個分層對接收到的數據進行 “首部”與”內容”分離,在轉發給上一層。最終將發送的數據恢複爲原始數據。

三、傳輸方式的分類

網絡通信科根據數據發送方法進行多種分類,分類方法很多,下面列舉幾種常見的:

  1. 面向有連接型和面向無連接型 1.1 面向有連接型

發送數據之前,需要在收發主機之間建立一條通信線路,在通信傳輸前後,專門進行建立和斷開連接的處理,如果與對端之間無法通信,可避免發送無謂的數據

1.2面向無連接型

四、報文、幀、數據包等的區別

報文(message)是網絡中交換與傳輸的數據單元,也是網絡傳輸的單元。報文包含了將要發送的完整的數據信息,其長短不需一致。報文在傳輸過程中會不斷地封裝成分組、包、幀來傳輸,封裝的方式就是添加一些控制信息組成的首部,那些就是報文頭。

應用層:報文(message),一般指完整的信息,傳輸層實現報文交付,位于應用層的信息分組稱爲報文; 傳輸層:報文段(segment),組成報文的每個分組; 網絡層:分組(packet)是網絡傳輸中的二進制格式單元,數據包(datapacket)是TCP/IP通信協議傳輸中的數據單位;通過網絡傳輸的數據基本單元,包含一個報頭和數據本身,其中報頭描述了數據的目的地及其與其他數據之間的關系,可以理解爲數據傳輸的分組,我們將通過網絡傳輸的基本數據單元稱爲數據報(Datagram); 鏈路層:幀(frame),數據鏈路層的協議數據單元,爲了保證數據的可靠傳輸,把用戶數據封裝成幀; 物理層:PDU(bit),協議數據單元; 抓包,抓到的是傳輸層的包,packet/frame/Datagram/segment是存在于同條記錄中的,這些是基于所在協議層的不同取了不同的名字。

上一篇: NodeJs中的stream(流)- 基礎篇

下一篇: 理解TCP/IP協議(二)