iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
2
Software Development

那些年還給老師的TCP/IP五層結構 - 用Python進行網路封包分析系列 第 3

Day03 TCP/IP五層結構

TCP/IP是一個公認的網路通訊協議,是OSI七層的簡化,五層分別為物理層、鏈結層、網路層、傳輸層和應用層,下面用簡短的話分別解釋這五層是做什麼的

物理層(Physical):處理網路線、無線傳輸設備,例如光纖
鏈接層(Link):乙太網,由於數據經由網路線傳輸過程中難免會錯誤,這一層具有數據糾錯的功能,例如漢明碼
網路層(Internet):保證路由,如何把數據從MAC傳輸到另一個MAC
傳輸層(Transport):TCP、UDP,其中TCP保證end-to-end的可靠性
應用層(Application):用於與網路相關應用交互的地方,例如http, ssh等等

這裡特別說一說TCP和UDP的差別,這可以說是TCP/IP最重要的重點了,沒有之一,簡單來說,TCP是可靠傳輸,是連結導向,一定要確定對方可以到達才會傳輸資料,而UDP則是不可靠傳輸,非連結導向,資料只管送就對了,封包掉了或不可達也無所謂。

那麼層與層之間有沒有明確的界線呢?雖然傳進來的封包都是byte array,但是可以利用固定的Header長度定義明確的界線,Header放在每一層數據包的最前面,如下圖所示
https://ithelp.ithome.com.tw/upload/images/20200913/201302714piGQJAjp4.png

所以網路封包的傳輸過程是從應用層開始,加header,一直加到下面傳輸層,,然後路由器會根據header路由封包到目的地,到了目的地電腦再根據header進行往上逐層解析,再回到應用層

網路應用開發人員主要了解第三到第五層就好,之後也會偏重解析這三層並基於這三層建構應用。

系列的成果將會放在這:https://github.com/kaichiachen/pytcpdump
文章配合著程式碼有助於學習 :)


上一篇
Day02 計算機網路是什麼?
下一篇
Day04 用docker建構proxy伺服器模擬網路封包分析環境
系列文
那些年還給老師的TCP/IP五層結構 - 用Python進行網路封包分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言