計算機(jī)網(wǎng)絡(luò)實驗指導(dǎo)書(共53頁)_第1頁
計算機(jī)網(wǎng)絡(luò)實驗指導(dǎo)書(共53頁)_第2頁
計算機(jī)網(wǎng)絡(luò)實驗指導(dǎo)書(共53頁)_第3頁
計算機(jī)網(wǎng)絡(luò)實驗指導(dǎo)書(共53頁)_第4頁
計算機(jī)網(wǎng)絡(luò)實驗指導(dǎo)書(共53頁)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、PAGE 計算機(jī)網(wǎng)絡(luò)實驗(shyn)指導(dǎo)書桂林電子科技大學(xué)(dxu)計算機(jī)科學(xué)(kxu)與工程學(xué)院20149目錄(ml)1. 以太網(wǎng)組網(wǎng)初步(chb).12. 網(wǎng)絡(luò)基礎(chǔ)(jch)及應(yīng)用.103. 組建多路由ip網(wǎng)絡(luò).184. TCP協(xié)議分析與簡單通信程序設(shè)計.25 PAGE 53實驗(shyn)一 以太網(wǎng)組網(wǎng)初步(chb)第一部分(b fen) 雙絞線電纜制作【實驗?zāi)康摹?進(jìn)一步了解和認(rèn)識常見的網(wǎng)絡(luò)設(shè)備及其功能2熟悉常見的網(wǎng)絡(luò)傳輸介質(zhì)及其使用3掌握雙絞線連接器壓接方法4掌握雙絞線模塊的打線方法5掌握簡單的物理網(wǎng)絡(luò)維護(hù)知識【實驗要求】預(yù)習(xí)網(wǎng)絡(luò)設(shè)備工作原理方面的知識預(yù)習(xí)背景知識實驗前熟悉相關(guān)工具軟

2、件的使用方法在使用Rj45接頭壓接工具時,應(yīng)十分注意安全【實驗原理】以太網(wǎng)簡介典型的局域網(wǎng)主要有:以太網(wǎng)、令牌環(huán)、FDDI、ATM、優(yōu)先權(quán)局域網(wǎng)(即100VG-AnyLAN)。其中以以太網(wǎng)使用最為普遍。按數(shù)據(jù)傳輸率,以太網(wǎng)分為三類:1標(biāo)準(zhǔn)以太網(wǎng)由IEEE802.3標(biāo)準(zhǔn)所規(guī)范,對于拓?fù)浣Y(jié)構(gòu)、傳輸介質(zhì)、數(shù)據(jù)編碼方式、數(shù)據(jù)傳輸速率、數(shù)據(jù)幀的長度以及介質(zhì)訪問控制協(xié)議等均有詳細(xì)的描述。按使用的傳輸介質(zhì)不同,可分為四種:10Base-5:粗同軸電纜,最大傳輸距離500m10Base-2:細(xì)同軸電纜,最大傳輸距離185m10Base-T: 雙絞線,最大傳輸距離100m10Base-FL: 長波多模光纖,最大

3、傳輸距離2000m2快速以太網(wǎng)由IEEE802.3u標(biāo)準(zhǔn)所規(guī)范按使用的傳輸介質(zhì)或工作方式不同,可分為三種:100Base-TX: 五類UTP或STP雙絞線(只用兩對),最大傳輸距離100m100Base-T4: 3、4或5類UTP或STP雙絞線(4對線全用),最大傳輸距離100m100Base-FX: 單?;蚨嗄9饫w,最大傳輸距離220km3千兆位以太網(wǎng)由IEEE 802.3z和802.3ab標(biāo)準(zhǔn)所規(guī)范。按使用(shyng)的傳輸介質(zhì)或工作方式不同,可分為七種:1000Base-T: 5類UTP雙絞線(4對線全用),最大傳輸(chun sh)距離100m1000Base-CX: 銅纜,最大傳輸

4、(chun sh)距離25m1000Base-SX: 62.5/125MMF,短波,最大傳輸距離260m1000Base-SX: 50/125MMF,短波,最大傳輸距離525m1000Base-LX: 62.5/125MMF,長波,最大傳輸距離550m1000Base-LX: 50/125MMF,長波,最大傳輸距離550m1000Base-LX: 9/125SMF,長波,最大傳輸距離30005000m4萬兆位以太網(wǎng)由IEEE802.3ae標(biāo)準(zhǔn)所規(guī)范目前主要用于大型網(wǎng)絡(luò)(如城域網(wǎng)、數(shù)據(jù)中心等)的骨干部分 5.十萬兆位以太網(wǎng)以太網(wǎng)物理設(shè)備1.典型的網(wǎng)絡(luò)設(shè)備典型的網(wǎng)絡(luò)設(shè)備有中繼器、集線器、網(wǎng)卡、網(wǎng)橋

5、、交換機(jī)、路由器等。實際組網(wǎng)時,還需使用布線產(chǎn)品,典型的有:機(jī)柜、配線架、跳線、信息插座等。2.網(wǎng)絡(luò)設(shè)備接口 網(wǎng)絡(luò)設(shè)備的接口多種多樣,通常它依賴于使用什么樣的傳輸介質(zhì)以及其接法等。對于雙絞線的RJ-45接口,又進(jìn)一步分成兩種接口:MDI(介質(zhì)有關(guān)接口)和MDI-X(交叉介質(zhì)有關(guān)接口)。MDI接口的1-2腳和3、6腳分別是信號的發(fā)送腳和接收腳;MDI-X接口的3、6腳和1-2腳分別是信號的發(fā)送腳和接收腳。網(wǎng)卡的接口和網(wǎng)絡(luò)設(shè)備的級聯(lián)接口(Up-Link)通常是MDI類型的;HUB及交換機(jī)的普通接口是MDI-X類型的。AUTOMDI MDI-X AUTO 3網(wǎng)絡(luò)設(shè)備的級聯(lián)與堆疊網(wǎng)絡(luò)傳輸介質(zhì) 1、典型

6、的傳輸介質(zhì) 典型的傳輸介質(zhì)有同軸電纜、雙絞線、光纖等。2、典型的連接頭典型的連接頭有BNC、RJ-45、SC、ST、MT-RJ、VF-45等。雙絞線應(yīng)用與測試1雙絞線1236通信規(guī)則EIA/TIA 在用雙絞線作傳輸介質(zhì)的以太網(wǎng)中,除了100Base-T4和1000Base-T以外,其余的均使用四對雙絞線中的兩對,接到RJ-45連接頭上,總是固定地對應(yīng)于其第1、2、3、6引腳。2T568A與T568B標(biāo)準(zhǔn)(biozhn)與雙絞線連接方法根據(jù)(gnj)T568A與T568B布線標(biāo)準(zhǔn)(biozhn),RJ-45連接頭各腳與雙絞線各芯線(色線)的連接,需符合以下對應(yīng)關(guān)系:引腳568A接法568B接法1

