Linux環(huán)境下基于UDP的socket編程淺析.pdf

Linux環(huán)境下基于UDP的socket編程淺析.pdf

ID:57731593

大?。?76.16 KB

頁數(shù):4頁

時(shí)間:2020-03-25

Linux環(huán)境下基于UDP的socket編程淺析.pdf_第1頁
Linux環(huán)境下基于UDP的socket編程淺析.pdf_第2頁
Linux環(huán)境下基于UDP的socket編程淺析.pdf_第3頁
Linux環(huán)境下基于UDP的socket編程淺析.pdf_第4頁
資源描述:

《Linux環(huán)境下基于UDP的socket編程淺析.pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、應(yīng)用安全Linux環(huán)境下基于UDP的socket編程淺析吳佩賢紹興文理學(xué)院計(jì)算機(jī)系 浙江 312000摘要:socket適用于網(wǎng)絡(luò)環(huán)境中的進(jìn)程間通信,它已成為當(dāng)前許多操作系統(tǒng)的網(wǎng)絡(luò)API,也是網(wǎng)絡(luò)操作系統(tǒng)中必不可少的基礎(chǔ)功能。盡管UDP無法像TCP一樣提供可靠的數(shù)據(jù)傳輸,但UDP并不比TCP缺乏優(yōu)越性。隨著Linux操作系統(tǒng)和Internet的不斷發(fā)展,Linux網(wǎng)絡(luò)環(huán)境下尤其是基于UDP的socket通信技術(shù)仍廣為注目。文章介紹了Linux平臺(tái)下的socket及其編程原理,并通過一個(gè)Java編寫的基于UDP的客戶/服務(wù)器程序,描述了網(wǎng)絡(luò)中不同主機(jī)上的兩個(gè)進(jìn)程之間的soc

2、ket通信機(jī)制。關(guān)鍵詞:socket;UDP;TCP;客戶/服務(wù)器;進(jìn)程;Java0 引言Linux將套接字地址族抽象為統(tǒng)一的BSD套接字接口,該接口是應(yīng)用程序的開發(fā)接口,由各地址族專有的軟件支Linux是一個(gè)誕生于Internet和WWW的產(chǎn)品,它具有持。LinuxBSDsocket支持以下常見套接字類型:穩(wěn)定、簡易、高效、兼容性好等特點(diǎn),并且支持多種網(wǎng)(1)SOCK_STREAM(數(shù)據(jù)流套接口):提供一個(gè)絡(luò)協(xié)議,如Ipv4、Ipv6、X.25、IPX、NETBIOS、DDP面向連接的雙工順序數(shù)據(jù)流傳輸和可靠的數(shù)據(jù)傳輸服務(wù)。這等。套接字(socket)是介于網(wǎng)種套接字可

3、以保證數(shù)據(jù)傳輸?shù)目煽啃裕粫?huì)出現(xiàn)數(shù)據(jù)丟失、絡(luò)應(yīng)用層和傳輸層之間的編程接破損或重復(fù)出現(xiàn)等差錯(cuò),而且通過流量控制避免發(fā)送的數(shù)據(jù)口,套接字接口提供了訪問下層流超限。Internet地址中的TCP協(xié)議支持流套接字。通信協(xié)議的大量系統(tǒng)調(diào)用和相應(yīng)(2)SOCK_DGRAM(數(shù)據(jù)報(bào)套接口):提供一個(gè)的數(shù)據(jù)結(jié)構(gòu),進(jìn)程在Linux上的無連接和不可靠的雙工數(shù)據(jù)傳輸服務(wù)。數(shù)據(jù)包以獨(dú)立包形式網(wǎng)絡(luò)通信過程就是使用套接字傳被發(fā)送和接收。不對數(shù)據(jù)的傳輸提供無錯(cuò)保證,即數(shù)據(jù)可輸數(shù)據(jù)的過程。套接字在UDP/IP能被丟失、破壞,也可能被重復(fù)接收。Internet地址中的網(wǎng)絡(luò)模型中的地位如圖1所示。圖1 套接

