企業(yè)網絡規(guī)劃與實施 課件 第4章 TCP協(xié)議_第1頁
企業(yè)網絡規(guī)劃與實施 課件 第4章 TCP協(xié)議_第2頁
企業(yè)網絡規(guī)劃與實施 課件 第4章 TCP協(xié)議_第3頁
企業(yè)網絡規(guī)劃與實施 課件 第4章 TCP協(xié)議_第4頁
企業(yè)網絡規(guī)劃與實施 課件 第4章 TCP協(xié)議_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第4章TCP協(xié)議4.1傳輸層協(xié)議4.2TCP與UDP協(xié)議4.3TCP重點應用之FTP協(xié)議本章小結

4.1傳輸層協(xié)議

1.?傳輸層概述

傳輸層的主要功能是實現(xiàn)網絡中不同主機上用戶進程之間的數(shù)據(jù)通信,傳輸層在TCP/IP五層模型中的位置如下圖4.1所示。

圖4.1傳輸層的位置

網絡層和數(shù)據(jù)鏈路層負責將數(shù)據(jù)送達目的地端主機,而傳輸層負責將這個數(shù)據(jù)傳送到相應的端口,交給某個用戶進程去處理。例如,兩個人使用QQ聊天,就是通過IP地址+端口號來通信的,如圖4.2所示。圖4.2IP地址+端口號通信

2.?傳輸層分類協(xié)議

TCP/IP協(xié)議族的傳輸層協(xié)議主要有兩個:TCP(TransmissionControlProtocol,傳輸控制協(xié)議)和UDP(UserDatagramProtocol,用戶數(shù)據(jù)報協(xié)議)。

TCP是面向連接的、可靠的、進程到進程的通信的協(xié)議。TCP在網絡中的應用范圍很廣,在使用TCP協(xié)議時,通信方對數(shù)據(jù)的可靠性要求高,數(shù)據(jù)傳輸效率降低是可以接受的。

UDP是一個無連接、不保證可靠性的傳輸層協(xié)議,發(fā)送端不關心發(fā)送的數(shù)據(jù)是否到達目的地主機。UDP的首部結構簡單,在數(shù)據(jù)傳輸時效率高。

4.2TCP與UDP協(xié)議

4.2.1TCP協(xié)議

1.?TCP的封裝格式TCP將若干個字節(jié)構成一個分組,稱為報文段(Segment)。TCP報文段封裝在IP數(shù)據(jù)報中,如圖4.3所示。圖4.3TCP報文段的封裝

1)?TCP報文段的首部格式

TCP報文段的首部長度為20~60字節(jié),格式如圖4.4所示。圖4.4TCP報文段的首部格式

使用eNSP搭建實驗環(huán)境,如圖4.5所示。圖4.5實驗環(huán)境

(1)?在Server1上搭建Web服務,如圖4.6所示。圖4.6搭建Web服務

(2)?在Client1上訪問Web服務,如圖4.7所示。圖4.7訪問Web服務

(3)?在交換機E0/0/2口抓包,查看TCP的封裝格式,如圖4.8所示。圖4.8抓包TCP的封裝格式

2)?首部格式中重點字段分析

(1)?TCP在發(fā)送數(shù)據(jù)前要對每一個字節(jié)進行編號,一般會產生一個隨機數(shù)作為第1個字節(jié)的編號,稱為初始序列號(ISN)。當字節(jié)都被編上號后,TCP就給每個報文段指派一個序列號,序列號就是該報文段中第一個字節(jié)的編號。

(2)?確認號是對發(fā)送端的確認信息,用來告訴發(fā)送端這個序列號之前的數(shù)據(jù)段都已經收到。如果確認號是X,則表示前X-1個數(shù)據(jù)段都已經收到。

(3)?控制位一共有六個,各位的含義如下:

URG:緊急指針有效位。

ACK:只有當ACK=1時,確認序列號字段才有效;當ACK=0時,確認序列號字段無效。

PSH:當該值為1時要求接收方盡快將數(shù)據(jù)段送達應用層。

RST:當該值為1時,通知重新建立TCP連接。

SYN:同步序號位,TCP需要建立連接時將這個值設為1。

FIN:發(fā)送端完成發(fā)送的任務位,當TCP完成數(shù)據(jù)傳輸、需要斷開連接時,提出斷開連接的一方將這個值設為1。

