《TCP IP網路程式設計》尹聖雨----7.第四章習題
(1)請說明TCP/IP的四層協議棧,並說明TCP和UDP套接字經過的層級結構差異。
TCP套接字:鏈路層,IP層,TCP層,應用層
UDP套接字:鏈路層,IP層,UDP層,應用層
(2)請說出TCP/IP協議棧中鏈路層和IP層的作用,並給出二者關係。
鏈路層:是物理連結領域標準化的結果,也是最基本的領域,專門定義LAN、WAN、MAN等網路標準。若兩臺主機通過網路進行資料交換,則首先要做到的就是進行物理連結。
IP層:為了在複雜的網路中傳輸資料,首先需要考慮路徑的選擇。
關係:鏈路層負責進行一系列物理連線,而IP層負責選擇正確可行的物理路徑。
(3)為何需要把TCP/IP協議棧分成4層(或7層)?結合開放式系統回答。
把協議分成多個層次,除了可以使協議設計更加容易以外,更重要的原因是,為了通過標準化操作設計開放式系統。
標準本身就在於對外公開,引導更多的人遵守規範。從而使得人們生活更加方便,不用為了不同的標準、協議而大費周折。
比如,路由器同來完成IP層互動任務。某公司原來使用A公司的路由器,先要將其替換成B公司的,因為統一了標準,所有生產商都按照IP層標準制造,所以更換起來非常方便。
(4)客戶端呼叫connect函式向伺服器端傳送連線請求。伺服器端呼叫哪個函式後,客戶端可以呼叫connect函式?
伺服器呼叫listen函式之後,客戶端才可以呼叫connect函式。
因為,伺服器呼叫listen函式之後,伺服器端套接字才有能力接收請求連線的訊號。
提前呼叫connect函式將發生錯誤。
(5)什麼時候建立連線請求等待佇列?它有何作用?與accept有什麼關係?
在伺服器端呼叫了listen函式,accept函式正在處理客戶端請求時, 更多的客戶端發來了請求連線的資料,此時,就需要建立連線請求等待佇列。
以便於在accept函式處理完手頭的請求之後,按照正確的順序處理後面正在排隊的其他請求。
與accept函式的關係:accept函式受理連線請求等待佇列中待處理的客戶端連線請求。
(6)客戶端中為何不需要呼叫bind函式分配地址?如果不掉用bind函式,那何時、如何向套接字分配IP地址和埠號?
因為客戶端中在呼叫connect函式時自動分配了客戶端的IP地址和埠。
何時:呼叫connect函式時。
何地:作業系統,更準確地說是在核心中。
如何:IP用計算機(主機)的IP,埠隨機。
(7)把第一章的hello_server.c和hello_server_win.c改成迭代伺服器端,並利用客戶端測試更改是否準確。
相關推薦
《TCP IP網路程式設計》尹聖雨----7.第四章習題
(1)請說明TCP/IP的四層協議棧,並說明TCP和UDP套接字經過的層級結構差異。 TCP套接字:鏈路層,IP層,TCP層,應用層 UDP套接字:鏈路層,IP層,UDP層,應用層 (2)請說出TCP/IP協議棧中鏈路層和IP層的作用,並給出二者關係。 鏈路層:是物理連結
TCP/IP網路程式設計 課後題(一)第一章
3)Linux中,對套接字資料進行I/O時可以直接使用檔案I/O的相關函式;而在Windows則不可以。原因? 答案:在Linux世界裡,socket也被認為是檔案的一種。而Windows與Linux不同,,是要區分socket和檔案的。 4)建立套
TCP IP網路程式設計 (韓)尹聖雨pdf下載
來自圖靈社群的優質資源!!! 為初學者準備的網路程式設計! 韓國TCP/IP經典教程!手把手教你套接字程式設計! 本書涵蓋作業系統、系統程式設計、TCP/IP協議等多種內容,結構清晰、講解細緻、通俗易懂。書中收錄豐富示例,詳細展現了Linux和Windows平臺
淺談 TCP/IP 網路程式設計中 socket 的行為
來源:PromisE_謝 連結:www.cnblogs.com/promise6522/archive/2012/03/03/2377935.html 我認為,想要熟練掌握 Linux 下的 TCP/IP 網路程式設計,至少有三個層面的知識需要熟悉: TCP/IP
《TCP/IP網路程式設計》第5章 筆記&程式碼&註釋
在第四章中的回聲迭代客戶端中,客戶端通過write()一次性將字串傳送過去,之後呼叫read()等待接受自己傳輸的字串,因此這個回聲迭代客戶端是不完美的。 解決方法就是提前確定接受資料的大小: //Linux while(1) { //......相同省略 int str_l
《TCP/IP網路程式設計》第4章 筆記&程式碼&註釋
TCP TCP Transmission Control Protocol 傳輸控制協議,意為對資料傳輸過程的控制。 TCP/IP 協議棧 TCP/IP 協議棧分四層: 應用層 TCP層/UDP層 IP層 鏈路層 根據2.的TCP套接字還是UDP套接字
《TCP/IP網路程式設計》第3章 筆記&程式碼&註釋
IP(網路協議Internet Protocol):為了收發網路資料而給計算機分配的值。 埠號:為了區分程式中建立的套接字而分配給套接字的序號。 網路地址 IPv4 4位元組地址族(目前主要使用) IPv6 16位元組地址族(為了應對IP地址耗盡而提出的標準,但現在仍未普及)
《TCP/IP網路程式設計》第2章 筆記&程式碼&註釋
注:本章內容大部分為第一章的伺服器與客戶端程式碼的解析與理解,十分重要 協議 伺服器端和客戶端為了能進行資料交換,他們必須遵循同一個協議: 建立套接字 int socket(int domain, int type, int protocol)//Lin
《TCP/IP網路程式設計》第1章 筆記&程式碼&註釋
註釋筆記在程式碼內: 伺服器: //以下均在VS2015 WINDOWS平臺編譯並執行 //在Linux中 標頭檔案為: //#incude<sys/socket.h> //以下為服務端程式碼示例 #define _WINSOCK_DEPRECATED_NO_WARNINGS
TCP/IP網路程式設計基礎閱讀筆記
TCP/IP網路程式設計基礎閱讀筆記 open函式 該函式開啟一個檔案(linux下任何皆檔案),返回檔案描述符,失敗返回-1 int open(const char* pathname,int flags,mode_t mode) flags:檔案開啟方式的標誌 O_RD
python-tcp/ip網路程式設計認識(四)
本文作者:黎智煊,叩丁狼高階講師。原創文章,轉載請註明出處。 udp的介紹 前面我們說了很多的知識都是關於tcp的知識點,但是,其實與tcp相對來說不同的還有就是也是非常重要的udp了. UDP --- 使用者資料報協議 是一個無連線的簡單的面向資料報的運
python-tcp/ip網路程式設計認識(三)
本文作者:黎智煊,叩丁狼高階講師。原創文章,轉載請註明出處。 socket簡介 介紹 socket起源於Unix,而Unix/Linux基本哲學之一就是“一切皆檔案”,對於檔案用【開啟】【讀寫】【關閉】模式來操作。socket就是該模式的一個實現,socket即是一種特殊的
TCP/IP網路程式設計之基於TCP的服務端/客戶端
理解TCP和UDP 根據資料傳輸方式的不同,基於網路協議的套接字一般分為TCP套接字和UDP套接字。因為TCP套接字是面向連線的,因此又稱為基於流(stream)的套接字。TCP是Transmission Control Protocol(傳輸控制協議)的簡寫,意為“對資料傳
python-tcp/ip網路程式設計-網路除錯助手的使用
本文作者:黎智煊,叩丁狼高階講師。原創文章,轉載請註明出處。 網路除錯助手的使用 俗話說,好馬配好鞍,今天我們來簡單認識一下幾個平臺的網路助手如何使用. 先說一下,假如不是用外部圖形化工具的情況下, 我們如何捕獲一些網路資料. 現在假設一下你正在使用基於
TCP/IP網路程式設計學習(一)
前言:學校開的課比價不合理,這學期才剛剛接觸計算機網路,可是本學期很多課卻又是以計算機網路為基礎的。沒辦法,只能先自己學習一些計算機網路方面的知識。學習這個網路程式設計主要是為了做我的一個程式設計的實驗
TCP/IP網路程式設計1
最近筆試面試都考到了TCP/IP方面的知識,在日益發展的物聯網時代,網路通訊是必不可少的知識。自己對這方面的知識不夠深入,故查詢資料整理如下,如有侵權請聯絡。 概述 網路程式設計實際上就是編寫程式使兩臺聯網的計算機相互的交換資料。作業系統會提供名為“ 套接字 ”
TCP/IP網路程式設計 基於Linux程式設計_4 --多執行緒伺服器端的實現
執行緒基本概念 前面我們講過多程序伺服器,但我們知道它開銷很大,因此我們才引入執行緒,我們可以把它看成是一種輕量級程序。它相比程序有如下幾個優點: 執行緒的建立和上下文切換開銷更小且速度更快。 執行緒間交換資料時無需特殊技術。 程序:在作業系統構成
tcp/ip 多執行緒伺服器端的實現(參考tcp/ip網路程式設計)
執行緒的切換比程序快的多,因為它不需要切換資料區和堆 共享資料區和堆可以用來交換資訊 一、執行緒的建立 pthread_create()函式 #include<pthread.h> int prthread_create(pthread * thread,c
TCP/IP網路程式設計 學習筆記_15 --多播與廣播
轉自:http://blog.csdn.net/u010223072/article/details/48269213 前言:想想這麼一種情況,網路電臺可能需要同時向成千上萬的使用者傳輸相同的資料,如果用我們以前講過的傳輸形式,每個使用者都傳輸一次,這樣肯定是不合理的
《TCP/IP網路程式設計》第一章:理解網路程式設計和套接字 筆記
第一章:理解網路程式設計和套接字 本章程式碼,在TCP-IP-NetworkNote中可以找到。 1.1 理解網路程式設計和套接字 1.1.1構建打電話套接字 以電話機打電話的方式來理解套接字。 呼叫 socket 函式(安裝電話機)時進行的對話: 問:接