7、白綠(W-G)白橙(W-O)2綠(G)橙(O)3白橙(W-O)白綠(W-G)4藍(lán)(BL)藍(lán)(BL)5白藍(lán)(W-BL)白藍(lán)(W-BL)6橙(O)綠(G)7白棕(W-BR)白棕(W-BR)8棕(BR)棕(BR)3TSB-67標(biāo)準(zhǔn)與雙絞線電纜系統(tǒng)性能測試TSB-67標(biāo)準(zhǔn)是由TIA-EIA提出的雙絞線電纜系統(tǒng)性能的測試標(biāo)準(zhǔn)。它規(guī)定了雙絞線電纜的測量連接方式和測試電纜連接性能的準(zhǔn)則。具體定義了以下指標(biāo)參數(shù)及其基準(zhǔn)數(shù)據(jù):電纜長度、導(dǎo)線引腳、近端串?dāng)_、信號衰減率、阻抗;還定義了這些數(shù)據(jù)的測試方法、測試儀器和測試精度。有兩種測量連接方式:Channel Link:測量范圍從交換機(jī)至客戶端(途經(jīng)跳線、配線模塊、

8、網(wǎng)絡(luò)插座、用戶軟線)。Basic Link:只測量配線架到網(wǎng)絡(luò)接口的電纜連接,不包括連到計算機(jī)的活動短線和連到交換機(jī)的跳線。4測量雙絞線電纜系統(tǒng)性能常用工具 萬用表、測線器、TDR、電纜掃描儀、網(wǎng)絡(luò)分析儀。【實驗內(nèi)容與步驟】聽指導(dǎo)教師講解,觀看實物及實驗操作演示熟悉網(wǎng)絡(luò)設(shè)備、傳輸媒介、連接物件(如連接頭、插座、配線架等)雙絞線交叉線纜制作 A-B A-A B-B一端采用T568B接法、另一端采用T568A接法T568B接法操作步驟如下:步驟 1:利用斜口錯剪下所需要的雙絞線長度,至少 0.6米,最多不超過 100米。然后再利用雙絞線剝線器(實際用什么剪都可以)將雙絞線的外皮除去23厘米。 有一

9、些雙絞線電纜上含有一條柔軟的尼龍繩,如果您在剝除雙絞線的外皮時,覺得裸露出的部分太短,而不利于制作RJ45接頭時,可以緊握雙絞線外皮,再捏住尼龍線往外皮的下方剝開,就可以得到較長的裸露線。(如圖) 步驟(bzhu)2:剝線完成(wn chng)后的雙絞線電纜如右圖所示。 步驟(bzhu)3:接下來就要進(jìn)行撥線的操作。將裸露的雙絞線中的橙色對線撥向自己的前方,棕色對線撥向自己的方向,綠色對線剝向左方,藍(lán)色對線剝向右方,如圖所示。 上:橙 左:綠 下:棕 右:藍(lán) 步驟4:將綠色對線與藍(lán)色對線放在中間位置,而橙色對線與棕色對線保持不動, 即放在靠外的位置,如圖所示。 調(diào)整線序為以下順序左一:橙 左二

10、:藍(lán) 左三:綠 左四:棕 步驟5:小心的剝開每一對線,白色混線朝前。因為我們是遵循EIATIA 568B的標(biāo)準(zhǔn)來制作接頭,所以線對顏色是有一定順序的(如圖所示)。 需要特別注意的是,綠色條線應(yīng)該跨越藍(lán)色對線。這里最容易犯錯的地方就是將白綠線與綠線相鄰放在一起,這樣 會造成串?dāng)_,使傳輸效率降低。 左起:白橙橙白綠藍(lán)白藍(lán)綠白棕棕 常見的錯誤接法是將綠色線放到第4只腳的位置(如圖所示)。 應(yīng)該將綠色線放在第6只腳的位置(wi zhi)才是正確的,因為在100BaseT網(wǎng)絡(luò)中,第3只腳與第6只腳是同一對的,所以需要使用同一對線。(見標(biāo)準(zhǔn)EIATIA 568B) 左起:白橙橙白綠藍(lán)白藍(lán)綠白棕棕 步驟(b

11、zhu) 6:將裸露出的雙絞線用剪刀(jindo)或斜口鉗剪下只剩約 14mm的長度,之所以留下這個長度是為了符合EIATIA的標(biāo)準(zhǔn),您可以參考有關(guān)用RJ-45接頭和雙絞線制作標(biāo)準(zhǔn)的介紹。最后再將雙絞線的每一根線依序放入RJ45接頭的引腳內(nèi),第一只引腳內(nèi)應(yīng)該放白橙色的線,其余類推,如圖 步驟7:確定雙絞線的每根線已經(jīng)正確放置之后,就可以用RJ45壓線鉗壓接RJ45接頭,如右圖 市面上還有一種RJ45接頭的保護(hù)套,可以防止接頭在拉扯時造成接觸不良。使用這種保護(hù)套時,需要在壓接RJ45接頭之前就將這種膠套插在雙絞線電纜上,如圖。 步驟8:重復(fù)步驟2到步驟7,再制作另一端的RJ45接頭。因為工作站與

12、集線器之間是直接對接,所以另一端RJ45接頭的引腳接法完全一樣。完成后的連接線兩端的RJ45接頭無論引腳和顏色都完全樣,這種連接方法也適用于ADSL MODEM和計算機(jī)網(wǎng)卡之間的連接,計算機(jī)與集線器(交換機(jī))之間的連接。完成的RJ45接頭應(yīng)該如下圖所示。 4測試做好的網(wǎng)線。把一端RJ-45接頭插入測線器的發(fā)送端,另一頭插入測線器的接收端。把測試開關(guān)置于“直通”,開啟測線器電源,觀察每端的8個指示燈的閃亮情況。 5使用(shyng)打線器將雙絞線接入RJ45插座使用打線工具在多媒體插座(chzu)中,或在配線架上,實施雙絞線卡接操作1、32、64-45-57-78-8第二部分(b fen) 簡易

13、組網(wǎng)【實驗(shyn)目的】1. 掌握主機(jī)網(wǎng)絡(luò)配置(pizh)方法2. 熟悉(shx)常見的網(wǎng)絡(luò)設(shè)備3. 掌握網(wǎng)絡(luò)連通測試方法4. 學(xué)會用“超級終端”、telnet兩種方法訪問網(wǎng)絡(luò)設(shè)備5. 熟悉基本配置命令完成基本配置; 能熟練運用相關(guān)技巧操作命令; 能熟練運用命令查看設(shè)備總體配置; 能熟練運用命令查看設(shè)備接口的工作狀態(tài);【實驗設(shè)備】 實驗分組進(jìn)行 1.每組45人,每人1機(jī) 2.每組設(shè)備(機(jī)柜內(nèi)): 2臺(華為)交換機(jī)S2116、1臺(華為)路由器AR28-11 3.每組1根console線纜【設(shè)計任務(wù)】 采用給定設(shè)備,組建一個簡易、互通的網(wǎng)絡(luò),要求全網(wǎng)有2個IP網(wǎng)段。【參考案例】參見附錄【實

14、驗步驟及方案】一.請畫出網(wǎng)絡(luò)拓?fù)?,并?biāo)注各設(shè)備名稱(自己命名)、標(biāo)注所用到的路由器接口和交換機(jī)接口的名稱(要求與實物吻合);規(guī)劃各主機(jī)、網(wǎng)關(guān)、交換機(jī)網(wǎng)管的IP地址(含子網(wǎng)掩碼),并在圖中標(biāo)注。 二.按圖,在現(xiàn)場連接設(shè)備;按圖配置實驗用機(jī)IP;確認(rèn)各主機(jī)網(wǎng)絡(luò)連接是否正常,若不正常,嘗試檢查與排除故障 采用ping 測試,若不通,先查物理層、再查協(xié)議。三.檢查“超級終端”軟件是否已安裝,若未安裝則實施安裝 (1)檢查(jinch) “開始(kish)”-“所有(suyu)程序”-“附件”-“通訊”,查看有否“超級終端” (2)安裝 “開始”-“控制面板”-“添加或刪除程序”- “添加/刪除Wind