(4)?窗口值說明本地可接收數(shù)據(jù)段的數(shù)目,這個值的大小是可變的。當網絡通暢時將這個窗口值變大以加快傳輸速度,當網絡不穩(wěn)定時減小這個值可保證數(shù)據(jù)的可靠傳輸。

2.TCP建立連接的過程

TCP是面向連接的協(xié)議,它在源點和終點之間建立一條虛連接。在數(shù)據(jù)通信之前,發(fā)送端與接收端要先建立連接;等數(shù)據(jù)發(fā)送結束后,雙方再斷開連接。TCP連接的每一方都是由一個IP地址和一個端口號所組成的。

TCP建立連接的過程稱為三次握手。圖4.9所示是TCP三次握手的示意圖。圖4.9TCP三次握手的示意圖

通過抓包來看一下TCP三次握手的過程。

仍然使用圖4.5所示的實驗環(huán)境,在Server1上搭建Web服務,在交換機E0/0/2口開啟抓包,在Client1上訪問Web服務。

(1)?第一次握手的過程如圖4.10所示。可以看到,SYN的控制位為1。

圖4.10TCP三次握手(1)

(2)?第二次握手的過程如圖4.11所示。可以看到,ACK和SYN的控制位都為1。圖4.11TCP三次握手(2)

(3)?第三次握手的過程如圖4.12所示。可以看到,ACK的控制位為1。圖4.12??TCP三次握手(3)

3.?TCP建立連接過程中的不同狀態(tài)

TCP在建立連接過程中,主機會處于不同的狀態(tài),如圖4.13所示。圖4.13TCP的不同狀態(tài)(1)

在主機上運行netstat–na命令查看狀態(tài),如圖4.14所示。圖4.14TCP的不同狀態(tài)(2)

4.?TCP的斷開過程

TCP斷開連接分為四步,也稱為四次揮手,如圖4.15所示。圖4.15TCP四次揮手示意圖

通過抓包來看一下TCP四次揮手的過程。

仍然使用圖4.5所示的實驗環(huán)境,在Server1搭建Web服務,在交換機E0/0/2口開啟抓包,在Client1上訪問Web服務。

(1)?第一次揮手如圖4.16所示??梢钥吹?,F(xiàn)IN和ACK控制位為1。

圖4.16TCP四次揮手(1)

(2)?第二次揮手如圖4.17所示??梢钥吹?,ACK控制位為1。圖4.17TCP四次揮手(2)

(3)?第三次揮手如圖4.18所示??梢钥吹?,F(xiàn)IN和ACK控制位為1。圖4.18TCP四次揮手(3)

(4)?第四次揮手如圖4.19所示??梢钥吹剑珹CK控制位為1。圖4.19TCP四次揮手(4)

5.?TCP的其他機制

TCP是可靠的協(xié)議,它使用流量控制、差錯控制、擁塞控制、計時器來保證其可靠性。

1)?流量控制

流量控制是由接收端控制發(fā)送端可以發(fā)送的數(shù)據(jù)量,它是通過滑動窗口來實現(xiàn)的,如圖4.20所示。

圖4.20TCP流量控制

2)?差錯控制

在數(shù)據(jù)傳輸過程中,如果報文段丟失或損壞,都需要差錯控制機制來處理。TCP差錯控制包括以下幾個方面:

(1)?檢測并重傳損壞的報文段。

(2)?重傳丟失的報文段。

(3)?丟棄重復的報文段并重傳該報文段的ACK。

(4)?保證接收緩沖區(qū)的報文段按序交給對應的應用程序。

3)?擁塞控制

發(fā)送端所能發(fā)送的數(shù)據(jù)量不僅要受接收端的控制,而且要由網絡的擁塞程度來決定,TCP提供了擁塞控制機制。例如,當主機開始發(fā)送數(shù)據(jù)時,如果立即將大量數(shù)據(jù)發(fā)送到網絡,就有可能因為不清楚當前網絡的負荷情況而引起網絡阻塞。所以,最好的方法是先探測一下,即由小到大逐漸增大發(fā)送窗口。

4)?計時器

大多數(shù)的TCP使用至少四種計時器,包括重傳計時器、堅持計時器、?;钣嫊r器、時間等待計時器。

(1)?重傳計時器是為了控制丟失的報文段。

如圖4.21所示,在TCP發(fā)送報文段時,會創(chuàng)建此報文段的重傳計時器。

(2)?堅持計時器的目的是解決零窗口大小通知丟失可能導致的死鎖問題。

(3)??;钣嫊r器的目的是防止兩個TCP連接后出現(xiàn)長時間的空閑。

