官术网_书友最值得收藏!

1.1 Linux網絡基礎

1.1.1 Linux網絡結構的特點

Linux在服務器領域已經非常成熟,其影響力日趨增大。Linux的網絡服務功能非常強大,但是由于Linux的桌面應用和Windows相比還有一定差距,除了一些Linux專門實驗室之外,大多數企業在應用Linux系統時,往往是Linux和Windows(或UNIX)等操作系統共存形成的異構網絡。

在一個網絡系統中,操作系統的地位是非常重要的。Linux網絡操作系統以高效性和靈活性而著稱。它能夠在PC上實現全部的UNIX特性,具有多任務、多用戶的特點。Linux的組網能力非常強大,它的TCP/IP代碼是最高級的。Linux不僅提供了對當前的TCP/IP協議的完全支持,也包括了對下一代Internet協議IPv6的支持。Linux內核還包括了IP防火墻代碼、IP防偽、IP服務質量控制及許多安全特性。Linux的網絡實現是模仿FreeBSD的,它支持FreeBSD的帶有擴展的Sockets(套接字)和TCP/IP協議。它支持兩個主機間的網絡連接和Sockets通信模型,實現了兩種類型的Sockets:BSD Sockets和INET Sockets。它為不同的通信模型提供了兩種傳輸協議,即不可靠的、基于消息的UDP傳輸協議和可靠的、基于流的TCP傳輸協議,并且都是在IP網際協議上實現的。INET Sockets是在以上兩個協議及IP網際協議之上實現的,它們之間的關系如圖1-1所示。

圖1-1 Linux網絡中的層

掌握OSI網絡模型、TCP/IP模型及相關服務對應的層次對于理解Linux網絡服務器是非常重要的。

1.1.2 TCP/IP四層模型和OSI七層模型

表1-1是TCP/IP四層模型和OSI七層模型對應表。我們把OSI七層網絡模型和Linux TCP/IP四層概念模型對應,然后將各種網絡協議歸類。

表1-1 TCP/IP四層模型和OSI七層模型對應表

1.網絡接口

網絡接口把數據鏈路層和物理層放在一起,對應TCP/IP概念模型的網絡接口。對應的網絡協議主要是:Ethernet、FDDI和能傳輸IP數據包的任何協議。

2.網際層

網絡層對應Linux TCP/IP概念模型的網際層,網絡層協議管理離散的計算機間的數據傳輸,如IP協議為用戶和遠程計算機提供了信息包的傳輸方法,確保信息包能正確地到達目的機器。這一過程中,IP和其他網絡層的協議共同用于數據傳輸,如果沒有使用一些監視系統進程的工具,用戶是看不到在系統里的IP的。網絡嗅探器Sniffers是能看到這些過程的一個裝置(它可以是軟件,也可以是硬件),它能讀取通過網絡發送的每一個包,即能讀取發生在網絡層協議的任何活動,因此網絡嗅探器Sniffers會對安全造成威脅。重要的網絡層協議包括ARP(地址解析協議)、ICMP(Internet控制消息協議)和IP協議(網際協議)等。

3.傳輸層

傳輸層對應Linux TCP/IP概念模型的傳輸層。傳輸層提供應用程序間的通信。其功能包括:格式化信息流;提供可靠傳輸。為實現后者,傳輸層協議規定接收端必須發回確認信息,如果分組丟失,必須重新發送。傳輸層包括TCP(Transmission Control Protocol,傳輸控制協議)和UDP(User Datagram Protocol,用戶數據報協議),它們是傳輸層中最主要的協議。TCP建立在IP之上,定義了網絡上程序到程序的數據傳輸格式和規則,提供了IP數據包的傳輸確認、丟失數據包的重新請求、將收到的數據包按照它們的發送次序重新裝配的機制。TCP協議是面向連接的協議,類似于打電話,在開始傳輸數據之前,必須先建立明確的連接。UDP也建立在IP之上,但它是一種無連接協議,兩臺計算機之間的傳輸類似于傳遞郵件:消息從一臺計算機發送到另一臺計算機,兩者之間沒有明確的連接。UDP不保證數據的傳輸,也不提供重新排列次序或重新請求的功能,所以說它是不可靠的。雖然UDP的不可靠性限制了它的應用場合,但它比TCP具有更好的傳輸效率。

4.應用層

應用層、表示層和會話層對應Linux TCP/IP概念模型中的應用層。應用層位于協議棧的頂端,它的主要任務是應用。一般是可見的,如利用FTP(文件傳輸協議)傳輸一個文件,請求一個和目標計算機的連接,在傳輸文件的過程中,用戶和遠程計算機交換的一部分是能看到的。常見的應用層協議有:HTTP、FTP、Telnet、SMTP和Gopher等。應用層是Linux網絡設定最關鍵的一層。Linux服務器的配置文檔主要針對應用層中的協議。TCP/IP模型各個層次的功能和協議如表1-2所示。

表1-2 TCP/IP模型各個層次的功能和協議

說明 TCP/IP與OSI最大的不同在于OSI是一個理論上的網絡通信模型,而TCP/IP則是實際運行的網絡協議。

1.1.3 TCP/IP提供的主要用戶應用程序

1.Telnet程序