15、ows組件”-雙擊“附件和工具”- 雙擊“通訊”-選中“超級終端”-“確定” 提示:Windows系統(tǒng)安裝盤已備份在:c:windows2003目錄下四.配置交換機(jī) 實現(xiàn)交換機(jī)設(shè)備命名、網(wǎng)管地址配置、網(wǎng)管賬號的創(chuàng)建和權(quán)限設(shè)置、配置文件查看、telnet遠(yuǎn)程登錄測試、某個接口的狀態(tài)查詢、MAC地址表顯示、操作系統(tǒng)信息顯示、在線用戶信息查詢。 請結(jié)合具體的配置命令和參數(shù),給出一個詳細(xì)的方案,然后按方案進(jìn)行配置和測試。五.配置路由器 實現(xiàn)路由器設(shè)備命名、接口地址配置、網(wǎng)管賬號的創(chuàng)建和權(quán)限設(shè)置、配置文件查看、telnet遠(yuǎn)程登錄測試、某個接口的狀態(tài)查詢、路由表顯示、操作系統(tǒng)信息顯示、在線用戶信息查詢。

16、 請結(jié)合具體的配置命令和參數(shù),給出一個詳細(xì)的方案,然后按方案進(jìn)行配置和測試。六.復(fù)原 復(fù)原網(wǎng)絡(luò)連接復(fù)原主機(jī)網(wǎng)絡(luò)配置實驗二 網(wǎng)絡(luò)基礎(chǔ)及應(yīng)用第一(dy)部分 網(wǎng)絡(luò)協(xié)議與體系結(jié)構(gòu)【實驗(shyn)目的】1加深(jishn)理解TCP/IP體系結(jié)構(gòu);理解與掌握網(wǎng)絡(luò)基本配置2掌握幾個基本的實用網(wǎng)絡(luò)命令3熟悉以太網(wǎng)報文格式;熟悉網(wǎng)絡(luò)分析工具wireshark使用 【實驗原理】1.以太網(wǎng)協(xié)議兩種協(xié)議:ethernet_ii , iee802.3下圖所示為以太網(wǎng)/IEEE 802.3幀的基本組成:如圖所示,以太網(wǎng)和IEEE 802.3幀的基本結(jié)構(gòu)如下: 1、前導(dǎo)碼:由0、1間隔代碼組成,可以通知目標(biāo)站作好接收

17、準(zhǔn)備。IEEE 802.3幀的前導(dǎo)碼占用7個字節(jié),緊隨其后的是長度為1個字節(jié)的幀首定界符(SOF)。以太網(wǎng)幀把SOF包含在了前導(dǎo)碼當(dāng)中,因此,前導(dǎo)碼的長度擴(kuò)大為8個字節(jié)。2、幀首定界符(SOF):IEEE 802.3幀中的定界字節(jié),以兩個連續(xù)的代碼1結(jié)尾,表示一幀實際開始。3、目標(biāo)和源地址:表示發(fā)送和接收幀的工作站的地址,各占據(jù)6個字節(jié)。其中,目標(biāo)地址可以是單址,也可以是多點傳送或廣播地址。類型(以太網(wǎng)):占用2個字節(jié),指定接收數(shù)據(jù)的高層協(xié)議。長度(IEEE 802.3):表示緊隨其后的以字節(jié)為單位的數(shù)據(jù)段的長度。數(shù)據(jù)(以太網(wǎng)):在經(jīng)過物理層和邏輯鏈路層的處理之后,包含在幀中的數(shù)據(jù)將被傳遞給在

18、類型段中指定的高層協(xié)議。雖然以太網(wǎng)版本2中并沒有明確作出補(bǔ)齊規(guī)定,但是以太網(wǎng)幀中數(shù)據(jù)段的長度最小應(yīng)當(dāng)不低于46個字節(jié)。數(shù)據(jù)(IEEE 802.3):IEEE 802.3幀在數(shù)據(jù)段中對接收數(shù)據(jù)的上層協(xié)議進(jìn)行規(guī)定。如果數(shù)據(jù)段長度過小,使幀的總長度無法(wf)達(dá)到64個字節(jié)的最小值,那么相應(yīng)軟件將會自動填充數(shù)據(jù)段,以確保整個幀的長度不低于64個字節(jié)。幀校驗序列(FCS):該序列包含長度為4個字節(jié)的循環(huán)冗余校驗值(CRC),由發(fā)送設(shè)備計算產(chǎn)生,在接收方被重新計算以確定幀在傳送(chun sn)過程中是否被損壞。2.以太網(wǎng)報文(幀)長度(chngd) 最大長度:1518字節(jié) 最小長度:64字節(jié)3.網(wǎng)絡(luò)分

19、析工具wireshark簡介 主要功能:網(wǎng)絡(luò)報文捕捉、解碼分析 類似的軟件還有sniffer 實際使用中,在開始捕捉報文前,需要設(shè)置“過濾器”,以設(shè)定條件。使用wireshark跟蹤通信步驟: (A)運行wireshark (B)設(shè)置filter(設(shè)定捕捉條件) 例:規(guī)則“host and ”用來限定相應(yīng)的兩臺主機(jī)的通信。 (C)開始捕捉 (D)通信過程 (E) 結(jié)束捕捉 (F) 保存數(shù)據(jù)(選項) (G)分析數(shù)據(jù) 可以定義使用用于顯示的filter,進(jìn)一步篩選報文。 使用filter的關(guān)鍵是,先熟悉過濾器的規(guī)則?!緦嶒瀮?nèi)容與步驟】1. 看課件回顧TCP/IP體系結(jié)構(gòu)原理 2. 二層通信(tng

20、 xn)與三層通信 在仿真軟件中,打開(d ki)指定的數(shù)據(jù)文件(如下) (1)區(qū)別(qbi)交換機(jī)、路由器,請準(zhǔn)確判斷該網(wǎng)絡(luò)可分解成幾個物理網(wǎng)段? 提示:站在鏈路層的角度,所劃分出的網(wǎng)段,稱為物理網(wǎng)段,各通信節(jié)點是互通的 站在網(wǎng)絡(luò)層的角度,所劃分出的網(wǎng)段,稱為邏輯網(wǎng)段。 (2)查看主機(jī),路由器接口的ip參數(shù)配置; 通過跟蹤測試,理解各個參數(shù)的含義 3.典型的網(wǎng)絡(luò)(wnglu)命令與應(yīng)用(yngyng) (1)ping 主要功能:用于網(wǎng)絡(luò)連通(lintng)測試 實驗:測試本地主機(jī)與50(或另一臺主機(jī))之間的連通性 (2)ipconfig 主要功能:用于查看網(wǎng)絡(luò)配置 實驗:查看本地網(wǎng)絡(luò)配置,查

