編輯推薦
本書重點突齣,結構層次清晰,語言通俗易懂。有許多的典型應用實例。實例采用引導型模式,主要環節均留齣思考空間。每個實例針對性很強,敘述和分析透徹,它包括網絡拓撲結構、實驗環境說明、實驗目的和要求、配置步驟、測試結果等,每章都配有相關實驗習題,具有可讀性、可操作性和實用性強的特點,特彆適閤於課堂教學。
內容簡介
本書覆蓋瞭交換技術、路由技術、網絡安全技術、網絡編程技術、協議分析技術、設備管理、無綫網絡等技術,共13章,主要內容有實驗基礎、網絡嗅探與協議分析、網絡編程、網絡安全、雙絞綫、VLAN技術、端口聚閤、端口鏡像、生成樹協議、路由器技術、NAT技術、ACL訪問控製技術、IPv6技術、無綫網絡、綜閤實驗等。
本書以實際網絡應用為齣發點,提供瞭大量實驗,每個實驗都包括網絡拓撲結構、實驗環境說明、實驗目的和要求、配置步驟、測試結果等。
本書可作為計算機網絡專業本專科教材,也可作為網絡專業從業人員的自學教材。
作者簡介
王盛邦, 碩士、高工,主要從事軟件開發和計算機類課程教學工作,研究方嚮是計算機網絡、信息安全。曾講授的課程有“計算機網絡及應用”、“計算機網絡實驗”、“計算機網絡與信息安全基礎”、“網絡安全原理與技術實驗”、“信息安全綜閤實踐”等。
曾任全國大學生嵌入式大賽中山大學參賽小組指導老師、全國大學生信息安全競賽中大參賽隊的指導老師、中山大學信息安全競賽校際選拔賽評委、全國大學生信息安全競賽網評專傢。
曾主持校級實驗室開放基金項目“計算機網絡創新實驗”、“EMC教學實驗案例的設計與開發”、“計算機網絡實踐課程改革與實驗教材建設”、“計算機網絡實踐課程自主創新本科教學體係建設”、““計算機網絡實驗”精品課程建設”、“信息安全專業綜閤實踐實驗改革與設計”、“信息安全綜閤實踐課程建設”、“教材建設-網絡與信息安全綜閤實踐”等。
所編寫廣東省本科高校教學質量與教學改革工程立項建設項目《網絡與信息安全綜閤實踐》被全國多所高校采用。
目錄
第1章實驗基礎1
1.1常用網絡命令1
1.1.1ping命令1
1.1.2tracert命令5
1.1.3ipconfig命令7
1.1.4netstat命令8
1.1.5arp命令10
1.1.6net命令11
1.1.7netsh命令13
1.2IPv4地址基礎16
1.2.1IPv4地址錶示16
1.2.2IPv4地址結構16
1.2.3IPv4地址分類17
1.2.4網絡掩碼17
1.2.5子網掩碼與子網劃分18
1.2.6子網劃分實例18
1.3網絡包分析工具Wireshark20
1.3.1Wireshark20
1.3.2Wireshark常用功能21
1.3.3Wireshark的過濾規則25
1.3.4Wireshark命令行抓包26
1.3.5Wireshark數據包捕獲實例26
1.4網絡模擬軟件Packet Tracer29
1.4.1Packet Tracer界麵29
1.4.2設備管理33
1.4.3通過Packet Tracer分析協議35
1.4.4Packet Tracer使用實驗38
1.5繪製網絡拓撲圖40
1.5.1網絡設備圖例40
1.5.2拓撲圖繪製工具41
1.6實驗與實驗測試44
1.6.1實驗前後的對比44
1.6.2對實驗過程進行監控44
1.6.3實驗截圖44
1.6.4撰寫實驗報告45
習題145第2章網絡嗅探與協議分析50
2.1網絡嗅探50
實驗2.1嗅探實驗51
2.2協議分析51
2.3TCP/IP協議52
2.3.1IP協議52
2.3.2TCP協議54
實驗2.2TCP/IP協議分析58
2.4HTTP協議60
實驗2.3HTTP協議分析實驗62
2.5FTP協議64
2.5.1FTP客戶/服務器64
2.5.2數據連接主動方式/被動方式65
2.5.3用戶名和口令的明文傳輸65
2.5.4FileZilla66
實驗2.4FTP協議分析66
2.6Telnet協議69
2.6.1Telnet的基本服務69
2.6.2選項協商70
2.6.3Telnet客戶機和服務器71
實驗2.5Telnet協議分析71
2.7DNS協議73
實驗2.6DNS協議分析76
2.8ARP協議78
實驗2.7ARP協議分析80
2.9QQ協議82
實驗2.8QQ協議分析83
2.10迅雷下載協議85
實驗2.9迅雷協議分析86
習題287第3章網絡編程91
3.1利用套接字建立邏輯信道92
3.2Client/Server工作模式分類93
3.3麵嚮連接的Client/Server模式93
3.3.1麵嚮連接的服務器工作流程93
3.3.2麵嚮連接的客戶端工作流程95
3.4無連接的Client/Server模式97
3.5編程實驗97
實驗3.1TCP通信程序設計102
實驗3.2UDP通信程序設計103
實驗3.3網絡嗅探器設計104
實驗3.4停等協議通信106
實驗3.5GBN協議編程107
實驗3.6IPv4組播通信108
實驗3.7應用層組播113
習題3115第4章網絡安全117
4.1Linux防火牆配置117
4.1.1netfilter/iptables118
4.1.2建立規則和鏈119
4.1.3其他NAT配置123
實驗4.1Linux防火牆設計123
4.2ARP欺騙126
4.2.1同一網段的ARP欺騙126
4.2.2不同網段的ARP欺騙127
4.2.3ARP欺騙的防禦129
實驗4.2ARP測試與防禦129
4.3盜鏈與反盜鏈技術131
4.3.1盜鏈原理131
4.3.2反盜鏈技術131
實驗4.3分析某下載軟件的盜鏈行為132
4.4蜜罐技術133
實驗4.4簡單蜜罐陷阱的配置134
4.5入侵檢測技術136
實驗4.5入侵檢測實驗137
習題4138第5章雙絞綫實驗142
5.1雙絞綫142
5.2RJ.45連接器145
5.3雙絞綫跳綫的製作標準和跳綫類型147
5.3.1T568.A標準與T568.B標準147
5.3.2跳綫綫序148
5.3.3直連綫和交叉綫148
實驗5.1雙絞綫跳綫的製作和測試149
5.4信息模塊152
實驗5.2信息模塊的壓製和測試154
習題5156第6章交換機技術157
6.1交換機技術基礎157
6.1.1以太網交換機157
6.1.2交換機的工作原理157
6.1.3交換機的基本功能159
6.1.4交換機的交換方式159
6.1.5交換機的分類160
6.1.6交換機的接口與連接綫纜160
6.1.7交換機配置基礎161
6.1.8交換機的命令模式162
6.2VLAN技術163
6.2.1基本概念163
6.2.2VLAN的分類164
6.2.3VLAN數據幀的標識165
6.2.4VLAN中的端口165
6.2.5VLAN的基本配置166
實驗6.1單交換機實現VLAN169
實驗6.2跨交換機實現VLAN172
6.2.6三層交換機VLAN間路由174
實驗6.3通過三層交換機實現VLAN間路由177
6.2.7單臂路由實現VLAN間路由179
實驗6.4單臂路由實現VLAN間路由180
6.3端口聚閤183
6.3.1基本概念183
6.3.2端口匯聚配置命令184
6.3.3配置Aggregate Port的流量平衡185
實驗6.5端口聚閤配置實驗187
6.4端口鏡像190
6.4.1基本概念190
6.4.2本地端口鏡像190
實驗6.6交換機端口鏡像配置192
6.4.3基於VLAN的鏡像194
6.4.4遠程端口鏡像195
實驗6.7交換機端口遠程鏡像197
6.4.5基於流的遠程端口鏡像配置199
6.5生成樹協議199
6.5.1基本概念199
6.5.2生成樹協議的定義203
6.5.3快速生成樹協議204
實驗6.8快速生成樹協議配置204
6.5.4多生成樹協議208
實驗6.9多生成樹協議配置208
6.5.5生成樹協議小結215
6.6交換技術的發展前景215
習題6216第7章路由技術223
7.1路由器技術基礎223
7.1.1路由的基本概念223
7.1.2路由器的功能225
7.1.3路由器的分類226
7.1.4路由的分類226
7.1.5路由器的接口和綫纜227
7.1.6路由器配置228
7.1.7路由器端口配置原則229
7.1.8路由器的常見命令模式230
7.2靜態路由230
7.2.1靜態路由230
7.2.2靜態路由配置步驟232
7.2.3靜態路由配置主要命令232
實驗7.1靜態路由233
7.3RIP路由235
7.3.1RIP概述235
7.3.2路由環路236
7.3.3有類路由與無類路由239
7.3.4RIP的工作過程239
7.3.5路由匯總240
7.3.6RIP配置步驟242
實驗7.2RIP路由協議243
7.4OSPF路由246
7.4.1OSPF概述246
7.4.2Loopback地址247
7.4.3OSPF數據包類型247
7.4.4OSPF協議工作過程249
7.4.5OSPF區域250
7.4.6OSPF配置步驟251
實驗7.3OSPF單區域252
實驗7.4OSPF多區域255
7.4.7OSPF虛連接258
7.4.8OSPF的認證259
實驗7.5OSPF虛鏈路260
7.4.9路由重發布263
實驗7.6路由重發布266
7.5動態路由協議小結269
習題7269第8章訪問控製列錶279
8.1基本概念279
8.2ACL匹配性檢查280
8.2.1ACL的匹配過程280
精彩書摘
第3章網 絡 編 程
本章主要介紹網絡編程的一些主要方法,並配有編程實驗。一些實驗隻提齣要求,程序編寫過程需要讀者自行完成。
如果應用程序涉及本地與遠程之間的通信,就需要采用網絡編程。網絡編程*主要的工作就是在發送端把信息通過規定好的協議進行包的組裝,在接收端按照規定好的協議把包進行解析並提取齣對應的信息,從而達到通信的目的。中間*主要的就是數據包的組裝、過濾、捕獲和分析以及其他處理。
通過使用套接字達到進程間通信目的的編程就是網絡編程。套接字即Socket,應用程序通常通過套接字嚮網絡發齣請求或者應答網絡請求,實際上是網絡應用程序接口(API)。套接字是由傳輸層提供的應用程序(進程)和網絡之間的接入點,如圖3.1所示。應用程序(進程)可以通過套接字訪問網絡,套接字利用主機的網絡層地址和端口號為兩個進程建立邏輯連接。
圖3.1Socket是應用層與傳輸層之間的橋梁
套接字可以用於多種協議,包括TCP/IP協議。常用的端口號如錶3.1所示。錶3.1TCP/IP常用端口號協議NNTPFTP(數據)FTP(控製)TelnetSTMPHTTPPOP3端口號192021232580110為瞭方便網絡編程,20世紀90年代初,Microsoft聯閤其他幾傢公司共同製定瞭一套Windows下的網絡編程接口,即Windows Sockets規範。它不是一種網絡協議,而是一套開放的、支持多種協議的Windows下的網絡編程接口。現在的Winsock已經基本上實現瞭與協議無關,可以使用Winsock調用多種協議的功能,但較常使用的是TCP/IP協議。Socket實際上是在計算機中提供瞭一個通信端口,可以通過這個端口與任何一個具有Socket接口的計算機通信。應用程序在網絡上傳輸,接收的信息都通過這個Socket接口實現。
Socket是TCP/IP網絡的API,Socket接口提供瞭很多的函數,可以用於開發網絡應用程序。Socket數據傳輸是一種特殊的I/O,同時Socket也是一種文件描述符。Socket的使用主要有Socket建立、配置、建立連接、數據傳輸和結束傳輸等過程。
3。1利用套接字建立邏輯信道
一般發起通信請求的程序被稱為客戶端,用戶一般是通過客戶端軟件訪問某種服務。客戶端應用程序通過與服務器建立連接和發送請求,然後接收服務器返迴的內容。服務器則一般是等待並處理客戶端請求的應用程序。服務器通常由係統執行,在係統生存期間一直存在和等待客戶端的請求,並且在接收到客戶端的請求後,根據請求嚮客戶端返迴閤適的內容。
通信的一方(被動方,稱為服務器)監聽某個端口;通信的另一方(主動方,稱為客戶端)如果知道服務器的IP地址和它所監聽的端口, 便可以試圖發送請求建立連接。該連接請求包含: 服務器IP地址、服務器端口號、客戶IP地址、客戶端口號。由於客戶端口號由客戶端的係統(TCP進程)自動選取一個當前未用的端口,該四元組便可以在因特網中*標識一個邏輯連接。服務器收到客戶端發來的連接請求後,便發齣響應建立該連接,這樣就建立瞭一條邏輯信道。
客戶和服務器通過請求響應方式可以進行雙嚮數據傳輸。當結束數據傳輸時,需要關閉該連接。這種工作模式是有連接的客戶端/服務器模式(Client/Server)。
根據連接啓動的方式以及本地套接字要連接的目標,套接字之間的連接過程可以分為三個步驟: 服務器監聽,客戶端請求,連接確認。
(1) 服務器監聽: 是指服務器端套接字並不定位具體的客戶端套接字,而是處於等待連接的狀態,實時監控網絡狀態。
(2) 客戶端請求: 是指由客戶端的套接字提齣連接請求,要連接的目標是服務器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務器的套接字,指齣服務器端套接字的地址和端口號,然後嚮服務器端套接字提齣連接請求。
(3) 連接確認: 是指當服務器端套接字監聽到或者接收到客戶端套接字的連接請求,它就響應客戶端套接字的請求,建立一個新的綫程,把服務器端套接字的描述發給客戶端,一旦客戶端確認瞭此描述,連接就建立好瞭。而服務器端套接字繼續處於監聽狀態,繼續接收其他客戶端套接字的連接請求。
這三個步驟類似於三次握手,如圖3.2所示。
圖3.2客戶端與服務器端的三次握手3。2Client/Server工作模式分類
Client/Server工作模式一般按下列分類:
(1) 有狀態和無狀態: 服務器是否記錄客戶端的當前狀態。
(2) 有連接(TCP)和無連接(UDP): 客戶端和服務器之間是否先建立連接再傳輸數據。
(3) 循環和並發: 服務器對多客戶端請求的服務是采用循環方法還是並發程序方法。
TCP協議麵嚮連接,使用可靠的字節流傳送服務;而UDP協議麵嚮非連接,使用非可靠的數據報服務。TCP協議提供高可靠性的傳輸,UDP協議提供高效的傳輸。它們在實際應用中有其各自所適應的場閤。
3。3麵嚮連接的Client/Server模式
在麵嚮連接的Client/Server結構中,操作過程采取的是主動請求方式: 服務器首先啓動,並根據請求提供相應服務。
通過調用socket()建立一個套接口,然後調用bind()將該套接口和本地網絡地址聯係在一起,再調用listen()使套接口做好偵聽的準備,並規定它的請求隊列的長度,之後調用accept()接收連接。客戶端在建立套接口後就可調用connect()和服務器建立連接。連接一旦建立,客戶機和服務器之間就可以供對方讀取或者讀取對方數據。*後在數據傳送結束後,雙方調用close()關閉套接口。
3。3。1麵嚮連接的服務器工作流程
麵嚮連接的服務器工作流程包括以下幾個環節。
1。 創建套接字
Socket建立是通過調用Socket函數實現的,該函數定義如下: SOCKET socket(int domain, int type, int protocol)其中參數:
domain: 指明使用的協議族,如果取值AF_INET,用於網絡通信;如果取值AF_UNIX,用於單一UNIX係統中進程間通信。
type: 指明socket類型,如果取值SOCK_STREAM,錶示是流式,麵嚮連接的比特流,順序、可靠、雙嚮,用於TCP通信;如果取值SOCK_DGRAM,錶示數據報式、無連接、定長、不可靠,用於UDP通信。
protocol: 由於指定瞭type,一般用0。
函數返迴: 一個整型的socket描述符,供後麵使用。如果調用失敗,返迴一個INVALID_SOCKET值,錯誤信息可以通過WSAGetLastError函數返迴。
例如,一個socket可如下建立: int sockfd=socket(AF_INET,SOCK_STREAM,0)2。 將本地IP地址和端口號綁定到套接字
Socket的建立實際上是為socket數據結構分配瞭一個名字空間並返迴指針,接著要對數據結構提供數據。bind()將一本地地址與一套接口捆綁,它適用於未連接的數據報或流類套接口,在connect()或listen()調用前使用。bind()函數通過給一個未命名套接口分配一個本地名字為套接口建立本地捆綁(主機地址/端口號)。
bind()定義如下: int bind(SOCKET socket, struct sockaddr �� address, int addr_len)其中參數:
sockfd: 由socket()調用返迴的套接口文件描述符。
sockaddr: 數據結構sockaddr中包括瞭關於本地地址、端口和IP地址的信息。
addr_len: 地址長度,可以設置成sizeof(structsockaddr)。
通常服務器在啓動時都會綁定一個眾所周知的地址(如IP地址+端口號),用於提供服務,客戶端可以通過它連接服務器;而客戶端不用指定,有的係統會自動分配一個端口號和自身的IP地址組閤。這就是為什麼通常服務器端在listen()之前會調用bind(),而客戶端就不會調用,而是在connect()時由係統隨機生成一個。
函數返迴: 如無錯誤發生,則bind()返迴0;否則返迴SOCKET_ERROR,應用程序可通過WSAGetLastError()獲取相應錯誤代碼。
3。 服務端使用listen()開啓監聽
listen()在套接字函數中錶示讓一個套接字處於監聽到來的連接請求的狀態。從客戶端發來的連接請求將首先進入該等待隊列,等待本進程的處理。listen()定義如下: int listen(SOCKET socket, int backlog)其中參數:
socket: 一個已綁定未被連接的套接字描述符。
backlog: 進入隊列中允許的連接的個數。進入的連接請求在使用係統調用accept()應答之前要在進入隊列中等待。該值是隊列中*多可以擁有的請求的個數,大多數係統的默認設置為20。
函數返迴: 無錯誤返迴0;否則返迴SOCKET ERROR,可以調用函數WSAGetLastError取得錯誤代碼。
例如,listen(s,1)錶示連接請求隊列長度為1,即隻允許有一個請求,若有多個請求,則齣現錯誤,給齣錯誤代碼WSAECONNREFUSED。
4。 接受從客戶端發來的請求
accept()是網絡編程的重要函數,其作用是在一個套接口接受一個連接,其頭文件對於Windows係統是在#include中,而Linux係統則在#i
計算機網絡實驗教程(第2版)/高等學校計算機類國傢級特色專業係列規劃教材 下載 mobi epub pdf txt 電子書