tcp和udp網(wǎng)絡(luò)編程

tcp和udp網(wǎng)絡(luò)編程

ID:5332999

大小:150.00 KB

頁數(shù):13頁

時(shí)間:2017-11-23

tcp和udp網(wǎng)絡(luò)編程_第1頁
tcp和udp網(wǎng)絡(luò)編程_第2頁
tcp和udp網(wǎng)絡(luò)編程_第3頁
tcp和udp網(wǎng)絡(luò)編程_第4頁
tcp和udp網(wǎng)絡(luò)編程_第5頁
資源描述:

《tcp和udp網(wǎng)絡(luò)編程》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

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

2、協(xié)議FTP、超文本傳輸協(xié)議HTTP、域名服務(wù)DNS、簡單郵件傳輸協(xié)議SMTP、郵局協(xié)議POP3等。傳輸層:傳輸控制協(xié)議TCP(面向連接的可靠的傳輸協(xié)議)、用戶數(shù)據(jù)報(bào)協(xié)議UDP(是無連接的,不可靠的傳輸協(xié)議)。網(wǎng)絡(luò)層:網(wǎng)際協(xié)議IP、Internet互聯(lián)網(wǎng)控制報(bào)文協(xié)議ICMP、Internet組管理協(xié)議IGMP。數(shù)據(jù)封裝OSI參考模型中,對等層協(xié)議之間交換的信息單元統(tǒng)稱為協(xié)議數(shù)據(jù)單元(PDU,ProtocolDataUnit)。OSI參考模型中每一層都要依靠下一層提供的服務(wù)。為了提供服務(wù),下層把上層的PDU作為本層的

3、數(shù)據(jù)封裝,然后加入本層的頭部(和尾部)。頭部中含有完成數(shù)據(jù)傳輸所需的控制信息。這樣,數(shù)據(jù)自上而下遞交的過程實(shí)際上就是不斷封裝的過程。到達(dá)目的地后自下而上遞交的過程就是不斷拆封的過程。由此可知,在物理線路上傳輸?shù)臄?shù)據(jù),其外面實(shí)際上被包封了多層“信封”。但是,某一層只能識別由對等層封裝的“信封”,而對于被封裝在“信封”內(nèi)部的數(shù)據(jù)僅僅是拆封后將其提交給上層,本層不作任何處理。數(shù)據(jù)數(shù)據(jù)協(xié)議頭對等通信示例“你好”“Hello”傳真中國教師翻譯秘書“Hallo”“Hello”傳真德國教師翻譯秘書對交談內(nèi)容的共識用英語對話使用

4、傳真通信P3P2P1物理通信線路對等層實(shí)體之間虛擬通信。下層向上層提供服務(wù),實(shí)際通信在最底層完成。TCP/IP模型TCP/IP起源于美國國防部高級研究規(guī)劃署(DARPA)的一項(xiàng)研究計(jì)劃——實(shí)現(xiàn)若干臺主機(jī)的相互通信。現(xiàn)在TCP/IP已成為Internet上通信的工業(yè)標(biāo)準(zhǔn)。TCP/IP模型包括4個層次:應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口應(yīng)用層表示層會話層傳輸層物理層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層OSI參考模型應(yīng)用層傳輸層網(wǎng)絡(luò)接口網(wǎng)絡(luò)層TCP/IP模型TCP/IP與OSI參考模型的對應(yīng)關(guān)系基于TCP(面向連接)的socket編程服務(wù)器端程序

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

6、連接)的socket編程服務(wù)器端(接收端)程序:1、創(chuàng)建套接字(socket)。2、將套接字綁定到一個本地地址和端口上(bind)。3、等待接收數(shù)據(jù)(recvfrom)。4、關(guān)閉套接字??蛻舳耍òl(fā)送端)程序:1、創(chuàng)建套接字(socket)。2、向服務(wù)器發(fā)送數(shù)據(jù)(sendto)。3、關(guān)閉套接字。套接字的類型流式套接字(SOCK_STREAM)提供面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無差錯、無重復(fù)的發(fā)送,且按發(fā)送順序接收。數(shù)據(jù)報(bào)式套接字(SOCK_DGRAM)提供無連接服務(wù)。數(shù)據(jù)包以獨(dú)立包形式發(fā)送,不提供無錯保證,數(shù)據(jù)

7、可能丟失或重復(fù),并且接收順序混亂。原始套接字(SOCK_RAW)原始套接字保存了數(shù)據(jù)包中的完整IP頭,前面兩種套接字只能收到用戶數(shù)據(jù)。因此可以通過原始套接字對數(shù)據(jù)進(jìn)行分析。Socket相關(guān)接口Ioctlsocket控制套接字的模式,例如FIONBIO,0為阻塞模式,非0為非阻塞模式。select常用在recv之前以block或non-block方式檢測網(wǎng)絡(luò)上是否有數(shù)據(jù)setsockopt設(shè)置套接字的選項(xiàng),例如發(fā)送或接收的socket緩沖區(qū)大小getsockopt獲取套接字的選項(xiàng)多線程創(chuàng)建線程銷毀線程設(shè)置線程優(yōu)先級

8、使用Semaphore實(shí)現(xiàn)上傳或下載的暫停或繼續(xù)暫停pause(接口WaitForSingleObject)繼續(xù)resume(接口ReleaseSemaphore)互斥量使用互斥量實(shí)現(xiàn)盡可能快上傳文件,需要用到緩存。1)當(dāng)一個線程正在寫入數(shù)據(jù)時(shí),其他線程不能寫,也不能讀。2)當(dāng)一個線程正在讀入數(shù)據(jù)時(shí),其他線程不能寫,但能夠讀。CreateMutexWaitForSingl

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。