下圖是個人總結:圖片有點大,看上去模糊,點開看很清晰。
具體實現細節可以 點擊這裏
//客戶端代碼 import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.IOExcepti
1. 概述 本文主要講述的內容主要包含以下部分 TCP的概念 連接的建立過程 連接的拆除過程 2. TCP協議 我們首先要明確一點,這裏討論的TCP協議並不是指TCP/IP協議簇,而是單指TCP協議,即Transmission
TCP服務器 他也涉及到兩個核心的類 ServerSocket Socket 這裏注意: UDP協議無連接,類似發微信,直接發就行 TCP協議有連接,類似打電話,要接通才能通話。 這裏依然用回顯服務器模式來體會TCP服務器: im
延時應答 目的是爲了提高效率,在流量控制的基礎上,儘量返回一個合理但是比較大的窗口。 延時應答其實就是在不影響可靠性的前提下,讓ack的發送時間晚一會,在這延時的過程中,讓應用程序有更多消費數據的時間,這樣接受緩衝區剩下的空間就會
ACK應答 超時重傳 在消息發出去後,很久都沒有迴應,大概率是丟包了,此處,丟包可能是自己發的請求丟了,也可能是應答的ack丟了。 一般第一次發送和重傳兩個時間,重傳時間會更久一點。 連接管理 1》建立連接:三次握手過程 2》
滑動窗口 是在可靠性的前提下,讓我們進一步提高傳輸效率。 所謂窗口:就是不等待ack的情況下,批量發送的最大數據量,就叫:窗口大小。上面的窗口大小就是4000。 滑動:窗口範圍表示哪些數據在等待ack,隨着一個ack的到達,就立
TCP 與 UDP TCP/IP 協議是一個協議簇。裏面包括很多協議的,UDP 只是其中的一個。 TCP (Transmission Control Protocol) TCP/IP 協議集包括應用層,傳輸層,網絡層,網絡訪問層。
圖片來自《TCP-IP詳解卷一:協議》 一、不同層次的協議 二、以太網數據幀的分用 補充: 1、在T C P / I P領域中,域名系統( D N S)是一個分佈的數據庫,由它來提供I P地址和主機名之間的映射信息。 2、I C
TCP(Transmission Control Protocol)三次握手 TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,採用三次握手確定建立一次連接. 位碼即tcp標誌位(狀態),有6種標誌:SYN,ACK,PSH,
1、TCP服務端的創建 import socket # 創建tcp套接字 sockfd = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 綁定地址 sockfd.bind
問題來源 76. 最小覆蓋子串 76. 最小覆蓋子串 給你一個字符串 S、一個字符串 T,請在字符串 S 裏面找出:包含 T 所有字符的最小子串。 示例: 輸入: S = "ADOBECODEBANC", T = "
1. 問題描述: 給你一個整數數組 nums 和一個整數 k。 如果某個 連續 子數組中恰好有 k 個奇數數字,我們就認爲這個子數組是「優美子數組」。 請返回這個數組中「優美子數組」的數目。 示例 1: 輸入:nums = [1,1,2,
【題目】*718. 最長重複子數組 給兩個整數數組 A 和 B ,返回兩個數組中公共的、長度最長的子數組的長度。 示例 1: 輸入: A: [1,2,3,2,1] B: [3,2,1,4,7] 輸出: 3 解釋: 長度最長的公共
所有求窗口內中位數的問題,一般採用大小堆處理 這裏對每個大小堆維護一個哈希,來標記已刪除的元素,並同時維護一個容量值,標記實際元素個數,來保證大小堆平衡。 class Solution { public: priori
一、定義 RateLimiter使用的是一種叫令牌桶的流控算法,RateLimiter會按照一定的頻率往桶裏扔令牌,線程拿到令牌才能執行,比如你希望自己的應用程序QPS不要超過1000,那麼RateLimiter設置1000的速率