iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
Software Development

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

[Python 爬蟲這樣學,一定是大拇指拉!] DAY14 - TCP / IP

  • 分享至 

  • xImage
  •  

本篇將會簡單介紹 TCP / IP 是什麼,及透過 TCP / IP 資料是怎麼傳輸的。但老樣子,不會做太過複雜的解釋,只會做概念上的介紹,想讓讀者至少先對 TCP / IP 有個基礎認知,日後有更複雜的需求再去理解也不遲。而且有基礎的前提下也可以快速上手。

TCP / IP

相信讀完前幾篇 Port、TCP/ UDP 與 HTTP / HTTPS 的介紹後,本篇肯定是塊小蛋糕!
Port 複習傳送門
TCP / UDP 複習傳送門
HTTP / HTTPS 複習傳送門

  • 引用自維基百科

    網際網路協議套組(英語:Internet Protocol Suite,縮寫IPS)是網路通訊模型,以及整個網路傳輸協定家族,為網際網路的基礎通訊架構。
    它常通稱為TCP/IP協定套組(英語:TCP/IP Protocol Suite,或TCP/IP Protocols),簡稱TCP/IP[2]。因為該協定家族的兩個核心協定:TCP(傳輸控制協定)和IP(網際網路協定),為該家族中最早通過的標準。
    它將軟體通訊過程抽象化為四個抽象層,採取協定堆疊的方式,分別實作出不同通訊協定。協定套組下的各種協定,依其功能不同,分別歸屬到這四個階層之中。

簡單來說,TCP / IP 是一個網路通訊模型,而現今網路的溝通,基本上都是依照 TCP / IP 的架構下去設計的。
那 TCP / IP 可以分為這四層。

  • 應用層(Application Layer):所有和應用程式協同工作,利用網路交換應用程式資料的協定。如:HTTP、HTTPS、FTP 等。

  • 傳輸層(Transport Layer):夠解決端點之間的可靠性問題。如:TCP / UDP 篇所提到的「資料是否已經到達目的地?」和「資料是否按照正確的順序到達?」這樣的問題。而此層還包含了一個功能就是根據 Port 將資料送給對應的應用程式,比如說有個封包是要去 80 Port,它就會將此封包送至同樣是 80 Port 在應用層中的應用程式。

  • 網路互連層(Internet Layer):提供路由和尋址的功能,使兩終端系統能夠互連且決定最佳路徑,並具有一定的擁塞控制和流量控制的能力。像是我們最常用到的 IP(IPv4、IPv6)。

  • 網路存取(連結)層(Network Access (Link) Layer):主機物理連接的線路的方法和通信協議。像是實體 Port、Router 之類的。

TCP / IP 傳輸

了解 TCP / IP 的結構後,接下來將講解它的資料流。
不囉嗦直接上圖!

圖(1):
https://ithelp.ithome.com.tw/upload/images/20210929/20139358UKR1nKzFNs.png
圖片來源

圖(2):
https://ithelp.ithome.com.tw/upload/images/20210929/20139358VbKGxwK3Ja.png
圖片來源

從圖(1)可以直接了解到,資料要傳輸時,是從應用層開始(Application Layer),一層一層由上往下疊加,如圖(2)所示,當另外一端收到資料後再一層一層由下至上去解析。

以上就是網際網路透過 TCP / IP 模型溝通的簡單介紹!這樣對網路的溝通是不是又更了解了呢!?

本篇章參考資料

[1] Wiki - 網際網路協議套組
[2] Wiki - Internet protocol suite
[3] Wiki - 網路層
[4] Wiki - Internet Layer
[5] Wiki - 連結層
[6] Wiki - Link Layer


上一篇
[Python 爬蟲這樣學,一定是大拇指拉!] DAY13 - HTTP / HTTPS (4)
下一篇
[Python 爬蟲這樣學,一定是大拇指拉!] DAY15 - Cookie / Session
系列文
Python 爬蟲這樣學,一定是大拇指拉!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言