《TCP IP網路程式設計》尹聖雨 第二章2 3習題

2021-09-23 20:45:54 字數 1367 閱讀 2615

(1)什麼是協議?在收發資料中定義協議有何意義?

如果相隔很遠的兩人想展開對話,必須先決定對話方式。如果一方使用**,那麼另一方也只能使用**,而不是書信。可以說,**就是兩人對話的協議。協議是對話中使用的通訊規則,上述概念擴充套件到計算機領域可整理為「計算機間對話必備通訊原則」。

簡言之,協議就是為了完成資料而定好的約定。

(2)面向連線的tcp套接字傳輸特性有3點,請分別說明。

在建立套接字的函式中,第乙個引數是pf_inet,第二個引數是sock_stream,滿足這兩個引數的協議只有ipproto_tcp,這種套接字稱為tcp套接字,例如:

int tcp_socket=socket(pf_inet,sock_stream,ipproto_tcp);
傳輸過程中資料不會消失。

按序傳輸資料。

傳輸的資料不存在資料邊界(boundary)。

(3)下列哪些是面向訊息的套接字特性?

a.傳輸資料可能丟失。

b.沒有資料邊界(boundary)。

c.以快速傳遞為目標。

d.不限制每次傳遞資料的大小。

e.與面向連線的套接字不同,不存在連線的概念。

答案:a,b,c,e

(4)下列資料適合用哪類套接字傳輸?並給出原因。

a.演唱會現場直播的多**資料(面向連線 ) //因為現場直播的要求很高,必須要求傳輸的資料不會消失,按序傳輸,傳輸的資料不會存在資料邊界。

b.某人壓縮過的檔案文字(面向訊息)//壓縮過的文字要求快速,文字有具體的大小。

c.網上銀行使用者與銀行之間的資料傳遞(面向連線)//要求資料安全,不會丟失,不會存在資料邊界。

(5)何種型別的套接字不存在資料邊界?這類套接字接收資料時需要注意什麼?

面向連線

套接字連線必須一 一 對應。

(6)tcp_server.c和tcp_client.c中需多次呼叫read函式讀取伺服器端呼叫1次write函式傳遞的字串。更改程式,使伺服器端多次呼叫(次數自擬)write函式傳輸資料,客戶端呼叫1次read函式進行讀取。為達到這一目的,客戶端需延遲呼叫read函式。因為客戶端要等待伺服器端傳輸所有資料。windows和linux都通過下列**延遲read或recv函式的呼叫。

for(i=0;i<3000;i++)

printf("wait time %d \n",i);

讓cpu執行多餘任務以延遲**執行的方式稱為"busy waiting"。使用得當即可推遲函式呼叫。

《TCP IP網路程式設計》尹聖雨 第一章習題

1 套接字在網路程式設計中的作用是什麼?為什麼叫套接字?網路程式設計就是編寫程式使兩台連網的計算機相互交換資料。在我們不需要考慮物理連線的情況下,我們只需要考錄如何編寫資料傳輸軟體。作業系統提供了名為 套接字 的部件,套接字是網路資料傳輸用的軟體裝置。我們把插頭插到插座上就能從電網獲得電力供給,同樣...

TCP IP 第二章 鏈路層

在tcp ip協議族中,鏈路層主要有三個目的 為ip模組傳送和接收ip資料報 為arp模組傳送arp請求和接收arp應答 為rarp傳送rarp請求和接收rarp應答 1 乙太網 乙太網一般是指數字裝置公司,英特爾和xerox公司在1982年聯合公布的乙個標準。它是當今tcp ip採用的主要的區域網...

第二章 網路應用

第二章 網路應用 1.網路應用體系結構 識記網路應用特性結構與分類 客戶 伺服器 c s 結構 純p2p結構 混合結構 領會c s網路應用 p2p網路應用以及混合網路應用的特點 區別與聯絡 c s最主要的特徵是通訊只在客戶與伺服器之間進行,客戶與客戶之間不進行直接通訊 p2p結構可以動態地直接與其他...