因特網是什么時候開始的 因特網是什么( 二 )


我們稍深入探討一下為應用程序提供服務的基礎設施的含義 。為此,假定你對某種分布式因特網應用有一個激動人心的新想法,它可能大大地造福于人類,或者它可能直接使你名利雙收 。你將如何把這種想法轉化成一個實際的因特網應用呢?因為應用程序運行在端系統上,所以你需要編寫運行在端系統的一些軟件 。例如,你可能用C、Java或Python編寫軟件 。此時,因為你研發一種分布式因特網應用程序,運行在不同端系統的軟件將需要互相發送數據 。此時我們碰到了一個核心問題,這個問題導致了另一種描述因特網的 *** ,即將因特網描述為應用程序的平臺 。運行在端系統上的應用程序怎樣才能指令因特網向運行在另一個端系統上的軟件發送數據呢?
與因特網相連的端系統提供了一個套接字接口,改接口規定了運行在另一個端系統上的程序請求因特網基礎設施向運行在另一個端系統的特定目的地程序交付數據的方式 。因特網套接字接口是一套發送程序必須遵循的規則 *** ,因此因特網能夠將數據交付給目的地 。此時,我們做一個簡單的類比 。假定Alice使用郵政服務向Bob發一封信 。當然,Alice不能只是寫了這封信然后把信丟出窗外 。相反,郵政服務要求Alice將信放入一個信封中;在信封的中間寫上Bob的全名、地址和郵政編碼;封上信封;在信封的右上角貼上郵票;最后將該信封丟進郵局的一個郵政服務信箱中 。因此,該郵政服務有自己的“郵政接口服務”或一套規則,這是Alice必須遵循的,這樣郵政服務才能將她的信件交給Bob 。同理,因特網也有一個發送數據的程序必須遵循套接字接口,使因特網向接收數據的程序交付數據 。
當然,郵政服務向顧客提供了多種服務,如特快專遞、掛號、普通服務等 。同樣,因特網向應用程序提供了多種服務 。當你研發一種因特網應用程序時,也必須為你的應用程序選擇其中的 一種因特網服務 。
我們已經給出了因特網的兩種描述 *** :一種是根據它的硬件和軟件組件來描述,另一種是基礎設施像向分布式應用程序提供的服務來描述 。
什么是協議?1、人類活動的類比
【因特網是什么時候開始的因特網是什么】也許理解計算機 *** 協議這一概念的一個最容易的辦法是,先與某些人類活動進行類比,因為我們人類無時無刻不止在執行協議 ??紤]到當你想要向某人詢問時間將要怎么做 。人類協議要求一方首先進行問候,然后開始與另一個人的通信 。對“你好”的典型響應是返回一個“你好”報文 。此人用一個熱情的“你好進行響應”,隱含著一種指示,表明能夠繼續向那人詢問時間了 。對最初的“你好”的不同響應也許表明了一個勉強的或不能進行的通信 。在此情況下,按照人類協議,發話者就不能詢問時間了 。有時,問的問題根本得不到任何回答,在此情況下,按照人類協議,發話者通常會放棄向這個人詢問時間 。注意在我們人類協議中,有我們發送的特定報文,也有我們根據接收到的應答報文或其他時間采取的動作 。顯然,發送和接收的報文,以及這些報文發送和接收或其他事件出現時所采取的動作,這些在一個人類協議中起到了核心作用 。如果人們使用不同的協議,這些協議就不能交互,因而不能完成有用的工作 。在 *** 中這個道理同樣成立 。即為了完成一項工作,要求兩個通信實體運行相同的協議 。
我們再考慮第二個人類類比的例子 。假定你正在大學課堂里上課 。教師正在嘮嘮叨叨地講述協議,而你困惑不解 。這名教師停下來問:“同學們你們有什么問題嗎?”你舉起了手 。這位教師面帶微笑地示意你說:“請講......”接著你就問了問題 。教師聽取了你的問題并加以回答 。我們再一次看到了報文的發送和接收,以及這些報文發送和接收時所采取的一系列約定俗成的動作,這些是這個“提問與回答”協議的關鍵所在 。
2、 *** 協議
*** 協議類似于人類協議,除了交換報文和采取動作的實體是某些設備的硬件或軟件組件 。在因特網中,涉及兩個或多個***通信實體的所有活動都受協議的制約 。例如,在兩臺物理上連接的計算機中,硬件實現的協議控制了在兩塊 *** 接口卡間的“線上”得比特流;在端系統中,擁塞控制協議控制了在發送方和接收方之間傳輸的分組發送的速率;路由器中的協議決定了分組從源到目的地的路徑 。在因特網中協議運行無處不在 。
以大家可能熟悉的一個計算機 *** 協議為例,考慮當你向一個Web服務器發出請求時所發生的情況 。首先,你的計算機向該Web服務器發送一條連接請求報文,并等待回答 。該Web服務器將最終能接收到連接請求報文,并返回一條連接響應報文 。得知請求該Web文檔正常以后,計算機則在一條GET報文中發送要從這臺Web服務器上取回的網頁名字 。最后,Web服務器向計算機返回該Web網頁 。

推薦閱讀