天天看點

新手入門:了解網絡應用與網絡協定3

新手入門:了解網絡應用與網絡協定3

Posted on 2007-04-26 10:51 szw104 閱讀(1) 評論(0)   編輯  收藏 引用 網摘 所屬分類: Web原理

新手入門:了解網絡應用與網絡協定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)的用戶端。

繼續閱讀