不知不覺就這樣寫了30天,第一天很痛苦,第二天更痛苦,第三天之後就寫上癮了,沒有這個鐵人賽我都不知道原來寫作挺有趣的,而且寫的過程可以讓自己的知識體系更加鞏固。
這個系列雖然是無聊的計算機網路TCP/IP五層的結構,但是能給讀者不一樣的視角,從頭自己實作基本的TCP/IP stack,可能在日常的專案用不到,但是期望理解TCP/IP的運作原理後,下次寫網路相關的程式或使用工具能有個形象化的認識。
我們首先從如何監聽最原始的封包開始,怎麼讀取第二層以後的資料,一路解析到本系列的一半,剛好看完第二層到第五層的網路結構長什麼樣子,後半部分帶大家實作如何發送重要的通訊協議封包例如TCP、DNS和ICMP,希望認真看完本系列的小夥伴有乖乖的做實驗並對網路了解通透。
監聽的程式碼: https://github.com/kaichiachen/pytcpdump
TCP三方交握連線和四向交握斷線: https://gist.github.com/kaichiachen/283f1b57e517f9ed558de6c2d15daf62
DNS伺服器: https://gist.github.com/kaichiachen/9409e9aa327827da4df36f553389c4e0
ICMP伺服器: https://gist.github.com/kaichiachen/9b84defbce02cd738cd5187424418a0b
大家,明年見呀!