21、看本地網(wǎng)卡的物理地址 (3)arp 主要功能:用于查看、管理arp表 arp表組成:當(dāng)前網(wǎng)段節(jié)點的地址信息,是動態(tài)的 實驗:顯示本地arp表 刪除本地arp表 查詢本網(wǎng)段某機(jī)的MAC地址(已知其IP) (4)nslookup 主要功能:域名解析 實驗:按域名查詢某網(wǎng)站ip地址 4. 選擇一目標(biāo)機(jī)進(jìn)行ping測試,并用wireshark跟蹤記錄整個通信過程,并進(jìn)行分析 如:ping 50 (A)在協(xié)議解碼軟件中,設(shè)定包捕捉過濾條件: 例: host and 50 (B)在協(xié)議解碼軟件中,啟動捕捉功能 (C)在控制臺中,執(zhí)行:ping 50 (D)在協(xié)議解碼軟件中,停止包捕捉,并將捕捉的結(jié)果進(jìn)行存

22、檔。 (E)對所捕捉的包進(jìn)行依次觀察與分析,弄懂整個通信過程, 重點分析第二層協(xié)議,了解第三層協(xié)議。第二部分 組建基于Serv-u的FTP服務(wù)器【實驗(shyn)目的】 1.了解(lioji)Serv-u FTP服務(wù)器的工作機(jī)制 2.掌握(zhngw)基于Serv-u的FTP服務(wù)器組建方法、管理技術(shù) 【主要內(nèi)容】 1. FTP服務(wù)器安裝 2. FTP服務(wù)器設(shè)置與管理【重點與難點】 1. 區(qū)別與理解主目錄、虛擬目錄 (1)每個用戶都有自己的子目錄 (2)用戶登陸后,看到的目錄(根目錄)就是自己的主目錄, 主目錄“包含”: 原主目錄內(nèi)的子目錄;原主目錄內(nèi)的文件;虛擬目錄 (3)虛擬目錄,為邏輯名稱

23、,對應(yīng)的物理目錄,并在用戶自己主目錄內(nèi) (4)虛擬目錄在定義的時候,需要使用變量%HOME%,“掛接”到用戶主目錄。 對于本實驗, 對于帳號zhang3,變量%HOME%=d:ftpzhang3 對于帳號li4 ,變量%HOME%=d:ftpli4 2. 目錄訪問權(quán)限設(shè)置【實驗任務(wù)】 安裝、設(shè)置1臺FTP服務(wù)器,實現(xiàn)下列功能: 1.支持管理員(目前有admin)、工作人員(目前有zhang3,li4)、匿名用戶(anonymous)三級用戶 2.管理員登錄FTP服務(wù)器后,可以看到(全部)目錄: incoming(用于公共上傳) software(軟件共享) office(辦公資料)包含兩個子目

24、錄:depart1(科室1)、depart2(科室2) 管理員對上述目錄擁有全部的權(quán)限 3.匿名用戶登錄FTP服務(wù)器后,可以看到目錄: incoming,擁有除了刪除權(quán)的全部的權(quán)限 software,只擁有讀取與列目錄權(quán)限 4.工作人員zhang3,登錄FTP服務(wù)器后,可以看到目錄: incoming,擁有全部的權(quán)限 software,只擁有讀取與列目錄(ml)權(quán)限 office,擁有(yngyu)讀取與列目錄權(quán)限 officedepart1,擁有全部(qunb)的權(quán)限 officedepart2,擁有讀取與列目錄權(quán)限 5.工作人員li4,登錄FTP服務(wù)器后,可以看到目錄: incoming,

25、擁有全部的權(quán)限 software,只擁有讀取與列目錄權(quán)限 office,擁有讀取與列目錄權(quán)限 officedepart1,擁有讀取與列目錄權(quán)限 officedepart2,擁有全部的權(quán)限 6.匿名用戶設(shè)置: 最大上傳速率:100Kbps; 最大下傳速率:1Mbps; 最大用戶數(shù):2個 磁盤配額:3M字節(jié) 7.匿名用戶對其主目錄只擁有讀取與列目錄權(quán)限; 其它用戶對其主目錄擁有全部的權(quán)限物理目錄劃分方案(其中一種): (1)在d盤上,創(chuàng)建ftp目錄 (2)在d:ftp目錄下,創(chuàng)建子目錄如下: incoming(用于公共上傳) software(軟件共享) office(辦公資料) officede

26、part1(科室1) officedepart2(科室2) anonymous(匿名用戶主目錄) admin(用戶admin主目錄) zhang3(用戶zhang3主目錄) li4(用戶li4主目錄)虛擬目錄(虛擬路徑)映射方案: d:ftpincoming%HOME%incoming D:ftpsoftware%HOME%software D:ftpoffice %HOME%office【實驗步驟】一.下載相關(guān)軟件與資料 二.服務(wù)器端安裝 1.網(wǎng)卡設(shè)置檢查 2.安裝FTP服務(wù)器 三.FTP服務(wù)器設(shè)置 1.創(chuàng)建目錄,并拷貝若干文件到其內(nèi): (1)在d盤上,創(chuàng)建ftp目錄 (2)在d:ftp目錄

27、(ml)下,創(chuàng)建子目錄如下: incoming(用于公共(gnggng)上傳) software(軟件(run jin)共享) office(辦公資料) officedepart1(科室1) officedepart2(科室2) anonymous(匿名用戶主目錄) admin(用戶admin主目錄) zhang3(用戶zhang3主目錄) li4(用戶li4主目錄) 2.打開FTP服務(wù)器管理器 3.創(chuàng)建虛擬目錄(虛擬路徑): d:ftpincoming%HOME%incoming D:ftpsoftware%HOME%software D:ftpoffice %HOME%office 4.檢

28、查FTP服務(wù)器中,是否已創(chuàng)建匿名用戶(anonymous), 若未創(chuàng)建,則進(jìn)行創(chuàng)建,主目錄為d:ftpanoymous. 若已創(chuàng)建,檢查并確保其主目錄為d:ftpanoymous. 5.創(chuàng)建帳號admin,主目錄為d:ftpadmin 創(chuàng)建帳號zhang3,主目錄為d:ftpzhang3 創(chuàng)建帳號li4,主目錄為d:ftpli4 6.為帳號admin指定目錄訪問權(quán)限: d:ftpincoming d:ftpsoftware d:ftpoffice d:ftpadmin 7.為帳號anonymous指定目錄訪問權(quán)限: d:ftpincoming d:ftpsoftware d:ftpanonym

29、ous 8.定義組office,為組office指定目錄訪問權(quán)限: d:ftpincoming d:ftpsoftware d:ftpoffice 9.將帳號zhang3加入組office中,并為zhang3指定目錄訪問權(quán)限: officedepart1 10.將帳號li4加入組office中,并為li4指定目錄訪問權(quán)限: officedepart2 11.匿名用戶進(jìn)一步設(shè)置: 最大上傳速率:100Kbps; 最大下傳速率:1Mbps; 最大用戶數(shù):2個 磁盤配額:3M字節(jié)四.FTP服務(wù)器管理 (1)停止運行 (2)啟動(qdng)FTP服務(wù) (3)在線(zi xin)用戶訪問活動監(jiān)視、管理

