網絡協議

TCP/IP報文結構
image.png算法

4.time_wait 階段
tcp鏈接釋放客戶端收到服務器發送的連接釋放FIN請求報文進time_wait 階段 編程

5.tcp鏈接釋放第四次握手爲何須要等待2個最長報文段壽命 防止第四次握手客戶段發送的ACK報文丟失,服務器沒法正常關閉連接 服務器

6.tcp鏈接釋放第四次握手丟失 服務器端端口如何回收 保活計時器--- 服務器在每次接收到客戶端數據時重設 該計數器(一般爲2小時),若在設置時間內都 未能接收到客戶端數據,服務器這是開始發送探測報文段,之後每隔75秒發送一次,若連續發送10個探測報文段仍無響應 服務器自動關閉連接。 restful

tcp流量控制
tcp基於滑動窗口實施流量控制,流量控制目的在於發送方發送速率不能超出接收方的接收速率,即發送方的發送窗口值不能超出接收方給出的接收窗口值,tcp的窗口單位爲字節網絡

tcp擁塞控制
擁塞控制的目的在於防止過多的數據注入網絡,避免網絡中的路由或者鏈路過載數據結構

發送方動態調節發送窗口使其等於擁塞窗口,判斷網絡擁塞的依據是超時
擁塞控制算法:
慢開始:發送方設置初始擁塞窗口值爲2至4個最大報文段(MSS,一般爲1460字節)長度值,每收到一個對新報文段確認則將發送方擁塞窗口值加1,擁塞窗口增加呈指數增加socket

擁塞避免:擁塞窗口超出慢開始門限進入擁塞避免階段,每通過一個傳輸輪次(傳輸輪次指發送方把當前擁塞窗口容許發送的報文段所有發送出去而且收到了最後最後一個字節的確認)其擁塞窗口值加1,擁塞窗口增加呈線性增加tcp

快重傳:快重傳對於失序到達報文段,接收方應當即發送對已到達報文段的重複確認,一般爲3個重複確認,而非捎帶確認,目的在於避免發送方誤認爲網絡出現擁塞ide

快恢復:快重傳使發送方知道網絡只是存在個別報文段丟失,不啓動慢開始算法,而開始執行擁塞避免算法加密

image.png

7.tcp擁塞控制滑動窗口大小計算

tcp擁塞窗口cwnd在擁塞控制時變化圖示

image.png

2.https 與http的區別

3.https 中rsa加密在哪一階段

7.數字簽名做用

8.TCP和UDP 的區別,DNS基於哪種

10restfull 如何理解

4.tcp報文結構

5.socket 編程對應 tcp鏈接 釋放的階段

TCP鏈接釋放經常使用套接字API
s = socket(<parameters>) 建立一個新的,未命名,未關聯的套接字
bind(s, <local IP:port>) 向套接字賦一個本地端口號和接口

connect(s, <remote IP:port>) 建立一條鏈接本地套接字和遠程主機及端口的鏈接
listen(s, ...) 標示一個本地套接字,使其能夠合法接受鏈接
s2 = accept(s) 等待某人創建一條到本地端口的鏈接
n = read(s, buffer, n) 嘗試從套接字向緩衝區讀取n個字節
n = write(s, buffer, n) 嘗試從套接字向緩衝區寫入n個字節
close(s) 徹底關閉TCP鏈接
shutdown(s,<side>) 只關閉TCP鏈接的輸入或者輸出端
getsocket(s, ...) 讀取某個內部套接字配置選項的值
setsocket(s, ...) 修改某個內部套接字配置選項的值

TCP API容許用戶建立TCP的端點數據結構,將這些端點與遠程服務器的TCP端點進行鏈接,隱藏了全部底層網絡協議的握手細節,以及TCP數據流與IP分組之間的分段和重裝細節

客戶端和服務器經過TCP套接字接口進行通訊圖示
image.png

相關文章
相關標籤/搜索