linux網路程式設計

2021-08-03 06:51:30 字數 1462 閱讀 7048

1.udp

簡稱:使用者資料報協議

原理:資料報協議的特點用一句話來形容就是他不夠安全,他不關心資料是否被接收,

只要指定ip位址就傳送,不關心,資料會因為區域網或者廣域網因為各種原因造

成的丟包,資料排序等資料傳送變化等結果,而且不同於tcp的一點是每次udp

傳輸資料的時候會將資料的長度一併傳送。

2.tcp

簡稱:傳輸控制協議

原理:它相對於udp來說要安全很多,因為他有乙個握手協議,每次傳輸之前都要進行

三次握手,只有當接收端有回應的時候才能傳輸資料,否則他有一系列的保護特性,重

傳等措施,當重傳數次都失敗,那麼就放棄,tcp會對傳輸的資料的每乙個位元組都要進

行排序,這樣接收端會根據排序的訊號來判斷資料是否重複,如果資料重複那麼就丟棄

,tcp提供流量控制,也就是說每次傳輸資料都會告訴接收端要傳送資料的大小,也叫

通告視窗,接收端通過這個通告視窗來知道對方是否可以接收資料,也就是資料緩衝區

是否可以在傳入資料,這也就造成了阻塞的效果,只有當傳送端去資料緩衝區內讀取數

據後才可以再次傳輸資料,tcp是一種流資料控制協議,意思就說,它並沒有任何標誌

知道資料是否是一幀的結束,這些必須自己在應用程式中自己處理。

三次握手:

1.從服務端來看最開始知識三個函式:socket,bind,listen這三個函式,

2.客戶端向服務端傳送同步位元組,告訴服務端傳送資料的初始序列號,和tcp選項。

3.服務端向客戶端回應,並且也傳送同步位元組,告訴客戶端傳送資料的初始序列號,

4.客戶端回應服務端ack

tcp選項:

1.mss選項:就是資料分節的大小

2.視窗規模選項:資料緩衝區的大小

3.時間戳選項:這個不用關心,程式設計用不到。

四次揮手:

1.任意一段關閉呼叫close關閉檔案描述符後,傳送給另一端,表示資料傳輸完成

2.接收端收到結束位元組後被動關閉

3.關閉套接字後在傳送乙個結束符給對方

4.確認結束符

3.sctp

簡稱:流傳輸控制協議

原理:他繼承了tcp和udp的幾乎所有特點,他會在sctp上可以傳輸多個流,不會因

為乙個流的資料傳送以外而影響另乙個流的傳輸,相對於tcp來說sctp並沒有

阻塞的特性,如果資料發生阻塞,那麼會切換到使用已與該鏈結相關的另乙個地

址來規避故障,因為它可以與多個端點進行傳輸。

埠號:埠號就是識別什麼服務的乙個標識。

併發伺服器:這個具體原理我不是特別懂,主要是通過fork建立乙個子程序進行傳送傳輸的功能,主程序是通過檢測是否有客戶端連線,然後建立子程序傳輸。

理解網路狀態轉換圖

Linux網路程式設計

linux網路程式設計 當然,我們現在,將要開始編寫的第乙個網路程式,雖然非常簡單,但是卻可以很 清楚的說明大部分編寫網路程式需要的基本概念,好了先讓我們看看網路程式的tcp服 務器端的編寫步驟 1.和伺服器的步驟一樣。2.通過設定套介面位址結構,我們說明,客戶端要與之通訊的伺服器的ip位址和 埠。...

linux 網路程式設計

當然,我們現在,將要開始編寫的第乙個網路程式,雖然非常簡單,但是卻可以很 清楚的說明大部分編寫網路程式需要的基本概念,好了先讓我們看看網路程式的tcp服 務器端的編寫步驟 現在讓我們來看看網路程式客戶端的程式設計步驟 以上的步驟,是比較普遍的,我們可以從中看出,編寫網路程式是很有意思的,同 時,也不...

linux 網路程式設計

套接字程式設計 struct sockaddr unsigned short sa family 位址協議,ipv4 tcp ip af inet,ipv6 af inet6 char sa data 14 14位元組的位址協議 struct sockaddr in unsigned short s...