TCP/IP協議

來源:互聯網
上載者:User

標籤:如何   資料   流量控制   網站   管理   行資料   mac   效率   title   

為什麼會有TCP/IP協議

  在世界上各地,各種各樣的電腦運行著各自不同的作業系統為大家服務,這些電腦在表達同一種資訊的時候所使用的方法是千差萬別。就好像聖經中上帝打亂了各地人的口音,讓他們無法合作一樣。電腦使用者意識到,電腦只是單兵作戰並不會發揮太大的作用。只有把它們聯合起來,電腦才會發揮出它最大的潛力。於是人們就想方設法的用電線把電腦串連到了一起。

  但是簡單的連到一起是遠遠不夠的,就好像語言不同的兩個人互相見了面,完全不能交流資訊。因而他們需要定義一些共通的東西來進行交流,TCP/IP就是為此而生。TCP/IP不是一個協議,而是一個協議族的統稱。裡麵包括了IP協議,IMCP協議,TCP協議,以及我們更加熟悉的http、ftp、pop3協議等等。電腦有了這些,就好像學會了外語一樣,就可以和其他的電腦終端做自由的交流了。

TCP/IP協議分層

 

  物理層(RS-232、V.35)和 資料鏈路層(HDLC、X.25)涉及到在通訊通道上傳輸的原始位元流,它實現傳輸資料所需要的機械、電氣、功能性及過程等手段,提供檢錯、錯誤修正、同步等措施,使之對網路層顯現一條無錯線路;並且進行流量調控。Bits、Frames

  網路層檢查網路拓撲,以決定傳輸報文的最佳路由,執行資料轉寄。其關鍵問題是確定資料包從源端到目的端如何選擇路由。網路層的主要協議有IP、ICMP(Internet Control Message Protocol,互連網控制報文協議)、IGMP(Internet Group Management Protocol,互連網組管理協議)、ARP(Address Resolution Protocol,位址解析通訊協定)和RARP(Reverse Address Resolution Protocol,反向位址解析通訊協定)等。Packets

  傳輸層的準系統是為兩台主機間的應用程式提供端到端的通訊。傳輸層從應用程式層接受資料,並且在必要的時候把它分成較小的單元,傳遞給網路層,並確保到達對方的各段資訊正確無誤。傳輸層的主要協議有TCP、UDP(User Datagraph Protocol,使用者資料包通訊協定)。Segments

  應用程式層負責處理特定的應用程式細節。應用程式層顯示接收到的資訊,把使用者的資料發送到低層,為應用軟體提供網路介面。應用程式層 包含大量常用的應用程式,例如HTTP(HyperText Transfer Protocol文本傳輸協議)、Telnet(遠程登入)、FTP(File Transfer Protocol)等。

  

 

  發送方,加封裝的操作是逐層進行的。各個應用程式將要發送的資料送給傳輸層;傳輸層(TCP/UDP)對資料分段為大小一定的資料區段,加上本層的報文頭。發送給網路層。在傳輸層報文頭中,包含接收它所攜帶的資料的上層協議或應用程式的連接埠號碼,例如,Telnet 的連接埠號碼是 23。傳輸層協議利用連接埠號碼來調用和區別應用程式層各種應用程式。

 

  網路層對來自傳輸層的資料區段進行一定的處理(利用協議號區分傳輸層協議、尋找下一跳地址、解析資料連結層物理地址等),加上本層的IP報文頭後,轉換為資料包,再發送給鏈路層(乙太網路、框架轉送、PPP、HDLC 等);

 

  鏈路層依據不同的資料連結層協議加上本層的幀頭,發送給物理層以位元流的形式將報文發送出去。

 

  在接收方,這種去封裝的操作也是逐層進行的。從物理層到資料連結層,逐層去掉各層的報文頭部,將資料傳遞給應用程式執行。

 

 

應用程式層

FTP(檔案傳輸通訊協定、File Transfer Protocol)是用於檔案傳輸的Internet標準。FTP支援一些文字檔(例如ASCII、二進位等等)和面向位元組流的檔案結構。FTP使用傳輸層協議TCP在支援FTP的終端系統間執行檔案傳輸,因此,FTP被認為提供了可靠的連線導向的服務,適合於遠距離、可靠性較差線路上的檔案傳輸。

TFTP(Trivial File Transfer Protocol,簡單檔案傳輸通訊協定)也是用於檔案傳輸,但TFTP使用UDP提供服務,被認為是不可靠的,不需連線的。TFTP通常用於可靠的區域網路內部的檔案傳輸。

SMTP(Simple Mail Transfer Protocol。簡易郵件傳輸通訊協定)支援文本郵件的Internet傳輸。

POP3(Post Office Protocol)是一個流行的Internet郵件標準。

SNMP(Simple Network Management Protocol。簡易網路管理通訊協定)負責網路裝置監控和維護,支援安全管理、效能管理等。

