mac地址、IP地址和端口號

看了不少遍,才整理出來我對整個通訊過程的理解,大體以下,後期會不斷學習補充更正:網絡

在利用TCP/IP協議族進行通訊的時候,有三個比較關鍵的確認身份的信息:mac地址、IP地址和端口號。學習

  • mac地址是在數據鏈路層包裹在以太網頭部中的,它主要用來識別同一個鏈路中的不一樣計算機。Mac地址即網卡號,每塊網卡出廠的時候,都有一個全世界獨一無二的 MAC 地址,長度是 48 個二進制位,一般用 12 個十六進制數表示。
  • IP地址是在網絡層的IP頭部裏,用於識別網絡中互聯的主機和路由器,其實主要是確認子網,經過子網掩碼確認某個IP地址所在的子網,然後再在子網內部確認mac地址就能找到準確的用戶了。
  • 端口號是在傳輸層包含在TCP/UDP頭部中的,用於識別應用程序。一臺主機上能運行多個程序,那麼接收到的消息究竟是哪一個程序的呢?就須要端口號來確認。

端口號有兩種:spa

    • 固定的端口號,是形如http,telnet,ftp等廣爲使用的應用協議所使用的端口號是固定的
    • 動態分配的端口號,這個時候服務端要肯定監聽端口號,接受服務的客戶端不必肯定端口號

端口號由傳輸層協議決定,所以不容傳輸協議可使用相同的端口號,因此TCP和UDP可使用同一個端口號blog

 

 

例如,主機A向主機B利用發送了一條消息,則在TCP head裏包含了發送消息的應用的端口號以及接收方應用的端口號,傳遞給它的下一層,網絡層會將TCP數據包封裝起來再加本身的頭部,IP頭部裏包含本地IP以及接收方IP等信息傳遞給數據鏈路層。數據鏈路層會再給加一個以太網頭部,這裏包含雙方的mac地址。那麼對方IP和端口號都好獲得,但是mac地址如何得到呢?這個時候須要ARP協議,這個暫且不說,直說在已知mac地址和IP地址端口號狀況下如何發送消息。路由

首先以太網數據包會在其子網內部廣播,若是接收方在其子網內,則在比對mac地址後直接接收數據。若是不在同一個子網內,以太網協議就不能實現數據傳輸了,並且由於以太網協議採起廣播的方式發送消息,就算沒有侷限在子網內,若是給很是龐大的主機羣廣播消息是很是可怕的。這個時候就須要IP地址了,IP地址主要是用來區分哪些mac地址在同一個子網。找到目的主機所在子網以後再根據mac地址確認主機,IP層從IP首部肯定數據包所用的協議以後將數據包交給對應的協議,再由協議來確認程序的端口號,從而實現了消息的傳遞io

相關文章
相關標籤/搜索