跳轉至內容

網際網路與社會/技術基礎設施/網路基礎設施

來自Wikibooks,開放世界中的開放書籍

網際網路架構

[編輯 | 編輯原始碼]

網際網路是一個全球性的計算機網路,其特性是每臺計算機都可以向網際網路上的任何其他計算機發送資料並接收資料。

網際網路簡史

[編輯 | 編輯原始碼]

透過電話線或其他長途網路連線計算機的想法最早在1965年得到驗證,當時兩位大學研究人員Larry Roberts和Thomas Merrill使用電話線將馬薩諸塞州的一臺計算機與加利福尼亞州的一臺計算機連線起來,並證明他們可以在遠端機器上執行程式並接收資料。這項研究背後的一個關鍵思想是,計算機將透過將其資料分解成許多小的資料包並單獨傳送這些資料包來進行通訊。如果任何資料包丟失(由於線路上的背景噪聲),則可以輕鬆地重新發送。此實驗直接導致了DARPA(國防高階研究計劃局)在1967年提出的構建ARPANET的提案,ARPANET是網際網路的軍事前身。1968年,由波士頓BBN的Frank Heart領導的一個小組贏得了政府合同,負責構建最初的ARPANET硬體。1969年,最初的ARPANET建成,由四臺計算機組成:三臺在加利福尼亞州,一臺在猶他州。1972年,Roberts編寫了第一個電子郵件程式,電子郵件迅速成為最常用的網路應用。1973年,Vint Cerf和Robert Kahn為計算機網路提出了一套新的通訊規則,稱為TCP/IP(傳輸控制協議/網際網路協議),它允許使用者實現各種網路應用,包括網路電話、電子郵件和網路磁碟共享。ARPANET於1983年轉換為TCP/IP網路,此時它被拆分為兩個網路:用於軍事應用的MILNET和用於民用應用的ARPANET。在整個70年代,開發了幾個其他網路。其中包括CSNET(連線計算機科學系)、USENET(連線UNIX計算機)和BITNET(連線學術大型機)。80年代見證了個人電腦和工作站的快速激增,並將其組合成小型區域網(LAN),這些LAN越來越多地新增到ARPANET中,導致網際網路快速增長。此外,1985年,國家科學基金會成立了NSFNET,並規定只有在向機構所有學者(而不僅僅是科學部門)提供訪問許可權的情況下,大學才能連線到該網路。1980年代的另一個重要發展是將網路連線到一個使用TCP/IP協議進行通訊的單一網際網路中。90年代見證了全球資訊網的誕生以及網際網路在規模和普通大眾使用方面迅速擴張。參考文獻:Barry M. Leiner、Vinton G. Cerf、David D. Clark、Robert E. Kahn、Leonard Kleinrock、Daniel C. Lynch、Jon Postel、Larry G. Roberts和Stephen Wolff撰寫的網際網路簡史

網際網路定址:域名和IP地址

[編輯 | 編輯原始碼]

網際網路目前大約有4000萬臺伺服器,儘管這個數字每個月都在增長(實際上,由於稍後會闡明的原因,它每分鐘都在波動)。網際網路上的每臺計算機都有一個唯一的識別號,稱為其IP地址(網際網路協議)。IP地址由一系列0-255範圍內的四個數字組成。例如,2003年布蘭迪斯大學的一個典型IP地址是129.64.2.10,其中IP地址中的數字按照慣例用句點分隔。這是IP地址的點分十進位制形式。IP地址實際上儲存在計算機上並作為32位長的二進位制數傳輸。請閱讀關於二進位制數的附錄,以瞭解二進位制數以及如何使用它們來表示十進位制數。網際網路上的大多數計算機也都有一個識別名稱,稱為域名。例如,布蘭迪斯大學主Web伺服器的域名是www.brandeis.edu,其IP地址是129.64.99.138。域名和IP地址之間的關係可以透過稱為域名伺服器的計算機在網路上獲得。網際網路實際上由大量無縫互連的網路組成。例如,布蘭迪斯大學的區域網(LAN)由幾千臺計算機組成。這些計算機都直接連線到網際網路並具有129.64.xxx.yyy形式的IP地址,其中xxx和yyy是0-255範圍內的數字。反之,此形式的任何IP地址都指的是布蘭迪斯LAN。因此,布蘭迪斯LAN可以擴充套件到包含多達256 x 256 = 65536臺計算機,這些計算機都可以同時直接連線到網際網路。這種分塊分配IP地址的方法在今天被廣泛使用。