Telnet是客戶機使用的與遠端伺服器建立串連的標準終端模擬協議。

Ping命令是一個診斷網路裝置是否正確串連的有效工具。

Tracert命令和Ping命令類似,可以顯示資料包經過的每一台網路裝置資訊,是一個很好的診斷命令。

HTTP協議支援WWW(World Wide Web,全球資訊網)和內部網資訊互動,支援包括視頻在內的多種檔案類型。HTTP是當今流行的Internet標準。

DNS(Domain Name System,網域名稱系統)把網路節點的易於記憶的名字轉化為網路地址。

WINS(Windows Internet Name Server,Windows Internet命名伺服器),此服務可以將NetBIOS 名稱註冊並解析為網路上使用的IP地址。

BootP(Bootstrap Protocol,引導協議)是使用傳輸層UDP協議動態獲得IP地址的協議。

  

 

 

 

傳輸層

傳輸層位於應用程式層和網路層之間,為終端主機提供端到端的串連,以及流量控制(由視窗機制實現)、可靠性(由序號和確認技術實現)、支援全雙工系統傳輸等等。傳輸層協議有兩種:TCP和UDP。雖然TCP和UDP都使用相同的網路層協議IP,但是TCP和UDP卻為應用程式層提供完全不同的服務。

 

傳輸控制通訊協定TCP:為應用程式提供可靠的連線導向的通訊服務,適用於要求得到響應的應用程式。目前,許多流行的應用程式都使用TCP。

 

使用者資料包通訊協定UDP:提供了無串連通訊,且不對傳送資料包進行可靠的保證。適合於一次傳輸小量資料,可靠性則由應用程式層來負責。

 

TCP協議通過以下過程來保證端到端資料通訊的可靠性:

 

1、TCP實體把應用程式劃分為合適的資料區塊,加上TCP報文頭,產生資料區段;

 

2、當TCP實體發出資料區段後,立即啟動計時器,如果源裝置在計時器清零後仍然沒有收到目的裝置的確認報文,重發資料區段;

 

3、當對端TCP實體收到資料,發回一個確認。

 

4、TCP包含一個端到端的校正和欄位,檢測資料轉送過程的任何變化。如果目的裝置收到的資料校正和計算結果有誤,TCP將丟棄資料區段,源裝置在前面所述的計時器清零後重發資料區段。

 

5、由於TCP資料承載在IP資料包內,而IP提供了不需連線的、不可靠的服務,資料包有可能會失序。TCP提供了重新排序機制,目的裝置將收到的資料重新排序,交給應用程式。

 

6、TCP提供流量控制。TCP串連的每一端都有緩衝視窗。目的裝置只允許源裝置發送自己可以接收的資料,防止緩衝區溢位。

 

7、TCP支援全雙工系統資料轉送。

  TCP協議為終端裝置提供了連線導向的、可靠的網路服務,UDP協議為終端裝置提供了不需連線的、不可靠的資料報服務。從我們可以看出,TCP協議為了保證資料轉送的可靠性,相對於UDP報文,TCP報文頭部有更多的欄位選項。

首先讓我們來看一下TCP的報文頭部主要欄位:

每個TCP報文頭部都包含源連接埠號碼(source port)和目的連接埠號碼(destination port),用於標識和區分源端裝置和目的端裝置的應用進程。在TCP/IP協議棧中,源連接埠號碼和目的連接埠號碼分別與源IP地址和目的IP地址組成通訊端(socket),唯一的確定一條TCP串連。

  序號(Sequence number)欄位用來標識TCP源端裝置向目的端裝置發送的位元組流,它表示在這個報文段中的第一個資料位元組。如果將位元組流看作在兩個應用程式間的單向流動,則TCP用序號對每個位元組進行計數。序號是一個32bits的數。

 

  既然每個傳輸的位元組都被計數,確認序號(Acknowledgement number,32bits)包含發送確認的一端所期望接收到的下一個序號。因此,確認序號應該是上次已成功收到的資料位元組序號加1。

  TCP的流量控制由串連的每一端通過聲明的視窗大小(windows size)來提供。視窗大小用資料包來表示,例如Windows size=3, 表示一次可以發送三個資料包。視窗大小起始於確認欄位指明的值,是一個16bits欄位。視窗大小可以調節。

  校正和(checksum)欄位用於校正TCP前序部分和資料部分的正確性。

  最常見的可選欄位是MSS(Maximum Segment Size,最大報文大小)。MSS指明本端所能夠接收的最大長度的報文段。當一個TCP串連建立時,串連的雙方都要通告各自的MSS協商可以傳輸的最大報文長度。我們常見的MSS有1024(乙太網路可達1460位元組)位元組。

  相對於TCP報文,UDP報文只有少量的欄位:源連接埠號碼、目的連接埠號碼、長度、校正和等,各個欄位功能和TCP報文相應欄位一樣。

  UDP報文沒有可靠性保證和順序保證欄位,流量控制欄位等,可靠性較差。當然,使用傳輸層UDP服務的應用程式也有優勢。正因為UDP協議較少的控制選項,在資料轉送過程中,延遲較小,資料轉送效率較高,適合於對可靠性要求並不高的應用程式,或者可以保障可靠性的應用程式像DNS、TFTP、SNMP等;UDP協議也可以用於傳輸鏈路可靠的網路

 TCP協議和UDP協議使用16bits連接埠號碼(或者socket)來表示和區別網路中的不同應用程式,網路層協議IP使用特定的協議號(TCP 6,UDP 17)來表示和區別傳輸層協議。

