TCP和UDP網(wǎng)絡(luò)編程教案_第1頁(yè)
TCP和UDP網(wǎng)絡(luò)編程教案_第2頁(yè)
TCP和UDP網(wǎng)絡(luò)編程教案_第3頁(yè)
TCP和UDP網(wǎng)絡(luò)編程教案_第4頁(yè)
TCP和UDP網(wǎng)絡(luò)編程教案_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、TCP和UDP網(wǎng)絡(luò)編程教案TCP和UDP網(wǎng)絡(luò)編程20XX年3月9日ISO/OSI七層參考模型OSI(Open System Interconnection)參考模型將網(wǎng)絡(luò)的不同功能劃分為7層。通信實(shí)體的對(duì)等層之間不允許直接通信。各層之間是嚴(yán)格單向依賴。上層使用下層提供的服務(wù) Service user;下層向上層提供服務(wù) Service provider。應(yīng)用層表示層物理層會(huì)話層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層處理網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)表示主機(jī)間通信端到端的連接尋址和最短路徑介質(zhì)訪問(wèn)(接入)二進(jìn)制傳輸OSI各層所使用的協(xié)議 應(yīng)用層:遠(yuǎn)程登錄協(xié)議Telnet、文件傳輸協(xié)議FTP、 超文本傳輸協(xié)議HTTP、域名服務(wù)DN

2、S、簡(jiǎn)單郵件傳輸協(xié)議SMTP、郵局協(xié)議POP3等。 傳輸層:傳輸控制協(xié)議TCP(面向連接的可靠的傳輸協(xié)議)、用戶數(shù)據(jù)報(bào)協(xié)議UDP(是無(wú)連接的,不可靠的傳輸協(xié)議)。 網(wǎng)絡(luò)層:網(wǎng)際協(xié)議IP、Internet互聯(lián)網(wǎng)控制報(bào)文協(xié)議ICMP、Internet組管理協(xié)議IGMP。數(shù)據(jù)封裝OSI參考模型中,對(duì)等層協(xié)議之間交換的信息單元統(tǒng)稱為協(xié)議數(shù)據(jù)單元(PDU,Protocol Data Unit)。OSI參考模型中每一層都要依靠下一層提供的服務(wù)。為了提供服務(wù),下層把上層的PDU作為本層的數(shù)據(jù)封裝,然后加入本層的頭部(和尾部)。頭部中含有完成數(shù)據(jù)傳輸所需的控制信息。這樣,數(shù)據(jù)自上而下遞交的過(guò)程實(shí)際上就是不斷封

3、裝的過(guò)程。到達(dá)目的地后自下而上遞交的過(guò)程就是不斷拆封的過(guò)程。由此可知,在物理線路上傳輸?shù)臄?shù)據(jù),其外面實(shí)際上被包封了多層“信封”。但是,某一層只能識(shí)別由對(duì)等層封裝的“信封”,而對(duì)于被封裝在“信封”內(nèi)部的數(shù)據(jù)僅僅是拆封后將其提交給上層,本層不作任何處理。數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)協(xié)議頭對(duì)等通信示例“你好你好”“Hello”傳真?zhèn)髡嬷袊?guó)中國(guó)教師教師翻譯翻譯秘書(shū)秘書(shū)“Hallo”“Hello”傳真?zhèn)髡娴聡?guó)德國(guó)教師教師翻譯翻譯秘書(shū)秘書(shū)對(duì)交談內(nèi)容的共識(shí)對(duì)交談內(nèi)容的共識(shí)用英語(yǔ)對(duì)話用英語(yǔ)對(duì)話使用傳真通信使用傳真通信P3P2P1物理通信線路物理通信線路 對(duì)等層實(shí)體之間虛擬通信。對(duì)等層實(shí)體之間虛擬通信。 下層向上層提供服務(wù)