30、五.應(yīng)用(yngyng)測試 使用ie瀏覽器或其它的ftp客戶端軟件, 分別使用帳號admin,anonymous,zhang3,li4: 對目標(biāo)ftp服務(wù)器進(jìn)行訪問測試實驗三 組建多路由ip網(wǎng)絡(luò)第一(dy)部分(b fen) 在仿真器下設(shè)計(shj)一個由4臺路由器組成的IP網(wǎng)絡(luò)【實驗?zāi)康摹?、加深理解路由器的工作原理;2、運用路由器實現(xiàn)網(wǎng)絡(luò)互連3、配置靜態(tài)路由、默認(rèn)路由【實驗原理】路由與路由表路由器的核心功能 :路由 路由表的組成:路由項路由項的種類:直連路由靜態(tài)路由 /可以手工添加,也可以手工刪除動態(tài)路由(RIP、OSPF、BGP)路由項的組成 目的ip /可以是一個網(wǎng)段,也可以是一個主

31、機(jī) 目的mask 下一跳(nexthop) /下一個路由器的入口ip 例:55H3Cdisplay ip routing-table Routing Table: public net目的IP/目的掩碼 協(xié)議 優(yōu)先級 開銷 下一跳 本地出口Destination/Mask Protocol Pre cost Nexthop Interface /8 RIP 100 3 Serial1/0 /8 OSPF 10 50 Ethernet0/0 /16 RIP 100 4 Serial1/0 /8 Static 60 0 Serial1/0 /8 Direct 0 0 Ethernet0/0 /32

32、 static 0 0 LoopBack0/0Static 60 0 Serial1/0 路由匹配 匹配原則:選擇最優(yōu)路由項 其中默認(rèn)路由永遠(yuǎn)符合匹配條件,但是匹配選擇次序永遠(yuǎn)是最后一個【任務(wù)與要求】在仿真軟件VNL環(huán)境下,規(guī)劃設(shè)計一個由4個路由器(或以上)組成的多IP網(wǎng)段的網(wǎng)絡(luò)。要求(yoqi):畫出網(wǎng)絡(luò)拓?fù)鋱D劃分IP網(wǎng)段,分配網(wǎng)段ID;給網(wǎng)段內(nèi)各通信(tng xn)結(jié)點分配IP給各結(jié)點設(shè)置(shzh)IP參數(shù)在各臺路由器上,分別設(shè)置靜態(tài)路由或默認(rèn)路由完成連通測試,確保整個網(wǎng)路是互通的交換機(jī)、主機(jī)結(jié)點數(shù)目不限(能提供測試支持)【實驗步驟】畫出網(wǎng)絡(luò)拓?fù)鋱D 劃分IP網(wǎng)段,分配網(wǎng)段ID;給網(wǎng)段內(nèi)各

33、通信結(jié)點分配IP 給各結(jié)點設(shè)置IP參數(shù) 在各臺路由器上,分別設(shè)置靜態(tài)路由或默認(rèn)路由 完成連通測試,確保整個網(wǎng)路是互通的【示例】由2臺路由器組成的IP網(wǎng)絡(luò)網(wǎng)絡(luò)拓?fù)鋱D IP規(guī)劃有三個IP網(wǎng)段,網(wǎng)絡(luò)節(jié)點IP分配如下: net1: /24 1-254 0-255 c1: r1 e1:54 net2: /24 r1 e0: r2 e0: net3: /24 r2 e1: c2:主機(jī)(zhj)ip 路由器接口(ji ku) 路由器路由表 連通(lintng)測試 第二(d r)部分(b fen) 組建一個由兩臺路由器組成的物理網(wǎng)絡(luò)【實驗?zāi)康摹?、加深理解路由器的工作原理;學(xué)習(xí)運用路由器實現(xiàn)網(wǎng)絡(luò)互連2、掌握

34、在Quidway路由器上配置靜態(tài)路由3、掌握在Quidway路由器上配置默認(rèn)路由4、掌握在Quidway路由器上配置RIP路由5、熟悉與使用路由器的子接口、回環(huán)接口6、掌握(zhngw)路由的基本測試方法【實驗(shyn)原理】本次(bn c)實驗中路由器上典型的操作命令使用示例:(1) 進(jìn)入路由某接口, 配置ip地址例:interface e0/0 ip address 24 (2) 創(chuàng)建(某接口)子接口 例:interface e0/0.1 (3) 創(chuàng)建回環(huán)接口 例:interface lo1顯示路由器的總體配置信息display current-configuration(5) 顯示路由

35、表 display ip routing-table(6) 定義路由器的名字 例:sysname R1(7) 查看路由器某接口的工作狀態(tài) 例:display interface e0/1(8) 添加某條靜態(tài)路由 例:ip route -Static (9) 刪除某條靜態(tài)路由 例:undo ip route -Static (10) 添加某條默認(rèn)路由 例:ip route -Static (11)啟動rip,使用其第2版協(xié)議 rip version 2(12)在rip協(xié)議上宣告某網(wǎng)段(必須為本地的直連網(wǎng)段) 例:network (13)在兩個通信節(jié)點間,進(jìn)行路由跟蹤測試 例:tracert /在

36、一個節(jié)點運行tracert,參數(shù)為另一個節(jié)點ip【任務(wù)與要求】 按如下網(wǎng)絡(luò)拓?fù)浣M網(wǎng),分別以靜態(tài)路由、默認(rèn)路由、RIP路由方式實現(xiàn)網(wǎng)絡(luò)的互聯(lián),并完成連通測試。 要求(yoqi):(1) 在R1、R2上,要創(chuàng)建以下(yxi)邏輯接口: 回環(huán)(hugun)(loopback)接口: loop 100(2) 每臺交換機(jī)上至少要接2臺主機(jī) (3) 先規(guī)劃整個網(wǎng)絡(luò)的ip地址 要求每個路由接口,帶一個IP網(wǎng)段 為每個IP網(wǎng)段分配一個網(wǎng)絡(luò)ID; 為每個IP網(wǎng)段下的通信節(jié)點(主機(jī)節(jié)點或路由接口)分配IP地址;(4)在做RIP路由時,要求使用其第2版協(xié)議【測試工具】pingtracert【實驗步驟】 實驗分組進(jìn)行

37、,每組4人。完成網(wǎng)絡(luò)的物理連接如需要額外線纜,自己完成制作 1-254完成網(wǎng)絡(luò)的ip地址規(guī)劃將具體規(guī)劃填寫到下表,并記錄到實驗報告中;網(wǎng)段名稱網(wǎng)段IP通信節(jié)點通信節(jié)點IPNet1/24R1:E0/054/24P1/24P2/24Net2/24R1:LOOP154/24Net3/24R1:E0/1/24R2:E0/1/24Net4/24R2:E0/054/24C1/24C2/24Net5/24R2:LOOP154/24完成(wn chng)各主機(jī)節(jié)點的ip地址與網(wǎng)關(guān)、路由接口的ip地址設(shè)置注意,各主機(jī)(zhj)節(jié)點的網(wǎng)關(guān)參數(shù),不要配錯配置(pizh)路由器的名字;配置用于網(wǎng)絡(luò)管理的賬號與權(quán)限(可

38、參考實驗一)(選做);以靜態(tài)路由的方式完成路由設(shè)置進(jìn)行連通測試,并進(jìn)行必要的記錄刪除靜態(tài)路由,以默認(rèn)路由的方式完成路由設(shè)置;進(jìn)行連通測試,并進(jìn)行必要的記錄刪除默認(rèn)路由,以RIP路由的方式完成路由設(shè)置進(jìn)行連通測試,并進(jìn)行必要的記錄現(xiàn)場復(fù)原將后來添加的路由器、網(wǎng)線、電源線取下交給指導(dǎo)老師清點;課后,請在實驗報告中對記錄的數(shù)據(jù)進(jìn)行分析。實驗四 TCP、UDP協(xié)議分析與通信程序設(shè)計【實驗(shyn)目的】 1、理解(lji)與掌握(zhngw)TCP協(xié)議、UDP協(xié)議通信機(jī)制2、熟悉使用windows操作系統(tǒng)所提供的網(wǎng)絡(luò)編程接口Winsock3、掌握基于Winsock的TCP或UDP應(yīng)用程序設(shè)計方法【預(yù)

