1、端口(port)
在TCP/IP協(xié)議中為標識不同的應(yīng)用,給各個分組賦予稱作端口的代碼。在端口域中對不同的應(yīng)用使用不同的值,傳輸層協(xié)議可以利用該端口號來決定應(yīng)由哪個應(yīng)用程序來接收分組的數(shù)據(jù)。由此可見,端口號的作用與IP的下一個頭標域相似。當(dāng)IP區(qū)分傳輸協(xié)議時利用下一個頭標,而傳輸協(xié)議區(qū)分應(yīng)用協(xié)議時要用端口號。
有兩種方法用來選取端口號。這兩種方法是指應(yīng)用在一個會話中所起的兩種作用,即客戶和服務(wù)器??蛻糁鲃影l(fā)送請求信息來開始會話,服務(wù)器只是對客戶發(fā)來的請求報文進行應(yīng)答。
當(dāng)客戶的應(yīng)用程序需要發(fā)送請求報文時,必須知道將該請求報文發(fā)往服務(wù)器的方法。也就是說,客戶的應(yīng)用程序應(yīng)預(yù)先知道對于特定的應(yīng)用所使用的端口號。另一方面,服務(wù)器即使不知道在該應(yīng)答報文中使用的端口號也無妨,因為當(dāng)服務(wù)器收到報文時,只要查看請求報文就能知道客戶使用了哪個端口,于是,服務(wù)器就可向該端口回送報文。
為特定的應(yīng)用預(yù)先定義的端口稱作已知端口。表1示出了利用UDP/TCP協(xié)議時主要應(yīng)用的一些端口號。
2、套接口(socket)
TCP為了標識各個連接,引入套接口的概念。套接口(socket)由IP地址和端口(port)組成。IP地址標識一個系統(tǒng),端口號則用來區(qū)分該系統(tǒng)內(nèi)的各個應(yīng)用。TCP利用套接口來標識連接的端點。因此,用套接口可以惟一的標識一個連接。
端口只不過決定了應(yīng)用協(xié)議,換句話說,端口并不提供區(qū)分在計算機上實際運行的應(yīng)用程序的功能。然而,一旦將端口號和網(wǎng)絡(luò)地址組合,就可用來區(qū)分應(yīng)用程序。這種組合稱作套接口(socket)。
圖1示出了某計算機網(wǎng)上的兩個不同的會話。圖中,上方的工作站和下方的兩個工作站交換管理信息,這兩個會話共使用了4個套接口。套接口1和套接口2形成了左方和上方工作站間的會話;套接口3和套接口4形成了右方和上方工作站間的會話。如該例所示,不同的套接口其端口號和網(wǎng)絡(luò)地址可以完全相同。例如,套接口2和套接口3可以具有相同的網(wǎng)絡(luò)地址(上方工作站的網(wǎng)絡(luò)地址)和相同的端口號(管理業(yè)務(wù)量的端口號)。
圖1:套接口定義了會話的端點