(新增到此部分?)-IPv4與IPv6 -MAC地址

參考文獻:Netcraft調查 維基百科上的網際網路協議

網際網路路由

[編輯 | 編輯原始碼]

網際網路是由大量互連網路組成的集合。目前網際網路上大約有4000萬臺伺服器處於活動狀態。當一條訊息從一臺計算機發送到另一臺計算機時。該訊息被劃分為較小的資料包(以免佔用網路),每個資料包都被單獨傳送到目的地。每個資料包在透過網際網路傳輸時都會從一臺計算機傳遞到另一臺計算機。它通常從使用者的計算機傳遞到大學或ISP辦公室的集中式路由器。從那裡,它被髮送到一系列網路,然後到達目的地計算機的ISP,最後轉發到目的地計算機。在UNIX系統上,您可以使用traceroute程式列印中間計算機列表(以及訊息到達那裡所需的時間)。例如,我們下面顯示了從布蘭迪斯大學(位於美國馬薩諸塞州沃爾瑟姆)的一臺計算機到東京大學主Web伺服器的訊息的traceroute。

% traceroute www.u-tokyo.ac.jp 
traceroute to www.u-tokyo.ac.jp (133.11.128.254), 30 hops max, 40 byte packets 
1 igs.cs-i.brandeis.edu (129.64.46.1) 75.332 ms 2.887 ms 3.342 ms 
2 129.64.253.1 (129.64.253.1) 2.558 ms 2.94 ms 3.561 ms 
3 192.5.89.121 (192.5.89.121) 4.227 ms 4.087 ms 4.583 ms 
4 192.5.89.10 (192.5.89.10) 16.261 ms 9.059 ms 11.282 ms 
5 chinng-nycmng.abilene.ucaid.edu (198.32.8.82) 42.434 ms 29.005 ms 33.558 ms 
6 iplsng-chinng.abilene.ucaid.edu (198.32.8.77) 48.242 ms 39.73 ms 42.387 ms 
7 kscyng-iplsng.abilene.ucaid.edu (198.32.8.81) 42.807 ms 43.039 ms 42.4 ms 
8 dnvrng-kscyng.abilene.ucaid.edu (198.32.8.13) 64.458 ms 53.008 ms 103.271 ms 
9 sttlng-dnvrng.abilene.ucaid.edu (198.32.8.49) 78.625 ms 78.774 ms 78.308 ms 
10 transpac-pwave.pnw-gigapop.net (198.32.170.46) 78.716 ms 79.304 ms 78.448 ms 
11 192.203.116.34 (192.203.116.34) 207.539 ms 207.635 ms 207.323 ms 
12 wide-ge-tpr3.jp.apan.net (203.181.249.41) 206.627 ms 207.231 ms 207.323 ms 
13 foundry3.nezu.wide.ad.jp (203.178.138.244) 208.736 ms 207.737 ms 207.612 ms 
14 ra37-vlan560.nc.u-tokyo.ac.jp (133.11.125.201) 216.799 ms 216.645 ms 229.441 ms 
15 ra36-vlan3.nc.u-tokyo.ac.jp (133.11.127.66) 216.845 ms 216.945 ms 238.735 ms 
17 foundry1.nc.u-tokyo.ac.jp (133.11.125.82) 226.653 ms 216.101 ms 216.02 ms ms 
18 133.11.128.254 (133.11.128.254) 215.942 ms 216.082 ms 216.13 ms

請注意,訊息需要一段時間才能離開布蘭迪斯,然後到達紐約市、芝加哥、堪薩斯城、丹佛,並在第10跳和第11跳之間穿過太平洋。它還需要幾跳才能到達東京大學,然後在到達主Web伺服器之前透過一些本地路由器。這是網際網路資料包的典型路徑。

參考文獻:來自世界各地的Traceroute

埠、套接字和服務

[編輯 | 編輯原始碼]