39、習(xí)要求】1、復(fù)習(xí)課堂上所學(xué)習(xí)的TCP協(xié)議、UDP協(xié)議方面基本知識。2、實驗前參看相關(guān)資料,學(xué)習(xí)網(wǎng)絡(luò)編程接口Winsock, 利用自己所熟悉的程序設(shè)計開發(fā)工具,完成本實驗的程序設(shè)計?!驹O(shè)計任務(wù)與要求】設(shè)計一套基于socket接口(Winsock API或Winsock控件)的網(wǎng)絡(luò)通信程序,該應(yīng)用由服務(wù)器端和客戶端兩個程序組成,服務(wù)器端能接收客戶端經(jīng)網(wǎng)絡(luò)傳輸?shù)奈募?,并按原來的名字并存儲在本地硬盤上。要求程序使用tcp協(xié)議(面向連接)完成數(shù)據(jù)通信。當(dāng)采用tcp協(xié)議時,通信過程如下:1、 服務(wù)器端程序先運行,對指定的TCP端口進(jìn)行監(jiān)聽。2、 給客戶端指定服務(wù)器端程序所在主機(jī)IP地址、服務(wù)器端程序監(jiān)聽端

40、口參數(shù)并運行后,與服務(wù)器端建立連接。3、客戶端向服務(wù)器端傳輸一個文件,并存儲在服務(wù)器端的本地硬盤上。(文件大小限定為10k字節(jié)左右)4、傳輸完畢后,進(jìn)行提示,并關(guān)閉連接?!驹O(shè)計與分析環(huán)境】 (一)操作系統(tǒng)(選擇下列自己所熟悉的): 1、Windows XP/2003 2、Linux (二)開發(fā)工具(選擇下列自己所熟悉的):Windows環(huán)境下的Visual C+ (或Borland C+)通信接口采用Winsocket API,或基于MFC的套接字類(或基于Winsocket的控件)。2、Windows環(huán)境下的Visual C#通信接口采用Winsock控件3、Windows環(huán)境下的其它開發(fā)工

41、具 通信接口采用相關(guān)的通信控件。4、Linux環(huán)境下的gcc 通信接口采用socket (三)協(xié)議解碼工具:wireshark(或sniffer pro) 【實驗原理】(一)TCP報文格式16位源端口號16位目的端口號32位序號32位確認(rèn)序號4位首部長度保留6位URGACKPSHRSTSYNFIN16位窗口大小16位檢驗和16位緊急指針選項數(shù)據(jù)說明(shumng):(1)每個TCP段都包括源端和目的端的端口號,用于尋找發(fā)送端和接收端的應(yīng)用(yngyng)進(jìn)程。這兩個值加上IP首部的源端IP地址和目的端IP地址唯一確定一個TCP連接。(2)序號用來標(biāo)識從TCP發(fā)送端向接收端發(fā)送的數(shù)據(jù)字節(jié)流,它表

42、示在這個報文段中的第一個數(shù)據(jù)字節(jié)。如果將字節(jié)流看作在兩個應(yīng)用程序間的單向(dn xin)流動,則TCP用序號對每個字節(jié)進(jìn)行計數(shù)。(3)當(dāng)建立一個新連接時,SYN標(biāo)志變1。序號字段包含由這個主機(jī)選擇的該連接的初始序號ISN,該主機(jī)要發(fā)送數(shù)據(jù)的第一個字節(jié)的序號為這個ISN加1,因為SYN標(biāo)志使用了一個序號。(4)既然每個被傳輸?shù)淖止?jié)都被計數(shù),確認(rèn)序號包含發(fā)送確認(rèn)的一端所期望收到的下一個序號。因此,確認(rèn)序號應(yīng)當(dāng)時上次已成功收到數(shù)據(jù)字節(jié)序號加1。只有ACK標(biāo)志為1時確認(rèn)序號字段才有效。(5)發(fā)送ACK無需任何代價,因為32位的確認(rèn)序號字段和ACK標(biāo)志一樣,總是TCP首部的一部分。因此一旦一個連接建立起

43、來,這個字段總是被設(shè)置,ACK標(biāo)志也總是被設(shè)置為1。(6)TCP為應(yīng)用層提供全雙工的服務(wù)。因此,連接的每一端必須保持每個方向上的傳輸數(shù)據(jù)序號。(7)TCP可以表述為一個沒有選擇確認(rèn)或否認(rèn)的華東窗口協(xié)議。因此TCP首部中的確認(rèn)序號表示發(fā)送方已成功收到字節(jié),但還不包含確認(rèn)序號所指的字節(jié)。當(dāng)前還無法對數(shù)據(jù)流中選定的部分進(jìn)行確認(rèn)。(8)首部長度需要設(shè)置,因為任選字段的長度是可變的。TCP首部最多60個字節(jié)。(9)6個標(biāo)志位中的多個可同時設(shè)置為1 URG緊急指針有效 ACK確認(rèn)序號有效 PSH接收方應(yīng)盡快將這個報文段交給應(yīng)用層 RST重建連接 SYN同步序號用來發(fā)起一個連接 FIN發(fā)送端完成(wn ch

44、ng)發(fā)送任務(wù)(10)TCP的流量(liling)控制由連接的每一端通過聲明的窗口大小來提供。窗口大小為字節(jié)數(shù),起始于確認(rèn)序號字段指明的值,這個值是接收端期望接收的字節(jié)數(shù)。窗口大小是一個16為的字段,因而窗口大小最大為65535字節(jié)。(11)檢驗和覆蓋整個TCP報文端:TCP首部和TCP數(shù)據(jù)。這是一個強(qiáng)制性的字段,一定是由發(fā)送端計算和存儲,并由接收端進(jìn)行(jnxng)驗證。TCP檢驗和的計算和UDP首部檢驗和的計算一樣,也使用偽首部。(12)緊急指針是一個正的偏移量,黃蓉序號字段中的值相加表示緊急數(shù)據(jù)最后一個字節(jié)的序號。TCP的緊急方式是發(fā)送端向另一端發(fā)送緊急數(shù)據(jù)的一種方式。(13)最常見的可

45、選字段是最長報文大小MMS,每個連接方通常都在通信的第一個報文段中指明這個選項。它指明本端所能接收的最大長度的報文段。(二)用戶數(shù)據(jù)報格式:源端口號 (2字節(jié))目的端口號(2字節(jié))總長度(2字節(jié))檢驗和(2字節(jié))數(shù)據(jù)(三)Winsock網(wǎng)絡(luò)編程接口簡介1套接口網(wǎng)絡(luò)編程原理 套接口有三種類型:流式套接口、數(shù)據(jù)報套接口及原始套接口。流式套接口定義了一種可靠的面向連接的服務(wù),實現(xiàn)了無差錯無重復(fù)的順序數(shù)據(jù)傳輸.數(shù)據(jù)報套接口定義了一種無連接的服務(wù),數(shù)據(jù)通過相互獨立的報文進(jìn)行傳輸,是無序的,并且不保證可靠,無差錯.原始套接口允許對低層協(xié)議如IP或ICMP直接訪問,主要用于新的網(wǎng)絡(luò)協(xié)議實現(xiàn)的測試等。無連接服

