




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 目目 錄錄5.1 5.1 運(yùn)輸層概述運(yùn)輸層概述 5.2 5.2 用戶數(shù)據(jù)報(bào)協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議UDPUDP 5.2.1 UDP概述 5.2.2 UDP的報(bào)文格式 5.2.3 UDP協(xié)議的特征 5.1.1 運(yùn)輸層的功能 5.1.2 運(yùn)輸層的服務(wù)5.1.3 端口的概念 5.3 5.3 傳輸控制協(xié)議傳輸控制協(xié)議TCPTCP 5.3.1 TCP概述5.3.2 TCP報(bào)文段的首部 5.3.3 TCP的連接管理 5.3.4 TCP的可靠傳輸 目目 錄錄5.4 5.4 基于基于SocketSocket接口的網(wǎng)絡(luò)編程接口的網(wǎng)絡(luò)編程5.4.1 Socket編程基礎(chǔ)知識(shí)5.4.2 Winsock接口規(guī)范及基本調(diào)用
2、5.4.3 無(wú)連接的Socket編程5.3.4 面向連接的Socket編程5.3.5 TCP的流量控制機(jī)制5.3.6 TCP的擁塞控制機(jī)制5.3.7 IP層對(duì)改善TCP性能的支持5.1 運(yùn)輸層概述運(yùn)輸層概述5.1.1 運(yùn)輸層的功能在因特網(wǎng)體系結(jié)構(gòu)中,運(yùn)輸層具有承上啟下的作用:它向上面的應(yīng)用層提供通信服務(wù),屬于面向通信部分的最高層,同時(shí)也是應(yīng)用功能的最低層。 運(yùn)輸層的個(gè)基本功能就是允許通信在進(jìn)程而非主機(jī)之間進(jìn)行,即實(shí)現(xiàn)進(jìn)程的復(fù)用和分用。5.1.1 5.1.1 運(yùn)輸層的功能運(yùn)輸層的功能網(wǎng)絡(luò)層和運(yùn)輸層的根本區(qū)別 運(yùn)輸層為應(yīng)用進(jìn)程進(jìn)程之間提供邏輯通信,而網(wǎng)絡(luò)層是為主機(jī)主機(jī)之間提供邏輯通信 5.1.1
3、5.1.1 運(yùn)輸層的功能運(yùn)輸層的功能運(yùn)輸層需具備保證傳輸可靠性的能力,即保證接收方能正確地接收發(fā)送方傳送的數(shù)據(jù)。 為實(shí)現(xiàn)可靠傳輸,通常不僅要對(duì)收到的報(bào)文進(jìn)行差錯(cuò)檢測(cè),還要能夠檢測(cè)出分組丟失與重復(fù)分組丟失與重復(fù),并對(duì)正確接收的數(shù)據(jù)分組進(jìn)行排序排序。 根據(jù)網(wǎng)絡(luò)的狀態(tài)控制注入網(wǎng)絡(luò)中流量以避免網(wǎng)絡(luò)交換結(jié)點(diǎn)發(fā)生過載。 5.1.2 5.1.2 運(yùn)輸層的服務(wù)運(yùn)輸層的服務(wù)TCP/IP的運(yùn)輸層有兩個(gè)不同的協(xié)議 傳輸控制協(xié)議TCPTCP(Transmission Control Protocol),由RFC 768定義; 用戶數(shù)據(jù)報(bào)協(xié)議UDPUDP(User Datagram Protocol),由RFC 793
4、定義。 它們分別實(shí)現(xiàn)面向連接和無(wú)連接的運(yùn)輸層服務(wù)。 5.1.2 5.1.2 運(yùn)輸層的服務(wù)運(yùn)輸層的服務(wù)UDP UDP是一個(gè)輕量級(jí)輕量級(jí)的運(yùn)輸協(xié)議,它的主要功能是在IP協(xié)議之上提供協(xié)議之上提供進(jìn)程復(fù)用與分用進(jìn)程復(fù)用與分用。通過UDP進(jìn)行數(shù)據(jù)傳送時(shí),在傳送數(shù)據(jù)之前不需不需要先建立連接要先建立連接,遠(yuǎn)程主機(jī)的運(yùn)輸層在收到UDP報(bào)文后,也不需要給不需要給出任何確認(rèn)出任何確認(rèn)。 UDP只能提供不可靠不可靠的數(shù)據(jù)交付,也沒有實(shí)現(xiàn)主機(jī)之間的速率協(xié)調(diào)速率協(xié)調(diào)和面向網(wǎng)絡(luò)的流量控制面向網(wǎng)絡(luò)的流量控制。 UDP是種簡(jiǎn)單高效簡(jiǎn)單高效的工作方式。域名解析服務(wù)(DNS)就使用UDP作為運(yùn)輸協(xié)議。此外,大多數(shù)的多媒體數(shù)據(jù)傳送
5、也都采用UDP。 運(yùn)輸層的UDP用戶數(shù)據(jù)報(bào)與網(wǎng)際層的IP數(shù)據(jù)報(bào)有很大的區(qū)別很大的區(qū)別。IP數(shù)據(jù)報(bào)要經(jīng)過互連網(wǎng)中許多路由器的存儲(chǔ)轉(zhuǎn)發(fā)路由器的存儲(chǔ)轉(zhuǎn)發(fā),但UDP用戶數(shù)據(jù)報(bào)是在運(yùn)輸層的端到端的抽象邏輯信道中端到端的抽象邏輯信道中傳送的。 5.1.2 5.1.2 運(yùn)輸層的服務(wù)運(yùn)輸層的服務(wù)TCP TCP則提供面向連接面向連接的服務(wù)。在傳送數(shù)據(jù)之前必須先建立連接,數(shù)據(jù)傳送結(jié)束后要釋放連接。由于TCP要提供可靠的、面向連接的運(yùn)輸服務(wù),因此不可避免地增加了許多的開銷,如確認(rèn)、流量控制確認(rèn)、流量控制、定時(shí)器、定時(shí)器以及連接管理等。連接管理等。 UDP是種簡(jiǎn)單高效簡(jiǎn)單高效的工作方式。域名解析服務(wù)(DNS)就使用U
6、DP作為運(yùn)輸協(xié)議。此外,大多數(shù)的多媒體數(shù)據(jù)傳送也都采用UDP。 TCP連接也和網(wǎng)絡(luò)層中的虛電路虛電路(如X.25所使用的)完全不同。TCP報(bào)文段是在運(yùn)輸層的端到端抽象的邏輯信道中傳送,但TCP連接是可靠的全雙工信道可靠的全雙工信道,不涉及到網(wǎng)絡(luò)中的路由器網(wǎng)絡(luò)中的路由器。 5.1.2 5.1.2 運(yùn)輸層的服務(wù)運(yùn)輸層的服務(wù)運(yùn)輸層向上提供可靠的和不可靠的邏輯通信信道 5.1.3 5.1.3 端口的概念端口的概念 為了使運(yùn)行不同操作系統(tǒng)的計(jì)算機(jī)的應(yīng)用進(jìn)程能夠互相通信,就必須用統(tǒng)一統(tǒng)一的的方法對(duì) TCP/IP 體系的應(yīng)用進(jìn)程進(jìn)行標(biāo)識(shí)標(biāo)識(shí)。 UDP和TCP通過定義端口端口(port)(port)作為進(jìn)程標(biāo)
7、識(shí)實(shí)現(xiàn)進(jìn)程的復(fù)用與分用。 應(yīng)用層的各種進(jìn)程是通過相應(yīng)的端口與運(yùn)輸實(shí)體端口與運(yùn)輸實(shí)體進(jìn)行交互 。當(dāng)運(yùn)輸層根據(jù)IP層交上來的數(shù)據(jù)首部的端口號(hào)首部的端口號(hào)來決定應(yīng)當(dāng)通過哪個(gè)端口上交給接收此數(shù)據(jù)的應(yīng)用進(jìn)程。 若沒有端口,運(yùn)輸層就無(wú)法知道數(shù)據(jù)應(yīng)當(dāng)交付給應(yīng)用層的哪一個(gè)進(jìn)程。端口是用來標(biāo)識(shí)應(yīng)用層標(biāo)識(shí)應(yīng)用層的進(jìn)程。運(yùn)輸層與應(yīng)用層的接口上所設(shè)置端口是一個(gè)16比特(bit)的二進(jìn)制地址,并稱之為端口號(hào)端口號(hào)。 端口的作用就是:應(yīng)用層的源進(jìn)程將報(bào)文發(fā)送給運(yùn)輸層的某個(gè)端口,而應(yīng)用層的目的進(jìn)程從端口接收?qǐng)?bào)文。 端口號(hào)只具有本地本地意義 。 端口號(hào)分為三類 :熟知端口號(hào)、登記端口號(hào)熟知端口號(hào)、登記端口號(hào) 、客戶端口號(hào)(暫
8、時(shí)端口號(hào)、客戶端口號(hào)(暫時(shí)端口號(hào)) 5.1.3 5.1.3 端口的概念端口的概念 端口在進(jìn)程之間的通信中所起的作用 5.2 5.2 用戶數(shù)據(jù)報(bào)協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議UDP UDP 5.2.1 UDP概述 UDP的中文全稱是用戶數(shù)據(jù)報(bào)協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議,是因特網(wǎng)中一種無(wú)連接無(wú)連接的運(yùn)輸層協(xié)議,提供面向事務(wù)面向事務(wù)的簡(jiǎn)單不可靠簡(jiǎn)單不可靠數(shù)據(jù)傳送服務(wù)。UDP只提供不可靠的數(shù)據(jù)交付,它把應(yīng)用程序發(fā)給網(wǎng)絡(luò)層的數(shù)據(jù)發(fā)送出去后,不再保留數(shù)據(jù)備份保留數(shù)據(jù)備份。 UDP協(xié)議只在IP的數(shù)據(jù)報(bào)服務(wù)之上增加了很少的功能,即基于端口的進(jìn)程復(fù)用進(jìn)程復(fù)用/分用功能分用功能和差錯(cuò)檢測(cè)差錯(cuò)檢測(cè)的功能。使用UDP的應(yīng)用需負(fù)責(zé)避免因U
9、DP流量負(fù)荷過高而導(dǎo)致的網(wǎng)絡(luò)擁塞崩潰效應(yīng)。 雖然UDP只能提供不可靠的交付,但它在某些方面有其特殊特殊的優(yōu)點(diǎn)的優(yōu)點(diǎn)。5.2.2 UDP5.2.2 UDP的報(bào)文格式的報(bào)文格式 UDP協(xié)議數(shù)據(jù)單元有兩個(gè)字段:數(shù)據(jù)字段數(shù)據(jù)字段和首部字段。首部字段。 UDP用戶數(shù)據(jù)報(bào)的首部和偽首部(圖):(1)源端口字段:源端口號(hào)。 (2)目的端口字段:目的端口號(hào)。 (3)長(zhǎng)度字段:UDP用戶數(shù)據(jù)報(bào)的長(zhǎng)度。 (4)檢驗(yàn)和字段:防止UDP用戶數(shù)據(jù)報(bào)在傳輸中出錯(cuò)的差錯(cuò)控制碼。 5.2.3 UDP5.2.3 UDP協(xié)議的特征協(xié)議的特征 UDP是一個(gè)無(wú)連接協(xié)議,傳送數(shù)據(jù)之前源端和終端無(wú)需建立連接。 UDP報(bào)文首部很短,只有8
10、個(gè)字節(jié) 。UDP不保證可靠交付 。UDP是面向報(bào)文的。 由于傳輸數(shù)據(jù)不建立連接,因此也就不需要維護(hù)連接狀態(tài)。吞吐量不受擁塞控制算法的調(diào)節(jié),只受應(yīng)用生成數(shù)據(jù)的速率、傳輸帶寬、源端和終端主機(jī)性能的限制。 5.3 5.3 傳輸控制協(xié)議傳輸控制協(xié)議TCP TCP 5.3.1 TCP概述TCP(Transmission Control Protocol, RFC793)是一種面向連接的、可靠的、基于字節(jié)流的全雙工面向連接的、可靠的、基于字節(jié)流的全雙工運(yùn)輸層通信協(xié)議。 TCP 連接是邏輯連接而不是真正的物理連接不是真正的物理連接,是一種通信協(xié)議的抽象通信協(xié)議的抽象。 TCP協(xié)議采用了許多與數(shù)據(jù)鏈路層類似的
11、機(jī)制來保證可靠的數(shù)據(jù)傳輸 :首先,TCP要為所發(fā)送的每一個(gè)報(bào)文段加上序列號(hào),保證每一個(gè)報(bào)文段能被接收方接收,并只被正確地接收一次。其次,TCP采用具有重傳功能的主動(dòng)確認(rèn)技術(shù)作為可靠數(shù)據(jù)流傳輸服務(wù)的基礎(chǔ)。 第三,TCP協(xié)議具有面向字節(jié)流的特性。5.3.2 TCP5.3.2 TCP報(bào)文段的首部報(bào)文段的首部 vTCP的協(xié)議數(shù)據(jù)單元被稱為報(bào)文段報(bào)文段(SegmentSegment)。與UDP類似,TCP報(bào)文段分為首部首部和數(shù)據(jù)數(shù)據(jù)兩部分 。TCP的全部功能都體現(xiàn)在它的首部的各字段中 報(bào)頭字段名位數(shù)說 明源端口號(hào)目的端口號(hào)序號(hào)(SEQ)確認(rèn)號(hào)(ACK)數(shù)據(jù)偏移控制字段(CTL)URGACKPSHRSTS
12、YNFIN窗口校驗(yàn)和緊急指針選項(xiàng)填充161632324111111161616可變可變本地通信端口,支持TCP的多路復(fù)用機(jī)制遠(yuǎn)地通信端口,支持TCP的多路復(fù)用機(jī)制數(shù)據(jù)段第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)(除含有SYN的段外);SYN段的SYN序號(hào)(建立本次連接的初始序號(hào))表示本地希望接收的下一個(gè)數(shù)據(jù)字節(jié)的序號(hào)指出該段中數(shù)據(jù)的起始位置(以32位為單位)緊急指針字段有效標(biāo)志,即該段中攜帶緊急數(shù)據(jù)確認(rèn)號(hào)字段有效標(biāo)志PUSH操作的標(biāo)志要求異常終止通信連接的標(biāo)志建立同步連接的標(biāo)志本地?cái)?shù)據(jù)發(fā)送已結(jié)束,終止連接的標(biāo)志本地接收窗口尺寸,即本地接收緩沖區(qū)大小包括TCP報(bào)頭和數(shù)據(jù)在內(nèi)的校驗(yàn)和從段序號(hào)開始的正向位移,指向緊急數(shù)據(jù)
13、的最后一個(gè)字節(jié)提供任選的服務(wù)保證TCP報(bào)頭以32位為邊界對(duì)齊5.3.3 TCP5.3.3 TCP的連接管理的連接管理 TCP是面向連接面向連接的運(yùn)輸協(xié)議,連接的建立和釋放是每一次通信中必不可少的過程。TCPTCP連接管理就是連接管理就是使運(yùn)輸連接的建立和釋放能正常地進(jìn)行使運(yùn)輸連接的建立和釋放能正常地進(jìn)行。在連接建立過程中要解決以下三個(gè)問題。 要使每一方能夠確知對(duì)方的存在。 要允許雙方協(xié)商一些參數(shù)。 能夠?qū)\(yùn)輸實(shí)體資源。 TCP的連接建立采用客戶/服務(wù)器方式。主動(dòng)發(fā)起連接建立的進(jìn)程叫做客戶(client),被動(dòng)等待連接建立的進(jìn)程叫服務(wù)器(server)。 5.3.3 TCP5.3.3 TCP的連
14、接管理的連接管理 三次握手三次握手設(shè)主機(jī)B中運(yùn)行一個(gè)服務(wù)器過程(見下圖),它先發(fā)出一個(gè)被動(dòng)打開(passive open)命令,告訴它的TCP要準(zhǔn)備接受客戶進(jìn)程的連接請(qǐng)求。然后服務(wù)器進(jìn)程就處于“監(jiān)聽”(listen)的狀態(tài),不斷檢測(cè)是否有客戶進(jìn)程要發(fā)起連接請(qǐng)求,如有,即做出響應(yīng)。 設(shè)客戶進(jìn)程運(yùn)行在主機(jī)A中。它先向其TCP發(fā)出主動(dòng)打開(active open)命令,表明要向某個(gè)IP地址的某個(gè)端口建立運(yùn)輸連接。 主機(jī)A的TCP向主機(jī)B的TCP發(fā)出連接請(qǐng)求報(bào)文段,其首部的同步比特SYN應(yīng)置為1,同時(shí)選樣個(gè)序號(hào)x表明在后面?zhèn)魉蛿?shù)據(jù)時(shí)的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)是x。在圖5-10中,一個(gè)從A到B的箭頭上標(biāo)有“
15、SYN,SEQx”就是這個(gè)意思。 主機(jī)B的TCP收到連接請(qǐng)求報(bào)文段后,如同意,則發(fā)回確認(rèn)。在確認(rèn)報(bào)文段中應(yīng)將SYN置為1,確認(rèn)序號(hào)應(yīng)為x+1,同時(shí)也為自己選擇一個(gè)序號(hào)y。 主機(jī)A的TCP收到此報(bào)文段后,還要向B給出確認(rèn),其確認(rèn)序號(hào)為y+1。 運(yùn)行客戶進(jìn)程的主機(jī)A的TCP通知上層應(yīng)用進(jìn)程,連接已經(jīng)建立(或打開)。 運(yùn)行服務(wù)器進(jìn)程的主機(jī)B的TCP收到主機(jī)A的確認(rèn)后,也通知其上層應(yīng)用進(jìn)程,連接已經(jīng)建立。 5.3.3 TCP5.3.3 TCP的連接管理的連接管理 用三次握手建立 TCP 連接 圖5-11 TCP 連接釋放的過程5.3.4 TCP的可靠傳輸?shù)目煽總鬏擳CP的可靠傳輸建立在數(shù)據(jù)編號(hào)和重傳的
16、基礎(chǔ)之的可靠傳輸建立在數(shù)據(jù)編號(hào)和重傳的基礎(chǔ)之上。上。 數(shù)據(jù)編號(hào)保證收方雙方可以管理每一個(gè)字節(jié),而重傳則為數(shù)據(jù)字節(jié)丟失提供補(bǔ)救措施。重傳機(jī)制是TCP中最重要和最復(fù)雜的問題之一。TCP每發(fā)送一個(gè)報(bào)文段,就設(shè)置一次計(jì)時(shí)器。只要計(jì)時(shí)器設(shè)置的重傳時(shí)間已經(jīng)到了但還沒有收到確認(rèn),就要重傳這一報(bào)文段。TCP的確認(rèn)是針對(duì)接收到的連續(xù)數(shù)據(jù)的最高序號(hào)。 通信中的每一方都不必專門發(fā)送確認(rèn)報(bào)文段,而可以在傳送數(shù)據(jù)時(shí)順便把確認(rèn)信息捎帶傳送,這樣做可以提高傳輸效率。 5.3.4 TCP的可靠傳輸?shù)目煽總鬏敯l(fā)送端如何控制發(fā)送端如何控制TCP發(fā)送報(bào)文段的時(shí)機(jī)發(fā)送報(bào)文段的時(shí)機(jī) 。 應(yīng)適當(dāng)推遲發(fā)回確認(rèn)報(bào)文,并盡量使用捎帶確認(rèn)的方法
17、。(TELNET連接案例)Nagle算法:適合字符到達(dá)較快而網(wǎng)絡(luò)速率較慢,不適宜如X Windows中將鼠標(biāo)移動(dòng)的信息傳到遠(yuǎn)地主機(jī)的情形。解決糊涂窗口綜合癥問題。5.3.4 TCP的可靠傳輸?shù)目煽總鬏斶\(yùn)輸層的超時(shí)器的重傳時(shí)間運(yùn)輸層的超時(shí)器的重傳時(shí)間設(shè)置。TCP采用了一種自適應(yīng)自適應(yīng)算法。平均往返時(shí)延平均往返時(shí)延T Ta a* *( (舊的往返時(shí)延舊的往返時(shí)延T)T)(1-a)(1-a)* *( (新的往返時(shí)延樣本新的往返時(shí)延樣本) )典型的a值為7/8 重傳時(shí)間重傳時(shí)間B B* *( (平均往返時(shí)延平均往返時(shí)延) ) 因此TCP原先的標(biāo)準(zhǔn)推薦將B值取為2。 Karn提出了一個(gè)算法:在計(jì)算平均往
18、返時(shí)延時(shí),只要報(bào)文段重傳了,就不采用其往返時(shí)延樣本。這樣得出的平均往返時(shí)延和重傳時(shí)間當(dāng)然就較準(zhǔn)確。 對(duì)Karn算法進(jìn)行修正的方法是:報(bào)文段重傳一次,就將重傳時(shí)間增大一些 。5.3.5 TCP5.3.5 TCP的流量控制機(jī)制的流量控制機(jī)制TCP采用可變長(zhǎng)的滑動(dòng)窗口協(xié)議進(jìn)行流量控制,以防止由于發(fā)送端與接收端之間的不匹配而引起數(shù)據(jù)丟失。 流量控制(flow control)就是讓發(fā)送方的發(fā)送速率不要太快,既要讓接收方來得及接收,也不要使網(wǎng)絡(luò)發(fā)生擁塞。 為了提高報(bào)文段的傳輸效率,TCP采用大小可變的滑動(dòng)窗口進(jìn)行流量控制。窗口大小的單位是字節(jié)。 TCP中的滑動(dòng)窗口概念 5.3.6 TCP5.3.6 TC
19、P的擁塞控制機(jī)制的擁塞控制機(jī)制擁塞控制原理?yè)砣刂圃砹髁靠刂仆冈诮o定的發(fā)送端和接收端之間的兩點(diǎn)間通信量的控制。流量控制就是調(diào)節(jié)發(fā)送端發(fā)送數(shù)據(jù)調(diào)節(jié)發(fā)送端發(fā)送數(shù)據(jù)的速率的速率,以便與接收端的接收速率匹配。 在某段時(shí)間,若對(duì)網(wǎng)絡(luò)中某種資源的需求超過了該資源所能提供的可用部分,網(wǎng)絡(luò)的性能就要變壞產(chǎn)生擁塞擁塞(congestion)。 擁塞控制是一個(gè)全局性的過程 。涉及到所有的主機(jī)、所有的路由器,以及與降低網(wǎng)絡(luò)傳輸性能有關(guān)的所有因素。 實(shí)現(xiàn)擁塞控制 :1)開環(huán)控制方法 2)閉環(huán)控制方法 5.3.6 TCP5.3.6 TCP的擁塞控制機(jī)制的擁塞控制機(jī)制 TCP擁塞控制機(jī)制擁塞控制機(jī)制擁塞控制的目的就
20、是要公平合理地在所有共享瓶頸鏈路的主機(jī)之間分配該鏈路的通信資源,保證通信功能的正常。實(shí)現(xiàn)擁塞控制需要的一個(gè)基本信息就是瓶頸鏈路當(dāng)前的可用資源。在TCP中,這個(gè)信息是通過擁塞窗口間接表示的。 接收端窗口接收端窗口 rwnd、擁塞窗口擁塞窗口 cwnd TCP的擁塞控制包括慢啟動(dòng)、擁塞避免、快重傳和快恢復(fù)四種算法。慢啟動(dòng)和擁塞避免算法的擁塞窗口變化過程慢啟動(dòng)和擁塞避免算法的擁塞窗口變化過程 2216“乘法減小”24681012141618200048122024擁塞窗口 cwnd新的 ssthresh 值網(wǎng)絡(luò)擁塞指數(shù)規(guī)律增長(zhǎng)ssthresh 的初始值慢啟動(dòng)慢啟動(dòng)慢啟動(dòng)擁塞避免“加法增大”擁塞避免“
21、加法增大”傳輸輪次5.3.7 IP5.3.7 IP層對(duì)改善層對(duì)改善TCPTCP性能的支持性能的支持網(wǎng)絡(luò)結(jié)點(diǎn)采取擁塞避免措施是更加有效的擁塞控制方法。 傳統(tǒng)的隊(duì)列管理采用的尾丟棄尾丟棄(Tail Drop, TD)方法:若報(bào)文到來時(shí)隊(duì)列已滿,則丟棄該報(bào)文。 帶來兩個(gè)問題:1) “排外排外”(lock-out),單個(gè)或少數(shù)流始終占據(jù)隊(duì)列空間,其它流沒有機(jī)會(huì)得到緩存;2) “滿隊(duì)滿隊(duì)”(full queue)隊(duì)列經(jīng)常保持在滿狀態(tài),如果有突發(fā)流量到達(dá)將造成大量的分組同時(shí)丟失,從而引起“全局同步”(global synchronization)。 IETF提出用主動(dòng)隊(duì)列管理主動(dòng)隊(duì)列管理(Active Q
22、ueue Management, AQM)來解決上述問題。 主動(dòng)隊(duì)列管理的算法有很多,本章通過著名的 隨機(jī)早檢測(cè)隨機(jī)早檢測(cè) (Random Early Detection,RED)算法來說明其基本工作原理。在RED算法中,路由器的隊(duì)列維持兩個(gè)參數(shù),即隊(duì)列長(zhǎng)度最小門限 THmin 和最大門限 THmax。RED 對(duì)每一個(gè)到達(dá)的數(shù)據(jù)報(bào)都先計(jì)算平均隊(duì)列長(zhǎng)度 LAV:u若平均隊(duì)列長(zhǎng)度小于最小門限 THmin,則將新到達(dá)的數(shù)據(jù)報(bào)放入隊(duì)列進(jìn)行排隊(duì)。u若平均隊(duì)列長(zhǎng)度超過最大門限 THmax,則將新到達(dá)的數(shù)據(jù)報(bào)丟棄。u若平均隊(duì)列長(zhǎng)度在最小門限 THmin 和最大門限THmax 之間,則按照某一概率 p 將新到
23、達(dá)的數(shù)據(jù)報(bào)丟棄。 隨機(jī)早檢測(cè)算法的基本操作原理。 從隊(duì)首發(fā)送最小門限 THmin最大門限 THmin分組到達(dá)平均隊(duì)列長(zhǎng)度 Lav排隊(duì)丟棄以概率 p 丟棄5.4 5.4 基于基于SocketSocket接口的網(wǎng)絡(luò)編程接口的網(wǎng)絡(luò)編程5.4.1 Socket編程基礎(chǔ)知識(shí)編程基礎(chǔ)知識(shí) Socket接口接口是支持TCP/IP網(wǎng)絡(luò)應(yīng)用開發(fā)的的應(yīng)用編程接口應(yīng)用編程接口(Application Programming Interface,縮寫API)。 Socket接口定義了應(yīng)用程序與協(xié)議棧軟件協(xié)議棧軟件進(jìn)行交互時(shí)可以使用的一組操作,決定了應(yīng)用應(yīng)用程序使用協(xié)議棧的方式、以及所能實(shí)現(xiàn)的功能。程序使用協(xié)議棧的方式
24、、以及所能實(shí)現(xiàn)的功能。 套接字上承應(yīng)用進(jìn)程,下啟網(wǎng)絡(luò)協(xié)議棧,是應(yīng)用程序通過網(wǎng)絡(luò)協(xié)議棧進(jìn)行通信的接口。 在UNIX系統(tǒng)中,網(wǎng)絡(luò)應(yīng)用編程接口有兩類:BSD UNIX的套接字(socket)和System V的TLI。 應(yīng)用進(jìn)程、套接口、網(wǎng)絡(luò)協(xié)議棧及操作系統(tǒng)的關(guān)系 5.4.1 Socket編程基礎(chǔ)知識(shí)(Windows系統(tǒng)中的網(wǎng)絡(luò)編程接口 )網(wǎng)絡(luò)編程與進(jìn)程間通信網(wǎng)絡(luò)編程與進(jìn)程間通信端口端口 :網(wǎng)絡(luò)中可以被命名和尋址的通信端口,是操作系統(tǒng)可分配的一種資源。 地址地址 連接連接 :兩個(gè)進(jìn)程間的通信鏈路稱為連接。網(wǎng)絡(luò)中用一個(gè)三元組可以在全局唯一標(biāo)志一個(gè)進(jìn)程: (協(xié)議,(協(xié)議,本地地址,本地端口號(hào))。本地地址
25、,本地端口號(hào))??蛻艨蛻?服務(wù)器模式服務(wù)器模式 :網(wǎng)絡(luò)應(yīng)用本質(zhì)上是一種分布式應(yīng)用系統(tǒng)。分網(wǎng)絡(luò)應(yīng)用本質(zhì)上是一種分布式應(yīng)用系統(tǒng)。分布式應(yīng)用系統(tǒng)需要解決的一個(gè)基本問題是系統(tǒng)中的各方如何進(jìn)行協(xié)布式應(yīng)用系統(tǒng)需要解決的一個(gè)基本問題是系統(tǒng)中的各方如何進(jìn)行協(xié)作。客戶作。客戶/ /服務(wù)器模式就是一種最為常用的分布式系統(tǒng)協(xié)作模式。服務(wù)器模式就是一種最為常用的分布式系統(tǒng)協(xié)作模式。 套接口類型套接口類型 :流式套接字(SOCK_STREAM) 、數(shù)據(jù)報(bào)式套接字(SOCK_DGRAM) 、原始式套接字(SOCK_RAW) 5.4.2 Winsock5.4.2 Winsock接口規(guī)范及基本調(diào)用接口規(guī)范及基本調(diào)用Windo
26、ws SocketsWindows Sockets(簡(jiǎn)稱Winsock)規(guī)范以BSD UNIX SocketBSD UNIX Socket接口接口為藍(lán)本定義了一套Micosoft Windows平臺(tái)上的網(wǎng)絡(luò)編程接口。它不僅包含了人們所熟悉的Berkeley Sockets風(fēng)格的庫(kù)函數(shù),也包含了一組針對(duì)Windows的擴(kuò)展庫(kù)函數(shù),以使程序員能充分地利用WindowsWindows消息消息驅(qū)動(dòng)機(jī)制驅(qū)動(dòng)機(jī)制進(jìn)行編程。下面的基本調(diào)用來源于Winsock 1.1 接口規(guī)范。1. 1. 創(chuàng)建套接字創(chuàng)建套接字socket() socket() 2. 2. 指定本地地址指定本地地址bind() bind() 3. 3. 建立套接字連接建立套接字連接connect()connect()與與accept() accept() 4. 4. 監(jiān)聽連接監(jiān)聽連接listen() listen() 5. 5. 數(shù)據(jù)傳輸數(shù)據(jù)傳輸send()send()與與recv() recv() 6. 6. 輸入輸入/ /輸出多路復(fù)用輸出多路復(fù)用select() select() 7. 7. 關(guān)閉套接字關(guān)閉套接字closesocket() closesocket() 5.4.3 5.4.3 無(wú)連接的無(wú)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園預(yù)防傳染病安全
- 不容忽視的CFA試題及答案連接
- 學(xué)習(xí)社區(qū)的CFA試題及答案討論
- 創(chuàng)業(yè)活動(dòng)的主題班會(huì)
- 2024年CFA考試集中試題及答案寶典
- CFA成功的心理素質(zhì)試題及答案
- 遼寧省名校聯(lián)盟2024-2025學(xué)年高三下學(xué)期3月份聯(lián)合考試歷史試題(含解析)
- 教師比賽課件案例范文
- 合作學(xué)習(xí)在高中英語(yǔ)口語(yǔ)教學(xué)中的應(yīng)用
- 食堂操作安全培訓(xùn)
- DB11∕T1273-2024 LED交通誘導(dǎo)顯示屏技術(shù)要求
- 中藥學(xué)試題庫(kù)含答案
- 新進(jìn)員工反洗錢知識(shí)培訓(xùn)課件
- 2024年中考物理作圖題專練:杠桿作圖 強(qiáng)化訓(xùn)練題(含解析)
- 神探夏洛克劇本(共13頁(yè))
- 意大利瑞吉?dú)W教育記錄《影子》
- 東芝電梯OBM操作說明
- 污水處理廠試運(yùn)行記錄表改
- 消毒隔離知識(shí)培訓(xùn)ppt課件
- 5千只土雞——林下養(yǎng)雞項(xiàng)目實(shí)施方案
- 住房公積金實(shí)習(xí)報(bào)告七千五百字(共6頁(yè))
評(píng)論
0/150
提交評(píng)論