Telnet程序提供遠程登錄功能。

2.文件傳輸協議

文件傳輸協議(FTP)允許用戶將一個系統上的文件復制到另一個系統上。

3.簡單郵件傳輸協議

簡單郵件傳輸協議(SMTP)用于傳輸電子郵件。

4.Kerberos協議

Kerberos是一個受到廣泛支持的安全性協議。

5.域名服務器協議

域名服務器協議(DNS)能使一臺設備具有的普通名字轉換成某個特定的網絡地址。

6.簡單網絡管理協議

簡單網絡管理協議(SNMP)把用戶數據報協議(UDP)作為傳輸機制,它使用和TCP/IP不同的術語,TCP/IP用客戶端和服務器,而SNMP用管理器(Manager)和代理(Agent),代理提供設備信息,而管理器管理網絡通信。

7.網絡文件系統協議

網絡文件系統協議(NFS)是由SUN Microsystems公司開發的一套協議,可使多臺計算機能透明地訪問彼此的目錄。

8.遠程過程調用

遠程過程調用(RPC)是使應用軟件能與另一臺計算機(服務器)通信的一些函數。

9.普通文件傳輸協議

普通文件傳輸協議(TFTP)是一種缺乏任何安全性的、非常簡單落后的文件傳輸協議。

10.傳輸控制協議

傳輸控制協議(TCP/IP中的TCP部分)是一種數據可靠傳輸的通信協議。

11.網際協議

網際協議(IP)負責在網絡上傳輸由TCP/UDP裝配的數據包。

12.網際控制消息協議

網際控制消息協議負責根據網絡上設備的狀態發出和檢查消息,它可以將某臺設備的故障通知到其他設備。

1.1.4 端口號分配

TCP和UDP采用16bit的端口號來識別應用程序。那么這些端口號是如何選擇的呢?

服務器一般都是通過知名端口號來識別的。例如,對于TCP/IP實現來說,每個FTP服務器的TCP端口號都是21,每個Telnet服務器的TCP端口號都是23,每個TFTP(普通文件傳輸協議)服務器的UDP端口號都是69。任何TCP/IP實現所提供的服務都用知名的1~1023之間的端口號。這些知名端口號由Internet號分配機構(Internet Assigned Numbers Authority,IANA)來管理。到1992年為止,知名端口號介于1~255之間。256~1023之間的端口號通常都是由UNIX系統占用,以提供一些特定的UNIX服務,也就是說,提供一些只有UNIX系統才有的,而其他操作系統可能不提供的服務。現在IANA管理1~1023之間所有的端口號。

Internet擴展服務與UNIX特定服務之間的一個差別就是telnet和rlogin,它們二者都允許通過計算機網絡登錄到其他主機上。telnet是采用端口號為23的TCP/IP標準,且幾乎可以在所有操作系統上進行實現。相反,rlogin最開始時只是為UNIX系統設計的(盡管許多非UNIX系統現在也提供該服務),因此在20世紀80年代初,它的端口號為513,客戶端通常對它所使用的端口號并不關心,只須保證該端口號在本機上是唯一的即可。客戶端口號又稱做臨時端口號(即存在時間很短暫),這是因為它通常只是在用戶運行該客戶程序時才存在,而服務器則只要主機開著,其服務就運行。

大多數TCP/IP實現給臨時端口分配1024~5000之間的端口號。大于5000的端口號是為其他服務器預留的(Internet上并不常用的服務)。我們可以在后面看見許多給臨時端口分配端口號的例子。大多數Linux系統的文件/etc/services都包含了人們熟知的端口號。為了找到Telnet服務,可以運行以下語句:“grep telnet /etc/services”。表1-3是一些常用TCP服務和端口。

表1-3 常用TCP服務和端口

UDP為運行于同一臺或不同機器之上的兩個或多個程序之間傳輸數據包提供了簡單的、不可靠的連接。“不可靠”意味著操作系統不保證每個發出的包都能到達,也不保證包能夠按序到達。不過UDP是盡力傳輸的,在LAN中UDP通常能達到100%的可靠性。UDP的優點在于它比TCP的開銷少,較少的開銷使得基于UDP的服務可以用TCP 10倍的吞吐量傳輸數據。

UDP主要用于SUN的NFS、NIS、主機名解析和傳輸路由信息。對于有些服務而言,偶然丟失一個包并不會帶來太大的負面影響,因為它們會周期性地請求一個新包,或者那些包本身并不是很重要。這些服務包括who、talk和一些時間服務。表1-4是一些常用UDP服務和端口。

表1-4 常見UDP服務和端口

主站蜘蛛池模板: 永泰县| 贵州省| 达州市| 介休市| 永顺县| 澄迈县| 禄劝| 遂昌县| 长海县| 商河县| 汝州市| 华坪县| 平陆县| 盈江县| 姚安县| 台南市| 隆子县| 衡南县| 南皮县| 若羌县| 黎平县| 闽侯县| 临猗县| 望谟县| 建宁县| 宽城| 息烽县| 广灵县| 泾川县| 寿宁县| 凤冈县| 体育| 龙南县| 隆化县| 罗山县| 建水县| 宝鸡市| 教育| 洮南市| 嘉祥县| 娄底市|