05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

傳輸層的兩個協議

05、 傳輸層概述

  • TCP: 需要將要傳輸的文件分段傳輸的情況下使用TCP。TCP會在服務端與客戶端建立會話,能夠實現可靠傳輸。還可實現流量控制
  • UDP: 一個數據包就能夠完成數據通訊,不需要分段傳輸的情況下使用UDP。UDP不會在客戶端與服務端間建立會話,不需要流量控制,進行不可靠傳輸。

如何查看電腦是否有奇怪程序在運行:可使用命令:netstat -n || netstat -nb(將應用的名稱打印出來)

05、 傳輸層概述


netstat -n

05、 傳輸層概述


netstat -nb

可通過命令taskkill /pid 端口號 /f 關閉進程

傳輸層協議與應用層協議的關係

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

  • 常見的應用層協議使用的端口:
    http:TCP+80
    https:TCP+443
    DNS:一般使用UDP+53
    RDP:TCP+3389
    FTP:TCP+21
    共享文件夾:TCP+445
    SMTP:TCP+25
    POP3: TCP+110
    telnet:TCP+23

服務和應用層協議之間的關係

05、 傳輸層概述

服務使用TCP/UDP的端口監聽客戶端請求,客戶端使用IP地址定位服務器,使用目標端口定位服務器上的服務。可以在網卡上設置只開放必要的端口,實現服務器網絡安全。

如何查看服務監聽的端口

  • netstat -n 查看建立的會話
  • netstat -nb 查看建立會話的進程
  • telnet <port> 測試遠程計算機端口是否打開/<port>
  • 掃描工具SSPort
05、 傳輸層概述

如何更改服務使用的默認端口

可以通過修改註冊表,來達到目的。可以迷惑入侵者,是系統更加全。

05、 傳輸層概述

如何設置Windows網絡安全

防火牆設置

UDP

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

TCP

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

TCP報文段的首部格式

05、 傳輸層概述

  • 序號:provider給consumer發送的時候,告訴consumer我這段數據包是第幾段數據
  • 確認號:consumer回傳時,告訴provider下次發送給我傳那一段數據(序號)
  • 數據偏移:告訴計算機,TCP報文的首部有多長,首部之後的都是數據
  • URG:如果標記為1,則數據包傳送時不排隊。優先級高
  • PSH:如果標記為1,那麼接收方優先處理這個數據
  • ACK:如果是0,確認號無效。如果是1,確認號有效
  • RST:如果為1,則說明TCP會話出現了嚴重錯誤,必須釋放鏈接
  • FIN:如果為1,表示正常釋放連接,會話結束
  • SYN:如果是1,會話建立同步關係,如果對方也響應SYN,則會話建立成功。之後SYN=0 。一般用於第一次請求。 有一種針對SYN的攻擊,就是發送大量的請求,但是源IP為錯誤地址,那麼被攻擊者建立連接後一直得不到響應,就等在那裡,消耗大量資源,最終癱瘓。
05、 傳輸層概述


攻擊者

05、 傳輸層概述


被SYN攻擊

05、 傳輸層概述


被Land攻擊

TCP協議如何實現可靠傳輸

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

  • 窗口滑動機制(連續ARQ協議)
05、 傳輸層概述

05、 傳輸層概述

  • 累計確認機制:假設連續傳輸了三個數據包,那麼由第三個數據包給發送方發消息說我收到了前三個數據包。假設第三個數據包傳輸失敗,第四個上傳成功了,那麼由第二個數據包傳消息給發送方說我收到了前兩個數據包,那麼發送方重傳第三個和第四個數據包。
05、 傳輸層概述

  • 以字節為單位的滑動窗口技術

A的發送窗口是由B的接受窗口長度決定的。在沒有收到B確認收到之前,A不能刪掉滑動窗口內的內容。A可以持續給B發送,直到A的滑動窗口內數據都發了。

05、 傳輸層概述

B收到後給A發確認收到的反饋ACK,序號是下一個應該發送的字節的序號,A收到後,就可以滑動窗口到對應的位置。例如B反饋ACK是7,那麼A的滑窗可以移動到7位置,1-6刪除。21-26可以發送。

05、 傳輸層概述

B收到1-6之後,也開始滑窗,B的應用程序可以讀取1-6的數據。B的滑窗繼續接收。

05、 傳輸層概述

