什麼是 TCP 流?
其實,這裡的 TCP 流,就是英文的 TCP Stream。
Stream 這個詞有“流”的意思,也有“連續的事件”這樣一個含義,所以它是有前後、有順序的,這也正對應了 TCP 的特性。
跟 Stream 相對的一個詞是 Datagram,它是指沒有前後關係的資料單元,比如 UDP 和 IP 都屬於 Datagram。
在 Linux 網路程式設計裡面,TCP 對應的 socket 型別是 SOCK_STREAM,而 UDP 對應的,就是 SOCK_DGRAM 了。
顯然,DGRAM 就是 Datagram 的簡寫。
在具體的網路報文層面,一個 TCP 流,對應的就是一個五元組:傳輸協議型別、源 IP、源 埠、目的 IP、目的埠。比如,今天你訪問了xxxx網站,那麼你這次的 TCP 流就可 能就是這樣一個五元組:
(TCP, your_ip, your_port, geekbang_ip, 443)
一個 IP 報文,包含了所有這五個元素,所以 Wireshark 在解析抓包檔案時,自然就能透過五元組知道每個報文所屬的 TCP 流了。
這也是為什麼我們可以在 Wireshark 裡,用Follow TCP Stream 的方法,找到報文所在的 TCP 流。
不過有時候,也會有四元組的說法。其實它跟五元組大體上是一致的,只是四元組沒有區分傳輸層協議型別(TCP 或者 UDP)。
但是如果我們都清楚地知道應用型別,比如知道應用是 HTTP 協議的,那它的傳輸層協議預設就是 TCP,這一元是否算在裡面,已經不重要了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2917369/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 流是什麼
- 為什麼說 TCP 是安全的TCP
- 什麼是資料流?
- 什麼是流處理
- 什麼是重繪repaint?什麼是迴流reflow?AI
- TCP為什麼是有狀態的?TCP
- 什麼是 Spring Cloud 資料流?SpringCloud
- javascript函式節流是什麼JavaScript函式
- 【Linux學習教程】Linux中tcp與tcp6區別是什麼?LinuxTCP
- 什麼是Socket連線?它與TCP連線有什麼關係TCP
- 節流函式throttle是什麼鬼?函式
- 什麼是流媒體伺服器?伺服器
- Netty(三) 什麼是 TCP 拆、粘包?如何解決?NettyTCP
- 什麼是電流環路的面積
- 什麼是廢土生存賽道頂流?
- 什麼是 BPMN ?為什麼我們要用 BPMN 和工作流 ?
- 什麼是計算機的控制匯流排計算機
- 在Linux中,TCP/IP協議棧的工作原理是什麼?LinuxTCP協議
- TCP協議長什麼樣TCP協議
- 什麼是計算機 cpu 的地址匯流排?計算機
- 帶你瞭解什麼是核心匯流排架構架構
- 【js】什麼是函式節流與函式去抖JS函式
- 前端效能最佳化|什麼是防抖和節流?前端
- 優思學院|什麼是價值流圖分析(VSM)?
- modbus和tcp有什麼區別?TCP
- 什麼是cookie,什麼是sessionCookieSession
- 這是什麼這是什麼
- 什麼是分而治之?什麼是WBS?
- 什麼是DNS,什麼是HostsDNS
- 什麼是WebAuthn、FIDO 是什麼?Web
- CCNA-Part5 - 傳輸層 ,TCP 為什麼是三次握手?TCP
- Python開發中TCP和UDP區別是什麼?Python入門教程PythonTCPUDP
- ###什麼是Linux核心###什麼是MMULinux
- ITIL是什麼意思?ITIL是什麼?
- 工作流應用程式型別的區別是什麼?型別
- 你對Git的branch及工作流的理解是什麼?Git
- 什麼是計算機中的高速公路-匯流排?計算機
- SNP全稱是什麼? SNP是什麼公司? SNP是什麼意思?