網際網路上的計算機以多種方式互動,但它們的互動仍然受到限制。允許網際網路上的任何計算機完全訪問網路上的任何其他計算機是不明智的,因為不道德的使用者可能會決定刪除您的所有磁碟檔案或未經許可使用您的計算機。為了解決這個問題,網際網路是在網路的抽象檢視上建模的,其中每臺計算機都精確指定了它將允許的互動型別。這些型別的互動稱為服務,網路上的每臺計算機最多可以提供65536個服務。這些服務由一個0到65535之間的數字指定,稱為埠。通常,埠號小於1024的埠保留用於系統服務(如電子郵件和網頁服務),但任何人都可以自由地在埠號大於1024的埠上提供任何他們想要的服務。向另一臺計算機提供服務的計算機稱為伺服器,請求服務的計算機稱為客戶端。網際網路上的計算機通常同時充當客戶端和伺服器。客戶端透過指定伺服器計算機的IP地址和要提供的服務的埠號來啟動客戶端和伺服器之間的通訊。如果指定的計算機正在提供該服務,則會建立一個稱為套接字的特殊連線。套接字允許兩臺計算機相互發送資料。參考文獻:維基百科,尤其是路由器條目注意:維基百科完全不可信,因為任何人都可以在任何時間破壞任何頁面。然而,許多網頁目前沒有被破壞,因此包含有用的資訊。您唯一可以信任在維基百科上閱讀的內容是真實的方法是從權威來源核實您閱讀的所有內容。維基百科文章鼓勵以權威來源連結的形式為所有宣告提供證據。

網路上的常見服務

[編輯 | 編輯原始碼]

下面列出了一些更常見的系統服務。每個服務都有一組規則來管理客戶端和伺服器如何互動。這些規則稱為協議,它們僅僅代表兩臺計算機在該埠上通訊時將使用的約定。

   * Echo (port 7) an echo service, simply echos back what it receives
   * Daytime (port 13) this returns the date and local time and ignores client input
   * FTP (ports 20,21) allows the client to transfer files of data to and from the server.
   * Telnet (port 23) allows the client to interact with the servers operating system remotely
   * SMTP (port 25) offers an email service for delivering email to a user on the server
   * DNS (port 53) domain name serving, returns IP addresses for domain names
   * WWW (port 80) uses the HTTP protocol and sends specified web pages to the client.
   * POP3 (port 110) offers another email service

一些常見的網際網路服務 您可以使用telnet命令從Linux訪問其中一些埠。下面我們分別給出訪問日期和回顯服務的例子:日期服務返回正在查詢的伺服器上的本地時間。回顯服務用於測試連線是否處於活動狀態,並只回顯它接收到的每一行文字。USER % telnet www.cs.brandeis.edu 13

     Trying 129.64.2.3...
     Connected to diamond.cs.brandeis.edu.
     Escape character is '^]'.
     Thu Aug 31 15:55:41 2000
     Connection closed by foreign host.

訪問日期服務 USER % telnet www.cs.brandeis.edu 7

     Trying 129.64.2.3...
     Connected to diamond.cs.brandeis.edu.
     Escape character is '^]'.

USER 這是回顯埠

     This is the echo port

USER 再見

     bye bye

USER ^]

     telnet> 

USER 退出

     Connection closed.

訪問埠7上的回顯服務 參考:IANA埠分配

Web瀏覽器和伺服器

[編輯 | 編輯原始碼]

