網絡通信的進一步理解
兩個主機間進行通信,其實是兩個主機間的軟件進行通信,軟件也就是可執行程序,運行時就是進程,所以也為進程間通信。
進程間通信需要共享資源,這里兩個主機間的共享資源是網絡,利用的是網絡協議棧,實現一個主機中的軟件(客戶端)去訪問另一個主機的軟件(服務端)
端口號
?
IP地址:表示唯一的一臺主機,
端口號:表示一個主機進程的唯一性的
ip : port 標識全網唯一的進程
?
?我們客戶端,如何知道服務器的端口號??
這是我們自己設計過,眾所周知,約定俗稱的,當我們想要訪問相應的服務器,我們的客戶端必須知道服務端的端口號,這是內置的,我們不知道而已
傳輸層是怎樣在一群進程中找到屬于自己的呢?
傳輸層有一個哈希表,里面存的是進程pcb, (綁定就是將進程自己將自己的pcb放到哈希表中),當傳輸層接收到報文時,里面存有端口號,在傳輸層的哈希表中進行哈希運算,(每一個進程都有自己pcb,pcb中存有自己的端口號)找到對應的端口號,再找到相應的進程
進程pid與端口號
當操作系統端換掉后保證我們網絡端不會受影響。
即是保證其耦合度低,進程pid和端口號不會相互影響
?
?
?
?
?
?
?
?
?
?
?
?