因特網是wifi嗎 因特網是什么( 二 )


服務描述
前面的討論已經辨識了構成因特網的許多部件 。但是我們也能從一個完全不同的角度 , 即從為應用程序提供服務的基礎設施的角度來描述因特網 。除了諸如電子郵件和Web沖浪等傳統應用外 , 因特網還包括移動智能手機和平板電腦應用程序 , 其中包括即時訊息、與實時道路流量信息的映射、來自云的音樂流、電影和電視流、在線社交網絡、視頻會議、多人游戲以及基于位置的推薦系統 。因為這些應用程序涉及多個相互交換數據的端系統 , 故它們被稱為分布式應用程序 。重要的是 , 因特網應用程序在端系統上 , 即它們并不運行在網絡核心中的分組交換機中 。盡管分組交換機能夠加速端系統之間的數據交換 , 但它們并不在意作為數據的源或宿的應用程序 。
我們稍深入探討一下為應用程序提供服務的基礎設施的含義 。為此 , 假定你對某種分布式因特網應用有一個激動人心的新想法 , 它可能大大地造福于人類 , 或者它可能直接使你名利雙收 。你將如何把這種想法轉化成一個實際的因特網應用呢?因為應用程序運行在端系統上 , 所以你需要編寫運行在端系統的一些軟件 。例如 , 你可能用C、Java或Python編寫軟件 。此時 , 因為你研發一種分布式因特網應用程序 , 運行在不同端系統的軟件將需要互相發送數據 。此時我們碰到了一個核心問題 , 這個問題導致了另一種描述因特網的方法 , 即將因特網描述為應用程序的平臺 。運行在端系統上的應用程序怎樣才能指令因特網向運行在另一個端系統上的軟件發送數據呢?
與因特網相連的端系統提供了一個套接字接口 , 改接口規定了運行在另一個端系統上的程序請求因特網基礎設施向運行在另一個端系統的特定目的地程序交付數據的方式 。因特網套接字接口是一套發送程序必須遵循的規則集合 , 因此因特網能夠將數據交付給目的地 。此時 , 我們做一個簡單的類比 。假定Alice使用郵政服務向Bob發一封信 。當然 , Alice不能只是寫了這封信然后把信丟出窗外 。相反 , 郵政服務要求Alice將信放入一個信封中;在信封的中間寫上Bob的全名、地址和郵政編碼;封上信封;在信封的右上角貼上郵票;最后將該信封丟進郵局的一個郵政服務信箱中 。因此 , 該郵政服務有自己的“郵政接口服務”或一套規則 , 這是Alice必須遵循的 , 這樣郵政服務才能將她的信件交給Bob 。同理 , 因特網也有一個發送數據的程序必須遵循套接字接口 , 使因特網向接收數據的程序交付數據 。
當然 , 郵政服務向顧客提供了多種服務 , 如特快專遞、掛號、普通服務等 。同樣 , 因特網向應用程序提供了多種服務 。當你研發一種因特網應用程序時 , 也必須為你的應用程序選擇其中的 一種因特網服務 。
我們已經給出了因特網的兩種描述方法:一種是根據它的硬件和軟件組件來描述 , 另一種是基礎設施像向分布式應用程序提供的服務來描述 。
什么是協議?
1、人類活動的類比
也許理解計算機網絡協議這一概念的一個最容易的辦法是 , 先與某些人類活動進行類比 , 因為我們人類無時無刻不止在執行協議 ??紤]到當你想要向某人詢問時間將要怎么做 。人類協議要求一方首先進行問候 , 然后開始與另一個人的通信 。對“你好”的典型響應是返回一個“你好”報文 。此人用一個熱情的“你好進行響應” , 隱含著一種指示 , 表明能夠繼續向那人詢問時間了 。對最初的“你好”的不同響應也許表明了一個勉強的或不能進行的通信 。在此情況下 , 按照人類協議 , 發話者就不能詢問時間了 。有時 , 問的問題根本得不到任何回答 , 在此情況下 , 按照人類協議 , 發話者通常會放棄向這個人詢問時間 。注意在我們人類協議中 , 有我們發送的特定報文 , 也有我們根據接收到的應答報文或其他時間采取的動作 。顯然 , 發送和接收的報文 , 以及這些報文發送和接收或其他事件出現時所采取的動作 , 這些在一個人類協議中起到了核心作用 。如果人們使用不同的協議 , 這些協議就不能交互 , 因而不能完成有用的工作 。在網絡中這個道理同樣成立 。即為了完成一項工作 , 要求兩個通信實體運行相同的協議 。

推薦閱讀