![TCP通信服務(wù)器設(shè)計(doc7頁)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/230ac48c-548b-4b21-9b9b-2e1ad3465e8f/230ac48c-548b-4b21-9b9b-2e1ad3465e8f1.gif)
![TCP通信服務(wù)器設(shè)計(doc7頁)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/230ac48c-548b-4b21-9b9b-2e1ad3465e8f/230ac48c-548b-4b21-9b9b-2e1ad3465e8f2.gif)
![TCP通信服務(wù)器設(shè)計(doc7頁)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/230ac48c-548b-4b21-9b9b-2e1ad3465e8f/230ac48c-548b-4b21-9b9b-2e1ad3465e8f3.gif)
![TCP通信服務(wù)器設(shè)計(doc7頁)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/230ac48c-548b-4b21-9b9b-2e1ad3465e8f/230ac48c-548b-4b21-9b9b-2e1ad3465e8f4.gif)
![TCP通信服務(wù)器設(shè)計(doc7頁)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/230ac48c-548b-4b21-9b9b-2e1ad3465e8f/230ac48c-548b-4b21-9b9b-2e1ad3465e8f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2 基于 Linux 的 TCP 通信服務(wù)器端的實現(xiàn)2.1 設(shè)計要求大家好,今天 ,與教研室老師商量了一下題目,覺得你們組的這個題目有點難度,而且時間比較短,用 LINUX 可能會比麻煩, 一是它使用的 vi 命令比較復(fù)雜, 另外編譯環(huán)境的安裝也比較麻煩費時, 而我們每個老師要帶4 個組沒有太多時間,這周我們又要內(nèi)審檢查考試卷子,所以現(xiàn)在更改一下設(shè)計內(nèi)容,不要求在Linux 下做了,可以在windows環(huán)境下來做,多線程服務(wù)器端,用C+語言或JAVA語言。這樣都做好了,如果有時間再熟悉一下 Linux 環(huán)境,等以后畢業(yè)設(shè)計的時候再實現(xiàn)Linux 下的服務(wù)器。不知道你們的想法如何?也不知道你們以
2、前是否有熟悉Linux 的?如有什么問題請隨時跟我聯(lián)系。2.1.1 設(shè)計目的在 linux 環(huán)境下 ,掌握 TCP 通信的服務(wù)器端實現(xiàn)方式。2.1.2 基本功能要求和設(shè)計目標2.1.3 1)能夠偵聽客戶端的連接請求;2.1.4 2)建立獨立的數(shù)據(jù)通信鏈路;2.1.5 3)在通信兩端建立對等的通信協(xié)議;2.1.6 4)完成數(shù)據(jù)包的收發(fā)與存儲;2.1.7 擴展功能實現(xiàn)視頻監(jiān)控數(shù)據(jù)的采集以及控制命令的收發(fā)。2.2 參考示例2.2.1 案例說明( 1) TCP 三次握手機制為實現(xiàn)服務(wù)器端的 TCP 通信功能, 服務(wù)器端需要能夠接受多個客戶端的通信請求,并建立多條TCP通信鏈路。TCP的連接建立叫做三次
3、握手。客戶端發(fā)送一個帶SYN 標志的 TCP 報文到服務(wù)器。 這是三次握手過程中服務(wù)器端回應(yīng)客戶端的,這是三次握手中的第 2個報文,這個報文同時 帶ACK標志和SYN標志。因此它表示對剛才客戶端 SYN報文的回應(yīng);同時又 標志SYN給客戶端,詢問客戶端是否準備好進行數(shù)據(jù)通訊??蛻舯仨氃俅位貞?yīng)服務(wù)段一個 ACK報文,這是報文段3,如圖1。數(shù)據(jù)傳輸是在連接建立后,雙向的數(shù)據(jù)傳送就可以開始??蛻艉头?wù)器都 可以在兩個方向傳送數(shù)據(jù)和確認。主機A主機B報文段1工SYN(膽塞i莘)報文段3: ACK圖1 TCP協(xié)議建立連接三次握手過程(2)套接字(Socket目的概念Windows下網(wǎng)絡(luò)編程白規(guī)范Wind
4、ows Sockets是 Windows下得到廣泛應(yīng)用的、開放的、支持多種協(xié)議的網(wǎng)絡(luò)編程接口。Socket又稱套接字,是進程之間通信的抽象連接點。可以通過一個形象的 例子來理解這個概念,現(xiàn)實生活中的電話是人們聯(lián)系的常用工具,雙方只要使用兩部電話機就可以交談。在計算機世界中,兩個程序就是使用 Socket進行通信 的,一個Socke蹴好比一部電話機,兩個程序在網(wǎng)絡(luò)上通過一個雙向鏈路進行通 信,這個雙向鏈路的每一端就成為一個 Socket o進程之間要通信,首先要建立各自的 Socket,就像要打電話一定要先有電 話機一樣,打電話時每部電話機都可以說和聽。與此類似,每個 Socket也都可 以進行
5、讀/寫操作,讀/寫操作時分別要用到 Socke仲的輸入流和輸出流。建立連接后,客戶程序可以向Socket里寫入請求,然后服務(wù)器會處理這個請 求,并把處理結(jié)果通過Socke必回。服務(wù)器應(yīng)用程序一般監(jiān)聽一個特定端口以等 待一個客戶的連接請求,當一個連接請求到達時,客戶和服務(wù)器建立一個通信連 接。在連接過程中,客戶被分配一個本地端口號并且與一個 Socket連接,客戶通 過寫Socket來通知服務(wù)器,通過讀Socket來獲取信息。類似地,服務(wù)器也獲取一 個本地端口號,它需要一個新的端口號來監(jiān)聽原始端口上的其它連接請求。服務(wù)器也給它的本地端口連接一個Socket,讀寫來自客戶的請求。根據(jù)網(wǎng)絡(luò)通信的特
6、征,套接字可分為兩類:流套接字和數(shù)據(jù)報套接字。 流套接字流套接字提供雙向的、 有序的、 無重復(fù)并且無記錄邊界的數(shù)據(jù)流服務(wù), 它適用于處理大量數(shù)據(jù)。網(wǎng)絡(luò)傳輸層可以將數(shù)據(jù)分散和集中到合適尺寸的數(shù)據(jù)包中。流套接字是面向連接的,通信雙方進行數(shù)據(jù)交換之前,必須建立一條路徑,這樣既確定了它們之間存在的路由,又保證了雙方都是活動的、可彼此響應(yīng)的,但通信雙方之間建立一個通信信道需要很多開支。 除此以外, 大部分面向連接的協(xié)議為保證發(fā)送無誤, 可能會需要執(zhí)行額外的計算機來驗證正確性, 因此會進一步增加開支。數(shù)據(jù)報套接字數(shù)據(jù)報套接字支持雙向的數(shù)據(jù)流, 但并不保證數(shù)據(jù)傳輸?shù)目煽啃浴?有序性的和無重復(fù)性。 也就是說,
7、 一個從數(shù)據(jù)報套接字接收信息的進程有可能發(fā)現(xiàn)信息重復(fù), 或者和發(fā)出時的順序不同的情況。 此外, 數(shù)據(jù)報套接字的一個重要特點是它保留了記錄邊界。 對于這一特點, 數(shù)據(jù)報套接口采用了與現(xiàn)在許多包交換網(wǎng)絡(luò) (例如以太網(wǎng))非常類似的模型。數(shù)據(jù)報套接字是無連接的, 它不保證接收端是否正在偵聽, 類似于郵政服務(wù):發(fā)信人把信裝入郵箱即可, 至于收件人是否能收到這封信或郵局是否能按時將信件投遞到收件人處等,發(fā)件人都不得而知。因此,數(shù)據(jù)報并不可靠,需有程序員負責管理數(shù)據(jù)報的排序和可靠性。應(yīng)用程序一般僅在同一類的套接口間通信。不過只要底層的通信協(xié)議允許,不同類型的套接口也照樣可以通信。本設(shè)計采用面向連接的 TCP
8、 協(xié)議,所以使用流套接字。( 3)客戶機/服務(wù)器模型TCP/IP協(xié)議應(yīng)用的主要工作模式是客戶機/服務(wù)器模式(Client/Server,簡稱C/S 模式) 。在兩個不同進程的通信過程中,一方發(fā)出服務(wù)請求,一方提供服務(wù),通常稱它們?yōu)椤翱蛻暨M程”和“服務(wù)進程” 。顯然,兩個進程之間的通信實際上是基于通信協(xié)議的進程的同步過程, 服務(wù)進程作為自愿的提供者, 為眾多主機上的客戶進程提供服務(wù)。服務(wù)進程要先于客戶進程開啟,在某一確定的網(wǎng)絡(luò)地址( IP地址 +端口號) 等待客戶進程的請求, 如有請求到達, 服務(wù)進程采取某種方式 (并發(fā)服務(wù)或者重復(fù)服務(wù)),直到客戶進程關(guān)閉,然后服務(wù)進程繼續(xù)等待下一個請求服務(wù)的進
9、程。服務(wù)器通常采用并發(fā)服務(wù)的方式。所謂并發(fā)服務(wù),就是服務(wù)進程在有客戶請求到來時, 激活新的進程來專門為此客戶請求提供服務(wù), 并在客戶終止請求后殺死該進程, 與此同時, 原先的進程可以繼續(xù)在原來的端口等待下一個客戶的連接。Socket 編程接口為新的請求創(chuàng)建一個專門的“數(shù)據(jù)套接字” ,并發(fā)服務(wù)器根據(jù)該套接字創(chuàng)建專門的服務(wù)進程。 并發(fā)服務(wù)的最大優(yōu)點是能及時相應(yīng)請求, 雖然創(chuàng)建新進程會增加系統(tǒng)開銷。與此相對應(yīng)的是重復(fù)服務(wù),它利用“數(shù)據(jù)套接字” ,在監(jiān)聽的進程上直接進行服務(wù)。需要說明的是,兩種類型的Socket(SOCK_STREAM 和SOCK_DGRAM)的工作流程是不同的,分別如圖 2和圖3所示
10、。服務(wù)器建立連接客戶機請求/應(yīng)答圖2流套接字服務(wù)的工作流程示意圖服務(wù)器客戶機圖3數(shù)據(jù)報套接字服務(wù)的工作流程示意圖2.2.2網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(1)網(wǎng)絡(luò)拓撲結(jié)構(gòu)采用星型連接PC ClientServer(2)使用10/100Mbps的網(wǎng)卡。(3)軟件實現(xiàn)編程語言采用C語言,利用socket進行通信。(4)開發(fā)平臺linux o由于linux能夠提供強大的網(wǎng)絡(luò)支持,以及安全特性,當 前主流服務(wù)器端都采用linux平臺構(gòu)筑。2.2.3軟件設(shè)計設(shè)計流程圖:開始N圖4軟件流程圖(1)建立一個用于偵聽的socket,始終在端口 2000進行偵聽。(2)當有客戶端發(fā)出鏈路請求,偵聽鏈路接受,并且建立數(shù)據(jù)鏈路,在獨
11、立的 線程進行數(shù)據(jù)通信。(3)拆分通信數(shù)據(jù)包,數(shù)據(jù)包最大長度為1KB,在每個數(shù)據(jù)包包頭的1個字節(jié), 用于描述數(shù)據(jù)包的序號,循環(huán)計數(shù)。也就是說,包頭的第一個數(shù)據(jù)依次為 0, 1, 2;.255,超過255后,從0開始重新計數(shù)。(4)接收的的數(shù)據(jù),寫入文件,每個文件最大長度上限為 1MB。2.2.5參考程序清單2.2.6測試方法1 .使用客戶端與服務(wù)器端進行聯(lián)機,確認收發(fā)數(shù)據(jù)正確;2 .在服務(wù)器端,使用TCPDUMP截獲數(shù)據(jù)進行分析,確保數(shù)據(jù)正確2.2.7 思考與提高TCP 通信是提供多種網(wǎng)絡(luò)的通信基礎(chǔ), 掌握 TCP 通信的原理, 以及了解 TCP通信三次握手的通信協(xié)議, 就能為提供各種網(wǎng)絡(luò)服務(wù)
12、提供支持, 例如, 各種監(jiān)控視頻數(shù)據(jù)的網(wǎng)絡(luò)傳輸, 提供網(wǎng)絡(luò)打印服務(wù)等等。 這些應(yīng)用可以在此基礎(chǔ)上進行拓展。本次設(shè)計僅簡單的實現(xiàn)了 TCP 通信最基本的通信與數(shù)據(jù)處理,在將來的設(shè)計中,以下方面可以進行完善。諸如:會話層數(shù)據(jù)協(xié)議,程序的排錯機制,數(shù)據(jù)的存儲備份機制等。讀一本好書,就是和許多高尚的人談話讀書時,我愿在每一個美好思想的面前停留,就像在每一條真理面前停留一樣。書籍是在時代的波濤中航行的思想之船,它小心翼翼地把珍貴的貨物運送給一代又一代。好的書籍是最貴重的珍寶是唯一不死的東西。書籍使人們成為宇宙的主人。書中橫臥著整個過去的靈書不僅是生活,而且是現(xiàn)在、過去和未來文化生活的源泉。書籍把我們引入最美好的社會,使我們認識各個時代的偉大智者。書籍便是這種改造靈魂的工具。人類所需要的,是富有啟發(fā)性的養(yǎng)料。而閱讀,則正是這種養(yǎng)料。8、不敢妄為些子事,只因曾讀數(shù)行書。陶宗義我并沒有什么方法,只是對于一件事情很長時間很熱心地去考慮罷了。只要愿意學習,就一定能夠?qū)W會一個愛書的人,他必定不致缺少
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 朝陽2024年遼寧朝陽師范學院招聘37人筆試歷年參考題庫附帶答案詳解
- 攀枝花2025年四川攀枝花市民政局直屬事業(yè)單位考調(diào)4人筆試歷年參考題庫附帶答案詳解
- 2025年中國沖天爐數(shù)字式綜合檢測儀市場調(diào)查研究報告
- 2025至2031年中國高壓均質(zhì)機行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國耐低溫型不干膠行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國直流脈寬調(diào)速器行業(yè)投資前景及策略咨詢研究報告
- 2025年活門項目可行性研究報告
- 2025至2031年中國易洗除漬素行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國嬰兒玩具拉琴行業(yè)投資前景及策略咨詢研究報告
- 2025年女裝牛仔中褲項目可行性研究報告
- 山東省濱州市2024-2025學年高一上學期期末考試語文試題(含答案)
- JJF 1375-2024機動車發(fā)動機轉(zhuǎn)速測量儀校準規(guī)范
- 七年級英語閱讀理解55篇(含答案)
- 2024年中國華能瀾滄江水電股份有限公司招聘筆試參考題庫含答案解析
- 管理ABC-干嘉偉(美團網(wǎng)COO)
- 2023電力行業(yè)無人機技術(shù)規(guī)范
- BP-2C 微機母線保護裝置技術(shù)說明書 (3)
- 數(shù)據(jù)結(jié)構(gòu)英文教學課件:chapter6 Tree
- 硫酸分公司30萬噸硫磺制酸試車方案
- 電子電路基礎(chǔ)習題解答
- 食品生物化學習題謝達平(動態(tài))
評論
0/150
提交評論