日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux 核心--11.網(wǎng)絡(luò)

第十章
網(wǎng)絡(luò)

網(wǎng)絡(luò)和Linux是密切相關(guān)的 。從某種意義來說Linux是一個(gè)針對(duì)Internet和WWW的產(chǎn)品 。它的開發(fā)者和用戶用Web來交換信息思想、程序代碼,而Linux自身常常被用來支持各種組織機(jī)構(gòu)的網(wǎng)絡(luò)需求 。這一章講的是Linux如何支持如TCP/IP等網(wǎng)絡(luò)協(xié)議的 。

TCP/IP協(xié)議最初是為支持ARPANET(一個(gè)美國政府資助的研究性網(wǎng)絡(luò))上計(jì)算機(jī)通訊而設(shè)計(jì)的 。ARPANET 提出了一些網(wǎng)絡(luò)概念如包交換和協(xié)議分層(一個(gè)協(xié)議使用另一個(gè)協(xié)議提供的服務(wù)) 。ARPANET于1988年隱退,但是它的繼承人(NSF1 NET和Internet)卻變得更大了 ?,F(xiàn)在我們所熟知的萬維網(wǎng)World Wide Web就是從ARPANET演變過來的,它自身支持TCP/IP協(xié)議 。Unix TM 被廣泛應(yīng)用于ARPANET,它的第一個(gè)網(wǎng)絡(luò)版本是4.3 BSD 。Linux的網(wǎng)絡(luò)實(shí)現(xiàn)是以4.3 BSD為模型的,它支持BSD sockets(及一些擴(kuò)展)和所有的TCP/IP網(wǎng)絡(luò) 。選這 個(gè)編程接口是因?yàn)樗芰餍校⑶矣兄趹?yīng)用程序從Linux平臺(tái)移植到其它Unix TM 平臺(tái) 。

10.1TCP/IP網(wǎng)絡(luò)簡(jiǎn)介
這一部分簡(jiǎn)單介紹一下TCP/IP網(wǎng)絡(luò)的主要原理,而不是進(jìn)行詳細(xì)地講述 。在IP網(wǎng)絡(luò)中,每臺(tái)機(jī)器都有一個(gè) IP 地址,一個(gè)32位的數(shù)字,它唯一地標(biāo)識(shí)這臺(tái)機(jī)器 。WWW是一個(gè)非常巨大并且迅速增長的網(wǎng)絡(luò),每臺(tái)連在上面的機(jī)器都必須有一個(gè)獨(dú)立的IP地址 。IP地址由四個(gè)用點(diǎn)分開的數(shù)字表示,如16.42.0.9 。這個(gè)IP地址實(shí)際上分成兩個(gè)部分:網(wǎng)絡(luò)地址和主機(jī)地址,每部分的長度是可以變化的(有好幾類IP地址) 。以16.42.0.9為例,網(wǎng)絡(luò)地址是16.42,主機(jī)地址是0.9 。主機(jī)地址又進(jìn)一步分為子網(wǎng)地址和主機(jī)地址 。還是以16.42.0.9為例,子網(wǎng)地址是16.42.0,主機(jī)地址是16.42.0.9 。這樣的子劃分可以允許某部門劃分他們自己的子網(wǎng)絡(luò) 。例如,如果16.42是ACME計(jì)算機(jī)公司的網(wǎng)絡(luò)地址,則16.42.0可能是子網(wǎng)0,16.42.1可能是子網(wǎng)1 。這些子網(wǎng)可以是分別建立的,可能租用電話線或用微波進(jìn)行相互間通訊 。IP地址由網(wǎng)絡(luò)管理員分配,用IP 子網(wǎng)可以很好地管理網(wǎng)絡(luò) 。IP子網(wǎng)的管理員可以自由分配子網(wǎng)內(nèi)的IP地址 。
通常,IP地址是比較難記的,而名稱則容易多了,象linux.acme.com就比16.42.0.9要好記一些 。但是必須有一些機(jī)器來將網(wǎng)絡(luò)名稱轉(zhuǎn)變?yōu)镮P地址 。這些名稱被靜態(tài)地定義在 /etc/hosts 文件中或者Linux能請(qǐng)求域名服務(wù)器(DNS)來解析它 。這種情況下,本地主機(jī)必須知道一個(gè)或一個(gè)以上的DNS服務(wù)器并且這些服務(wù)器要將其名稱指定到 /etc/resolv.conf 中 。

當(dāng)你想要與另一臺(tái)計(jì)算機(jī)連接時(shí),比如說你想閱讀一個(gè)Web頁,你的IP地址就會(huì)被用來與那臺(tái)機(jī)器交換數(shù)據(jù) 。這些數(shù)據(jù)被包含在一些IP包中,每個(gè)IP包都有一個(gè)IP頭用來包含源機(jī)器的IP地址和目的機(jī)器的IP地址,校驗(yàn)和以及其它的有用信息 。IP包的校驗(yàn)和用來讓IP包的接收端判斷IP包是否在傳輸過程中發(fā)生錯(cuò)誤,譬如說由于電話線路的問題而引起的錯(cuò)誤 。應(yīng)用程序想要傳輸?shù)臄?shù)據(jù)可能被分成很多個(gè)容易處理的小包 。IP數(shù)據(jù)包的大小是根據(jù)傳輸媒體的變化而不同的;以太網(wǎng)包通常比PPP包要大一些 。目的主機(jī)在將數(shù)據(jù)送給接收端應(yīng)用程序前需要將這些包重新拚裝起來 。如果你從一個(gè)比較慢的站點(diǎn)訪問一個(gè)有大量圖象的Web頁,就會(huì)看到數(shù)據(jù)的分割與重組 。

同一子網(wǎng)內(nèi)的主機(jī)之間可以直接發(fā)送IP包,而其它的IP包將被送到一個(gè)特定的主機(jī):網(wǎng)關(guān) 。網(wǎng)關(guān)(或路由器)是用來連接多個(gè)IP子網(wǎng)的,它們會(huì)轉(zhuǎn)發(fā)送從子網(wǎng)內(nèi)來的IP包 。例如,如果子網(wǎng)16.42.1.0和16.42.0.0之間通過一個(gè)網(wǎng)關(guān)相連,那么任何從子網(wǎng)0發(fā)往子網(wǎng)1的包必須由網(wǎng)關(guān)指引,網(wǎng)關(guān)可以幫這些包找到正確的路線 。本地主機(jī)建立路由表用以為IP包找到正確的機(jī)器 。每一個(gè)目的IP都有一個(gè)條目在路由表中,用以告訴Linux將IP包送到哪一臺(tái)主機(jī) 。這些路由表是隨網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)變化而動(dòng)態(tài)變化的 。

推薦閱讀