新手入門:瞭解網絡應用與網絡協議3

進程間跨網絡的通信

  一個網絡應用涉及兩臺不同主機中跨網絡彼此通信的兩個進程(當然,組播網絡應用有可能涉及兩臺以上主機間的通信)。這兩個進程通過經由各自的套接字(socket)發送和接收消息彼此通信。我們可以把套接字看作相應進程上的“門”:進程把消息發送到網絡或從網絡接收消息都得經過自身的套接字。當一個進程想給另一臺主機中的另一個進程發送消息時,它就把該消息推出自家的門。該進程認定在這扇門的另一側有一個傳輸設施會把這個消息傳輸到目的進程的門口。

  圖3展示了通過因特網彼此通信的兩個進程間的套接字通信(本圖假設底層的傳輸協議是TCP,不過UDP也可以同樣使用)。可見套接字是單臺主機內應用層和傳輸層之間的接口。套接字也用於指代應用程序和網絡之間的應用程序接口(application program interface,簡稱API),因爲它又是用於構造因特網中的網絡應用程序的編程接口。應用程序開發人員可以完全控制套接字的應用層一側,對於套接字的傳輸層一側卻幾乎無能爲力。對於傳輸層一側他們只能控制:(1)傳輸協議的選擇;(2)諸如最大緩衝區大小和最大片段大小等有限幾個傳輸層參數的調整。一旦選定某個可用的傳輸協議,就使用由該協議提供的傳輸層服務來構造應用程序。


圖3:應用程序進程、套接字

  進程尋址

  要讓一臺主機中的進程給另一臺主機中的進程發送消息,發送進程必須能夠識別接收進程。用於標識接收進程的信息有兩個:(1)接收主機的主機名或主機地址,(2)在接收主機內部識別接收進程的標識符。

  讓我們先考慮主機地址。在因特網應用中,接收主機是用其IP地址(1P addresse)標識的。現在,我們知道IP地址是惟一標識每個端系統的一個32位二進制數值(更準確地說,IP地址惟一地標識將各臺主機連接到因特網的網絡接口),既然連接到公共因特網的任何端系統的IP地址必須全球惟一,IP地址的分配就必須仔細管理。ATM網絡的尋址標準則不同於因特網。ITU—T已規定,在公共ATM網絡中使用稱爲E.164地址(ITU1997)的類似電話號碼的地址。

  除了知道接收進程所在端系統的地址外,發送進程還得指定可讓接收端系統把所傳送消息定向到接收進程的信息。因特網中用於此目的的是接收進程的端口號(port number)。流行的應用層協議已被賦予特定的端口號。例如,使用HTTP協議的web服務器進程是以端口號80標識的,使用SMTP協議的郵件服務器是以端門號25標識的。RFC 1700列出了所有因特網標準協議衆所周知的端口號。在開發新的網絡應用程序時,必須賦予它一個新的端口號。

  用戶代理

  再開始繼續研究應用層協議之前,討論一下用戶代理(user agent)的概念也許有所裨益。用戶代理是一個位於用戶和網絡應用之間的接口。例如,Web應用的用戶代理是諸如Netscape Navigator和微軟Internet Explore這樣的瀏覽器。瀏覽器使得用嚴可以觀看web頁面、進行web衝浪、提供表單輸入、與JAVA小應用程序交互,等等。瀏覽器還實現了HTTP協議的客戶端。因此啓動後的瀏覽器除給用戶提供一個接口外,其進程還同時在經由一個套接字發送接收消息。另一個例子是關於電子郵件應用的。電子郵件應用的用戶代理是“郵件閱讀器”,它使得用戶可以編寫和閱讀郵件消息。許多公司提供可運行在PC機、MAC機和工作站上的圖形用戶界面的郵件閱讀器(例如Eudora,Netscape Messenger,Microsoft outlook)。運行在PC機上的郵件閱讀器還實現了多個應用層協議的客戶端,典型的有用於發送郵件的SMTP協議的客戶端.以及用於檢索郵件的某個郵件檢索協議(例如POP3或IMAP)的客戶端。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章