46、務(wù)器一般都是面向事務(wù)處理的,一個請求一個應(yīng)答就完成了客戶程序與服務(wù)程序之間的相互作用。若使用無連接的套接口編程,程序的流程如圖:面向連接服務(wù)器處理的請求往往比較復(fù)雜,不是一來一去的請求應(yīng)答所能解決的,而且(r qi)往往是并發(fā)服務(wù)器。使用面向連接的套接口編程, 其時序可以(ky)通過下圖來表示:套接口工作過程如下(rxi):服務(wù)器首先啟動,通過(tnggu)調(diào)用socket()建立(jinl)一個套接口,然后調(diào)用bind()將該套接口和本地網(wǎng)絡(luò)地址聯(lián)系在一起,再調(diào)用listen()使套接口做好偵聽的準(zhǔn)備,并規(guī)定它的請求隊列的長度,之后就調(diào)用accept()來接收連接.客戶在建立套接口后就可調(diào)用

47、connect()和服務(wù)器建立連接.連接一旦建立,客戶機(jī)和服務(wù)器之間就可以通過調(diào)用send()和recv()來發(fā)送和接收數(shù)據(jù).最后,待數(shù)據(jù)傳送結(jié)束后,雙方調(diào)用close()關(guān)閉套接口。2、常用的Windows Socket API函數(shù)(1)WSAStartup函數(shù) int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData ); 使用Socket的程序在使用Socket之前必須調(diào)用WSAStartup函數(shù)。該函數(shù)的第一個參數(shù)指明程序請求使用的Socket版本,其中高位字節(jié)指明副版本、低位字節(jié)指明主版本;操作系統(tǒng)利用第二個參數(shù)返回請求的

48、Socket的版本信息。當(dāng)一個應(yīng)用程序調(diào)用WSAStartup函數(shù)時,操作系統(tǒng)根據(jù)請求的Socket版本來搜索相應(yīng)的Socket庫,然后綁定找到的Socket庫到該應(yīng)用程序中。以后應(yīng)用程序就可以調(diào)用所請求的Socket庫中的其它Socket函數(shù)了。該函數(shù)執(zhí)行成功后返回0。例:假如一個程序要使用2.1版本的Socket,那么程序代碼如下 wVersionRequested = MAKEWORD( 2, 1 ); err = WSAStartup( wVersionRequested, &wsaData );(2)WSACleanup函數(shù)(hnsh) int WSACleanup (void);

49、應(yīng)用程序在完成對請求(qngqi)的Socket庫的使用后,要調(diào)用WSACleanup函數(shù)來解除與Socket庫的綁定并且釋放Socket庫所占用的系統(tǒng)資源。(3)socket函數(shù)(hnsh) SOCKET socket( int af, int type, int protocol ); 應(yīng)用程序調(diào)用socket函數(shù)來創(chuàng)建一個能夠進(jìn)行網(wǎng)絡(luò)通信的套接字。第一個參數(shù)指定應(yīng)用程序使用的通信協(xié)議的協(xié)議族,對于TCP/IP協(xié)議族,該參數(shù)置PF_INET;第二個參數(shù)指定要創(chuàng)建的套接字類型,流套接字類型為SOCK_STREAM、數(shù)據(jù)報套接字類型為SOCK_DGRAM;第三個參數(shù)指定應(yīng)用程序所使用的通信協(xié)議

50、。該函數(shù)如果調(diào)用成功就返回新創(chuàng)建的套接字的描述符,如果失敗就返回INVALID_SOCKET。套接字描述符是一個整數(shù)類型的值。每個進(jìn)程的進(jìn)程空間里都有一個套接字描述符表,該表中存放著套接字描述符和套接字?jǐn)?shù)據(jù)結(jié)構(gòu)的對應(yīng)關(guān)系。該表中有一個字段存放新創(chuàng)建的套接字的描述符,另一個字段存放套接字?jǐn)?shù)據(jù)結(jié)構(gòu)的地址,因此根據(jù)套接字描述符就可以找到其對應(yīng)的套接字?jǐn)?shù)據(jù)結(jié)構(gòu)。每個進(jìn)程在自己的進(jìn)程空間里都有一個套接字描述符表但是套接字?jǐn)?shù)據(jù)結(jié)構(gòu)都是在操作系統(tǒng)的內(nèi)核緩沖里。下面是一個創(chuàng)建流套接字的例子: struct protoent *ppe; ppe=getprotobyname(tcp); SOCKET Liste

51、nSocket=socket(PF_INET,SOCK_STREAM,ppe-p_proto);(4)closesocket函數(shù) int closesocket( SOCKET s ); closesocket函數(shù)用來關(guān)閉一個描述符為s套接字。由于每個進(jìn)程中都有一個套接字描述符表,表中的每個套接字描述符都對應(yīng)了一個位于操作系統(tǒng)緩沖區(qū)中的套接字?jǐn)?shù)據(jù)結(jié)構(gòu),因此有可能有幾個套接字描述符指向同一個套接字?jǐn)?shù)據(jù)結(jié)構(gòu)。套接字?jǐn)?shù)據(jù)結(jié)構(gòu)中專門有一個字段存放該結(jié)構(gòu)的被引用次數(shù),即有多少個套接字描述符指向該結(jié)構(gòu)。當(dāng)調(diào)用closesocket函數(shù)時,操作系統(tǒng)先檢查套接字?jǐn)?shù)據(jù)結(jié)構(gòu)中的該字段的值,如果為1,就表明只有一個

52、套接字描述符指向它,因此操作系統(tǒng)就先把s在套接字描述符表中對應(yīng)的那條表項清除,并且釋放s對應(yīng)的套接字?jǐn)?shù)據(jù)結(jié)構(gòu);如果該字段大于1,那么操作系統(tǒng)僅僅清除s在套接字描述符表中的對應(yīng)表項,并且把s對應(yīng)的套接字?jǐn)?shù)據(jù)結(jié)構(gòu)的引用次數(shù)減1。closesocket函數(shù)如果執(zhí)行成功就返回0,否則返回SOCKET_ERROR。(5)send函數(shù) int send( SOCKET s, const char FAR *buf, int len, int flags ); 不論是客戶還是服務(wù)器應(yīng)用程序都用send函數(shù)來向TCP連接的另一端發(fā)送數(shù)據(jù)??蛻舫绦蛞话阌胹end函數(shù)向服務(wù)器發(fā)送請求,而服務(wù)器則通常用send函數(shù)

53、來向客戶程序發(fā)送應(yīng)答。該函數(shù)的第一個參數(shù)指定發(fā)送端套接字描述符;第二個參數(shù)指明一個存放應(yīng)用程序要發(fā)送數(shù)據(jù)的緩沖區(qū);第三個參數(shù)指明實際要發(fā)送的數(shù)據(jù)的字節(jié)數(shù);第四個參數(shù)一般置0。這里只描述同步Socket的send函數(shù)的執(zhí)行流程。當(dāng)調(diào)用該函數(shù)時,send先比較待發(fā)送數(shù)據(jù)的長度len和套接字s的發(fā)送緩沖區(qū)的長度,如果len大于s的發(fā)送緩沖區(qū)的長度,該函數(shù)返回SOCKET_ERROR;如果len小于或者等于s的發(fā)送緩沖區(qū)的長度,那么send先檢查協(xié)議是否正在發(fā)送s的發(fā)送緩沖中的數(shù)據(jù),如果是就等待協(xié)議把數(shù)據(jù)發(fā)送完,如果協(xié)議還沒有開始發(fā)送s的發(fā)送緩沖中的數(shù)據(jù)或者s的發(fā)送緩沖中沒有數(shù)據(jù),那么send就比較s