4、字UDP協(xié)議支持這種套接字。1BSD套接字接口(3)SOCK_RAW(原始套接口):這種類型的套socket最早應(yīng)用于伯克萊大學(xué)BSDUNIX中,所以習(xí)慣接字允許對低層協(xié)議如IP或ICMP直接訪問,可以直接填上又稱其為BSDsocket。一個(gè)套接字描述為一個(gè)通信連接的充IP、TCP、UDP或者ICMP的包頭,發(fā)送用戶自己定一端,在一個(gè)通信連接中的兩端通信程序應(yīng)各自有一個(gè)套接義的IP包或者ICMP包,主要用于協(xié)議的開發(fā)。字來描述它們自己那一端,不同主機(jī)中的兩個(gè)進(jìn)程通過各自2 用戶數(shù)據(jù)報(bào)協(xié)議UDP及無連接服務(wù)的套接字發(fā)送和接收消息,從而實(shí)現(xiàn)進(jìn)程間跨網(wǎng)絡(luò)的通信。Internet

5、給分布式應(yīng)用程序提供兩類服務(wù):一是面向連Linux環(huán)境中套接字支持多種網(wǎng)絡(luò)協(xié)議,不同類型網(wǎng)絡(luò)接的服務(wù),二是無連接服務(wù)。面向連接的服務(wù)由TCP提協(xié)議具有不同的工作方式,所使用的地址格式也完全不同。供,客戶和服務(wù)器在彼此間發(fā)送數(shù)據(jù)之前要先建立三次握對于各種網(wǎng)絡(luò)協(xié)議而言,使用相同地址格式的幾個(gè)協(xié)議稱為手,以確保發(fā)送端的數(shù)據(jù)最終按順序完整無誤地傳送給接收一個(gè)協(xié)議地址簇,表1列出了BSD套接字的常見地址族。端。無連接服務(wù)則由UDP提供,發(fā)送端和接收端在傳送數(shù)表1BSD套接字地址族的主要類型據(jù)之前不需要進(jìn)行握手,因而不會(huì)帶入任何延遲。在無連接模式下,客戶程序沒有把套接字固定連接到一個(gè)

6、指定的遠(yuǎn)程端點(diǎn)上,而是在每次發(fā)送數(shù)據(jù)報(bào)時(shí)指定遠(yuǎn)程目的地。因而UDP具有相當(dāng)?shù)撵`活性:客戶程序可以在它要求發(fā)送時(shí)才決定和哪個(gè)服務(wù)器交互。從圖1可以看出,UDP作者簡介:吳佩賢(1974-),男,講師,主要從事實(shí)時(shí)操作系統(tǒng)研究。2006.163應(yīng)用安全通過套接字直接從應(yīng)用程序進(jìn)程得到消息,附上源和目標(biāo)端格式聲明為:口號(hào),并把得到的數(shù)據(jù)段傳遞給網(wǎng)絡(luò)層。網(wǎng)絡(luò)層將數(shù)據(jù)封intbind(intsockfd,structsockaddr*my_addr,int裝到IP數(shù)據(jù)包里,并使用盡力服務(wù)方式將數(shù)據(jù)包傳遞給接addrlen)。sockfd為套接口描述字;指針my_addr指向收端。如

7、果該數(shù)據(jù)包到達(dá)接收端,UDP通過端口號(hào)和IP目sockaddr結(jié)構(gòu),該結(jié)構(gòu)包含了遠(yuǎn)程服務(wù)程序的IP地址與端標(biāo)地址將數(shù)據(jù)包中的內(nèi)容傳正確地送給接收端的套接字。口號(hào);addrlen指明sockaddr結(jié)構(gòu)的長度。UDP在傳遞數(shù)據(jù)時(shí)并不保持發(fā)送端和接收端間的連接狀態(tài),3.3sendto函數(shù)即不對接收和發(fā)送緩沖區(qū)、擁塞控制、數(shù)據(jù)到達(dá)順序等參sendto()用于將應(yīng)用緩沖區(qū)中的數(shù)據(jù)發(fā)送到指定的接收進(jìn)數(shù)進(jìn)行跟蹤,因而UDP傳送的數(shù)據(jù)包可能出錯(cuò)甚至丟失,程的地址空間,其格式聲明為:其可靠性無法得到保障。盡管如此,UDP在DNS解析、IPin

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

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

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
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ò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。