以上是正常狀態下的情況。如果出現丟失情況,例如7-9丟失,此時B反饋的ACK=7.因為10-12收到了,因此B發送SACK(選擇性確認),A只發送7-9.

05、 傳輸層概述

  • 超時重傳時間的確定

這個公式的目的是根據網速和帶寬的實時情況調整往返時間。

TCP協議如何實現流量控制

解決通信兩端處理時間不一樣的問題。通過實時調整滑窗尺寸的大小(尺寸甚至可以是0)來實現流量控制。接收端主動調整滑窗大小,發送端根據接收端發送的報文調整相應的滑窗。發送端也會定時發送報文向接收端確認滑窗信息,避免接收端發送的相關調整滑窗大小的報文丟失帶來的影響。

TCP協議如何避免網絡擁塞

(1)出現資源擁塞的條件:對資源需求的總和>可用資源。(2)擁塞控制是一個全局性的過程,涉及到所有的主機,所有的路由區,以及與降低網絡傳輸性能有關的所有因素。(3)流量控制往往指在給定的發送端和接收端之間的點對點通信量的控制,它所要做的就是抑制發送端發送數據的速率,以便使接收端來得及接收。

擁塞控制起到的作用

紅線和綠線之間是數據丟失內容。

05、 傳輸層概述

慢開始和擁塞避免

(1)發送方維持 擁塞窗口cwnd(congestion window)(2)發送方控制擁塞窗口的原則是:只要網絡沒有出現擁塞,擁塞窗口就再增大一些,以便把更多的分組發送出去;只要網絡出現擁塞,擁塞窗口就減少一些,以減少注入到網絡中的分組數。(3)慢開始算法的原理

05、 傳輸層概述

(4)設置慢開始門限狀態變量ssthresh慢開始門限狀態變量ssthresh的用法如下:當cwnd<ssthresh>ssthresh時,停止使用慢開始算法,改用擁塞避免算法;當cwnd=ssthresh時,使用慢開始算法或擁塞避免算法均可;(5)擁塞避免算法的思路讓擁塞窗口cwnd緩慢地增大,即每經過一個往返時間RTT就把發送方的擁塞窗口cwnd加1,而不是加倍,使擁塞窗口cwnd按線性規律緩慢增長。(6)當網絡出現擁塞時對策無論是在慢開始階段還是在擁塞避免階段,只要發送方判斷網絡出現擁塞(其根據就是沒有按時收到確認),就要把慢開始門限ssthresh設置為出現擁塞時的發送方窗口值的一半(但是不能小於2)。然後把擁塞窗口cwnd重新設置為1,執行慢開始算法。這樣做的目的就是要迅速減少主機發送到網絡中的分組數,使得發生擁塞的路由器有足夠的時間吧隊列中積壓的分組處理完畢。(7)慢開始和擁塞避免算法的實現舉例/<ssthresh>

05、 傳輸層概述

->擁塞避免並非指完全能夠避免擁塞。利用以上的措施要完全避免網絡擁塞還是不可能的。->擁塞避免是說在擁塞避免階段吧擁塞避免窗口控制為按線性規律增長,使網絡比較不容易出現擁塞。

快重傳和快恢復

快重傳算法首先要求接收方每收到一個失序的報文段後就立即發出重複確認,這樣做可以讓發送方及早知道有報文段沒有到達接收方。當發送端收到連續三個重複的確認時,就執行“乘法減少”算法,即把慢開始門限ssthresh減半,但擁塞窗口cwnd現在不設置為1,而是設置為慢開始門限ssthresh減半後的數值,然後開始執行擁塞避免算法(“加法增大”),使擁塞窗口緩慢地線性增大。

05、 傳輸層概述

發送窗口的實際上限制

取接收方窗口和 擁塞窗口 這兩個變量中的較小值。發送窗口的上限制 = min {rwnd, cwnd}.

TCP傳輸連接管理

05、 傳輸層概述

三次握手

05、 傳輸層概述

05、 傳輸層概述

05、 傳輸層概述

四次揮手

05、 傳輸層概述


05、 傳輸層概述


05、 傳輸層概述


05、 傳輸層概述


05、 傳輸層概述

參考文獻:

https://blog.csdn.net/iwanderu/article/details/103812974

https://www.bilibili.com/video/av9876107?p=70


分享到:


相關文章: