TCP通訊(零) 基本知識

2021-10-01 12:16:28 字數 1588 閱讀 7601

基本的osi模型如下:

tcp的優點: 可靠,穩定 tcp的可靠體現在tcp在傳遞資料之前,會有三次握手來建立連線,而且在資料傳遞時,有確認、視窗、重傳、擁塞控制機制,在資料傳完後,還會斷開連線用來節約系統資源。 tcp的缺點: 慢,效率低,占用系統資源高,易被攻擊 tcp在傳遞資料之前,要先建連線,這會消耗時間,而且在資料傳遞時,確認機制、重傳機制、擁塞控制機制等都會消耗大量的時間,而且要在每台裝置上維護所有的傳輸連線,事實上,每個連線都會占用系統的cpu、記憶體等硬體資源。 而且,因為tcp有確認機制、三次握手機制,這些也導致tcp容易被人利用,實現dos、ddos、cc等攻擊。

小結tcp與udp的區別:

1.基於連線與無連線;

2.對系統資源的要求(tcp較多,udp少);

3.udp程式結構較簡單;

4.流模式與資料報模式 ;

5.tcp保證資料正確性,udp可能丟包,tcp保證資料順序,udp不保證。

tcp: 

tcp程式設計的伺服器端一般步驟是: 

1、建立乙個socket,用函式socket(); 

2、設定socket屬性,用函式setsockopt(); * 可選 

3、繫結ip位址、埠等資訊到socket上,用函式bind(); 

4、開啟監聽,用函式listen(); 

5、接收客戶端上來的連線,用函式accept(); 

6、收發資料,用函式send()和recv(),或者read()和write(); 

7、關閉網路連線; 

8、關閉監聽; 

tcp程式設計的客戶端一般步驟是: 

1、建立乙個socket,用函式socket(); 

2、設定socket屬性,用函式setsockopt();* 可選 

3、繫結ip位址、埠等資訊到socket上,用函式bind();* 可選 

4、設定要連線的對方的ip位址和埠等屬性; 

5、連線伺服器,用函式connect(); 

6、收發資料,用函式send()和recv(),或者read()和write(); 

7、關閉網路連線;

udp:

與之對應的udp程式設計步驟要簡單許多,分別如下: 

udp程式設計的伺服器端一般步驟是: 

1、建立乙個socket,用函式socket(); 

2、設定socket屬性,用函式setsockopt();* 可選 

3、繫結ip位址、埠等資訊到socket上,用函式bind(); 

4、迴圈接收資料,用函式recvfrom(); 

5、關閉網路連線; 

udp程式設計的客戶端一般步驟是: 

1、建立乙個socket,用函式socket(); 

2、設定socket屬性,用函式setsockopt();* 可選 

3、繫結ip位址、埠等資訊到socket上,用函式bind();* 可選 

4、設定對方的ip位址和埠等屬性; 

5、傳送資料,用函式sendto(); 

6、關閉網路連線;

串列埠通訊基本知識

傳送機制 通過計算機的rs232串列埠,按位 bit 傳送和接收位元組,一般是全雙工方式,既可以一邊傳送,一邊接收。串列埠通訊必要引數 串列埠通訊最重要的四個引數 波特率,停止位,資料位,奇偶校驗。若兩個串列埠需要通訊,則這些引數 必須要配對。a.波特率 衡量通訊速度的乙個引數。例如設定3000則每...

通訊基本知識(筆記)

按資料傳送的方式分 a.序列通訊 按資料位形式一位一位地傳輸資料 按資料通訊的方向分 a.全雙工 同一時刻,兩個裝置之間可以同時收發資料 b.半雙工 同一時刻,兩個裝置之間不能同時收發資料 c.單工 任何時刻,只能進行單一方向通訊 按資料同步的方式分 a.同步通訊 收發雙方會使用同一時鐘訊號線,在時...

串列埠通訊的基本知識

串列埠通訊的基本知識 參考朱有鵬arm裸機程式設計 目標 我們要把printf函式是怎麼移植到嵌入式系統當中的。1 通訊的歷史 1 最早的通訊 烽火台,狼煙,信件 有文字的出現。電子通訊,電報,網路訊號。他傳遞是就是0或者1 2 通訊中最重要的兩個部分 資訊表示 解析方法 資訊傳輸方法 資訊的傳輸方...