Linux複習備忘錄8 這個是本系列文章的第八篇,從本篇開始,基本上系統的基本知識都大概介紹完了,下面主要涉及網路以及相關應用的配置等等,當然,前面的文章寫得有些簡單了,主要是打字要時間啊!!!像我這種懶人,能寫個提綱給自己提示一下,已經算是超常發揮了。 首先講一下TCP/IP協議,這個是事實標準,在國際標準組織定義了所謂OSI七層協議以後(實際上沒有應用)。 我們可以先看一下分層圖:、 8.1 基本知識 TCP是傳輸控制通訊協定,IP則指的是網際協議。 TCP和UDP是建立在IP的基礎上,向特定的應用傳遞分組的傳輸協議。 TCP是一種連線導向的協議,在很大程度上有點像電話。TCP協議時可控可靠傳輸。UDP是面向分組的服務,類似郵局發信的原理。UDP是無連線協定,它不保證分組的接受順序和發送順序,也不保證分組能正確抵達目的地。 8.2 連網技術概述 TCP/IP協議時一個協議族,不止包含那兩個傳輸層的協議,還包括ICMP,APR等 IMCP協議是IP協議的底層支援協議,而ARP則是位址解析通訊協定,也是各種考試常考的內容。 8.2.1 分組和封裝 在網路中,高層的協議對底層並不關心,看上去就是黑盒子,這是電腦中一個很重要的思想,叫做封裝。 資料在網路中以分組的形式傳輸。每個包都有包頭和有效載荷組成。原始的資料單位名稱依協議層而定。在鏈路層上,叫做幀(frame),在IP層上叫做分組(packet),在TCP層上叫做片段(segment);在一個包沿著協議棧向下傳輸的時候,每個協議都會加上自己的頭部,這個嵌套的過程叫做封裝,在接收端相對的逆過程叫做解鎖。 8.2.2 鏈路層 這裡面,講一下鏈路層的內容,鏈路層的主要任務是在資料幀上加上幀頭,和幀之間的分隔字元以便區別不同的幀,組幀也是有標準檔案的,約定了幀的格式等資訊。 8.2.3 包的定址 定址基本上有三個方案: 硬體用MAC; 軟體用IP; 人用主機名稱定址; MAC地址我們都應該很熟悉,這個是由網卡出廠時候就初始化的一個地址。當然你可以再系統裡面偽裝這個地址。不做解釋了。 MAC定址是基於鏈路層的定址方式。而IP地址和硬體地址的映射關係也是在鏈路層中實現的:ARP協議。此協議位於鏈路層。 8.2.4 IP連接埠 IP地址標示了電腦的網路介面,但是對於服務和進程來講,一個地址無法區分不同的進程,所以衍生了連接埠的概念。在linux系統中,服務程式的連接埠號碼都低於1024,當然以root身份啟動並執行進程除外。 8.3 IP地址詳解 IP地址分為網路部分和主機部分。 8.3.1 分類 傳統上,IP地址分為三類:A、B、C類地址,不過目前其實這套分類已經沒有什麼實際的意義了。稍微提一下: A類地址:第一個位元組值:1-126; B類地址:128-191; C類地址:192-223 8.3.2 子網和子網路遮罩 對於A類和B類網路來說,主機號實在是太多了,至於浪費了大量的地址,所以出現了子網的概念,為了更有效利用IP地址資源。 也就是我們可以用子網路遮罩的形式把一個B類地址化為多個C類地址,掩碼意思是:將一個IP地址網路部分的哥哥網路遮罩位置設定為1,而主機位為0。常見的掩碼形式是:255.255.255.0這個是C類地址的掩碼。 但是隨著網路上電腦的增多,這種劃分子網的形式也漸漸的不夠用了,目前實際上採用的是CIDR無類域路由的方法,在IP/26這種記法中表示了前26位為網路部分,最後一個位元組中前兩位為網路號的部分,最後位元組將變成11000000的掩碼形式。所以我們可以將IP/24分為4個IP/26的網路,而本例中,IP/26還剩6位表示主機地址,正常算的話應該是64個主機,但是全0和全1的地址是保留地址,所以真正可以使用的是62個地址。 有興趣的同學可以繼續研究一下,不再細緻描述了,在實際應用中這個基本上用不到,不過算是一個基本的知識。 8.3.3 CIDR 這個是無類域路由分類方法的簡稱,廢除了以前固定的ABC分類方法,是子網方法的直接擴充。在上面一小節中也提到了這個名詞。大家知道一下就可以了。 8.3.4 私用地址和NAT NAT的相關配置以後還會講到,這裡只是大概提到一下他們的用途。 我們知道,IP地址需要申請,但是我們內部的網路擴張是很迅速的,而且也沒有必要每個內部主機都需要一個外部IP,所以私用地址的概念出現了,由RFC文檔規定有一個A類網路、16個B類網路、256個C類網路作為私用地址。 這些地址都可以在內部自用使用,劃分子網和分配地址。 為了使內部主機能訪問外部網路,一般需要一個NAT服務來進行地址和連接埠的映射,也就是所有內部IP共用一個真的外網地址,當然這個缺點麼,就是內部主機外部是無法訪問的,不過在某一特定情境下,這似乎是個優點。 8.4 ARP位址解析通訊協定 ARP協議應該是比較重要的一個協議。IP包是根據IP地址發送的。在鏈路層上必須採用實際硬體地址來傳送資料,所以產生了ARP協議。每個電腦在記憶體中都維護了一張叫做ARP緩衝的表,儲存了近期ARP查詢的結果。 對於這個協議,記住是通過廣播形式來發揮作用就可以了,還有條命令:arp,可以顯示ARP緩衝的內容。 8.5 將一台主機加入網路 作為系統管理員,有時候需要將一台主機加入網路。 我們需要完成的操作主要有: 1,分配IP地址和主機名稱; 2,設定網路介面; 3,設定預設路由; 4,指定一個DNS伺服器。 8.5.1 分配IP地址和主機名稱 可能涉及的檔案是/etc/hosts以及hostname這個命令,這不是本節的重點,此節涉及另一個比較重要的命令:ifconfig 這個命令可以說是非常熟悉大家,win系統下也有類似的命令,ipconfig. 這條命令的基本格式: Ifconfig interface address options .... 舉個例子: Ifconfig eth0 192.168.100.1 netmask 255.255.255.0 up ---interface 是命令所應用的硬體介面名稱。在大多數系統上市eth0. Address是IP地址,如果是靜態分配的話。 Netmask 是子網路遮罩,這個概念大家不陌生 Up 是啟動介面的意思。 這裡提及一下,mii-tool命令可以查詢並設定特定介面的參數,必然全/半雙工模式等,不過這裡面的東西除非必要,一般預設不需要改變。 8.5.2 配置預設路由 其實就是指定一下網關的地址。 命令: Route add default gw gateway-IP-address 8.5.3 配置DNS 配置DNS,其實關鍵是配置/etc/resolv.conf檔案。只要編輯這個檔案,添加相應的DNS伺服器位址就可以了。