版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第四章 TCP/IP協議(xiy)體系結構 通過本章的學習,要求掌握(zhngw)TCP/IP協議體系結構和每層的協議。重點掌握TCP協議和IP協議的數據單元格式,明確TCP/IP的傳輸過程。 內容提要: TCP/IP概述 網絡接口層 網絡互聯層 傳輸層 應用層 課堂討論題和課后練習2022/7/19共七十一頁 一、TCP/IP概述(TCP/IP summary) Internet的中文(zhngwn)名字是“國際互聯網/因特網/網際網” Intranet是企業(yè)內部互聯網。 TCP/IP協議能使互連網中的各種計算機協同工作。TCP/IP(Transmission Control Protoco
2、l/Internet Protocol傳輸控制協議/網際協議)由它的兩個主要協議即TCP協議和IP協議而得名。TCP/IP是Internet上所有網絡和主機之間交流所使用的共同語言,是Internet上使用的一組完整的標準網絡協議。TCP是傳輸控制協議,保證了傳輸信息的正確性。IP是網際互連協議,負責信息的實際傳送。 TCP/IP是一個協議集。2022/7/19共七十一頁1.OSI與TCP/IP體系結構的比較 (1)OSI參考模型(1983年) 允許任意兩個具有不同基本體系結構的系統進行通信(tng xn)的一套協議集,稱為一個開放系統。OSI參考模型采用了七層協議的體系結構,如圖4.1,4.
3、2,4.3所示。Application LayerPhysical LayerData Link LayerNetwork LayerTransport LayerSession LayerPresentation Layer圖4.1 OSI參考模型的分層結構高層低層用戶功能網絡功能2022/7/19共七十一頁 面向信息處理用戶功能面向通信網絡功能應用層傳輸層網絡層 數據鏈路層物理層圖4.2 傳輸層在網絡體系結構中的地位(dwi)2022/7/19共七十一頁從上一章的討論可知,網絡的下三層各自的任務分別為: 物理層:在物理鏈路上實現透明的比特流傳輸; 數據鏈路層:在相鄰結點間的鏈路(可能有錯的
4、物理鏈路)上實現可靠的幀傳輸(MAC地址); 網絡層:路由選擇、網絡互連,實現可靠的主機到主機(端到端)的分組傳輸(IP地址);為主機之間提供邏輯通信。 傳輸層是為主機中的應用進程之間(端到端)提供邏輯通信的,實現可靠的用戶報文傳輸。 應用層是規(guī)定(gudng)應用進程在通信時所遵循的規(guī)則2022/7/19共七十一頁 從通信和信息處理的角度看,傳輸層屬于面向通信部分的最高層。但從網絡功能或用戶功能來劃分,則傳輸層又屬于用戶功能中的最低層。 傳輸層是整個網絡體系結構中非常關鍵的一層。 在通信子網中沒有傳輸層。傳輸層只存在(cnzi)于通信子網以外的主機中,如圖4.3所示。 傳輸層要實現進程-進程
5、(端到端)之間的可靠傳輸(端口地址)。 傳輸層是為應用進程之間提供邏輯通信的。2022/7/19共七十一頁 LAN1LAN2傳輸層網絡層數據鏈路層物理層APA主機A主機B傳輸層網絡層數據鏈路層物理層APB傳輸層提供應用進程間的邏輯通信圖4.3 傳輸層為應用進程提供邏輯(lu j)通信服務2022/7/19共七十一頁 (2)TCP/IP參考模型(1974年) TCP/IP體系結構共有(n yu)四個層次,如圖4.4所示。 使用(shyng)已有的物理網絡應用層傳輸層網絡互連層網絡接口層圖4.4 TCP/IP參考模型的分層結構2022/7/19共七十一頁網絡接口層 :它包括了使用TCP/IP與物理
6、網絡進行通信的協議,對高層屏蔽了底層物理網絡的細節(jié),對應著OSI的物理層和數據鏈路層。網絡互連層:主要(zhyo)協議是網際互連協議IP。其功能是處理來自傳輸層的分組,將分組形成IP數據報,并為該數據報進行路由選擇,最終將數據報從源主機發(fā)送到目的主機。傳輸層:主要協議是TCP(面向連接的服務)協議和UDP(無連接的服務)協議。它主要負責進程到進程之間的端對端通信。應用層:提供的服務不同對應的協議不同,主要有HTTP,FTP,Telnet,SMTP,DNS等協議。它主要為用戶提供不同的網絡服務。 2022/7/19共七十一頁TCP/IP體系結構中各層采用的主要(zhyo)協議如圖4.5所示: I
7、CMPRARPARPSMTPTelnetDNSSNMP其它TCPUDPFTP以太網、令牌環(huán)、X.25、幀中繼、FDDI 、ATM IP網絡接口層網際層傳輸層應用層 圖4.5 TCP/IP協議(xiy)體系結構2022/7/19共七十一頁HTTPTCP網絡接口1IPUDPSMTPDNSRTP網絡接口2應用層運輸層網際層網絡接口層圖4.6 沙漏(sh lu)(計時器)形狀的TCP/IP協議族 可以從圖4.6看出:TCP/IP可以為各式各樣的應用提供(tgng)服務也可以連接到各式各樣的網絡上。2022/7/19共七十一頁4.基于(jy)TCP/IP協議的客戶/服務器模式通信 客戶(Client)和
8、服務器(Server)都是指通信中所涉及的兩個應用進程。 客戶/服務器模式所描述的是進程之間服務和被服務的關系。當A進程需要B進程的服務時就主動呼叫B進程,這時A是客戶而B是服務器;若B進程需要A進程的服務,B就是客戶而A就是服務器。 客戶與服務器的通信關系一旦(ydn)建立,通信就可是雙向的,客戶和服務器都可發(fā)送和接收信息。圖4.7給出了基于TCP/IP協議的客戶/服務器模式通信情況。圖4.8給出了服務器進程被多個客戶進程訪問的情況2022/7/19共七十一頁 圖4.7 客戶進程和服務器進程使用TCP/IP協議進行(jnxng)通信應用層傳輸層網絡層數據鏈路層物理層客戶應用層傳輸層網絡層數據
9、鏈路層物理層服務器主機A主機B發(fā)起連接建立請求接受連接建立請求Internet2022/7/19共七十一頁 應用層傳輸層網絡層數據鏈路層物理層應用層傳輸層網絡層數據鏈路層物理層應用層傳輸層網絡層數據鏈路層物理層客戶1客戶2服務器1服務器2計算機1 計算機2 計算機3Internet圖4.8 一臺計算機中的多個(du )服務器可被多個(du )客戶訪問2022/7/19共七十一頁通信過程:發(fā)客戶端的應用程序收到用戶請求后,將用戶發(fā)出的信息(xnx)代碼按應用層協議轉化為標準的報文交給傳輸層;傳輸層通過TCP協議將應用程序信息分解打包(分組),TCP程序將這些帶有傳輸層目的地址的包轉交給網絡互連層
10、;網絡互連層的IP程序通過IP協議組成IP數據報將信息轉交給網絡接口層;網絡接口層將IP數據報封裝成具體網絡的幀,通過物理網絡發(fā)到另一臺計算機。收對方IP程序收到所傳輸的數據報后,將數據報傳輸到傳輸層,傳輸層的TCP程序將這些數據報按特定的順序還原為TCP格式的信息。TCP協議用于控制信息包的接收和發(fā)送,發(fā)生錯誤時,TCP就發(fā)出一個重發(fā)信息給發(fā)送方,服務器的傳輸層將所收到的正確信息傳輸到它的高層,供應用程序處理。2022/7/19共七十一頁 二、網絡接口層 TCP/IP的網絡接口層與OSI/RM的物理層、數據鏈路層相對應,它對應與網絡的基本(jbn)硬件,該層使用的協議是各通信子網的協議,如以
11、太網協議,幀中繼協議,令牌環(huán)網協議等。 功能:負責網絡層與硬件設備之間的聯系,定義了Internet與各種物理網絡之間的網絡接口,對高層屏蔽了底層物理網絡的細節(jié),指出主機必須使用某種協議與網絡互連。2022/7/19共七十一頁 三、網絡互連層功能:使源主機把分組通過任何網絡獨立(dl)地傳向目的地。分組到達的順序和發(fā)送順序可能不同。IP協議的主要功能:(1)接收來自傳輸層的請求,把傳輸層送來的信息組裝成IP數據報,并把IP數據報傳遞給網絡接口層。(2)提供不可靠無連接數據報傳送。(3)處理互連的路徑、流量控制與擁塞控制。(4)三個與IP配套使用的協議,即: 地址解析協議ARP(Address
12、Resolution Protocol); IP MAC 逆向地址解析協議RARP(Reverse Address Resolution Protocol); MAC IP Internet控制報文協議ICMP(Internet Control Message Protocol)。2022/7/19共七十一頁 IP和其它三個協議的層次(cngc)關系如圖4.9所示 ICMPRARPARPSMTPTELNETDNSSNMPTFTPTCPUDPFTP以太網、令牌環(huán)、X.25、幀中繼、FDDI 、ATM IP網絡接口層網際層傳輸層應用層IP協議經常要使用ARP和RARP(由9個字段組成,固定24字節(jié)
13、。其中(qzhng)包括兩個IP地址,兩個硬件地址,直接封裝在數據鏈路幀中),這兩個協議畫在下面。此外,由于ICMP要使用IP協議,作為IP的數據部分,畫在上面。圖4.9 IP與ARP、RARP及ICMP的關系2022/7/19共七十一頁1、IP數據(shj)報的格式 IP數據報的格式說明了IP協議具有哪些功能。在TCP/IP的標準中,各種數據格式常常以32bit(即4字節(jié))為單位來描述。IP數據報的格式如圖4.10所示。IP數據報無序號。 一個IP數據報由首部(報頭(botu))和數據兩部分組成。首部的前一部分長度是固定的20個字節(jié),后一部分的長度則是可變長度。2022/7/19共七十一頁
14、數據部分可選字段(長度可變:1 - 40字節(jié))填充“0”長度可變20個字節(jié)固定長度目的站IP地址源站IP地址壽命 協議 首部校驗和 標識 標志 分段偏移版本 首部長度 服務類型 IP數據報總長度比特 0 4 8 16 19 24 31優(yōu)先級 D T R C 未用0 1 2 3 4 5 6 7D:更低延遲 T:更高的吞吐量R:更高的可靠性 C:提供費用更低的路由圖4.10 IP數據(shj)報的格式2022/7/19共七十一頁 版本(bnbn) 占4bit,指IP協議的版本。通信雙方使用的IP協議的版本必須一致。目前使用的IP協議版本為4(IPv4)。 首部長度 占4bit,取值范圍5(4字節(jié)5
15、=20字節(jié),固定首部長度)-15(4字節(jié)15=60字節(jié),最大首部長度)。當IP分組的首部長度不是4字節(jié)的整數倍時,必須利用最后一個填充字段加以填充(以全“0”填充)。 服務類型 占8bit,用來獲得更好的服務。與服務質量Qos有關。 服務類型字段的前三個比特(02)表示優(yōu)先級,它可使數據報具有8個優(yōu)先級中的一個。2022/7/19共七十一頁 第3個比特是D比特,表示要求有更低的時延。 第4個比特是T比特,表示要求有更高的吞吐量。 第5個比特是R比特,表示要求有更高的可靠性,即在數據報傳送的過程中,被結點交換機丟棄的概率要更小些。 第6個比特是C比特,是新增加(zngji)的,表示要求選擇費用更
16、低廉的路由。最后一個比特目前尚未使用。 IP數據報總長度 占16bit, “總長度”指首部和數據之和的長度,單位為字節(jié)。IP數據報的最大長度為65535字節(jié)(21665536)。 當很長的數據報文要分段進行傳送時,“總長度”不是指未分段前的報文長度,而是指分段后每段的IP分組首部的長度與數據長度的總和。2022/7/19共七十一頁 標識 占16bit,該字段為了使分段后的各數據報段最后能準確地重裝成為(chngwi)原來的數據報文而設置的標識。這里的“標識”并沒有順序號的意思,因為IP是無連接服務,數據報不存在按序接收的問題。同一個報文的所有分段具有相同的標識。 標志(flag) 占3bit,
17、目前只有前兩個比特有意義。 標志字段中的一位記為MF(More Fragment)。MF=1表示后面還有分段的數據報。MF=0表示是若干數據報段中的最后一個。 標志字段的另一位記為DF(Dont Fragment)。只有當DF=0時才允許分段,DF=1不允許分段。2022/7/19共七十一頁 分段偏移 占13bit,分段偏移指出:較長的數據報文在分段以后,某個分段在原報文中的相對位置。分段偏移以8個字節(jié)為偏移單位。 (0,1400/8=175,2800/8=350) 壽命 占8bit,記為TTL(Time To Live),其單位為秒。壽命的建議值是32秒。壽命又稱為生存時間。實際使用不是計時
18、,而是用來標記IP數據報經過的路由器個數,每經過一個路由器稱為一跳(hop),IP數據報經過一個路由器該域的值減1,直到(zhdo)為0還未到達目的站點時丟棄該IP數據報。 協議 占8bit,協議字段指出此IP數據報攜帶的傳輸層數據是使用何種協議,以便目的主機的IP層知道應將此IP數據報上交給哪個進程。如:ICMP(1),UDP(17),TCP(6)。 2022/7/19共七十一頁 首部檢驗和 占16bit,此字段只檢驗IP數據報的首部,不包括數據部分。將數據部分一起檢驗,計算的工作量就太大了。 為了簡化運算,IP首部的檢驗和不采用CRC檢驗碼。 IP首部檢驗和的計算方法是:將IP數據報首部看
19、成為16bit字的序列。先將檢驗和字段置0。將所有的16bit字相加(反碼加法,進位移(wiy)至最低位相加)(見書188或256頁本科教材)后,將和的二進制反碼寫入檢驗和字段。收到數據報后,將首部的16bit字的序列再相加一次,若首部末發(fā)生任何變化,則和必為全1。否則即認為出差錯,并將此數據報丟棄。 地址 源站IP地址和目的站IP地址都各占4字節(jié)。 IP首部的可變部分 排錯、測量以及安全用。2022/7/19共七十一頁IP 頭數據區(qū)(1400 字節(jié))ID = 100片頭數據 1(600)數據3 (200)片頭片頭數據 2(600)ID = 100MF = 1FO = 0Len= 620ID
20、= 100MF= 1FO = 75Len= 620ID = 100MF= 0FO = 150Len= 2204.11 IP數據(shj)報的分片2022/7/19共七十一頁2、 Internet控制報文協議ICMP 網際控制報文協議ICMP(Internet control message protocol )也是TCP/IP一個核心協議。 (1).為什么需要ICMP? IP協議提供的是無連接和不可靠的數據(shj)報交付,是一個盡最大努力的服務,沒有完全的差錯控制機制,只有簡單的首部檢驗,出錯的IP數據報被丟棄。 控制報文協議ICMP就是為彌補IP的不足而設計的,它是配合IP協議使用的,可以
21、看作是IP的一個組成部分。 ICMP允許主機或路由器報告IP數據報在傳送過程中的差錯和提供網絡本身異常情況的報告,差錯糾正由高層協議完成。 2022/7/19共七十一頁(2).ICMP報文格式 ICMP是IP層的協議。 ICMP報文不是直接傳送(chun sn)到數據鏈路層封裝成MAC幀(與RAP和RARP不同),而是先要封裝成IP數據報再傳送到數據鏈路層封裝成MAC幀。 ICMP報文與IP包的關系以及報文格式如圖4.12所示。 ICMP報文的關鍵是類型字段,占一個字節(jié)。表1給出了類型字段的某些值與ICMP報文類型的基本關系。2022/7/19共七十一頁圖4.12 ICMP報文的格式IP數據報
22、 IP首部 IP數據部分 ICMP報文長度可變部分取決于ICMP的類型 類型 代碼 檢驗和 0 8 16 312022/7/19共七十一頁表3 類型字段的值與ICMP報文類型的關系 類型 ICMP報文 ICMP報文的作用 0 回送應答 給源主機發(fā)送回答 3 目的站不可達 網絡/主機/協議/端口等不可達 4 源站抑制 使源站暫停發(fā)送IP數據報 5 改變路由 指出IP數據報應經過下一個路由器的IP地址 8 回送請求 向一個特定的目的主機發(fā)出的詢問 11 IP分組時間超時 被分配(fnpi)的發(fā)送時間過期而被丟棄 12 IP分組參數問題 IP分組的首部字段中有錯誤或非法值 13 時間戳請求 請某個主
23、機或路由器回答當前的日期和時間 14 時間戳回答 可用來進行時鐘同步和測量時間 17 地址掩碼請求 可使主機向子網掩碼服務器請求 18 地址掩碼回答 得到某個接口的子網掩碼 ICMP報文的類型很多,但可分為兩種類型,即ICMP差錯報文(3,4,5,11,12)和ICMP詢問報文。用代碼字段進一步區(qū)分某種類型中的不同情況。校驗和檢驗整個ICMP報文。2022/7/19共七十一頁(3)ICMP應用(yngyng)舉例 ICMP Echo請求報文 類型字段值取8。 ICMP Echo請求報文是由主機或路由器向一個特定的目的主機發(fā)出的詢問。收到此報文的機器必須給源主機或路由器發(fā)送ICMP Echo回答
24、報文。 這種詢問報文常用來測試目的站是否可達以及了解其有關狀態(tài)。 在因特網的應用層有一個十分有用的服務,稱為Ping(Packet Internet Groper),用來測試兩個主機之間的連通性。Ping使用了ICMP Echo請求報文。 Ping 002022/7/19共七十一頁3、ARP協議和RARP協議(1)IP地址與硬件地址 在IP層抽象的互連網上,看到的只是IP數據報。在IP數據報的首部中寫明源IP地址和目的(md)IP地址。中間經過的路由器的IP地址不出現在IP數據報的首部中。IP地址是端到端的。 雖然在IP數據報的首部有源站的IP地址,但路由器只根據目的站的IP地址進行路由選擇。
25、 在具體的物理網絡的數據鏈路層,看到的只是MAC幀(在X.25網的鏈路層則是HDLC幀)。IP數據報被封裝在MAC幀里面。MAC幀在不同的網絡上傳送時,其MAC幀的首部(目的地址會發(fā)生變化)是不同的。MAC地址是節(jié)點到節(jié)點的。 圖4.13給出了這兩種地址的區(qū)別。 圖4.14進一步說明了在互聯網環(huán)境下這兩種地址使用上的區(qū)別。2022/7/19共七十一頁 首部 首部 首部 應用層數據 TCP或其他高層協議報文IP地址硬件地址IP數據報網絡層使用IP地址鏈路層使用硬件地址MAC幀圖4.13 IP地址與硬件(yn jin)地址的區(qū)別2022/7/19共七十一頁主機H1主機H2HA1局域網硬件地址HA3
26、R1HA4局域網HA5HA6R2局域網HA2網絡配置主機H1主機H2IP1IP2HA1HA2R1R2從IP1到IP2從IP1到IP2從IP1到IP2IP3IP4IP5IP6HA3HA4HA5HA6從HA1到HA3的MAC幀從HA4到HA5的MAC幀從HA6到HA2的MAC幀IP1IP2IP數據報圖4.14 IP地址和硬件(yn jin)地址在不同層次起作用2022/7/19共七十一頁(2) IP地址與MAC地址轉換 在學習IP地址時,很重要的一點就是要分清一個主機的IP地址與MAC地址的區(qū)別。 假定主機通過局域網進行網絡互連。IP地址放在IP數據報的首部,而MAC地址則放在MAC幀的首部。在網
27、絡層使用的是IP地址,而在數據鏈路層使用的是MAC地址。 知道IP地址或MAC地址,又是如何(rh)在IP地址和物理地址之間建立起一個轉換關系的呢?這一任務又是由誰來完成的呢? 在IP層專門設計了兩個輔助協議來完成這兩項任務,它們就是ARP協議和RARP協議。2022/7/19共七十一頁(3) IP地址轉換成物理地址ARP協議 從IP地址到物理地址的轉換是由地址解析協議ARP來完成。 1)實現原理 由于IP地址為32位,而局域網的物理地址是48位,它們之間不存在數學上的換算關系(gun x)。此外,在一個網絡上可能經常會有新的計算機加入進來,或撤走一些計算機,當然更換計算機的網卡也會使其物理地
28、址改變??梢娫谟嬎銠C中應保存一個從IP地址到物理地址的轉換表,并且能夠經常動態(tài)更新。地址解析協議ARP很好地解決了這些問題。 實際中,每一個主機都有一個ARP高速緩存(ARP cache),里面存有IP地址到物理地址的映射表,這些都是該主機目前知道的一些地址。 當某主機A欲向本局域網上的某主機B發(fā)送一個IP數據報時,就先在其ARP高速緩存中查看有無主機B的IP地址。如有,就可查出其對應的物理地址,然后將此物理地址寫入MAC幀,再通過局域網發(fā)往此物理地址對應的站點B。2022/7/19共七十一頁 2)ARP映射表的形成 當出現上述情況時,主機A就自動運行ARP,按以下步驟找出主機B的物理地址:
29、ARP進程在本局域網上廣播一個ARP請求分組,該分組中有已知的主機B的IP地址; 在本局域網上的所有主機上運行的ARP進程都將收到此ARP請求分組; 主機B在ARP請求分組中見到自己的IP地址,就向主機A發(fā)送一個ARP響應(xingyng)分組,并在上面寫入自己的物理地址; 主機A收到主機B的ARP響應分組后,就在其ARP高速緩存中寫入主機B的IP地址到物理地址的映射。2022/7/19共七十一頁具體實現中的一種做法:在很多情況下,當主機A向主機B發(fā)送數據報時,很可能以后不久主機B還要向主機A發(fā)送數據報,因而主機B也可能要向主機A發(fā)送ARP請求分組。為了減少網絡上的通信量,通常主機A在發(fā)送其A
30、RP請求分組時,會將自己的IP地址到物理地址的映射寫入ARP請求分組。當主機B收到主機A的ARP請求分組時,主機B就將主機A的這一地址映射寫入主機B自己的ARP高速緩存中。這樣主機B以后向主機A發(fā)送數據報時就更方便了。 圖4.16和圖4.17分別說明了映射表的形成(xngchng)原理2022/7/19共七十一頁ABXYZARP響應00-00-C0-15-AD-18主機B向A發(fā)送ARP響應分組:我是,硬件地址是08-00-2B-00-EE-0A。08-00-2B-00-EE-0AABXYZARP請求00-00-C0-15-AD-18我是,硬件地址是00-00-C0-15-AD-18。我想知道主
31、機的硬件地址。08-00-2B-00-EE-0A圖4.16 映射表的形成原理(yunl)之一 局域網環(huán)境下2022/7/19共七十一頁HA1=00-00-C0-15-AD-18HA2=08-00-2B-00-EE-0AHA3=02-60-8C-01-02-03 IP1=IP2=IP3=主機H1主機H2IP1IP2HA1HA2R1R2IP3IP4IP5IP6HA3HA4HA5HA6ARP請求主機A發(fā)送ARP請求分組:我是,硬件地址是00-00-C0-15-AD-18。我想知道主機的硬件地址。ARP響應路由器R1向主機H1發(fā)送ARP響應分組:我是,硬件地址是02-60-8C-01-02-03 。圖
32、4.17 映射表的形成(xngchng)原理之二 互聯網環(huán)境下2022/7/19共七十一頁(4)物理地址轉換成IP地址RARP協議 從物理地址到IP地址的轉換由反向地址解析協議RARP來完成。 RARP使只知道自己物理地址的主機能夠知道其IP地址。這種主機往往是無盤工作站。無盤工作站通過運行ROM中的RARP來獲得其IP地址。 RARP的工作(gngzu)過程如下: 為了使RARP協議能正常工作,在局域網上至少有一個主機要充當RARP服務器。通常,無盤工作站先向局域網發(fā)出RARP請求分組(在格式上與ARP請求分組相似),并在此分組中給出自己的物理地址。2022/7/19共七十一頁 RARP服務
33、器有一個事先準備好的從無盤工作站的物理地址到IP地址的映射表,當收到RARP請求分組后,RARP服務器就從該映射表查出該無盤工作站的IP地址。然后寫入RARP響應分組,發(fā)回給無盤工作站。無盤工作站即可獲得自己(zj)的IP地址。 最后必須再次指出,無論IP地址是用二進制表示還是用十進制表示,終究只是一種數字形式,不僅難以記憶,而且也難以理解,更不形象。為此,因特網又專門設計了一種字符型的主機域名命名機制,這就是所謂的域名,或俗稱網址。2022/7/19共七十一頁四、傳輸層 傳輸層使高層用戶看見的就好像是在兩個傳輸層實體之間有一條端到端的、可靠的、全雙工通信通路(即數字管道)。實現端到端的進程與
34、進程之間可靠的用戶報文傳輸。1.TCP/IP傳輸層協議 用戶數據報協議UDP(User Datagram Protocol) 傳輸控制協議TCP(Transfer Control Protocol) UDP和TCP都使用IP協議提供的服務。 UDP是一種無連接的傳輸服務,它不保證(bozhng)數據以正確的序列被接收。UDP在傳送數據之前不需要先建立連接。遠地主機的傳輸層在收到UDP數據報后,不需要給出任何應答。2022/7/19共七十一頁 TCP是面向連接的,提供可靠的、按序傳送數據的服務。TCP提供的連接是雙向的,即全雙工的. TCP協議的主要功能: (1)確保IP數據報的成功傳遞(chu
35、nd)。 (2)對TCP程序發(fā)送的大塊數據進行分段和重組。 (3)確保正確排序以及按順序傳遞分段的數據。 (4)通過計算校驗和,進行傳輸數據的完整性檢查。 UDP和TCP都使用了傳輸層與應用層接口處的端口(port)與上層的應用進程進行通信。應用層的各種進程是通過相應的端口才能與傳輸實體進行通信。也稱為端口地址。端口是一個16bit的地址,并用端口號(端口地址)進行標識。端口是傳輸層與高層的服務接口。 2022/7/19共七十一頁表4-12 常用的TCP/IP端口號 端口號 進程名稱 所使用協議 描述 1 TCPMUX TCP TCP端口多路復用服務 5 RJE TCP 遠程任務入口 7 EC
36、HO TCP和UDP Echo(回聲) 11 USERS TCP和UDP 當前(dngqin)活躍用戶 13 DAYTIME TCP和UDP 日期時間 20 FTP-DATA TCP 文件傳輸-數據 21 FTP-CONTR TCP 文件傳輸-控制 23 TELNET TCP TELNET 25 SMTP TCP 簡單郵件傳輸協議 35 PRINTER TCP和UDP 任何私有打印機服務 41 GRAPHICS TCP和UDP 圖形 49 LOGIN TCP 登錄主機協議 53 DNS TCP和UDP 域名服務器 69 TFTP UDP 重要的文件傳輸協議 80 HTTP TCP和UDP 因特
37、網HTTP 110 POP3 TCP 郵局協議3 161 SNMP UDP 簡單網絡管理協議2022/7/19共七十一頁(1).TCP報文分段的格式 TCP報文分段的格式如圖4.18所示??梢?ky)看出,一個TCP報文分段分為首部和數據兩部分。 TCP報文分段首部的前20個字節(jié)是固定的,后面有4N字節(jié)是可有可無的選項及填充(N為整數)。因此TCP首部的最小固定長度是20字節(jié)。 最大首部長度為60字節(jié)。2022/7/19共七十一頁固定20字節(jié) 數據部分選項(可選)和填充 檢驗和 緊急指針首部長度 保留 標志 窗口確認號(Acknowledgement number)序號(Sequence nu
38、mber)源端口號 目的端口號0 15 16 31TCP首部首部長度(在有的教材中為“數據偏移(Data Offset)”,來自Stalings的教材,大部分教科書稱為Header Length)。 紅色字段與UDP相同。 注意確認號Ack與確認比特ACK的區(qū)別。 圖4.18 TCP報文段的格式(g shi)2022/7/19共七十一頁 源端口和目的端口 各占2個字節(jié)。 前面已講過,端口是傳輸層與高層的服務接口。16bit的端口號加上32bit的IP地址,構成了相當于傳輸層服務訪問點TSAP的地址(Socket套接字)。 這些端口可用來將若干高層協議向下復用。 序號Seq 占4字節(jié)。在TCP傳
39、送的數據流(字節(jié)流)中,每一個字節(jié)都有一個序號,以保證數據傳輸的可靠性。序號是報文段所發(fā)送的數據部分第一個字節(jié)的序號。例如,在一個報文段中,序號為300,而報文中的數據共100字節(jié),在下一個報文段中,序號是多少? 在建立連接時,由雙方隨機產生一個初始(ch sh)序號(ISN)。若ISN是2367,第一個報文段的數據長度為n字節(jié),則序號應為2369(2367和2368用于雙方連接建立的三次握手用,x,x+1;y,y+1)。目的進程在知道報文段的數據長度后就可確定最后一個字節(jié)的序號。 2022/7/19共七十一頁 確認號Ack 占4字節(jié),是期望從對方接收的報文段的序號。如果成功地收到了對方發(fā)送來
40、的序號x,而數據(shj)長度為300字節(jié),則確認號為x+300。 例如:A正確收到了B發(fā)送過來的一個報文段,序號501,數據300字節(jié),則A在發(fā)送給B的響應報文段中,設置確認號801。 首部長度 占4bit,取值為5(45=20字節(jié),固定報文段長度)-15(415=60字節(jié),最大報文段長度)。無TCP報文長度。 2022/7/19共七十一頁 保留字段為6bit,目前(mqin)沒有使用。 標志字段是報文段性質的控制比特,意義如下: 緊急比特URG(URGent) 當URG=1時,表明此報文段應盡快傳送(高優(yōu)先級數據),不要按原來的排隊順序來傳送。例如,已經發(fā)送了很長的一個程序要在遠地的主機上
41、運行。但后來發(fā)現程序有些問題,要取消該程序的運行。因此從鍵盤發(fā)出中斷信號(Control+C)。這就屬于緊急數據,緊急數據插入到報文段的數據部分的最前面,其余為普通數據。 URG要與 “緊急指針”(Urgent Pointer)字段配合使用。緊急指針指出在本報文段中的緊急數據的最后一個字節(jié)的序號。 緊急指針使接收方可以知道緊急數據共有多長(序號緊急指針緊急數據長度)。 URG=0,“緊急指針”字段無效。 2022/7/19共七十一頁 確認比特ACK 只有當ACK=1時確認號Ack字段才有意義。當ACK=0時,確認號Ack沒有意義。 急迫/推送比特PSH(PuSH) 當PSH=1時,表明請求遠地
42、TCP將本報文段立即傳送給其應用層,而不要等到整個緩沖區(qū)都填滿了后再向上交付(jiof)(將數據向前推)。一般不使用。 復位/重建比特RST(Reset) 當RST=1時,表明出現嚴重差錯(如由于主機崩潰或其它原因),必須釋放連接,然后再重建傳輸連接。擁塞控制。 重建比特還用來拒絕一個非法的報文段或打開一個連接。 2022/7/19共七十一頁 同步比特SYN 在建立連接時使用。當SYN=1和ACK=0 (確認號Ack無意義)時,表明這是一個連接請求報文段。對方若同意建立連接,則應在發(fā)回的報文段中使SYN=1和 ACK=1 (確認號Ack有意義) 。因此,同步比特SYN置為1,就表示這是一個連接
43、請求報文或同意連接報文,而ACK比特的值用來區(qū)分是哪一種(y zhn)報文。 終止比特FIN(FINal) 用來釋放一個連接。當FIN=1時,表明欲發(fā)送的字節(jié)中已經發(fā)完,并要求釋放傳輸連接。2022/7/19共七十一頁 窗口 占2字節(jié)。窗口字段實際上是報文段發(fā)送方的接收窗口,單位為字節(jié)。通過此窗口告訴對方,“在未收到我的確認時,你能發(fā)送的數據的字節(jié)數至多是此窗口的大小。”窗口起到流量控制作用。 檢驗和 占2字節(jié)。檢驗和字段檢驗的范圍包括首部和數據這兩部分。算法是將所有數據按16位長的字節(jié)加起來,再取和的反碼。同用戶數據報UDP一樣,在計算檢驗和時,要在TCP報文分段的前面加上一個12字節(jié)的偽首
44、部。偽首部的格式與UDP數據報的偽首部一樣。但應將偽首部的第4個字段中的17改為6(TCP協議號是6),將第5個字段中的UDP長度改為TCP長度。若使用IPv6,則相應(xingyng)的偽首部也要改變。2022/7/19共七十一頁 選項 長度可變。TCP只規(guī)定了一種選項,即最大報文分段MSS(Maximum Segment Size)。MSS告訴對方的TCP:“我的緩沖區(qū)所能接收的報文分段的最大長度是MSS ” 。 當MSS長度太短時,網絡的利用率就降低。設想在極端的情況下,當TCP報文分段只有一個(y )字節(jié)的數據時,在IP層傳輸的數據報的開銷至少有40個字節(jié)(包括TCP報文分段的首部和I
45、P數據報的首部)。這樣,對網絡的利用率就不會超過1/41。到了數據鏈路層還要加上一些開銷。 若TCP報文分段太長,在IP層傳輸時就可能要分解成多個IP數據報。在目的站要將收到的各個IP數據報裝配成原來的TCP報文分段。當傳輸出錯時還要進行重傳。這些也都會使開銷增大。2022/7/19共七十一頁 一般認為,MSS應盡可能大些,只要在網絡層傳輸時不需要再分段就行。在連接建立的過程中,雙方都將自己能夠支持的最大報文長度MSS寫入這一字段。在以后的數據傳送階段,MSS取雙方提出的較小的那個數值。若主機未填寫這項,則MSS的默認值是536字節(jié)長的凈負荷(TCP報文段的數據部分)。因此,所有(suyu)在
46、Internet上的主機都應能夠接收的TCP報文分段長度是536 + 20=556字節(jié)。2022/7/19共七十一頁 (2)、TCP的運輸連接管理 運輸連接的管理就是使運輸連接的建立和釋放都能正常的進行。 a.連接的建立 在連接建立過程中有三個問題必須解決好: 要使每一方能夠確知對方的存在; 要允許雙方協商一些參數(如最大報文段長度、最大窗口(chungku)大小、服務質量等); 能夠對運輸實體的資源(如緩沖區(qū)大小,連接表中的項目等)進行分配。 從可靠通信的角度出發(fā), TCP采用了所謂的“三次握手”聯絡方式,如圖4.19所示。2022/7/19共七十一頁主機A主機BA發(fā)連接請求:SYN=1,A
47、CK=0,Seq=XB發(fā)同意連接并請求與A連接(全雙工):SYN=1,ACK=1, Ack=X1,Seq=YA同意連接:SYN=1,ACK=1, Ack=Y1圖4.19 用三次(sn c)握手建立TCP 連接2022/7/19共七十一頁 設客戶進程運行在主機A中,服務器進程運行在主機B中。 A先向其TCP發(fā)出主動打開(active open)命令。主機A的TCP向主機B的TCP發(fā)出連接請求報文段,其首部中的同步比特SYN應置為1,同時選擇一個序號x,表明在后面?zhèn)魉蛿祿r的第一個數據字節(jié)(z ji)的序號是x。 在圖4.19中,一個從A到B的箭頭上標有“SYN=1,ACK=0,Seq= x ”,
48、就表達了這個意思。2022/7/19共七十一頁 主機B的TCP收到連接請求報文段后,如同意連接,在確認報文段中應將SYN1,ACK=1,Ack=x+1,Seq=y。 主機A的TCP收到此報文段后,還要向B給出確認,Ack=y+1。 運行客戶進程的主機A的TCP通知上層應用進程,連接已經建立(或打開(d ki)。 當運行服務器進程的主機B的TCP收到主機A的確認后,也通知其上層應用進程,連接已經建立。 連接建立采用的這種過程叫做三次握手(three-way handshake),或三次聯絡。實際上是四次握手的合并。2022/7/19共七十一頁b.連接的釋放 在數據傳輸結束后,通信的雙方都可以發(fā)出
49、釋放連 接的請求,圖4.20描述(mio sh)了連接釋放的過程。圖4.20 連接釋放(shfng)的過程應用進程釋放連接主機A主機BFIN=1, Seq=xAck=x+1Ack=y+1通知主機應用進程FIN=1, Seq=y Ack=x+1應用進程釋放連接2022/7/19共七十一頁2、用戶數據報協議UDP 用戶數據報協議UDP只在IP數據報服務之上增加(zngji)了很少的一點功能,這就是端口的功能。用戶數據報UDP有兩個字段:數據字段和首部字段,如圖4.21所示。圖4.21 UDP數據(shj)報的首部和偽首部IP分組IP首部 IP數據部分UDP數據報 首部 UDP數據部分偽首部 源端口
50、號 目的端口號 UDP長度 校驗和 12 2 2 2 2 源IP地址 目的IP地址 0 17 UDP長度 4 4 1 1 22022/7/19共七十一頁 首部字段很簡單,只有8個字節(jié),由4個字段組成(z chn),每個字段都是兩個字節(jié)。各字段意義如下: 源端口號字段 16bit,源端口號 目的端口號字段 16bit,目的端口號 長度字段 16bit,UDP數據報的長度 檢驗和字段 16bit,防止UDP數據報在傳輸中出錯 UDP用戶數據報在計算校驗和時要在UDP用戶數據報之前加12字節(jié)的“偽首部”(不是真正的首部)僅僅時為了計算校驗和。 2022/7/19共七十一頁 UDP數據報首部中檢驗和的
51、計算方法與IP數據報相同,也不使用CRC校驗碼。在計算檢驗和時在UDP數據報之前(zhqin)要增加12個字節(jié)的偽首部。所謂“偽首部”是因為這種偽首部并不是UDP數據報真正的首部。只是在計算檢驗和時,臨時和UDP數據報連接在一起,得到一個過渡的UDP數據報。檢驗和就是按照這個過渡的UDP數據報來計算的。偽首部既不向下傳送,也不向上遞交。UDP數據報中無序號字段。 偽首部的第3字段是全0,第4個字段是IP首部中的協議字段的值。對于UDP,此協議字段值為17。第5字段是UDP數據報的長度。2022/7/19共七十一頁UDPTCP無連接的服務,在主機之間不建立會話面向連接的服務,在主機之間建立會話不能確保數據或承認數據傳遞或排序數據通過確認和按序傳遞數據來確保數據的傳遞使用UDP的應用程序負責提供數據所需的可靠性使用TCP的程序能確保可靠的數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家居訂購合同模板
- 招標文件審查與施工合同要點解讀
- 簡易型服裝交易合同
- 碎石采購合同樣本合同
- 飼料添加劑采購合同的合同終止
- 熟食制品廠購銷
- 增資擴股協議書簡化格式
- 家居采購安裝合同的履行要點
- 倉儲物流配送業(yè)務合同模板
- 物業(yè)服務合同協議書示例
- 客運企業(yè)雙重預防體系培訓(57頁)
- 新概念 二 Lesson 75 SOS
- 鋁合金壓鑄件的標準
- 浙美版三年級上冊美術試卷(共4頁)
- 吹風機成品過程質量控制檢查指引
- 固定資產情況表
- 瀝青路面施工監(jiān)理工作細則
- 《彩色的中國》音樂教學設計
- 人教版八年級上冊英語單詞表默寫版(直接打印)
- 4.初中物理儀器配備目錄清單
- 企業(yè)中高層人員安全管理培訓--責任、案例、管理重點
評論
0/150
提交評論