HTTP服務可能是為網際網路開發的最具革命性的服務。它提供了一種機制,允許客戶端透過提供Web伺服器資料夾中檔案的名稱來訪問伺服器上的檔案。然後,HTTP伺服器透過返回有關檔案的一些資訊行(例如,它包含什麼型別的資料,文字、影像、電影、聲音等)來響應此類請求,上次修改時間、檔案大小等。HTTP服務通常在埠80上提供。HTTP服務是全球資訊網技術基礎的兩大部分之一。另一半是HTML語言。HTML是超文字標記語言的首字母縮寫詞。HTML指定網頁的佈局,並提供包含指向其他網頁以及影像、聲音、電影和其他內容的連結的機制。在下一章中,我們將介紹HTML和一些相關技術(CSS和XML)。下面我們給出一個使用此服務從伺服器“www.cs.brandeis.edu”請求網頁“/~cs2a/index.html”的示例。請注意,請求(藍色)指定要訪問的頁面,響應提供了大量有關檔案的資訊,包括(黃色)其大小、上次修改日期、大小、檔案中的資訊型別、提供服務的伺服器型別、提供頁面的本地時間以及一些更深奧的資訊,以及實際的網頁內容本身(綠色)。

 % telnet www.cs.brandeis.edu 80

 Trying 129.64.2.3... 
 Connected to diamond.cs.brandeis.edu. Escape character is '^]'. 
 GET /~cs2a/ HTTP/1.0 
 HTTP/1.1 200 OK 
 Date: Tue, 02 Sep 2003 21:20:33 GMT 
 Server: Apache/1.3.26 (Unix) 
 Last-Modified: Tue, 02 Sep 2003 21:20:16 GMT 
 ETag: "44b052-221-3f550990" 
 Accept-Ranges: bytes 
 Content-Length: 545 Connection: close 
 Content-Type: text/html
 <HTML>
 <TITLE>Brandeis University, Intro to Computers, Cosi 2a, Aut 03</TITLE>
 <BODY style="background:blue"> 
 <META HTTP-EQUIV="Refresh" CONTENT="2;
 URL=http://frege.cs-i.brandeis.edu:9090/cs2a03/index.html">
 <center> 
 <h1 style="background:white; border:thick double blue; font:bold 40pt Helvetica">
 The Home page for CS2a<br> has moved to<br> 
 <A HREF="http://frege.cs-i.brandeis.edu:9090/cs2a03/index.html">
 http://frege.cs-i.brandeis.edu:9090/cs2a03/index.html </A>
 </h1> Sorry for the inconvenience. 
 <p> Tim Hickey </center> 
 </BODY>
 </HTML> 

Connection closed by foreign host. 
Accessing the HTTP service on port 80

目前有許多可用的Web瀏覽器。目前最常見的瀏覽器是Internet Explorer和Netscape,但一些鮮為人知的瀏覽器,如Opera和Amaya,提供了主流瀏覽器目前不支援的其他功能,例如數學和圖形標記處理。URL和域名 您可能知道,全球資訊網上的所有內容都可以透過向瀏覽器提供其地址來訪問。Web地址的正式名稱是URL,代表統一資源定位符。(有些人也使用URI表示統一資源識別符號。)URL是我們第一個正式語言的例子。每個URL都有幾個部分,其中一些是可選的。以下是URL的一些示例: http://www.brandeis.edu http://www.brandeis.edu:80 http://www.brandeis.edu:80/index.html http://www.brandeis.edu:80/go/index.php?go=cosi http://129.64.2.3/~tim http://jscheme.cs.brandeis.edu:8080 ftp://ftp.cc.gatech.edu/pub/linux/ URL最簡單的形式是: http://DOMAINNAME 其中“http”和“ftp”指定了正在訪問的服務型別,“DOMAINNAME”指定了提供服務的計算機。URL的一般形式為PROTOCOL://DOMAINNAME:PORT/PATH/FILE.EXT#P?N=V&N2=V2 ... 讓我們將其分解。“PROTOCOL”指定Web瀏覽器必須用於與Web伺服器通訊的協議。除了http之外,還有許多其他協議。最常見的是“ftp”,即“檔案傳輸協議”。“mailto:”協議也很常見,用於允許使用者從瀏覽器傳送電子郵件。DOMAINNAME是Web伺服器的符號名稱。所有Web伺服器都具有唯一的IP地址(如上所述)。域名和IP地址之間的轉換是使用網路上稱為“域名伺服器”的特殊伺服器執行的。這些伺服器接受域名並返回相應的IP地址。它們相當於電話網路上的“411”服務,並且每個瀏覽器都必須至少擁有一個域名伺服器的地址,如果它要使用域名的話。您可以在URL中直接使用IP地址而不是域名,但這很少這樣做,因為IP地址可能難以記住。“PORT”是在0到65535之間的數字,它指定伺服器使用的埠,對於http協議,預設值為80。“PATH”指定伺服器上檔案的位置。“FILE.EXT”是要返回的檔案的名稱。“#POS”指定檔案中的位置。POSITION是一個符號名稱(不包含空格)。瀏覽器在第一次檢視檔案時會將視窗向下滾動到該位置。item “?N=V&...” 這是將值傳遞給伺服器的一種機制,伺服器可以使用該值來生成將傳送回給您的網頁。您經常在填寫搜尋引擎的搜尋表單後看到這種地址。當您將此頁面新增為書籤並返回時,URL包含您在表單上輸入的所有內容的精確描述。在後面的章節中討論Servlet之後,這些更復雜的URL將更容易理解。參考:無...

華夏公益教科書