54、的發(fā)送緩沖區(qū)的剩余空間和len,如果len大于剩余空間大小send就一直等待協(xié)議把s的發(fā)送緩沖中的數(shù)據(jù)發(fā)送完,如果len小于剩余空間大小send就僅僅把buf中的數(shù)據(jù)copy到剩余空間里(注意并不是send把s的發(fā)送緩沖中的數(shù)據(jù)傳到連接的另一端的,而是協(xié)議傳的,send僅僅是把buf中的數(shù)據(jù)copy到s的發(fā)送緩沖區(qū)的剩余空間里)。如果send函數(shù)copy數(shù)據(jù)成功,就返回實際copy的字節(jié)數(shù),如果send在copy數(shù)據(jù)時出現(xiàn)錯誤,那么send就返回SOCKET_ERROR;如果send在等待協(xié)議傳送數(shù)據(jù)時網(wǎng)絡(luò)斷開的話,那么send函數(shù)也返回SOCKET_ERROR。要注意send函數(shù)把buf中的

55、數(shù)據(jù)成功copy到s的發(fā)送緩沖的剩余空間里后它就返回了,但是此時這些數(shù)據(jù)并不一定馬上被傳到連接的另一端。如果協(xié)議在后續(xù)的傳送過程中出現(xiàn)網(wǎng)絡(luò)錯誤的話,那么下一個Socket函數(shù)就會返回SOCKET_ERROR。(每一個除send外的Socket函數(shù)在執(zhí)行的最開始總要先等待套接字的發(fā)送緩沖中的數(shù)據(jù)被協(xié)議傳送完畢才能繼續(xù),如果在等待時出現(xiàn)網(wǎng)絡(luò)錯誤,那么該Socket函數(shù)就返回SOCKET_ERROR)注意:在Unix系統(tǒng)下,如果send在等待協(xié)議傳送數(shù)據(jù)時網(wǎng)絡(luò)斷開的話,調(diào)用send的進(jìn)程會接收(jishu)到一個SIGPIPE信號,進(jìn)程對該信號的默認(rèn)處理是進(jìn)程終止。(6)recv函數(shù)(hnsh) i

56、nt recv( SOCKET s, char FAR *buf, int len, int flags ); 不論是客戶還是服務(wù)器應(yīng)用程序都用recv函數(shù)(hnsh)從TCP連接的另一端接收數(shù)據(jù)。該函數(shù)的第一個參數(shù)指定接收端套接字描述符;第二個參數(shù)指明一個緩沖區(qū),該緩沖區(qū)用來存放recv函數(shù)接收到的數(shù)據(jù);第三個參數(shù)指明buf的長度;第四個參數(shù)一般置0。這里只描述同步Socket的recv函數(shù)的執(zhí)行流程。當(dāng)應(yīng)用程序調(diào)用recv函數(shù)時,recv先等待s的發(fā)送緩沖中的數(shù)據(jù)被協(xié)議傳送完畢,如果協(xié)議在傳送s的發(fā)送緩沖中的數(shù)據(jù)時出現(xiàn)網(wǎng)絡(luò)錯誤,那么recv函數(shù)返回SOCKET_ERROR,如果s的發(fā)送緩沖

57、中沒有數(shù)據(jù)或者數(shù)據(jù)被協(xié)議成功發(fā)送完畢后,recv先檢查套接字s的接收緩沖區(qū),如果s接收緩沖區(qū)中沒有數(shù)據(jù)或者協(xié)議正在接收數(shù)據(jù),那么recv就一直等待,只到協(xié)議把數(shù)據(jù)接收完畢。當(dāng)協(xié)議把數(shù)據(jù)接收完畢,recv函數(shù)就把s的接收緩沖中的數(shù)據(jù)copy到buf中(注意協(xié)議接收到的數(shù)據(jù)可能大于buf的長度,所以在這種情況下要調(diào)用幾次recv函數(shù)才能把s的接收緩沖中的數(shù)據(jù)copy完。recv函數(shù)僅僅是copy數(shù)據(jù),真正的接收數(shù)據(jù)是協(xié)議來完成的),recv函數(shù)返回其實際copy的字節(jié)數(shù)。如果recv在copy時出錯,那么它返回SOCKET_ERROR;如果recv函數(shù)在等待協(xié)議接收數(shù)據(jù)時網(wǎng)絡(luò)中斷了,那么它返回0。

58、注意:在Unix系統(tǒng)下,如果recv函數(shù)在等待協(xié)議接收數(shù)據(jù)時網(wǎng)絡(luò)斷開了,那么調(diào)用recv的進(jìn)程會接收到一個SIGPIPE信號,進(jìn)程對該信號的默認(rèn)處理是進(jìn)程終止。(7)bind函數(shù) int bind( SOCKET s, const struct sockaddr FAR *name, int namelen ); 當(dāng)創(chuàng)建了一個Socket以后,套接字?jǐn)?shù)據(jù)結(jié)構(gòu)中有一個默認(rèn)的IP地址和默認(rèn)的端口號。一個服務(wù)程序必須調(diào)用bind函數(shù)來給其綁定一個IP地址和一個特定(tdng)的端口號??蛻舫绦蛞话悴槐卣{(diào)用bind函數(shù)來為其Socket綁定IP地址和斷口號。該函數(shù)的第一個參數(shù)指定待綁定的Socket描

59、述符;第二個參數(shù)指定一個sockaddr結(jié)構(gòu),該結(jié)構(gòu)是這樣定義的: struct sockaddr u_short sa_family; char sa_data14; ; sa_family指定地址族,對于(duy)TCP/IP協(xié)議族的套接字,給其置AF_INET。當(dāng)對TCP/IP協(xié)議族的套接字進(jìn)行綁定時,我們通常使用另一個地址結(jié)構(gòu): struct sockaddr_in short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero8; ; 其中sin_family置AF_INET;sin_port指明端

60、口號;sin_addr結(jié)構(gòu)體中只有一個唯一的字段s_addr,表示IP地址,該字段是一個整數(shù),一般用函數(shù)inet_addr()把字符串形式的IP地址轉(zhuǎn)換成unsigned long型的整數(shù)值后再置給s_addr。有的服務(wù)器是多宿主機(jī),至少有兩個網(wǎng)卡,那么運行在這樣的服務(wù)器上的服務(wù)程序在為其Socket綁定IP地址時可以把htonl(INADDR_ANY)置給s_addr,這樣做的好處是不論哪個網(wǎng)段上的客戶程序都能與該服務(wù)程序通信;如果(rgu)只給運行在多宿主機(jī)上的服務(wù)程序的Socket綁定一個固定的IP地址,那么就只有與該IP地址處于同一個網(wǎng)段上的客戶程序才能與該服務(wù)程序通信。我們用0來填充

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論