Skip to main content

Command Palette

Search for a command to run...

理解 Transport Layer - TCP/UDP

Updated
1 min read

簡介

本文將會介紹以下內容:

  1. Transport Layer 的主要工作職責
  2. 三方交握
  3. TCP/UDP 傳輸的封包格式

Transport Layer 的主要工作職責

Network Layer 主要負責把資料從某個端點傳輸到另一端點

對於資料內容是否重送這部份的問題就是交給 Transport Layer 負責來處理

當封包到了 Transport Layer,Transport Layer 會把資料加入 PORT 的概念

來讓 Application Layer 可以來識別不同應用所需處理的資料

Transport Layer 主要有兩類 Protocol:

1. TCP

TCP 這個協定主要可以讓接收方保證一定收到傳輸方收到的資料

nodejs 語言可以透過 net 這個 module 來實作

2. UDP

UDP 這個協定主要處理傳輸串流資料,本身不保證資料的正確性或是否遺失

nodejs 語言可以透過 dgram 這個 module 來實作

三方交握

TCP 主要會透過三方交握的方式要保證接收方都有傳送方的資料

其概念圖如下:

在建立要連線時,會先傳遞要傳送資料的傳送規格與一個驗證的 Sequence Number X 給接收方

而傳送方會把 X + 資料傳輸量大小 當作驗證的 Acknowledgement Number 並且產生一個隨機的 Sequence Number Y 傳回

最後傳送方在收到 Y 之後再把 Y+ 資料傳輸量大小 當作驗證的 Acknowledgement Number 傳回

如此一來就可以TCP 連線就可以建立了

TCP/UDP 傳輸的封包格式

這邊只針對幾個有比較性的欄位做介紹

TCP 傳輸格式概觀

首先是在 Transport Layer 時,封包回把 Source Port 與 Destination Port 解析出來

並且把傳輸的 Data 放到 Header 之後

Data 大小會變動不是一個固定的值

UDP 傳輸格式概觀

不同於 TCP傳輸格式

UDP 並沒有 Sequenece Number 與 Acknowledgement Number 來對接收資料做確保

UDP 的資料 Size 則固定為 8 bytes = 8 * 8 bits = 64 bit

參考

[1] three-way-handshake

[2] net module

[3] dgram module

More from this blog

Claude Code 監控秘錄:OpenTelemetry(OTel/OTLP)實戰指南

稟告主公:此乃司馬懿進呈之兵書,詳解如何以 OpenTelemetry 陣法,令臥龍神算之一舉一動盡在掌握,知糧草消耗、察兵器效能、辨戰報異常,使主公運籌帷幄於大帳之中。 為何需要斥候情報? 司馬懿稟告主公: 臥龍神算(Claude Code)乃當世利器,然若無斥候回報,主公便如蒙眼行軍——兵器耗損幾何、糧草消費幾許、哪路斥候出了差錯,一概不知。臣以為,此乃兵家大忌。 無情報之弊,有四: 軍

Feb 19, 202610 min read184
Claude Code 監控秘錄:OpenTelemetry(OTel/OTLP)實戰指南

工程師的 Claude Code 實戰指南:從零開始到高效開發

工程師的 Claude Code 實戰指南:從零開始到高效開發 本文整合 Anthropic 官方 Best Practices 與社群實戰 Tips,帶你由淺入深掌握 Claude Code。 什麼是 Claude Code?為什麼值得學? 如果你還在用「複製程式碼貼到 ChatGPT,再複製答案貼回去」的工作流程,Claude Code 會讓你大開眼界。 Claude Code 是 Anthropic 推出的命令列工具,它直接活在你的 terminal 裡,能夠讀懂你的整個 codeb...

Feb 18, 20265 min read81
工程師的 Claude Code 實戰指南:從零開始到高效開發

System Design Interview Ch 12 Digital Wallet

確立問題與設計範疇 角色對話內容 面試者我們應該只關注兩個數位錢包之間的餘額轉帳操作嗎?我們是否需要擔心其他功能? 面試官讓我們只關注餘額轉帳操作。 面試者該系統需要支援多少 TPS(每秒交易次數)? 面試官讓我們假設是 1,000,000 TPS (每秒 100 萬次交易)。 面試者數位錢包對正確性有嚴格的要求。我們可以假設事務保證 就足夠了嗎? 面試官聽起來不錯。 面試者我們需要證明正確性嗎? 面試官這是一個很好的問題。正確性(Correctness)通常只有在交...

Feb 2, 202610 min read230
System Design Interview Ch 12 Digital Wallet

Claude Code 利用 Event-Driven Hooks 打造自動化開發大腦

在現代 AI 輔助開發中,我們不僅需要 AI 寫程式,更需要它懂規則、記性好,並且能自動處理那些繁瑣的雜事。透過 Claude Code Hooks 機制,我們可以介入 AI 的思考與執行迴圈,實現真正的「人機協作自動化」。 一、 動機與痛點:為什麼你需要介入 AI 的生命週期? 在預設狀態下,Claude Code 雖然強大,但它是「被動」且「無狀態」的,這導致了開發者常遇到以下痛點: 記憶重置 (Session Amnesia): 痛點:每次重啟終端機,AI 就像失憶一樣。 解法:你...

Jan 24, 20266 min read551
Claude Code 利用 Event-Driven Hooks 打造自動化開發大腦
M

MicroFIRE

71 posts