1. 程式人生 > >【TCP ZeroWindow】與【TCP window Full】

【TCP ZeroWindow】與【TCP window Full】

1、作為接收方,有接收視窗,也就是接收緩衝區,win=xxx 告訴對方,我的接收視窗大小。

2、當我的接收視窗滿了,也就是win=0,Wireshark顯示【TCP ZeroWindow】,這個時候,對方不能再發送資料。

3、作為傳送方,有傳送視窗,傳送視窗可以理解為,一口氣可以傳送多少資料。傳送視窗不光要考慮對方的接收視窗,還要考慮網路情況,也就是擁塞視窗,等於它們的最小值。

  傳送視窗資料分為三類: 傳送了已經被確認,傳送了還沒有被確認,待發送的資料

  當待傳送的資料為0,也就是發了出去,但是都沒有確認,允許傳送的大小為0,

  也就是說,在途位元組數等於對方的接收視窗,這個時候,Wireshark打上【TCP window Full】標記,表示我不能再發送資料了。

4、在途位元組數,是站在傳送者的角度,表示的概念是,我已經發了多少,減去對方最近的一次確認,確認了多少。

  也就是 Seq + Len - Ack【最近的一次Ack】

5、正常情況下,後一個包的Seq = 前一個包的Seq+Len

6、正常情況下,對方的Ack = 我剛發的Seq+Len

7、但是,三次握手和四次揮手是例外,syn和fin標誌,Len是0,但是序號都加1,因為為了保證可靠性。ack標誌,序號不加1,否則變成了死迴圈,我的ack你確認,你的ack我再確認,無法完成揮手。

相關推薦

TCP ZeroWindowTCP window Full

1、作為接收方,有接收視窗,也就是接收緩衝區,win=xxx 告訴對方,我的接收視窗大小。 2、當我的接收視窗滿了,也就是win=0,Wireshark顯示【TCP ZeroWindow】,這個時候,對方不能再發送資料。 3、作為傳送方,有傳送視窗,傳送視窗可以理解為,一口氣可以傳送多少資料。傳送視窗不光要考

java軟件設計模式——單例設計模式中的餓漢式 懶漢式示例

nal pre turn new對象 構造方法 sta 餓漢式 () urn 以下為單例設計模式中的兩種經典模式的代碼示意: 1 單例設計模式(spring框架IOC,默認創建的對象都是單例的): 2 餓漢式: 3 public class Sing

linux端口號PID的互相查詢

網上 為知 size 當前 align width nbsp start 1.7 linux端口號與PID的互相查詢最近用linux在玩Tomcat,啟動的時候總是會報錯(8080/8009/8005)於是整理了一下網上零亂的查看PID和端口的命令,以備記錄。 1.由端口號

資料庫三種讀現象四種隔離級別+MySQL相關命令

資料庫事務特性ACID 資料庫事務特徵,即 ACID: A Atomicity 原子性 事務是一個原子性質的操作單元,事務裡面的對資料庫的操作要麼都執行,要麼都不執行, C Consistent 一致性 在事務開始之前和完成之後,資料都必須保持一致狀態,必須保證資料庫的完整性

Kafka- 訊息佇列中點對點釋出訂閱區別

1.JMS中定義 JMS規範目前支援兩種訊息模型:點對點(point to point, queue)和釋出/訂閱(publish/subscribe,topic)。 點對點: 訊息生產者生產訊息傳送到queue中,然後訊息消費者從queue中取出並且消費訊息。這裡要注意: 訊息被消費以

Oracle11g Win10 64位桌面類伺服器類安裝過程

