基于Linux的Socket網(wǎng)絡(luò )編程的性能優(yōu)化
1 引言
隨著(zhù)Intenet的日益發(fā)展和普及,網(wǎng)絡(luò )在嵌入式系統中應用非常廣泛,越來(lái)越多的嵌入式設備采用Linux操作系統。Linux是一個(gè)源代碼公開(kāi)的免費操作系統,具有強移植性,所以對基于Linux的Socket網(wǎng)絡(luò )編程的研究越來(lái)越重要。
Socket實(shí)際是網(wǎng)絡(luò )傳輸層供給應用層的編程接口。傳輸層則在網(wǎng)絡(luò )層的基礎上提供進(jìn)程到進(jìn)程問(wèn)的邏輯通道,而應用層的進(jìn)程則利用傳輸層向另一臺主機的某一進(jìn)程通信。Socket就是應用層與傳輸層之間的橋梁。如圖2所示。
使用Socket編程時(shí)可以開(kāi)發(fā)客戶(hù)機和服務(wù)器應用程序,它們可以在本地網(wǎng)絡(luò )上進(jìn)行通信,也可以通過(guò)Internet在全球范圍內進(jìn)行通信。編寫(xiě)并運行 Socket的客戶(hù)端和服務(wù)器端程序,雙方通過(guò)套接字建立了服務(wù)連接請求,并且通過(guò)一些方法提高Socket的性能。
3 Socket編程
3.1 Socket類(lèi)型
常見(jiàn)的Socket有3種類(lèi)型:
(1)流式Socket(SOCK_STREAM)它提供可靠的通信流,使用面向連接的TCP協(xié)議,從而保證數據傳輸的正確性和順序性:
(2)數據報Socket(SOCK_DGRAM)數據通過(guò)相互獨立的報文進(jìn)行傳輸,是無(wú)序的,并且不保證可靠,無(wú)差錯,它定義一種面向無(wú)連接的服務(wù),使用數據報協(xié)議UDP;
(3)原始Socket(SOCK_RAM)它允許直接訪(fǎng)問(wèn)底層協(xié)議,功能強大但使用較為不便,主要用于一些協(xié)議的開(kāi)發(fā)。本編寫(xiě)的Socket屬于流式Socket。
p2p機相關(guān)文章:p2p原理
評論