介紹
互聯(lián)網(wǎng)是如何工作的?好問題低葫!互聯(lián)網(wǎng)爆炸性的發(fā)展衣迷,使我們不可避免的在電視上朽色、在廣播上、在雜志上看到各種互聯(lián)網(wǎng)的廣告齿兔。由于互聯(lián)網(wǎng)已成為我們生活的重要組成部分橱脸,因此需要充分了解才能最有效地使用這種新工具。
本文解釋了 Internet 正常工作的底層基礎設施和技術愧驱。它沒有深入慰技,但涵蓋了足夠的每個領域椭盏,以對所涉及的概念有基本的了解组砚。
從哪里開始,互聯(lián)網(wǎng)地址
因為互聯(lián)網(wǎng)(Internet )是一個全球計算機網(wǎng)絡掏颊,連接到 Internet 的每臺計算機都必須有一個唯一的地址糟红。Internet 地址的格式為 nnn.nnn.nnn.nnn,其中 nnn 必須是 0 - 255 之間的數(shù)字乌叶。此地址稱為 IP 地址盆偿。(IP 代表 Internet 協(xié)議【Internet Protocol】;稍后會詳細介紹准浴。)
下圖顯示了兩臺計算機連接到 Internet 事扭;您的計算機 IP 地址為 1.2.3.4,另一臺計算機 IP 地址為 5.6.7.8乐横。Internet 為介于兩者之間的抽象對象求橄。(隨著本文的進展,圖 1 的 Internet 部分將隨著 Internet 詳細信息的暴露而多次解釋和重新繪制葡公。)
如果您通過 Internet 服務提供商 (ISP Internet Service Provider) 連接到 Internet罐农,通常會在撥入會話期間為您分配一個臨時 IP 地址。如果您從局域網(wǎng) (LAN) 連接到 Internet催什,您的計算機可能有一個永久 IP 地址涵亏,或者它可能從 DHCP(Dynamic Host Configuration Protocol 動態(tài)主機配置協(xié)議)服務器獲得一個臨時地址。在任何情況下蒲凶,如果您連接到 Internet气筋,您的計算機就有一個唯一的 IP 地址。
檢查一下 - Ping 程序
如果您使用的是 Windows 系統(tǒng)或某種 Unix 系統(tǒng)并連接到 Internet旋圆,則有一個方便的程序可以查看 Internet 上的計算機是否處于活動狀態(tài)裆悄,它被稱為ping。如果您使用的是 Windows系統(tǒng)臂聋,請啟動命令提示符窗口光稼。如果您使用的是某種 Unix系統(tǒng)或南,請進入命令提示符。輸入ping www.baidu.com艾君。ping 程序將向指定的計算機發(fā)送“ping”(實際上是 ICMP(Internet 控制消息協(xié)議))采够,被 ping 請求的計算機將回復。ping 程序將計算超時時間冰垄,直到回復返回(如果有)蹬癌。此外,如果您輸入域名(即 www.baidu.com)而不是 IP 地址虹茶,ping 將解析域名并顯示計算機的 IP 地址逝薪。稍后將詳細介紹域名和地址解析。
協(xié)議棧和數(shù)據(jù)包
假設蝴罪,您的計算機已連接到 Internet 并具有唯一的地址董济。它是如何與其它連接到 Internet 的計算機“交談”的?這里有一個例子:假設您的 IP 地址是 1.2.3.4要门,并且您想向計算機 5.6.7.8 發(fā)送消息虏肾。您要發(fā)送的消息是“Hello computer 5.6.7.8!”。顯然欢搜,消息必須通過您的計算機連接到 Internet 的任何類型的線路進行傳輸封豪。假設您已從家里撥入您的 ISP,并且消息通過電話線傳輸炒瘟。因此吹埠,必須將消息從字母文本翻譯成電子信號,通過互聯(lián)網(wǎng)傳輸疮装,然后再翻譯回字母文本缘琅。 這是如何實現(xiàn)的?通過使用協(xié)議棧(protocol stack)斩个。 每臺在 Internet 上進行通信的計算機胯杭,內(nèi)置的操作系統(tǒng)(即 Windows、Unix 等)中受啥。使用了兩種主要的通信協(xié)議做个,Internet 上使用的協(xié)議棧被稱為 TCP/IP 協(xié)議棧。TCP/IP 堆棧如下所示:
協(xié)議層 | 注釋 |
---|---|
應用協(xié)議層 | 特定于 WWW滚局、電子郵件居暖、FTP 等應用程序的協(xié)議。 |
傳輸控制協(xié)議層 | TCP 使用端口號將數(shù)據(jù)包定向到計算機上的特定應用程序藤肢。 |
互聯(lián)網(wǎng)協(xié)議層 | IP 使用 IP 地址將數(shù)據(jù)包定向到特定計算機太闺。 |
硬件層 | 將二進制數(shù)據(jù)包數(shù)據(jù)轉換為網(wǎng)絡信號并返回。(例如以太網(wǎng)網(wǎng)卡嘁圈、電話線調(diào)制解調(diào)器等) |
如果我們按照路徑顯示“Hello computer 5.6.7.8!”消息 從我們的計算機到 IP為 5.6.7.8 的計算機省骂,流程是這樣的:
- 該消息將從您計算機協(xié)議棧的頂部開始蟀淮,然后向下工作。
- 如果要發(fā)送的消息很長钞澳,則消息經(jīng)過的每個堆棧層都可能將消息分解為更小的數(shù)據(jù)塊怠惶。這是因為通過 Internet(和大多數(shù)計算機網(wǎng)絡)發(fā)送的數(shù)據(jù)是以可管理的塊發(fā)送的。在 Internet 上轧粟,這些數(shù)據(jù)塊稱為數(shù)據(jù)包(packets)策治。
- 數(shù)據(jù)包將通過應用層并繼續(xù)到達 TCP 層。每個數(shù)據(jù)包都分配了一個端口號(port number)兰吟。端口將在后面解釋通惫,但足以說明許多程序可能正在使用 TCP/IP 堆棧并發(fā)送消息。我們需要知道目標計算機上的哪個程序需要接收消息混蔼,因為它將偵聽特定端口履腋。
- 通過 TCP 層后,數(shù)據(jù)包進入 IP 層拄丰。這是每個數(shù)據(jù)包接收其目標地址的地方府树,5.6.7.8俐末。
- 現(xiàn)在我們的消息包有一個端口號和一個 IP 地址料按,它們就可以通過 Internet 發(fā)送了。硬件層負責將包含我們消息字母文本的數(shù)據(jù)包轉換為電子信號卓箫,并通過電話線傳輸它們载矿。
- 在電話線的另一端,您的 ISP 直接連接到 Internet烹卒。ISP路由器(router)檢查每個數(shù)據(jù)包中的目標地址并確定將其發(fā)送到何處闷盔。通常,數(shù)據(jù)包的下一站是另一個路由器旅急。稍后將詳細介紹路由器和 Internet 基礎設施逢勾。
- 最終,數(shù)據(jù)包到達計算機 5.6.7.8藐吮。在這里溺拱,數(shù)據(jù)包從目標計算機的 TCP/IP 堆棧的底部開始并向上工作。
- 當數(shù)據(jù)包向上通過堆棧時谣辞,發(fā)送計算機堆棧添加的所有路由數(shù)據(jù)(例如 IP 地址和端口號)都會從數(shù)據(jù)包中剝離迫摔。
- 當數(shù)據(jù)到達棧頂時,數(shù)據(jù)包已經(jīng)重新組合成原來的形式泥从,“Hello computer 5.6.7.8句占!”
網(wǎng)絡基礎設施
所以現(xiàn)在您知道數(shù)據(jù)包如何通過 Internet 從一臺計算機傳輸?shù)搅硪慌_計算機了。但中間有什么躯嫉?互聯(lián)網(wǎng)究竟是由什么組成的纱烘?我們再看一張圖:
在這里杨拐,我們看到了更詳細地重新繪制的圖 1。通過電話網(wǎng)絡到 Internet 服務提供商(ISP)的物理連接可能很容易猜到(Modem)擂啥,但除此之外還有一些其它說明戏阅。
ISP 為其撥入客戶維護一個調(diào)制解調(diào)器池(Modem Pool)。這是由某種形式的計算機(通常是專用計算機)管理的啤它,該計算機控制從調(diào)制解調(diào)器池到骨干網(wǎng)或專線路由器的數(shù)據(jù)流奕筐。這種設置可以稱為端口服務器(ISP Port Server),因為它“提供”對網(wǎng)絡的訪問变骡。帳單和使用信息通常也在這里收集离赫。
在您的數(shù)據(jù)包通過電話網(wǎng)絡和 ISP 的本地設備后,它們將路由到 ISP 的主干網(wǎng)或 ISP 從中購買帶寬的主干網(wǎng)塌碌。從這里開始渊胸,數(shù)據(jù)包通常會經(jīng)過幾個路由器和幾個主干網(wǎng)、專線和其他網(wǎng)絡台妆,直到找到目的地翎猛,地址為 5.6.7.8 的計算機。但是接剩,如果我們知道我們的數(shù)據(jù)包正在接管 Internet 的確切路由切厘,那不是很好嗎?事實證明懊缺,有一種方法......
檢查一下 - Traceroute 程序
如果您使用的是 Windows 或某種 Unix 并連接到 Internet疫稿,這里是另一個方便的 Internet 程序。這稱為 traceroute鹃两,它顯示了您的數(shù)據(jù)包到達給定 Internet 目的地的路徑遗座。與 ping 一樣,您必須在命令提示符下使用 traceroute俊扳。在 Windows 中途蒋,使用tracert www.baidu.com。在 Unix 提示符下馋记,輸入traceroute www.baidu.com号坡。與 ping 一樣,您也可以輸入 IP 地址而不是域名抗果。Traceroute 將打印出您的數(shù)據(jù)包必須經(jīng)過以到達目的地的所有路由器筋帖、計算機和任何其他 Internet 實體的列表。
如果您使用 traceroute冤馏,您會注意到您的數(shù)據(jù)包必須經(jīng)過許多事物才能到達目的地日麸。大多數(shù)都有長名稱,例如 sjc2-core1-h2-0-0.atlas.digex.net 和 fddi0-0.br4.SJC.globalcenter.net。這些是決定將數(shù)據(jù)包發(fā)送到何處的 Internet 路由器代箭。圖 3 中顯示了幾個路由器墩划,但只有少數(shù)幾個。圖 3 旨在顯示一個簡單的網(wǎng)絡結構嗡综∫野铮互聯(lián)網(wǎng)要復雜得多。
互聯(lián)網(wǎng)基礎設施
Internet 主干網(wǎng)由許多相互連接的大型網(wǎng)絡組成极景。這些大型網(wǎng)絡被稱為網(wǎng)絡服務提供商(Network Service Providers)或NSP察净。一些大型 NSP 是 UUNet、CerfNet盼樟、IBM氢卡、BBN Planet、SprintNet晨缴、PSINet 等译秦。這些網(wǎng)絡相互對等以交換數(shù)據(jù)包流量。每個 NSP 都需要連接到三個網(wǎng)絡接入點(Network Access Points)或NAP击碗。在 NAP 處筑悴,數(shù)據(jù)包流量可能會從一個 NSP 的主干跳到另一個 NSP 的主干。NSP 還在大都市區(qū)交換(Metropolitan Area Exchanges)或MAE稍途。MAE 的用途與 NAP 相同阁吝,但屬于私人所有。NAP 是最初的互聯(lián)網(wǎng)互連點晰房。NAP 和 MAE 都稱為 Internet 交換點(Internet Exchange Points)或IX求摇。NSP 還向較小的網(wǎng)絡出售帶寬射沟,例如 ISP 和較小的帶寬提供商殊者。下圖顯示了這種分層基礎架構。
這不是 Internet 實際部分的真實表示验夯。圖 4 僅用于演示 NSP 如何與彼此相連或較小的 ISP 互連猖吴。圖 4 中沒有任何物理網(wǎng)絡組件顯示,在圖 3 中的那些挥转。這是因為單個 NSP 的骨干基礎設施本身就是一個復雜的圖海蔽。大多數(shù) NSP 在其網(wǎng)站上發(fā)布其網(wǎng)絡基礎設施的地圖,并且很容易找到绑谣。由于互聯(lián)網(wǎng)的規(guī)模党窜、復雜性和不斷變化的結構,繪制互聯(lián)網(wǎng)的實際地圖幾乎是不可能的借宵。
Internet 路由層次結構
那么數(shù)據(jù)包是如何在互聯(lián)網(wǎng)上找到路徑的呢幌衣?是否每臺連接到 Internet 的計算機都知道其他計算機在哪里?數(shù)據(jù)包是否只是簡單地“廣播”到 Internet 上的每臺計算機?前面兩個問題的答案都是“不”豁护。沒有計算機知道任何其他計算機在哪里哼凯,并且數(shù)據(jù)包不會發(fā)送到每臺計算機。用于將數(shù)據(jù)包送到目的地的信息包含在楚里,由連接到 Internet 的每個路由器的路由表(routing tables)中断部。
路由器是分組交換機。路由器通常連接在網(wǎng)絡之間以在它們之間路由數(shù)據(jù)包班缎。每個路由器都知道它的子網(wǎng)(sub-networks)以及它們使用的 IP 地址蝴光。路由器通常不知道它“上方”的 IP 地址是什么。檢查下面的圖 5达址。連接骨干網(wǎng)的黑盒子是路由器虱疏。頂部較大的 NSP 主干通過 NAP 連接。在它們下面有幾個子網(wǎng)苏携,在它們下面還有更多的子網(wǎng)做瞪。底部是兩個連接了計算機的局域網(wǎng)。
當數(shù)據(jù)包到達路由器時右冻,路由器會檢查原始計算機上 IP 協(xié)議層放置在那里的 IP 地址装蓬。路由器檢查它的路由表。如果找到包含 IP 地址的網(wǎng)絡纱扭,則將數(shù)據(jù)包發(fā)送到該網(wǎng)絡牍帚。如果未找到包含 IP 地址的網(wǎng)絡,則路由器向默認路由上發(fā)送數(shù)據(jù)包乳蛾,通常沿主干層次結構向上到達下一個路由器暗赶。希望下一個路由器知道將數(shù)據(jù)包發(fā)送到哪里。如果沒有肃叶,數(shù)據(jù)包再次向上路由蹂随,直到它到達 NSP 主干。連接到 NSP 骨干網(wǎng)的路由器擁有最大的路由表因惭,在這里數(shù)據(jù)包將被路由到正確的骨干網(wǎng)岳锁,在那里它將開始“向下”的旅程。
域名和地址解析
但是蹦魔,如果您不知道要連接的計算機的 IP 地址怎么辦激率?如果您需要訪問稱為www.anothercomputer.com的 Web 服務器怎么辦?您的 Web 瀏覽器如何知道這臺計算機在 Internet 上的位置勿决?所有這些問題的答案是域名服務或 DNS乒躺。DNS 是一個分布式數(shù)據(jù)庫,用于跟蹤 Internet 上的計算機名稱及其對應的 IP 地址低缩。
許多連接到 Internet 的計算機主機部分的 DNS 數(shù)據(jù)庫和允許其他人訪問它的軟件嘉冒。這些計算機稱為 DNS 服務器。沒有 DNS 服務器包含整個數(shù)據(jù)庫;它們只包含它的一個子集健爬。如果 DNS 服務器不包含另一臺計算機請求的域名控乾,則 DNS 服務器會將請求的計算機重定向到另一臺 DNS 服務器。
域名服務的結構類似于 IP 路由層次結構娜遵。請求名稱解析的計算機將被重定向到“向上”層次結構蜕衡,直到找到可以解析請求中的域名的 DNS 服務器。圖 6 說明了層次結構的一部分设拟。樹的頂部是域根慨仿。一些較舊的、更常見的域位于頂部附近纳胧。沒有顯示的是世界各地的眾多 DNS 服務器镰吆,它們構成了層次結構的其余部分。
設置 Internet 連接時(例如跑慕,用于 Windows 中的 LAN 或撥號網(wǎng)絡)万皿,通常會在安裝過程中指定一臺主 DNS 服務器和一臺或多臺輔助 DNS 服務器。這樣核行,任何需要域名解析的 Internet 應用程序都能夠正常運行牢硅。例如,當您在 Web 瀏覽器中輸入 Web 地址時芝雪,瀏覽器首先連接到您的主 DNS 服務器减余。獲取您輸入的域名的IP地址后,瀏覽器就會連接到目標計算機并請求您想要的網(wǎng)頁惩系。
檢查一下 - 在 Windows 中禁用 DNS
如果您使用 Windows 95/NT 并訪問 Internet位岔,您可以查看您的 DNS 服務器,甚至禁用它們堡牡。
如果您使用撥號網(wǎng)絡:
打開撥號網(wǎng)絡窗口(可以在 Windows 資源管理器中的 CD-ROM 驅動器和網(wǎng)上鄰居上方找到)抒抬。右鍵單擊您的 Internet 連接,然后單擊屬性悴侵。在連接屬性窗口底部附近按下 TCP/IP 設置...按鈕瞧剖。如果您有永久的 Internet 連接:
右鍵單擊網(wǎng)上鄰居并單擊屬性。單擊 TCP/IP 屬性可免。選擇頂部的 DNS 配置選項卡。您現(xiàn)在應該查看您的 DNS 服務器的 IP 地址做粤。在這里您可以禁用 DNS 或將您的 DNS 服務器設置為 0.0.0.0浇借。(首先記下您的 DNS 服務器的 IP 地址。您可能還需要重新啟動 Windows怕品。)現(xiàn)在在您的 Web 瀏覽器中輸入一個地址妇垢。瀏覽器將無法解析域名,您可能會看到一個令人討厭的對話框,說明無法找到 DNS 服務器闯估。但是灼舍,如果您輸入相應的 IP 地址而不是域名,瀏覽器將能夠檢索到所需的網(wǎng)頁涨薪。(在禁用 DNS 之前使用 ping 獲取 IP 地址骑素。)其他 Microsoft 操作系統(tǒng)類似。
互聯(lián)網(wǎng)協(xié)議
正如前面關于協(xié)議棧的部分所暗示的那樣刚夺,人們可能會推測 Internet 上使用了許多協(xié)議献丑。這是真的; Internet 運行需要許多通信協(xié)議。其中包括 TCP 和 IP 協(xié)議侠姑、路由協(xié)議创橄、媒體訪問控制協(xié)議、應用層協(xié)議等莽红。以下部分描述了 Internet 上一些更重要和常用的協(xié)議妥畏。首先討論高級協(xié)議,然后是低級協(xié)議安吁。
應用程序協(xié)議:HTTP 和萬維網(wǎng)
Internet 上最常用的服務之一是萬維網(wǎng) (WWW)咖熟。使網(wǎng)絡工作的應用程序協(xié)議是超文本傳輸協(xié)議或HTTP。不要將其與超文本標記語言 (HTML) 混淆柳畔。HTML 是用于編寫網(wǎng)頁的語言馍管。HTTP 是 Web 瀏覽器和 Web 服務器用于通過 Internet 相互通信的協(xié)議。它是一種應用程序級協(xié)議薪韩,因為它位于協(xié)議棧中 TCP 層的頂部确沸,并被特定應用程序用來相互通信。在這種情況下俘陷,應用程序是 Web 瀏覽器和 Web 服務器罗捎。
HTTP 是一種基于無連接文本的協(xié)議±埽客戶端(Web 瀏覽器)向 Web 服務器發(fā)送對 Web 元素(例如網(wǎng)頁和圖像)的請求桨菜。請求被服務器服務后,客戶端和服務器之間通過 Internet 的連接斷開捉偏。必須為每個請求建立一個新連接倒得。大多數(shù)協(xié)議都是面向連接的。這意味著相互通信的兩臺計算機通過 Internet 保持連接打開夭禽。然而霞掺,HTTP 沒有。在客戶端發(fā)出 HTTP 請求之前讹躯,必須建立到服務器的新連接菩彬。
當您在 Web 瀏覽器中鍵入 URL 時缠劝,會發(fā)生以下情況:
- 如果 URL 包含域名,則瀏覽器首先連接到域名服務器并為 Web 服務器檢索相應的 IP 地址骗灶。
- Web 瀏覽器連接到 Web 服務器并為所需的網(wǎng)頁發(fā)送 HTTP 請求(通過協(xié)議棧)惨恭。
- Web 服務器接收請求并檢查所需頁面。如果頁面存在耙旦,則 Web 服務器發(fā)送它脱羡。如果服務器找不到請求的頁面,它將發(fā)送 HTTP 404 錯誤消息母廷。(404 的意思是“找不到頁面”轻黑,任何瀏覽過網(wǎng)絡的人都可能知道。)
- Web 瀏覽器接收回頁面并關閉連接琴昆。
- 然后瀏覽器解析頁面并查找完成網(wǎng)頁所需的其他頁面元素氓鄙。這些通常包括圖像、小程序等业舍。
- 對于每個需要的元素抖拦,瀏覽器會為每個元素向服務器發(fā)出額外的連接和 HTTP 請求。
- 當瀏覽器加載完所有圖像舷暮、小程序等后态罪,頁面將完全加載到瀏覽器窗口中。
檢查一下 - 使用 Telnet 客戶端通過 HTTP 檢索網(wǎng)頁
Telnet 是一種在 Internet 上使用的遠程終端服務下面。它的使用最近有所下降复颈,但它是一個非常有用的學習互聯(lián)網(wǎng)的工具。在 Windows 中找到默認的 telnet 程序沥割。它可能位于名為 telnet.exe 的 Windows 目錄中耗啦。打開后,下拉終端菜單并選擇首選項机杜。在首選項窗口中帜讲,選中本地回聲。(這樣您就可以在鍵入時看到您的 HTTP 請求椒拗。)現(xiàn)在拉下連接菜單并選擇遠程系統(tǒng)似将。輸入 www.google.com 作為主機名,輸入 80 作為端口蚀苛。(默認情況下在验,Web 服務器通常偵聽端口 80。)按連接⊥髡螅現(xiàn)在輸入
獲取/HTTP/1.0并按 Enter 兩次译红。這是對 Web 服務器根頁面的簡單 HTTP 請求。您應該會看到一個網(wǎng)頁閃過兴溜,然后會彈出一個對話框侦厚,告訴您連接丟失。如果您想保存檢索到的頁面拙徽,請打開 Telnet 程序的登錄刨沦。然后,您可以瀏覽網(wǎng)頁并查看用于編寫它的 HTML膘怕。
大多數(shù) Internet 協(xié)議由稱為Request For Comments或 RFC的Internet 文檔指定想诅。可以在 Internet 上的多個位置找到 RFC岛心。有關適當?shù)?URL来破,請參閱下面的資源部分。HTTP 1.0 版由 RFC 1945 指定忘古。
應用協(xié)議:SMTP 和電子郵件
另一種常用的因特網(wǎng)服務是電子郵件徘禁。電子郵件使用稱為簡單郵件傳輸協(xié)議或 SMTP的應用程序級協(xié)議。SMTP 也是一種基于文本的協(xié)議髓堪,但與 HTTP 不同的是送朱,SMTP 是面向連接的。SMTP 也比 HTTP 更復雜干旁。SMTP 中有比 HTTP 中更多的命令和注意事項驶沼。
當您打開郵件客戶端閱讀電子郵件時,通常會發(fā)生以下情況:
- 郵件客戶端(Netscape Mail争群、Lotus Notes回怜、Microsoft Outlook 等)打開到它的默認郵件服務器的連接。郵件服務器的 IP 地址或域名通常在安裝郵件客戶端時設置换薄。
- 郵件服務器將始終傳輸?shù)谝粭l消息來標識自己玉雾。
- 客戶端將發(fā)送 SMTP HELO 命令,服務器將使用 250 OK 消息響應該命令专控。
- 根據(jù)客戶端是否正在檢查郵件抹凳、發(fā)送郵件等,適當?shù)?SMTP 命令將發(fā)送到服務器伦腐,服務器將做出相應的響應赢底。
- 此請求/響應事務將繼續(xù),直到客戶端發(fā)送 SMTP QUIT 命令柏蘑。然后服務器將說再見并關閉連接幸冻。
SMTP 客戶端和 SMTP 服務器之間的簡單“對話”如下所示。R:表示服務器(接收方)發(fā)送的消息咳焚,S:表示客戶端(發(fā)送方)發(fā)送的消息洽损。
此 SMTP 示例顯示了 Smith 在主機 USC-ISIF 上發(fā)送的郵件,
主機 BBN-UNIX 上的 Jones革半、Green 和 Brown碑定。這里我們假設
主機 USC-ISIF 直接聯(lián)系主機 BBN-UNIX流码。郵件是
接受瓊斯和布朗。綠色沒有郵箱在
主機 BBN-UNIX延刘。
-------------------------------------------------- -----------
R:220 BBN-UNIX.ARPA 簡單郵件傳輸服務就緒
S: HELO USC-ISIF.ARPA
R: 250 BBN-UNIX.ARPA
S:郵件發(fā)件人:<Smith@USC-ISIF.ARPA>
R: 250 正常
S: RCPT TO:<Jones@BBN-UNIX.ARPA>
R: 250 正常
S: RCPT TO:<Green@BBN-UNIX.ARPA>
R: 550 這里沒有這樣的用戶
S: RCPT TO:<Brown@BBN-UNIX.ARPA>
R: 250 正常
S:數(shù)據(jù)
R: 354 開始郵件輸入漫试;以 <CRLF>.<CRLF> 結尾
S:嗚嗚嗚嗚……
S:……等等。等等等等
斯:碘赖。
R: 250 正常
S:退出
R: 221 BBN-UNIX.ARPA 服務關閉傳輸通道
此 SMTP 事務取自 RFC 821驾荣,它指定了 SMTP。
傳輸控制協(xié)議
在協(xié)議棧的應用層之下是TCP層普泡。當應用程序打開與 Internet 上另一臺計算機的連接時播掷,它們發(fā)送的消息(使用特定的應用程序層協(xié)議)會沿堆棧向下傳遞到 TCP 層。TCP 負責將應用程序協(xié)議路由到目標計算機上的正確應用程序. 為此撼班,使用端口號歧匈。端口可以被認為是每臺計算機上的獨立通道。例如权烧,您可以在閱讀電子郵件時上網(wǎng)眯亦。這是因為這兩個應用程序(Web 瀏覽器和郵件客戶端)使用了不同的端口號。當數(shù)據(jù)包到達計算機并沿協(xié)議棧向上時般码,TCP 層會根據(jù)端口號決定哪個應用程序接收數(shù)據(jù)包妻率。
TCP 是這樣工作的:
- 當 TCP 層從上面接收到應用層協(xié)議數(shù)據(jù)時,它會將其分段為可管理的“塊”板祝,然后將帶有特定 TCP 信息的 TCP 標頭添加到每個“塊”中宫静。TCP 頭中包含的信息包括數(shù)據(jù)需要發(fā)送到的應用程序的端口號。
- 當 TCP 層收到來自它下面的 IP 層的數(shù)據(jù)包時券时,TCP 層從數(shù)據(jù)包中剝離 TCP 頭數(shù)據(jù)孤里,必要時進行一些數(shù)據(jù)重構,然后使用從 TCP 獲取的端口號將數(shù)據(jù)發(fā)送到正確的應用程序標題橘洞。
這就是 TCP 將通過協(xié)議棧移動的數(shù)據(jù)路由到正確應用程序的方式捌袜。
TCP 不是文本協(xié)議。TCP 是面向連接的炸枣、可靠的字節(jié)流服務虏等。面向連接意味著兩個使用 TCP 的應用程序在交換數(shù)據(jù)之前必須先建立連接。TCP 是可靠的适肠,因為對于收到的每個數(shù)據(jù)包霍衫,都會向發(fā)送方發(fā)送確認以確認交付。TCP 還在其標頭中包含一個校驗和侯养,用于對接收到的數(shù)據(jù)進行錯誤檢查敦跌。TCP 標頭如下所示:
請注意,TCP 標頭中沒有 IP 地址的位置逛揩。這是因為 TCP 對 IP 地址一無所知柠傍。TCP 的工作是可靠地從應用程序到應用程序獲取應用程序級數(shù)據(jù)麸俘。從計算機到計算機獲取數(shù)據(jù)的任務是 IP 的工作。
檢查一下 - 眾所周知的 Internet 端口號
下面列出了一些更常用的 Internet 服務的端口號携兵。
FTP 20/21
遠程登錄 23
SMTP 25
HTTP 80
互聯(lián)網(wǎng)協(xié)議
與 TCP 不同疾掰,IP 是一種不可靠的無連接協(xié)議搂誉。IP 不關心數(shù)據(jù)包是否到達目的地徐紧。IP 也不知道連接和端口號。 IP 的工作也是將數(shù)據(jù)包發(fā)送和路由到其他計算機炭懊。IP 數(shù)據(jù)包是獨立的實體并级,可能無序到達或根本沒有到達。TCP 的工作是確保數(shù)據(jù)包到達并以正確的順序侮腹。IP 與 TCP 的唯一共同點是它接收數(shù)據(jù)并將其自己的 IP 標頭信息添加到 TCP 數(shù)據(jù)的方式嘲碧。IP 標頭如下所示:
上面我們在 IP 標頭中看到發(fā)送和接收計算機的 IP 地址。下面是一個數(shù)據(jù)包經(jīng)過應用層父阻、TCP 層和 IP 層后的樣子愈涩。應用層數(shù)據(jù)在TCP層進行分段,加上TCP頭加矛,數(shù)據(jù)包繼續(xù)到IP層履婉,加上IP頭,然后數(shù)據(jù)包通過互聯(lián)網(wǎng)傳輸斟览。
包起來
在您知道 Internet 的工作原理了毁腿。但它會保持這種狀態(tài)多久?目前 Internet 上使用的 IP 版本(版本 4)只允許 2 的32 次方個地址苛茂。最終將不會有任何可用的 IP 地址已烤。驚訝稽荧?別擔心际邻。IP 版本 6 目前正在由研究機構和公司組成的聯(lián)盟在研究骨干上進行測試。在那之后泼舱?誰知道躁绸。自從作為國防部的研究項目成立以來裕循,互聯(lián)網(wǎng)已經(jīng)取得了長足的進步。沒有人真正知道互聯(lián)網(wǎng)會變成什么樣涨颜。然而费韭,有一件事是肯定的⊥ス澹互聯(lián)網(wǎng)將以前所未有的方式將世界團結起來星持。信息時代正在如火如荼地進行,我很高興成為其中的一員弹灭。
文章來源:https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm