Skip to content

Commit

Permalink
tcp: add ecn
Browse files Browse the repository at this point in the history
  • Loading branch information
evan361425 authored Jul 27, 2024
1 parent b5b8e02 commit ff388f0
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/essay/web/tcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ TCP 會透過上述各種編號和標記來完成連線所需的溝通。

- 監聽方透過 [socket API](#bsd-socket-api) CONNECT 來等待連線;
- 請求方 *要求建立*
- 監聽方 *同樣要求建立**同意該請求*
- 監聽同樣 *要求建立* 且透過 ACK 同意原請求
- 請求方 *同意建立請求* 自此,連線完成建立。
此時,請求方可能會同時把資料一起送出。

Expand All @@ -42,7 +42,7 @@ TCP 會透過上述各種編號和標記來完成連線所需的溝通。
- 任意一方 *要求關閉*,進入主動關閉方;
- 收到的人,照常回應 ACK 同步認知,進入關閉等待期。
如確認資料都送出,且同意關閉後會同樣送出 *關閉要求* 並結束該連線;
- 此時,主動關閉方根據根據收到的標記,進入不同狀態,最終走入暫置區(`TIME_WAIT`)。
- 此時,主動關閉方根據收到的標記,進入不同狀態,最終走入暫置區(`TIME_WAIT`)。

各個標記(flag)代表的意義在下段展示。

Expand All @@ -52,7 +52,9 @@ TCP 會透過上述各種編號和標記來完成連線所需的溝通。
以下依照該信號在封包的位置順序來排列:

- Reserved:保留,供未來可能需求使用;
- Explicit Congestion Notification, ECN:一種明確告知接收方壅塞的協定,避免丟包;
- Explicit Congestion Notification, ECN:一種明確告知接收方壅塞的協定
- 避免直接透過丟包,來達成壅塞的隱晦告知;
- 目前預設關閉,但有人分享[啟用後並沒有收到什麼問題](https://www.reddit.com/r/linux/comments/933vys/is_tcp_ecn_still_a_problem_today/)
- Urgent, URG,緊急的封包:
- 告知接收方這個封包不需要進入佇列(queue),請直接處理;
- 目前我沒看過這個使用的實際場景。
Expand Down

0 comments on commit ff388f0

Please sign in to comment.