一、首先,根據自己的作業系統位數(32位或64位),到官網下載相應的安裝程式,如下圖所示。 二、解壓兩個壓縮包到同一目錄,即"database"。【】然後右鍵”setup.exe“,點管理員身份執行(或者雙

Mysql order by 不唯一欄位limit混用的坑

背景: 分頁查詢排序後的資料,是一個非常常見的業務場景;但當使用不唯一的欄位排序時,分兩頁查詢的資料可能出現同一條資料,並丟失資料! 示例: 同樣的查詢條件,offset不同,竟然取到了同一條

Hyper-VVirtualBoxVMware衝突的解決方法

VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot

XMLHTML

前言    剛接觸XML不知道它是幹嘛的。通過視訊和網上查閱資料發現都是和HTML在對比學習,大家都對HTML比較熟悉。下面我總結一下它們兩者的區別 What

win7下安裝node.js錯誤:roling back action"grunt" 不是內部或外部命令 解決方法

【win7下安裝node.js錯誤:roling back action】 解決方法: Node.js 是一個基於Chrome JavaScript 執行時建立的一個平臺, 用來方便地搭建快速的 易於擴充套件的網路應用· Node.js 藉助事件驅動, 非阻塞I/O 模型變得輕量和高效, 非常適合 執行在分

Hyper-VVirtualBoxVMware沖突的解決方法

列表 not 模擬 .html off 解決方法 have detect 命令 安裝Visual Studio以後可能會導致與VirtualBox、VMware產生沖突,這是因為安裝了Windows Phone SDK,沖突表現為: 打開VirtualBox、VMware

許可權中的追加追加到的區分

我認為其精華就是下面這句話: In this example, a user must have “Append” permissions on Opportunities (child) and

HTTP學習---TCP和UDP協議的區別應用

用戶數 prot 發送 smi 處理 層次 實時性 oot user 【原文】https://www.toutiao.com/i6592813624689951239/ 概述 ⊙TCP/IP是個協議組,可分為三個層次:網絡層、傳輸層和應用層。 在網絡層有IP協議、ICMP

Wireshark系列四網路效能排查之TCP重傳重複ACK

一站式學習Wireshark(四):網路效能排查之TCP重傳與重複ACK 介紹   作為網路管理員,很多時間必然會耗費在修復慢速伺服器和其他終端。但使用者感到網路執行緩慢並不意味著就是網路問題。 解決網路效能問題,首先從TCP錯誤恢復功能(TCP重傳與重複ACK)和流控

網絡知識1http、tcp/udp、soap的區別

target https tar 網絡知識 soa 區別 ext soap udp 一句話總結: soap信息可以通過http協議包裝後通過tcp或udp傳輸參考:https://zhidao.baidu.com/question/617706398106243452.ht

網絡編程InetAddress、TCP、UDP

數據包 rgs 類方法 AC 連接失敗 length 端端 pan udp InetAddress import java.net.InetAddress; import java.net.UnknownHostException; /* * 表示互聯網中的IP地址

Java TCP/IP Socket程式設計----深入剖析----TCP套接字生命週期

目錄   簡介 TCP連線 關閉TCP連線 解調多路複用 --------筆記來自於書籍《Java TCP/IP Socket程式設計》 簡介     新的Socket例項建立後(無論是通過公有的建構函式,或通過呼叫ServerSoc

Java TCP/IP Socket程式設計----深入剖析----TCP資料傳輸中的死鎖和效能

目錄   死鎖問題 資料傳輸效能 案例 --------筆記來自於書籍《Java TCP/IP Socket程式設計》 死鎖問題 在TCP資料傳輸底層實現中(詳細參見https://blog.csdn.net/lili13897741554/article/

Java TCP/IP Socket程式設計----深入剖析----TCP資料傳輸底層實現

目錄   套接字底層資料結構 TCP資料傳輸底層實現 案例 --------筆記來自於書籍《Java TCP/IP Socket程式設計》 套接字底層資料結構     要熟悉掌握網路程式設計,就需要理解套接字的具體實現所關聯的資料結構和底

STM32乙太網線上培訓手把手搭建TCP伺服器及TFTP伺服器

非常感謝STM32乙太網線上培訓,真的讓我學到非常多,沒培訓前很想搞乙太網但有種無從下手的感覺,經過這次培訓讓我從這個架構上有個從上到下的瞭解,再借助官方神器STM32CubeMX,開發和學習起來還是非常快的!我一直是STM32的粉絲,一直想去現場培訓,但無奈沒有機會,不過好