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