任何TCP/IP實現所提供的服務都是1~1023之間的連接埠號碼,這些連接埠號碼由IANA(Internet Assigned Numbers Authority,Internet號碼分配機構)分配管理。其中,低於255的連接埠號碼保留用於公用應用;255到1023的連接埠號碼分配給各個公司,用於特殊應用;對於高於1023的連接埠號碼,稱為臨時連接埠號碼,IANA未做規定。

常用的TCP連接埠號碼有:HTTP 80,FTP 20/21,Telnet 23,SMTP 25,DNS 53等;常用的保留UDP連接埠號碼有:DNS 53,BootP 67(server)/ 68(client),TFTP 69,SNMP 161等。

通訊端(socket)分為源通訊端和目的通訊端:

源通訊端:源連接埠號碼+源IP地址;

目的通訊端:目的連接埠號碼+目的IP地址;

源通訊端和目的通訊端用於唯一的確定一條TCP串連。關於IP地址,將在後面講述。

為了在所示的主機和伺服器之間建立一個串連,首先需要兩端裝置進行同步。同步(synchronization)是通過各個攜帶有初始序號的資料區段交換過程實現的。

主機發送一個序號為a的報文段1;

伺服器發回包含序號為b的報文段2,並用確認號a+1對主機的報文段1進行確認;

主機接收伺服器發回的報文段2,發送報文段3,用確認號b+1對報文段2進行確認。

這樣在主機和伺服器之間建立了一條TCP串連,這個過程被稱為三步握手(three-way handshake)。接下來,資料轉送開始。

資料轉送結束後,應該終止串連。終止TCP串連需要4次握手。

TCP滑動視窗技術通過動態改變視窗大小來調節兩台主機間資料轉送。每個TCP/IP主機支援全雙工系統資料轉送,因此TCP有兩個滑動視窗:一個用於接收資料,另一個用於發送資料。TCP使用肯定確認技術,其確認號指的是下一個所期待的位元組。

下面我們以資料單方向發送為例,介紹滑動視窗如何?流量控制。

假定發送方裝置以每一次三個資料包的方式發送資料,也就是說,視窗大小為3。發送方發送序號為1、2、3的三個資料包,接收方裝置成功接收資料包,用序號4確認。發送方裝置收到確認,繼續以視窗大小3發送資料。當接收方裝置要求降低或者增大網路流量時,可以對視窗大小進行減小或者增加,本例降低視窗大小為2,每一次發送兩個資料包。當接收方裝置要求視窗大小為0,表明接收方已經接收了全部資料,或者接收方應用程式沒有時間讀取資料,要求暫停發送。發送方接收到攜帶視窗號為0的確認,停止這一方向的資料轉送。

滑動視窗機製為端到端裝置間的資料轉送提供了可靠的流量控制機制。然而,它只能在源端裝置和目的端裝置起作用,當網路中間裝置(例如路由器等)發生擁塞時,滑動視窗機制將不起作用。我們可以利用ICMP的源抑制機制進行擁塞管理。關於ICMP,我們將在後面介紹。

 

 

 

 

網路層

 

網路層位於TCP/IP協議棧資料連結層和傳輸層中間,網路層接收傳輸層的資料報文,分段為合適的大小,用IP報文頭部封裝,交給資料連結層。網路層為了保證資料包的成功轉寄,主要定義了以下協議:

IP(Internet Protocol)協議:IP協議和路由協議協同工作, 尋找能夠將資料包傳送到目的端的最優路徑。IP協議不關心資料報文的內容,提供不需連線的、不可靠的服務。

ARP協議(Address Resolution Protocol,位址解析通訊協定):把已知的IP位址解析為MAC地址;

RARP(Reverse Address Resolution Protocol,反向位址解析):用於資料連結層地址已知時,解析IP地址;

ICMP(Internet Control Message Protocol,網際控制訊息協議)定義了網路層控制和傳遞訊息的功能。

IGMP(Internet Group Management Protocol,網際組管理協議),一種組播應用協議。

 

文章摘自其他網站

 

 

 

 

TCP/IP協議

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.