Linux網絡編程:什麽是Linux下的網絡編程?
socket套接字介紹
socket機制其實就是包括socket, bind, listen, connect, accept等函數的方法,其通過指定的函數實現不同的協議(IP4,IP6等)的數據在不同層之間的傳輸和獲取等處理。其實個人理解socket就是處於應用層和TCP/IP協議之間的一個中間層,具體的數據分析,重組,拆分等操作對於應用層的網絡編程者來說都是不可見的,這些都有協議棧內核實現,應用層的網絡編程會通過設置socket機制中創建socket時參數不同,而接收或者發送不同類型的數據。
對於TCP/IP在這裏就不過多的講,但是需要提及的是經典的TCP/IP參考模型是分為4個層次:應用層,傳輸層,網絡互聯層,主機到網絡層。標準的套接字編程主要是指TCP和UDP的網絡編程,socket網絡編程的模式就是分server和client,通過server端首先建立,client端聯接進行通信。網絡協議棧內核實現的功能主要就是在數據到達每一層時,給數據加上或者去掉協議包頭,或者進行校驗,數據重組,拆分等操作,最後得到我們想要的數據格式。
標準套接字分為TCP和UDP協議兩種不同type的工作流程,TCP網絡編程相對於UDP來說相對復雜,因為TCP是面向連接的服務,其中包括三次握手建立連接的過程,而UDP則是無連接的服務,下圖介紹了TCP服務使用socket套接字建立連接的過程,以及進行數據交互的過程。
TCP和UDP的網絡編程模式有兩種,一種是服務器模式,另一種是客戶端模式,因為TCP是面向連接的服務,所以在socket機制當中,TCP的服務器模式比UDP的服務器模式多了listen,accept函數,TCP客戶端比UDP客戶端多了connect函數。
Linux網絡編程:什麽是Linux下的網絡編程?