iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
Software Development

Python 爬蟲這樣學,一定是大拇指拉!系列 第 8

[Python 爬蟲這樣學,一定是大拇指拉!] DAY08 - 關於 Port

本篇章開始將會牽扯到 TCP / IP 模型的觀念,但會先從名詞解釋開始,對名詞有一定的認知基礎後,再介紹模型,這樣就能更容易融會貫通。不過也不會講得太複雜,主要是希望讀者對網際網路的傳輸流程有概念上的了解以及後續實戰篇是基於什麼樣的原因來規劃爬蟲。

所以目前我們知道收發資料時是需要通過 Port 的,然而根據不同的傳輸協定,使用的 Port 也不會相同,也就是說這些傳輸協定需要指定某個特定的 Port 來做資料收發。

但介紹這些傳輸協定前,我們先來了解一下 Port 的定義。

Port 埠號

  • Port 一次只能給一個 IP Address 使用。
  • Port0~65535 的數字(0 為保留 Port,無法作為端口使用),根據 IANA(Internet Assigned Numbers Authority, 網際網路號碼分配局)的規範,從 0~65535 可以分成三個區塊,並給不同的傳輸協定來做使用:
    • 0~1023: 主要用於系統中與網路相關的應用,如:HTTP、FTP 等。

    • 1024~49151: 已註冊的端口。由 IANA 分配用於特定的應用,如:MQTT、OpenVPN 等。

    • 49152~65535: 無法向 IANA 註冊的動態或私有端口。用於私有或特定服務及臨時端口。

    • 維基百科所提供的列表1列表2可以查詢各個 Port 目前為哪些服務及傳輸協定使用。從列表可以知道平常瀏覽的網站,像 HTTP 是使用走 TCP / UDP 傳輸協定的 80 Port,而 HTTPS 的 443 Port 則只有 TCP。那 TCP 跟 UDP 有什麼不同呢?下篇再為各位介紹!

本篇章參考資料

[1] Wiki - Port (computer networking)


上一篇
[Python 爬蟲這樣學,一定是大拇指拉!] DAY07 - URL / URN / URI (3)
下一篇
[Python 爬蟲這樣學,一定是大拇指拉!] DAY09 - TCP / UDP
系列文
Python 爬蟲這樣學,一定是大拇指拉!30

尚未有邦友留言

立即登入留言