我對TCP/IP網絡和學習套接字/端口很陌生。我有一些混亂。我提到我的理解。計算機網絡中的套接字,端口和進程之間的關係
節點N1有多個進程在運行。說一個進程P1有一些它希望發送到其他節點N2的字符串。 N1將要求OS創建一個基本上類似於網絡I/O流式傳輸通道的套接字。這樣的通道將被創建,並與套接字描述符一起交給進程。所以,我們可以說socket可以被節點識別出來,即節點+進程請求socket的IP。因此,套接字地址的概念基本上是節點+端口地址的IP(用於識別進程)。所以,我的疑惑是:
從何處來了端口的想法。套接字可以被識別爲節點+進程ID的IP。爲什麼要求端口識別一個過程。爲什麼過程描述符不能自給自足。爲什麼端口地址。例子?
爲什麼我們需要將套接字與套接字地址綁定,如果節點必須傳遞數據並且什麼都不需要接收。套接字地址的綁定實質上意味着「開始識別除了描述符外具有節點+端口地址的IP地址的套接字」,如果其他節點希望將一些數據發送到節點N1,則對其它節點有用。但我認爲,對於希望通過網絡進行通信的節點中的任何進程,應該有一個「全局」套接字,它不會被綁定。所有進程都將使用它來發送數據。如果任何節點希望接收數據,它們可以有一個單獨的套接字,它將被綁定,以便網絡中的其他節點可以識別該特定的套接字。
TCP/UDP究竟在哪裏適合圖片?我可以擁有兩個類似TCP端口3000和UDP端口3000的端口,即具有不同傳輸協議但端口號相同的獨立端口。這也可以用套接字嗎?