4、,實(shí)際通信在最底層完成。下層向上層提供服務(wù),實(shí)際通信在最底層完成。TCP/IP模型 TCP/IP起源于美國(guó)國(guó)防部高級(jí)研究規(guī)劃署(DARPA)的一項(xiàng)研究計(jì)劃實(shí)現(xiàn)若干臺(tái)主機(jī)的相互通信。 現(xiàn)在TCP/IP已成為Internet上通信的工業(yè)標(biāo)準(zhǔn)。 TCP/IP模型包括4個(gè)層次: 應(yīng)用層 傳輸層 網(wǎng)絡(luò)層 網(wǎng)絡(luò)接口應(yīng)用層表示層會(huì)話層傳輸層物理層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層OSI參考模型應(yīng)用層傳輸層網(wǎng)絡(luò)接口網(wǎng)絡(luò)層TCP/IP模型TCP/IP與OSI參考模型的對(duì)應(yīng)關(guān)系基于TCP(面向連接)的socket編程服務(wù)器端程序:1、創(chuàng)建套接字(socket)。2、將套接字綁定到一個(gè)本地地址和端口上(bind)。3、將套接字設(shè)為監(jiān)

5、聽(tīng)模式,準(zhǔn)備接收客戶請(qǐng)求(listen)。4、等待客戶請(qǐng)求到來(lái);當(dāng)請(qǐng)求到來(lái)后,接受連接請(qǐng)求,返回一個(gè)新的對(duì)應(yīng)于此次連接的套接字(accept)。5、用返回的套接字和客戶端進(jìn)行通信(send/recv)。6、返回,等待另一客戶請(qǐng)求。7、關(guān)閉套接字??蛻舳顺绦颍?、創(chuàng)建套接字(socket)。2、向服務(wù)器發(fā)出連接請(qǐng)求(connect)。3、和服務(wù)器端進(jìn)行通信(send/recv)。4、關(guān)閉套接字?;赨DP(面向無(wú)連接)的socket編程服務(wù)器端(接收端)程序:1、創(chuàng)建套接字(socket)。2、將套接字綁定到一個(gè)本地地址和端口上(bind)。3、等待接收數(shù)據(jù)(recvfrom)。4、關(guān)閉套接字。

6、客戶端(發(fā)送端)程序:1、創(chuàng)建套接字(socket)。2、向服務(wù)器發(fā)送數(shù)據(jù)(sendto)。3、關(guān)閉套接字。套接字的類(lèi)型 流式套接字(SOCK_STREAM)提供面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無(wú)差錯(cuò)、無(wú)重復(fù)的發(fā)送,且按發(fā)送順序接收。 數(shù)據(jù)報(bào)式套接字(SOCK_DGRAM)提供無(wú)連接服務(wù)。數(shù)據(jù)包以獨(dú)立包形式發(fā)送,不提供無(wú)錯(cuò)保證,數(shù)據(jù)可能丟失或重復(fù),并且接收順序混亂。 原始套接字(SOCK_RAW) 原始套接字保存了數(shù)據(jù)包中的完整IP頭,前面兩種套接字只能收到用戶數(shù)據(jù)。因此可以通過(guò)原始套接字對(duì)數(shù)據(jù)進(jìn)行分析。Socket相關(guān)接口Ioctlsocket 控制套接字的模式,例如FIONBIO,0為阻

7、塞模式,非0為非阻塞模式。 select 常用在recv之前以block或non-block方式檢測(cè)網(wǎng)絡(luò)上是否有數(shù)據(jù)setsockopt 設(shè)置套接字的選項(xiàng),例如發(fā)送或接收的socket緩沖區(qū)大小getsockopt 獲取套接字的選項(xiàng)多線程 創(chuàng)建線程 銷(xiāo)毀線程 設(shè)置線程優(yōu)先級(jí) 使用Semaphore實(shí)現(xiàn)上傳或下載的暫?;蚶^續(xù) 暫停pause(接口WaitForSingleObject) 繼續(xù)resume(接口ReleaseSemaphore)互斥量 使用互斥量實(shí)現(xiàn)盡可能快上傳文件,需要用到緩存。 1) 當(dāng)一個(gè)線程正在寫(xiě)入數(shù)據(jù)時(shí),其他線程不能寫(xiě),也不能讀。 2) 當(dāng)一個(gè)線程正在讀入數(shù)據(jù)時(shí),其他線程不能寫(xiě),但能夠讀。 CreateMutex WaitForSingleObject ReleaseMutex作業(yè)內(nèi)容 描述:用UDP和TCP兩種方式,編寫(xiě)C/S結(jié)構(gòu)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論