【計算機網路筆記】3.8 Evolution of Transport-Layer Functionality
【計算機網路筆記】3.8 Evolution of Transport-Layer Functionality Hello Guys, I’m LukeTseng. 歡迎你也感謝你點入本篇文章,本系列主要讀本為《Computer Networking: A Top-Down Approach, 8th Edition》,就是計算機網路的聖經,會製作該系列也主要因為修課上會用到。若你喜歡本系列或本文,不妨動動你的手指,為這篇文章按下一顆愛心吧,或是追蹤我的個人公開頁也 Ok。 傳輸層已經不再是傳統 TCP 與 UDP 非黑即白的天下,為了解決現代網路高併發、低延遲的需求,傳輸層功能正朝向多樣化發展,甚至將實作提升到了應用層(以 QUIC 為代表)。 三十年來,TCP 和 UDP 一直是網際網路的兩大主力,然而,TCP 為了保證可靠性,有著嚴格的順序限制與繁瑣的連線建立過程,導致了隊首阻塞(HOL Blocking)」與較高的延遲。 而 UDP 雖然快,卻不提供可靠傳輸,隨著雲端服務和影音串流的爆發,開發者需要一種既有 TCP 的可靠與安全,又能像 UDP 一樣輕量快速的解決方案...
【計算機網路筆記】3.7 TCP Congestion Control
【計算機網路筆記】3.7 TCP Congestion Control Hello Guys, I’m LukeTseng. 歡迎你也感謝你點入本篇文章,本系列主要讀本為《Computer Networking: A Top-Down Approach, 8th Edition》,就是計算機網路的聖經,會製作該系列也主要因為修課上會用到。若你喜歡本系列或本文,不妨動動你的手指,為這篇文章按下一顆愛心吧,或是追蹤我的個人公開頁也 Ok。 3.7.1 Classic TCP Congestion Control(經典 TCP 壅塞控制) TCP 壅塞控制(Congestion Control)是 TCP 協定中用來避免發送端把整個網路癱瘓的一套機制,與流量控制(Flow Control)不同,它保護的對象是網路而非接收端。 網路資源是共享的,如果每個終端系統(End System)的 Process 都毫無節制把資料塞入網路中,會導致路由器的 buffer 溢位,進而造成封包大量遺失,最終引發壅塞崩潰(Congestion collapse),讓所有人的吞吐量(Throughpu...
【JavaScript 筆記】函數(上) - part 5
【JavaScript 筆記】函數(上) - part 5 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 基本函數語法 宣告一個函數使用關鍵字 function 宣告,如下: 1234function functionName(parameter1, parameter2) { // 函數主體(要執行的程式碼) return returnValue;} 範例: 123456function greet(name) { console.log(`哈囉,${name}!`);}greet("LukeTseng"); // 哈囉,LukeTseng!greet("Amy"); // 哈囉,Amy! 函數宣告有完整的 Hoisting,可以在宣告之前就呼叫,JS 引擎會自動把整個函數上升(Hoisting)到最頂端: 12345sayHi(); // Hi!...
【考試向】資料結構筆記(堆積樹)
【考試向】資料結構筆記(堆積樹) 歡迎你點入本篇文章!我是 LukeTseng,本系列文章主要整理自學資料結構的一些知識,如果你喜歡我的文章,麻煩您不吝嗇的在文章底下按下一顆愛心,或是追蹤我唷~ 堆積(Heap) 定義 堆積是一棵二元樹,定義如下: 必為一棵完整二元樹(Complete Binary Tree) 所謂完整(Complete):除了最底層之外,上面每一層的節點都必須是填滿的,而且最底層的節點,必須由左至右依序填入,中間不能有空缺。 為什麼這樣規定?因為這樣的結構非常緊湊,可用一維陣列來做儲存,而不用指標(Pointers),在記憶體管理和讀取速度上非常有效率。 必須滿足堆積性質(Heap Property) 根據節點數值的大小關係,Heap 主要分為兩種: 最大堆(Max-Heap):任何一個父節點的值,都 ≥\ge≥ 其子節點的值,表示整棵樹的根節點(Root)一定會是這棵樹中的最大值。 最小堆(Min-Heap):任何一個父節點的值,都 ≤\le≤ 其子節點的值,表示整棵樹的根節點(Root)一定會是這棵樹中的最小值。 調整 Hea...
【JavaScript 筆記】運算子、型別轉換 - part 4
【JavaScript 筆記】運算子、型別轉換 - part 4 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 運算子(Operator) JS 有這些類型的運算子: 類別 英文名稱 運算子 算術運算子 Arithmetic Operators + - * / % ** ++ -- -(一元) +(一元) 指定運算子 Assignment Operators = += -= *= /= %= **= <<= >>= &= |= ^= &&= ||= ??= 比較運算子 Comparison Operators == != === !== > >= < <= 邏輯運算子 Logical Operators && || ! !! ?? 位元運算子 Bitwise Operators & | ^ ~ >> << >...
TCP/IP 封包解析
TCP/IP 封包解析 紀錄 2026/04/08 計算機網路課程。 TCP/IP 封包格式 TCP/IP 封包的 Header 預設就是 20 個 Byte。 TCP 格式: Image Source:https://www.geeksforgeeks.org/computer-networks/tcp-ip-packet-format/ Source Port、Destination Port 各佔 2 Byte(16 bit),通常題目只要求到這邊就好。 Sequence Numbers 佔 4 Byte(32 bit)。 IP 格式: Image Source:https://www.geeksforgeeks.org/computer-networks/tcp-ip-packet-format/ Version 佔 4 bit(1 個 16 進位數字)。 IHL(Internet Header Length)也佔 4 個 bit。 Type-of-Service 佔 1 個 byte。 Total Length 佔 2 byte。 Flags 佔 3 b...
【C++ 筆記】運算子多載(Operator Overloading)範例
【C++ 筆記】運算子多載(Operator Overloading)範例 很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 2x2 矩陣 以下範例多載了這些運算子: 運算子 型態 說明 [] 成員 存取矩陣元素,如 A[0][1] -(一元) 成員 取負矩陣 +, -, * 成員 矩陣加減乘 +=, -=, *= 成員 複合指派 ==, != 成員 相等比較 *(純量) friend scalar * matrix 及 matrix * scalar <<, >> friend 標準輸出入串流 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263...
【JavaScript 筆記】語句規則 - part 3
【JavaScript 筆記】語句規則 - part 3 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 分號(; Semicolons) 在 JS 中,分號 ; 用來標示一個語句的結束,類似中文的句號。 123let name = "LukeTseng"; // 這是一個語句let age = 21; // 這是另一個語句console.log(name); // 這也是一個語句 ASI:自動插入分號機制 JS 中會有 ASI(Automatic Semicolon Insertion)的機制,當沒加分號時 JS 引擎會在解析時自動判斷在哪裡補上分號,這就是為什麼省略分號也不會報錯。 以下這兩個撰寫的方式都 ok: 12345let x = 10;let y = 20;let x = 10let y = 20 ASI 的陷阱 ASI 不是萬能的,在某些情況下會誤判,導致其程式行為完全不符合預期: 123456...
【JavaScript 筆記】語法(資料型別、變數) - part 2
【JavaScript 筆記】語法(資料型別、變數) - part 2 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 資料型別(Data Type) Image Source:https://www.geeksforgeeks.org/javascript/variables-datatypes-javascript/ JavaScript 中所有的值都屬於某種資料型別,型別分為兩大類: Primitive(原始型別)的值儲存的是值本身。 Non-Primitive(非原始型別)儲存的是記憶體位址的參考(Reference)。 另外,JS 的語法也定義了兩個型別的值: Literals(實字):一個固定值,就是常數的意思。 Variables(變數):隨時會變動的值。 用 typeof 查看型別 typeof 運算子可在 Console 中直接查看任何值的型別: 原始型別(Primitive) 1. Number(數字) JS 的 Numbe...
【JavaScript 筆記】從零開始的 JS - part 1
【JavaScript 筆記】從零開始的 JS - part 1 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 簡介(Introduction) JavaScript 接下來都簡稱 JS,JS 是一個輕量級的程式語言,也是一個腳本語言,也是一種讓網頁動起來的程式語言。 JS 是一種直譯式(Interpreted)、動態型別、跨平台的腳本語言。 直譯式:程式碼不需要事先編譯,瀏覽器直接讀取、直接執行。 動態型別:變數的型別不需要事先宣告,執行時自動判斷。 跨平台:能在瀏覽器、伺服器(Node.js)、甚至手機 App 上執行。 物件導向 + 函式導向:支援多種程式設計風格,彈性非常高。 JS 的小故事 JavaScript 是由 Brendan Eich 在 1995 年於 Netscape 公司任職時創造,前後只花了 10 天就設計完成。雖然名字裡有 Java,但和 Java 其實是完全不同的語言,當年取這個名字純粹是行銷噱頭,純粹只是想要蹭而已。 之後...
【CSS 筆記】CSS 建立 - part 2
【CSS 筆記】CSS 建立 - part 2 歡迎你點入本篇文章,本系列網頁程式設計,主要紀錄我個人自學的軌跡,另外也作為日後個人複習用。若你喜歡本篇文章,歡迎在文章底下點一顆愛心,或是追蹤我的個人公開頁~ 要建立 CSS,會有三種方式: 外部 CSS(External CSS) 內部 CSS(Internal CSS) 行內 CSS(Inline CSS) 外部 CSS(External CSS) 此為最常用、最推薦的方式,這種方式會把所有 CSS 寫在一個獨立的 .css 檔案中,再透過 <link> 標籤連結到 HTML 。 首先建立 styles.css: 123456789/* styles.css */h1 { color: steelblue; font-size: 32px;}p { color: gray;} 然後在 HTML 的 <head> 加入連結: 12345678910<!DOCTYPE html><html><head> <li...
【Uva 題庫解題】C++ 個人解題筆記 - part6
【Uva 題庫解題】C++ 個人解題筆記 - part6 本次題庫擷取自 CPE 2026/03/24 歷屆考題:https://cpe.mcu.edu.tw/cpe/test_data/2026-03-24 1. Uva 10591 - Happy Number PDF Source:https://onlinejudge.org/external/105/10591.pdf Uva Online Judge:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1532 Zerojudge:https://zerojudge.tw/ShowProblem?problemid=d442 難度:★☆☆☆☆ 題目翻譯: 令正整數 S0S_0S0 的平方和表示為 S1S_1S1。同理,令 S1S_1S1 的平方和用 S2S_2S2 表示,依此類推。若對某個 i≥1i ≥ 1i≥1 的 Si...
【考試向】資料結構筆記(二元搜尋樹)
【考試向】資料結構筆記(二元搜尋樹) 歡迎你點入本篇文章!我是 LukeTseng,本系列文章主要整理自學資料結構的一些知識,如果你喜歡我的文章,麻煩您不吝嗇的在文章底下按下一顆愛心,或是追蹤我唷~ (自平衡二元搜尋樹如 AVL Tree 跟紅黑樹會在後續單獨撰寫) 二元搜尋樹(BST, Binary Search Tree)定義 簡單來說,二元搜尋樹就是一棵「自帶排序規則」的二元樹。 在二元搜尋樹中,對於樹上的每一個節點,都必須嚴格遵守以下四條規則: 左子樹中所有節點的值,都小於根節點的值。 右子樹中所有節點的值,都大於根節點的值。 左右子樹本身也必須各自是一棵二元搜尋樹。 每個節點的值都不同。 另外,二元搜尋樹也可以是一個空集合,上述為非空集合所要遵循的規則。 如下圖是一棵二元搜尋樹: Image Source:二元搜尋樹 - 維基百科,自由的百科全書 右子樹(根節點的右邊:10、14、13)皆大於根節點的值,而至於那個 13,因為他在左子樹,所以得要小於他的樹根 14,符合 BST 的定義。 左子樹(根節點的左邊:3、1、6、4、7)皆小於根節點的值,其下的左右子...
【論文閱讀】FastTracker: Real-Time and Accurate Visual Tracking
【論文閱讀】FastTracker: Real-Time and Accurate Visual Tracking paper : https://arxiv.org/abs/2508.14370 github : https://github.com/Hamidreza-Hashempoor/FastTracker 註:本文僅供個人學習用途、筆記用,內容斟酌參考,請注意事實查核。(This article is for learning and noting. Content of article consider for reference. Note that fact checking.) 我個人算是 CV 領域的新手,有些我不懂的地方會加上自己寫的註釋,敬請見諒。 Abstract 1. Problem: Conventional multi-object tracking (MOT) systems are predominantly designed for pedestrian tracking and often exhibit limited gener...
【計算機網路筆記】3.6 Principles of Congestion Control
【計算機網路筆記】3.6 Principles of Congestion Control Hello Guys, I’m LukeTseng. 歡迎你也感謝你點入本篇文章,本系列主要讀本為《Computer Networking: A Top-Down Approach, 8th Edition》,就是計算機網路的聖經,會製作該系列也主要因為修課上會用到。若你喜歡本系列或本文,不妨動動你的手指,為這篇文章按下一顆愛心吧,或是追蹤我的個人公開頁也 Ok。 3.6.1 The Causes and the Costs of Congestion(壅塞的成因跟代價) 回顧: 當進入網路的資料量超過網路(路由器 router、連結 link等)的處理能力,導致路由器緩衝區佇列積壓甚至滿溢,進而引發封包遺失與嚴重延遲的現象,就是網路壅塞。 只要是資源(如頻寬、緩衝區)有限的共享網路環境,當需求大於供給時,都必然會面臨壅塞問題。 術語解析 吞吐量(Throughput):單位時間內成功通過網路的實際數據量(如 Mbps 或 Gbps),反映網路的真實工作效率。 承擔負載(Offer...






