前兩篇文章給大家打了一下些計算機網絡的基礎:
OSI七層模型與TCP/IP網絡體系詳解,網絡編程入門一定要先了解
TCP和UDP協議還沒搞懂?5分鐘帶你快速理解并掌握這兩個協議
今天主要給大家梳理一下我們在網絡編程經常使用的socket以及IP地址和端口号的定義,希望能讓大家加深對socket的理解。
什麼是Socket- 獨立于具體協議的網絡編程接口
- 在OSI模型中主要位于會話層和傳輸層之間
Socket的類型:
- 流式套接字 (SOCK_STREAM) TCP
- 提供一個面向連接、可靠的數據傳輸服務,數據無差錯、無重複發送并按順序抵達。内設流量控制,避免數據流淹沒前面的數據。數據被查看時字節流,無長度限制。
- 數據報套接字(SOCK_DGRAM) UDP
- 提供無連接服務,數據包以獨立數據包形式被發送,不提供無差錯保證,數據有可能丢失或重複到達,順序發送可能會亂序接收
- 原始套接字(SOCK_RAW)
什麼是IP地址?- IP地址是網絡中主機(電腦)的标識
- 在網絡中主機想要與其他機器通信就必須擁有一個自己的IP地址
- IP地址為32位(IPV4)或者128位(IPV6)
- 每一個數據包都必須攜帶目的地址IP和源IP地址,路由器依靠此信息為數據包選擇最優路由(路線)
什麼事端口号(PORT)?
- 用于區分一台主機中接收到的數據包應該轉交給哪一個進程進行處理。
- TCP端口号與UDP端口号是相互獨立的
- 端口号一般由IANA(Internet Assigned Numbers Authority) 統一管理
- 衆所周知端口: 1 - 1023 (1-25之間為衆所周知的端口 , 256 - 1023 為UNIX系統占用)
- 何為總所周知端口其實就是早已固定号的端口比如80端口分配給WWW服務,21端口分配給FTP服務等
- 注冊端口: 1024 -49151 分配給進程或者應用。這些端口号在還沒有被服務器資源占用時,可以由用戶的APP動态注冊獲得。
- 動态端口号:49152 - 65535 被稱為動态端口号一般不固定分配某種服務而是動态分配的。一般可以使用 65000 以上的就可以随便用
加上這篇文章和之前的兩篇,我們已經成功地把計算機網絡傳輸的基礎知識梳理了一遍,從下一篇開始就開始給大家介紹一下怎麼用一些相關的API進行網絡數據的傳輸,感興趣的朋友可以關注交流~
, 更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!