圖4.21重傳計時器

(4)?時間等待計時器是在連接終止期間使用的。

如圖4.22所示,TCP關閉連接時,若HostA立即關閉,而ACK又丟失,HostB會再發(fā)送FIN,但HostA已經斷開連接,不會再發(fā)送ACK,這樣HostB就無法關閉連接。

圖4.22時間等待計時器

6.?TCP的端口及其應用

TCP在網絡中的應用范圍很廣,主要用在對數(shù)據(jù)傳輸可靠性要求高的環(huán)境中,表4-1列出了一些常用的端口號及其功能。

4.2.2UDP協(xié)議

UDP是一個無連接、不保證可靠性的傳輸層協(xié)議。也就是說,發(fā)送端不關心發(fā)送的數(shù)據(jù)是否到達目標主機,接收端也不會告訴發(fā)送方是否收到了數(shù)據(jù)。盡管UDP的缺點明顯,但是UDP的優(yōu)點是首部結構簡單,在數(shù)據(jù)傳輸時能實現(xiàn)最小的開銷。例如,使用QQ聊天時就使用了UDP的方式。

1.?UDP首部的格式

UDP首部的格式如圖4.23所示。

圖4.23中,UDP長度指的是UDP的總長度,即首部加上數(shù)據(jù)。圖4.23UDP首部的格式

下面通過抓包來查看UDP的首部格式。使用eNSP搭建實驗環(huán)境,如圖4.24所示。圖4.24UDP實驗環(huán)境

(1)?在交換機E0/0/2口開啟抓包,使用PC1的UDP發(fā)包工具,如圖4.25所示。圖4.25UDP發(fā)包工具

(2)?抓到UDP包,如圖4.26所示。圖4.26UDP抓包

2.?UDP的流控與差錯控制

UDP沒有流控機制,UDP只有校驗和來提供差錯控制。使用UDP協(xié)議如果要保證傳輸?shù)目煽啃裕托枰蠈訁f(xié)議來提供流控和差錯控制。例如,TFTP協(xié)議提供分塊傳輸、分塊確認機制,來保證數(shù)據(jù)傳輸?shù)目煽啃裕鐖D4.27所示。

圖4.27TFTP協(xié)議示意圖

3.?UDP的常見端口及功能

UDP協(xié)議在實際工作中的應用范圍也比較廣泛,表4-2所示列出了UDP使用的常見端口及其功能。

4.3TCP重點應用之FTP協(xié)議

1.?主動模式首先由客戶端向服務端的21端口建立FTP控制連接,當需要傳輸數(shù)據(jù)時,服務器從20端口向客戶端的隨機端口6666發(fā)送請求并建立數(shù)據(jù)連接,如圖4.28所示。

圖4.28FTP主動模式

2.?被動模式

如果客戶機所在網絡的防火墻禁止主動模式連接,通常會使用被動模式。如圖4.29所示,首先由客戶端向服務端的21端口建立FTP控制連接,當需要傳輸數(shù)據(jù)時,客戶端向服務器的隨機端口2222發(fā)送請求并建立數(shù)據(jù)連接??梢钥吹?,被動模式下服務器一般并不使用20端口。圖4.29FTP被動模式

3.?通過實驗來分析FTP的原理

使用eNSP搭建實驗環(huán)境,如圖4.30所示。圖4.30FTP實驗拓撲

(1)?在Server1搭建FTP服務,如圖4.31所示。圖4.31FTP實驗(1)

(2)?在交換機E0/0/2口開啟抓包,在Client1上訪問FTP服務,如圖4.32所示。圖4.32FTP實驗(2)

(3)?抓包看到FTP交互過程,剛開始是TCP三次握手,然后可以抓到用戶名和密碼,如圖4.33所示。圖4.33FTP實驗(3)

(4)?抓包看到FTP被動模式端口號為2049,如圖4.34所示。圖4.34FTP實驗(4)

本章小結

傳輸層負責將數(shù)據(jù)傳送到相應的端口,交給某個用戶進程去處理。TCP/IP協(xié)議族的傳輸層協(xié)議主要有兩個:TCP(TransmissionControlProtocol,傳輸控制協(xié)議)和UDP(UserDatagramProtocol,用戶數(shù)據(jù)報協(xié)議)。TCP報文段首部長度為20~60字節(jié),其首部格式中有六個重要的控制位,而UDP的首部格式要簡單得多。TCP建立連接需要三次握手,而斷開連接需要四次揮手。

TC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論