## 2.1 網絡是個什么玩意兒
全世界的人種有很多,人類使用的語言種類也多的很。那如果你想要跟外國人溝通時,除了比手劃腳之外,你要如何跟對方講話? 大概只有兩種方式啰,一種是強迫他學中文,一種則是我們學他的語言,這樣才能溝通啊。在目前世界上的強勢語言還是屬于英語系國家, 所以啰,不管是啥人種,只要學好英文,那么大家都講英文,彼此就能夠溝通了。希望不久的未來,咱們的中文能夠成為強勢語言啊!
這個觀念延伸到網絡上面也是行的通的,全世界的操作系統多的很,不是只有 Windows/Linux 而已,還有蘋果計算機自己的操作系統, Unix like 的操作系統也非常多!那么多的操作系統 (人種) 要如何進行網絡溝通 (語言) 呢?那就得要制訂共同遵守的標準才行了。這個標準是由國際組織規范的,你的系統里面只要提供可以加入該標準的程序代碼, 那你就能夠透過這個標準與其他系統進行溝通!所以啰,網絡是跨平臺的,并不是只有 Linux 才這么做!因此,這部份的資料你學完后,是可以應用在所以操作系統上面的!觀念都相同啊!
另外,這一個章節旨在引導網絡新鮮人快速進入網絡的世界,所以鳥哥寫的比較淺顯一些些,基本上, 還有一堆網絡硬件與通訊協議并沒有被包含在這篇短文里頭。如果你的求知欲已經高過本章節, 那么請自行到書局尋找適合你自己的書籍來閱讀!當然,你也可以在因特網上面找到你所需要的數據。 在本章最后的[參考數據](#reference)可以瞧一瞧吶!
* * *
### 2.1.1 什么是網絡
我們都知道,網絡就是幾部計算機主機或者是網絡打印機之類的接口設備, 透過網絡線或者是無線網絡的技術,將這些主機與設備連接起來, 使得數據可以透過網絡媒體(網絡線以及其他網絡卡等硬件)來傳輸的一種方式。 請你想象一下,如果你家里面只有計算機、打印機、傳真機等機器,卻沒有網絡連接這些硬件, 那么使用上會不會很麻煩?如果將這個場景移到需要工作的辦公室時, 計算機的數據無法使用網絡連接到打印機來打印,那是否很傷腦筋呢? 對吧!光用想的就覺得很麻煩吧!不幸的是,這些麻煩事在 1970 年代以前,確實是存在的啊!
* 各自為政的『網絡硬件與軟件』技術發展: Ethernet & Token-Ring
在 1970 年代前后,為了解決這個煩人的數據傳輸問題,各主要信息相關的公司都在研究各自的網絡連接技術, 以使自家的產品可以在辦公室的環境底下組織起來。其中比較有名的就是全錄公司的 Ethernet 技術, 以及 IBM 研發的 Token-Ring 技術了。但是這些技術有個很大的問題,那就是它們彼此不認識對方的網絡技術! 也就是說,萬一你的辦公室購買了整合 Ethernet 技術的計算機主機,但是其他的計算機卻是使用 IBM 的機器時, 想要在這兩者之間進行數據的溝通,在早期來說那是不可能的。
* 以『軟件』技術將硬件整合: ARPANET & TCP/IP
為了解決上述的網絡硬件整合功能,所以在 1960 年代末期美國國防部就開始研究一個可以在這些不同的網絡硬件上面運作的軟件技術, 使得不同公司的計算機或數據可以透過這個軟件來達成數據溝通。這個研究由美國國防部尖端研究企畫署 (Defense Advanced Research Project Agency, DARPA) 負責,他們將該網絡系統稱為 ARPANET, 這個咚咚就是目前熟知的 TCP/IP 技術的雛形了!在 1975 年左右, ARPANET 已可以在常見的 Ethernet 與 Token-Ring 等硬件平臺底下互通數據了。DARPA 在 1980 年正式推出 TCP/IP 技術后, 由于想要推展此項技術,因此與柏克萊 (Berkeley) 大學合作,將 TCP/IP 植入著名的 BSD Unix 系統內, 由于大學乃是未來人才數據庫的培養處,所以, TCP/IP 這項技術便吸引越來越多使用者的投入, 而這種連接網絡的技術也被稱之為 Internet ([注1](#ps1))。
* 沒有任何王法的因特網: Internet
現在我們知道 Internet 就是使用 TCP/IP 的網絡連接技術所串聯起來的一個網絡世界, 而這個 Internet 在 1980 年代之后由于對 email 的需求以及瀏覽器圖形接口的興起,因此快速的蔓延在計算機世界中。 但是, Internet 有沒有人在管理啊?很不巧的是, Internet 是一個管理相當松散的所在。 只要你能夠使用任何支持 TCP/IP 技術的硬件與操作系統,并且實際連接上網絡后, 你就進入 Internet 的世界了。在該世界當中,沒有任何王法的保護,你的實際數據如果接上 Internet , 在任何時刻都需要自己保護自己,免得中了『流彈』而受傷啊!
為甚么說 Internet 沒有王法呢?這是因為 Internet 僅是提供一個網絡的連接接口, 所以你只要連接上 Internet 后,全世界都可以任你遨游,不過也因為如此,『跨海』而來的攻擊就成了簡單的事件, 簡單說,臺灣的法律僅適用臺灣地區對吧?但是計算機怪客 (cracker) 可以在國外透過 Internet 對你的主機進行攻擊, 我們的法律可管不到國外地區啊!雖然可以透過很多國際管道來尋求協助,不過,還是很難協助你緝拿兇手的啊。 因此啰,在你的主機要連上 Internet 之前,請先詢問自己,真的有需要連上 Internet 嗎?^_^
* 軟硬件標準制定的成功帶來的影響: IEEE 標準規范
現在我們常常聽到『你要上網啊!那你要去買網絡卡喔!還得要連接到 Internet 才行啊!』 這個網絡卡就是市面上隨處可見的一個適配卡而已,至于 Internet 則是去向 Hinet/Seed net 或 其他網絡服務提供公司 (Internet Service Provider, ISP) 申請的賬號密碼。 問題是,是否就只有透過網絡卡與 Internet 才能上網啊?呵呵!當然不是!其他不同的網絡硬件與軟件可多著那! 不過,最成功的卻是以太網絡 (Ethernet) 與 Internet ,這是為甚么呢?這兩者的技術比較好嗎? 當然不是!這是因為這兩者都被『標準』所支持的緣故([注2](#ps2))。
以太網絡最初是由全錄公司 (Xerox PARC) 所建構出來的,而后透過 DEC, Intel 與 Xerox 合作將以太網絡標準化。 再經由 IEEE (Institute of Electrical and Electronic Engineers [注3](#ps3)) 這個國際著名的專業組織利用一個 802 的項目制定出標準,之后有 19 家公司宣布支持 IEEE 所發布的 802.3 標準, 并且到了 1989 年國際標準化組織 ISO (International Organization for Standard) 將以太網絡編入 IS88023 標準, 呵呵!這表示以太網絡已經是一項公認的標準接口了,如此一來,大家都可以依據這個標準來設定與開發自己的硬件, 只要硬件符合這個標準,理論上,他就能夠加入以太網絡的世界,所以,購買以太網絡時, 僅需要查看這個以太網絡卡支持哪些標準就能夠知道這個硬件的功能有哪些, 而不必知道這個以太網絡卡是由哪家公司所制造的吶。
**Tips:** 標準真的是個很重要的東西,真要感謝這些維護標準的專業組織。當有公司想要開發新的硬件時, 它可以參考標準組織所發布與維護的文件資料,透過這些文件數據后,該公司就知道要制作的硬件需要符合哪些標準, 同時也知道如何設計這些硬件,讓它可以『兼容』于目前的機器,讓使用者不會無所適從啊。 包括軟件也有標準,早期 Linux 在開發時就是透過了解 POSIX 這個標準來設計核心的, 也使得 Linux 上面可以執行大多數的標準接口軟件呢!你說,標準是否真的很重要啊!

除了硬件之外,TCP/IP 這個 Internet 的通訊協議也是有標準的,這些標準大部分都以 RFC (Request For Comments, [注4](#ps4)) 的形式發布標準文件。 透過這些文件的輔助,任何人只要會寫程序語言的話,就有可能發展出自己的 TCP/IP 軟件, 并且連接上 Internet 。早期的 Linux 為了要連接上 Internet ,Linux 團隊就自己撰寫出 TCP/IP 的程序代碼, 透過的就是這些基礎文件的標準依據啊!舉例來說 RFC 1122 ([注5](#ps5)) 這個建議文件就指出一些可以聯機到 Internet 的主機應該要注意的相關協議與基本需求, 讓想要撰寫聯機程序的設計師可以有一個指引的標準方向。
* * *
### 2.1.2 計算機網絡組成組件
接下來,讓我們來談談那么組成計算機網絡的組件有哪些呢?這些組件的定義為何啊?我們得要先知道有哪些硬件嘛! 接下來才好理解啊。在這里,我們以底下這張聯機示意圖來解釋好了:

圖 2.1-1、計算機網絡聯機示意圖
在上圖中,我們主要需要注意到的硬件有哪些呢?大致有底下這些啦:
* 節點 (node):節點主要是具有網絡地址 (IP) 的設備之稱, 因此上面圖示中的一般PC、Linux服務器、ADSL調制解調器與網絡打印機等,個別都可以稱為一個 node ! 那中間那個集線器 (hub) 是不是節點呢?因為他不具有 IP ,因此 hub 不是節點。
* 服務器主機 (server):就網絡聯機的方向來說,提供數據以『響應』給用戶的主機, 都可以被稱為是一部服務器。舉例來說,Yahoo 是個 WWW 服務器,昆山的 FTP ([http://ftp.ksu.edu.tw/](http://ftp.ksu.edu.tw/)) 是個文件服務器等等。
* 工作站 (workstation) 或客戶端 (client):任何可以在計算機網絡輸入的設備都可以是工作站, 若以聯機發起的方向來說,主動發起聯機去『要求』數據的,就可以稱為是客戶端 (client)。舉例來說,一般 PC 打開瀏覽器對 Yahoo 要求新聞數據,那一般 PC 就是客戶端。
* 網絡卡 (Network Interface Card, NIC):內建或者是外插在主機上面的一個設備, 主要提供網絡聯機的卡片,目前大都使用具有 RJ-45 接頭的以太網絡卡。一般 node 上都具有一個以上的網絡卡, 以達成網絡聯機的功能。
* 網絡接口:利用軟件設計出來的網絡接口,主要在提供網絡地址 (IP) 的任務。 一張網卡至少可以搭配一個以上的網絡接口;而每部主機內部其實也都擁有一個內部的網絡接口,那就是 loopback (lo) 這個循環測試接口!
* 網絡形態或拓樸 (topology):各個節點在網絡上面的鏈接方式,一般講的是物理連接方式。 舉例來說,上圖中顯示的是一種被稱為星形聯機 (star) 的方式,主要是透過一個中間連接設備, 以放射狀的方式連接各個節點的一種形態,這就是一種拓樸。
* 網關 (route) 或通訊閘 (gateway):具有兩個以上的網絡接口, 可以連接兩個以上不同的網段的設備,例如 IP 分享器就是一個常見的網關設備。那上面的 ADSL 調制解調器算不算網關呢? 其實不太能算,因為調制解調器通常視為一個在主機內的網卡設備,我們可以在一般 PC 上面透過撥號軟件, 將調制解調器仿真成為一張實體網卡 (ppp) ,因此他不太能算是網關設備啦!
網絡設備其實非常多也非常復雜,不過如果以小型企業角度來看,我們能夠了解上述圖示內各設備的角色,那應該也足夠啰! 接下來,讓我們繼續來討論一下網絡范圍的大小吧!
* * *
### 2.1.3 計算機網絡區域范圍
由于各個節點的距離不同,聯機的線材與方式也有所差異,由于線材的差異也導致網絡速度的不同,讓網絡的應用方向也不一樣。 根據這些差異,早期我們習慣將網絡的大小范圍定義如下:([注6](#ps6))
* 局域網絡 (Local Area Network, LAN):
節點之間的傳輸距離較近,例如一棟大樓內,或一個學校的校區內。可以使用較為昂貴的聯機材料, 例如光纖或是高質量網絡線 (CAT 6) 等。網絡速度較快,聯機質量較佳且可靠,因此可應用于科學運算的叢集式系統、 分布式系統、云端負荷分擔系統等。
* 廣域網 (Wide Area Network, WAN):
傳輸距離較遠,例如城市與城市之間的距離,因此使用的聯機媒體需要較為便宜的設備,例如經常使用的電話線就是一例。 由于線材質量較差,因此網絡速度較慢且可靠性較低一些,網絡應用方面大多為類似 email, FTP, WWW 瀏覽等功能。
除了這兩個之外,還有所謂的都會網絡 (Metropolitan Area Network, MAN),不過近來比較少提及,因此你只要知道有 LAN 及 WAN 即可。這兩個名詞在很多地方你都可以看的到喔!改天你回家看看你家的 ADSL 調制解調器或 IP 分享器后面的插孔看看,你就能夠看到有 WAN 與 LAN 的插孔,現在你就知道為啥有這兩個燈號與插孔了吧。
一般來說,LAN 指的是區域范圍較小的環境,例如一棟大樓或一間學校,所以在我們生活周遭有著許許多多的 LAN 存在。 那這些 LAN 彼此串接在一起,全部的 LAN 串在一塊就是一個大型的 WAN 啰!簡單的說,就是這樣分。
不過,現在的環境跟以前不一樣了,舉例來說,前幾天剛剛宣布 (2011/07),光纖的速度已經可以到達 100Mbps/10Mbps 的下載/上傳帶寬了!再舉例來說,臺灣的學術網絡通通是串在一塊的,鳥哥在臺南昆山聯機到高雄義守大學下載 CentOS 映像檔時,你猜下載的速度有多快?每秒鐘可高達 100Mbps 左右!這已經是一個內部區網的速度了!所以,用以前的觀點來看, 其實對目前的網絡環境有點不符現象了。因此,目前你可以使用『速度』作為一個網絡區域范圍的評量。 或許現在我們可以說,整個臺灣的學術網絡 (TANET, [注7](#ps7)) 可以視為是一個局域網絡呢!
* * *
### 2.1.4 計算機網絡協議: OSI 七層協定
談完了網絡需要制訂的標準、網絡聯機的組件以及網絡的范圍之后,接下來就是要講到,那么各個節點之間是如何溝通訊息的呢? 其實就是透過標準的通訊協議啦!但是,整個網絡連接的過程相當復雜,包括硬件、軟件數據封包與應用程序的互相鏈接等等, 如果想要寫一支將聯網全部功能都串連在一塊的程序,那么當某個小環節出現問題時,整只程序都需要改寫啊!真麻煩!
那怎辦?沒關系,我們可以將整個網絡連接過程分成數個階層 (layer),每個階層都有特別的獨立的功能, 而且每個階層的程序代碼可以獨立撰寫,因為每個階層之間的功能并不會互相干擾的。 如此一來,當某個小環節出現問題時,只要將該層級的程序代碼重新撰寫即可。所以程序撰寫也容易,整個網絡概念也就更清晰! 那就是目前你常聽到的 OSI 七層協定 (Open System Interconnection) 的概念啰!
如果以圖示來說,那么這七個階層的相關性有點像底下這樣:

圖 2.1-2、OSI 七層協議各階層的相關性
依據定義來說,越接近硬件的階層為底層 (layer 1),越接近應用程序的則是高層 (layer 7)。 不論是接收端還是發送端,每個一階層只認識對方的同一階層數據。 而整個傳送的過程就好像人們在玩整人游戲一般,我們透過應用程序將數據放入第七層的包裹,再將第七層的包裹放到第六層的包裹內, 依序一直放到第一層的最大的包裹內,然后傳送出去給接收端。接收端的主機就得由第一個包裹開始,依序將每個包裹拆開, 然后一個一個交給對應負責的階層來視察!這就是整人游戲...喔!是 OSI 七層協議在階層定義方面需要注意的特色。
既然說是包裹,那我們都知道,包裹表面都會有個重要的信息,這些信息包括有來自哪里、要去哪里、接收者是誰等等, 而包裹里面才是真正的數據。同樣的,在七層協議中,每層都會有自己獨特的表頭數據 (header),告知對方這里面的信息是什么, 而真正的數據就附在后頭啰!我們可以使用如下的圖示來表示這七層每一層的名字,以及數據是如何放置到每一層的包裹內:

圖 2.1-3、OSI 七層協議數據的傳遞方式
上圖中仔細看每個數據報的部分,上層的包裹是放入下層的數據中,而數據前面則是這個數據的表頭。其中比較特殊的是第二層, 因為第二層 (數據鏈結層) 主要是位于軟件封包 (packet) 以及硬件訊框 (frame) 中間的一個階層, 他必須要將軟件包裝的包裹放入到硬件能夠處理的包裹中,因此這個階層又分為兩個子層在處理相對應的數據。 因為比較特殊,所以您瞧瞧,第二層的數據格式比較不一樣喔,尾端還出現一個檢查碼哩~
每一個階層所負責的任務是什么呢?簡單的說,每一層負責的任務如下:([注6](#ps6), [注8](#ps8), [注9](#ps9))
| 分層 | 負責內容 |
| --- | --- |
| Layer 1 物理層 Physical Layer | 由于網絡媒體只能傳送 0 與 1 這種位串,因此物理層必須定義所使用的媒體設備之電壓與訊號等, 同時還必須了解數據訊框轉成位串的編碼方式,最后連接實體媒體并傳送/接收位串。 |
| Layer 2 數據鏈結層 Data-Link Layer | 這一層是比較特殊的一個階層,因為底下是實體的定義,而上層則是軟件封裝的定義。因此第二層又分兩個子層在進行數據的轉換動作。 在偏硬件媒體部分,主要負責的是 MAC (Media Access Control) ,我們稱這個數據報裹為 MAC 訊框 (frame), MAC 是網絡媒體所能處理的主要數據報裹,這也是最終被物理層編碼成位串的數據。MAC 必須要經由通訊協議來取得媒體的使用權, 目前最常使用的則是 IEEE 802.3 的以太網絡協議。詳細的 MAC 與以太網絡請參考下節說明。至于偏向軟件的部分則是由邏輯鏈接層 (logical link control, LLC) 所控制,主要在多任務處理來自上層的封包數據 (packet) 并轉成 MAC 的格式, 負責的工作包括訊息交換、流量控制、失誤問題的處理等等。
| Layer 3 網絡層 Network Layer | 這一層是我們最感興趣的啰,因為我們提及的 IP (Internet Protocol) 就是在這一層定義的。 同時也定義出計算機之間的聯機建立、終止與維持等,數據封包的傳輸路徑選擇等等,因此這個層級當中最重要的除了 IP 之外,就是封包能否到達目的地的路由 (route) 概念了! |
| Layer 4 傳送層 Transport Layer | 這一個分層定義了發送端與接收端的聯機技術(如 TCP, UDP 技術), 同時包括該技術的封包格式,數據封包的傳送、流程的控制、傳輸過程的偵測檢查與復原重新傳送等等, 以確保各個數據封包可以正確無誤的到達目的端。 |
| Layer 5 會談層 Session Layer | 在這個層級當中主要定義了兩個地址之間的聯機信道之連接與掛斷,此外,亦可建立應用程序之對談、 提供其他加強型服務如網絡管理、簽到簽退、對談之控制等等。如果說傳送層是在判斷資料封包是否可以正確的到達目標, 那么會談層則是在確定網絡服務建立聯機的確認。 |
| Layer 6 表現層 Presentation Layer | 我們在應用程序上面所制作出來的數據格式不一定符合網絡傳輸的標準編碼格式的! 所以,在這個層級當中,主要的動作就是:將來自本地端應用程序的數據格式轉換(或者是重新編碼)成為網絡的標準格式, 然后再交給底下傳送層等的協議來進行處理。所以,在這個層級上面主要定義的是網絡服務(或程序)之間的數據格式的轉換, 包括數據的加解密也是在這個分層上面處理。 |
| Layer 7 應用層 Application Layer | 應用層本身并不屬于應用程序所有,而是在定義應用程序如何進入此層的溝通接口,以將數據接收或傳送給應用程序,最終展示給用戶。 |
事實上, OSI 七層協議只是一個參考的模型 (model),目前的網絡社會并沒有什么很知名的操作系統在使用 OSI 七層協定的聯網程序代碼。那...講這么多干嘛?這是因為 OSI 所定義出來的七層協議在解釋網絡傳輸的情況來說, 可以解釋的非常棒,因此大家都拿 OSI 七層協議來做為網絡的教學與概念的理解。至于實際的聯網程序代碼,那就交給 TCP/IP 這個玩意兒吧!
* * *
### 2.1.5 計算機網絡協議: TCP/IP
雖然 OSI 七層協議的架構非常嚴謹,是學習網絡的好材料。但是也就是因為太過嚴謹了,因此程序撰寫相當不容易, 所以造成它在發展上面些許的困擾。而由 ARPANET 發展而來的 TCP/IP 又如何呢?其實 TCP/IP 也是使用 OSI 七層協議的觀念, 所以同樣具有分層的架構,只是將它簡化為四層,在結構上面比較沒有這么嚴謹,程序撰寫會比較容易些。后來在 1990 年代由于 email, WWW 的流行,造成 TCP/IP 這個標準為大家所接受,這也造就目前我們的網絡社會啰!
既然 TCP/IP 是由 OSI 七層協議簡化而來,那么這兩者之間有沒有什么相關性呢?它們的相關性可以圖示如下, 同時這里也列出目前在這架構底下常見的通訊協議、封包格式與相關標準:

圖 2.1-4、OSI 與 TCP/IP 協議之相關性
從上圖中,我們可以發現 TCP/IP 將應用、表現、會談三層整合成一個應用層,在應用層上面可以實作的程序協議有 HTTP, SMTP, DNS 等等。 傳送層則沒有變,不過依據傳送的可靠性又將封包格式分為連接導向的 TCP 及非連接導向的 UDP 封包格式。網絡層也沒有變,主要內容是提供了 IP 封包,并可選擇最佳路由來到達目標 IP 地址。數據鏈結層與物理層則整合成為一個鏈結層,包括定義硬件訊號、 訊框轉位串的編碼等等,因此主要與硬件 (不論是區網還是廣域網) 有關。
那 TCP/IP 是如何運作的呢?我們就拿妳常常連上的 Yahoo 入口網站來做個說明好了,整個聯機的狀態可以這樣看:
1. 應用程序階段:妳打開瀏覽器,在瀏覽器上面輸入網址列,按下 [Enter]。此時網址列與相關數據會被瀏覽器包成一個數據, 并向下傳給 TCP/IP 的應用層;
2. 應用層:由應用層提供的 HTTP 通訊協議,將來自瀏覽器的數據報起來,并給予一個應用層表頭,再向傳送層丟去;
3. 傳送層:由于 HTTP 為可靠聯機,因此將該數據丟入 TCP 封包內,并給予一個 TCP 封包的表頭,向網絡層丟去;
4. 網絡層:將 TCP 包裹包進 IP 封包內,再給予一個 IP 表頭 (主要就是來源與目標的 IP 啰),向鏈結層丟去;
5. 鏈結層:如果使用以太網絡時,此時 IP 會依據 CSMA/CD 的標準,包裹到 MAC 訊框中,并給予 MAC 表頭,再轉成位串后, 利用傳輸媒體傳送到遠程主機上。
等到 Yahoo 收到你的包裹后,在依據相反方向拆解開來,然后交給對應的層級進行分析,最后就讓 Yahoo 的 WWW 服務器軟件得到你所想要的數據,該服務器軟件再根據你的要求,取得正確的資料后,又依循上述的流程,一層一層的包裝起來, 最后傳送到你的手上!就是這樣啰!
根據這樣的流程,我們就得要知道每個分層所需要了解的基礎知識,這樣才算學習網絡基礎嘛!所以底下我們會依據 TCP/IP 的鏈結層、網絡層、傳送層來進行說明,應用層的協議則在后續章節中有對應的協定再來談啰!同時我們也知道, 網絡媒體一次傳輸的數據量是有限的,因此如果要被傳輸的數據太大時,我們在分層的包裝中,就得要將數據先拆開放到不同的包裹中, 再給包裹一個序號,好讓目的端的主機能夠藉由這些序號再重新將數據整合回來!很有趣吧!接下來就讓我們一層一層來介紹啰!
**Tips:** 一般來說,因為應用程序與程序設計師比較有關系,而網絡層以下的數據則主要是操作系統提供的,因此, 我們又將 TCP/IP 當中的應用層視為使用者層,而底下的三層才是我們主要談及的網絡基礎!所以這個章節主要就是介紹這三層啦!

* * *
- 鳥哥的Linux私房菜:服務器架設篇 第三版
- 第一部份:架站前的進修專區
- 作者序
- 第一章、架設服務器前的準備工作
- 1.1 前言: Linux 有啥功能
- 1.2 基本架設服務器流程
- 1.3 自我評估是否已經具有架站的能力
- 1.4 本章習題
- 第二章、基礎網絡概念
- 2.1 網絡是個什么玩意兒
- 2.2 TCP/IP 的鏈結層相關協議
- 2.3 TCP/IP 的網絡層相關封包與數據
- 2.4 TCP/IP 的傳輸層相關封包與數據
- 2.5 連上 Internet 前的準備事項
- 2.6 重點回顧:
- 2.7 本章習題
- 2.8 參考數據與延伸閱讀
- 第三章、局域網絡架構簡介
- 3.1 局域網絡的聯機
- 3.2 本書使用的內部聯機網絡參數與通訊協議
- 第四章、連上 Internet
- 4.1 Linux 連上 Internet 前的注意事項
- 4.2 連上 Internet 的設定方法
- 4.3 無線網絡--以筆記本電腦為例
- 4.4 常見問題說明
- 4.5 重點回顧
- 4.6 本章習題
- 4.7 參考數據與延伸閱讀
- 第五章、 Linux 常用網絡指令
- 5.1 網絡參數設定使用的指令
- 5.2 網絡偵錯與觀察指令
- 5.3 遠程聯機指令與實時通訊軟件
- 5.4 文字接口網頁瀏覽
- 5.5 封包擷取功能
- 5.6 重點回顧
- 5.7 本章習題
- 5.8 參考數據與延伸閱讀
- 第六章、 Linux 網絡偵錯
- 6.1 無法聯機原因分析
- 6.2 處理流程
- 6.3 本章習題
- 6.4 參考數據與延伸閱讀
- 第二部分:主機的簡易資安防護措施
- 第七章、網絡安全與主機基本防護:限制端口, 網絡升級與 SELinux
- 7.1 網絡封包聯機進入主機的流程
- 7.2 網絡自動升級軟件
- 7.3 限制聯機埠口 (port)
- 7.4 SELinux 管理原則
- 7.5 被攻擊后的主機修復工作
- 7.6 重點回顧
- 7.7 課后練習
- 7.8 參考數據與延伸閱讀
- 第八章、路由觀念與路由器設定
- 8.1 路由
- 8.2 路由器架設
- 8.3 動態路由器架設:quagga (zebra + ripd)
- 8.4 特殊狀況:路由器兩邊界面是同一個 IP 網段: ARP Proxy
- 8.5 重點回顧
- 8.6 本章習題
- 8.7 參考數據與延伸閱讀
- 第九章、防火墻與 NAT 服務器
- 9.1 認識防火墻
- 9.2 TCP Wrappers
- 9.3 Linux 的封包過濾軟件:iptables
- 9.4 單機防火墻的一個實例
- 9.5 NAT 服務器的設定
- 9.6 重點回顧
- 9.7 本章習題
- 9.8 參考數據與延伸閱讀
- 第十章、申請合法的主機名
- 10.1 為何需要主機名
- 10.2 注冊一個合法的主機名
- 10.3 重點回顧
- 10.4 本章習題
- 10.5 參考數據與延伸閱讀
- 第三部分:局域網絡內常見的服務器架設
- 第十一章、遠程聯機服務器SSH / XDMCP / VNC / RDP
- 11.1 遠程聯機服務器
- 11.2 文字接口聯機服務器: SSH 服務器
- 11.3 最原始圖形接口: Xdmcp 服務的啟用
- 11.4 華麗的圖形接口: VNC 服務器
- 11.5 仿真的遠程桌面系統: XRDP 服務器
- 11.6 SSH 服務器的進階應用
- 11.7 重點回顧
- 11.8 本章習題
- 11.9 參考數據與延伸閱讀
- 第十二章、網絡參數控管者: DHCP 服務器
- 12.1 DHCP 運作的原理
- 12.2 DHCP 服務器端的設定
- 12.3 DHCP 客戶端的設定
- 12.4 DHCP 服務器端進階觀察與使用
- 12.5 重點回顧
- 12.6 本章習題
- 12.7 參考數據與延伸閱讀
- 第十三章、文件服務器之一:NFS 服務器
- 13.1 NFS 的由來與其功能
- 13.2 NFS Server 端的設定
- 13.3 NFS 客戶端的設定
- 13.4 案例演練
- 13.5 重點回顧
- 13.6 本章習題
- 13.7 參考數據與延伸閱讀
- 第十四章、賬號控管: NIS 服務器
- 14.1 NIS 的由來與功能
- 14.2 NIS Server 端的設定
- 14.3 NIS Client 端的設定
- 14.4 NIS 搭配 NFS 的設定在叢集計算機上的應用
- 14.5 重點回顧
- 14.6 本章習題
- 14.7 參考數據與延伸閱讀
- 第十五章、時間服務器: NTP 服務器
- 15.1 關于時區與網絡校時的通訊協議
- 15.2 NTP 服務器的安裝與設定
- 15.3 客戶端的時間更新方式
- 15.4 重點回顧
- 15.5 本章習題
- 15.6 參考數據與延伸閱讀
- 第十六章、文件服務器之二: SAMBA 服務器
- 16.1 什么是 SAMBA
- 16.2 SAMBA 服務器的基礎設定
- 16.3 Samba 客戶端軟件功能
- 16.4 以 PDC 服務器提供賬號管理
- 16.5 服務器簡單維護與管理
- 16.6 重點回顧
- 16.7 本章習題
- 16.8 參考數據與延伸閱讀
- 第十七章、區網控制者: Proxy 服務器
- 17.1 什么是代理服務器 (Proxy)
- 17.2 Proxy 服務器的基礎設定
- 17.3 客戶端的使用與測試
- 17.4 服務器的其他應用設定
- 17.5 重點回顧
- 17.6 本章習題
- 17.7 參考數據與延伸閱讀
- 第十八章、網絡驅動器裝置: iSCSI 服務器
- 18.1 網絡文件系統還是網絡驅動器
- 18.2 iSCSI target 的設定
- 18.3 iSCSI initiator 的設定
- 18.4 重點回顧
- 18.5 本章習題
- 18.6 參考數據與延伸閱讀
- 第四部分:常見因特網服務器架設
- 第十九章、主機名控制者: DNS 服務器
- 19.1 什么是 DNS
- 19.2 Client 端的設定
- 19.3 DNS 服務器的軟件、種類與 cache only DNS 服務器設定
- 19.4 DNS 服務器的詳細設定
- 19.5 協同工作的 DNS: Slave DNS 及子域授權設定
- 19.6 DNS 服務器的進階設定
- 19.7 重點回顧
- 19.8 本章習題
- 19.9 參考數據與延伸閱讀
- 第二十章、WWW 伺服器
- 20.1 WWW 的簡史、資源以及伺服器軟體
- 20.2 WWW (LAMP) 伺服器基本設定
- 20.3 Apache 伺服器的進階設定
- 20.4 登錄檔分析以及 PHP 強化模組
- 20.5 建立連線加密網站 (https) 及防砍站腳本
- 20.6 重點回顧
- 20.7 本章習題
- 20.8 參考資料與延伸閱讀
- 第二十一章、文件服務器之三: FTP 服務器
- 21.1 FTP 的數據鏈路原理
- 21.2 vsftpd 服務器基礎設定
- 21.3 客戶端的圖形接口 FTP 聯機軟件
- 21.4 讓 vsftpd 增加 SSL 的加密功能
- 21.5 重點回顧
- 21.6 本章習題
- 21.7 參考數據與延伸閱讀
- 第二十二章、郵件服務器: Postfix
- 22.1 郵件服務器的功能與運作原理
- 22.2 MTA 服務器: Postfix 基礎設定
- 22.3 MRA 服務器: dovecot 設定
- 22.4 MUA 軟件:客戶端的收發信軟件
- 22.5 郵件服務器的進階設定
- 22.6 重點回顧
- 22.7 本章習題
- 22.8 參考數據與延伸閱讀