運輸層的作用
運輸層向它上面的應用層提供通信服務(提供端到端,進程到進程的可靠通信),為運行在不同 host 上的進程提供邏輯通信,向高層用戶屏蔽通信子網(wǎng)的細節(jié)
2.UDP 和 TCP 的特點,及使用它們的應用程序,熟知端口號
UDP 和 TCP 的特點:
UDP
支持單播、多播、廣播
無連接,不可靠
可以任何速率發(fā)送數(shù)據(jù)
TCP
僅單播,不支持多播、廣播
面向連接,可靠按序
流量控制(發(fā)送速率不超過接收方的接收能力)
擁塞控制(網(wǎng)絡過載時限制發(fā)送方的發(fā)送速率)
及使用它們的應用程序:
熟知端口號:
3.UDP:首部格式,檢驗和
首部格式:
檢驗和:
發(fā)送端:
先設(shè)置檢驗和字段為 0
每兩個字節(jié)為一組,進位累加求和,多出的加到最后一位
把求和結(jié)果求反,求反即轉(zhuǎn)換成 2 進制后,0 變 1,1 變 0
把計算結(jié)果放入檢驗和字段
接收端
把每 2 個字節(jié)為一組,進位累加求和
把求和結(jié)果求反:為 0 即未檢驗出差錯(不排除沒檢測出來的錯誤)
4.TCP 的首部格式(端口號,序號,確認號,窗口,首部長度,檢驗和,6 個標志位)
端口號:各占 2 個字節(jié)
當訪問百度時,源端口使用客戶端系統(tǒng)隨機分配的端口號,目的端口是使用熟知端口號 80
序號:占 4 個字節(jié)。序號范圍是【0~2^32-1】,循環(huán)使用
確認號:占 4 個字節(jié),是期望收到對方下一個報文段的第一個數(shù)據(jù)字節(jié)的序號。若確認號為 N,則代表:序號 N-1 為止的所有數(shù)據(jù)都已正確收到
窗口:占 2 個字節(jié)。窗口值是【0~2^16-1】之間的整數(shù)。窗口指的是發(fā)送本報文段的一方的接收窗口。窗口值告訴對方:從本報文段首部中的確認號算起,接收方目前允許對方發(fā)送的數(shù)據(jù)量。窗口值作為接收方讓發(fā)送方設(shè)置其發(fā)送窗口的依據(jù)。
窗口字段明確指出了現(xiàn)在允許對方發(fā)送的數(shù)據(jù)量。窗口值經(jīng)常在動態(tài)變化著
首部長度:占 4 位,也叫數(shù)據(jù)偏移,最小 20,最大 60
檢驗和:占 2 位,檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)兩部分
6 個標志位:
緊急 URG:當 URG=1 時,表明緊急指針字段有效。緊急指針:指出在本報文段中緊急數(shù)據(jù)共有多少個字節(jié)(緊急數(shù)據(jù)放在本報文段數(shù)據(jù)的最前面)
確認 ACK:只有當 ACK=1 時確認號字段才有效
推送 PSH:接收方 TCP 收到 PSH=1 的報文段,就盡快地交付接收應用進程,而不再等到整個緩存都填滿了后再向上交付
復位 RST:當 RST=1 時,表明 TCP 連接中出現(xiàn)嚴重差錯,重新建立運輸連接
同步 SYN:同步 SYN=1 表示這是一個連接請求或連接接受報文
終止 FIN:FIN=1 表明發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運輸連接
5.TCP 的可靠傳輸:超時重傳機制,TCP 流量控制(序號,確認號,確認標志位,窗口,死鎖問題與持續(xù)計時器),發(fā)送緩存和接受緩存的作用,捎帶確認與累積確認
超時重傳機制:
超時計時器時間 RTO:RTO=RTTs+4*RTTD
測量多個 sampleRTT 求平均值,形成 RTT 的估計值 RTTs:
RTTs=(1-α) * RTTS+α * SampleRTT 典型值α=1/8
測量 RTT 的變化值:RTTs 與 SampleRTT 的差值:
RTTd=(1-β) * RTTD+β * |RTTs-SampleRTT| 典型值:β=1/4
TCP 流量控制(序號,確認號,確認標志位,窗口,死鎖問題與持續(xù)計時器) :
序號:發(fā)送窗口里面的序號表示允許發(fā)送的序號
確認號:表明主機期望收到的下一個序號,而上一個序號位置的數(shù)據(jù)已經(jīng)收到了
確認標志位:
窗口:窗口指的是發(fā)送本報文段的一方的接收窗口;發(fā)送窗口表示:在沒有收到 B 的確認的情況下,A 可以連續(xù)把窗口內(nèi)的數(shù)據(jù)都發(fā)送出去。
死鎖問題:發(fā)送方等待接收方通知窗口大小,接收方等待發(fā)送方發(fā)送數(shù)據(jù)
持續(xù)計時器:當發(fā)送方收到接收方的零窗口通知,啟動持續(xù)計時器。若持續(xù)計時器到期,就發(fā)送一個零窗口探測報文段
接收方發(fā)送的確認報文段中:
若窗口仍是零,則重置持續(xù)計時器
若窗口不是零,則死鎖打開
發(fā)送緩存和接受緩存的作用:
發(fā)送方應用進程把數(shù)據(jù)發(fā)送到 TCP 的發(fā)送緩存;發(fā)送緩存暫時存放:1 準備發(fā)送的數(shù)據(jù);2 已發(fā)送未確定的數(shù)據(jù)
接收方應用進程從 TCP 的接收緩存中讀取字節(jié)流;接收緩存暫時存放:1 已收到但尚未提交的數(shù)據(jù);2 失序的數(shù)據(jù)
捎帶確認與累積確認:
累積確認:即不必對收到的分組逐個發(fā)送確認,而是對按序到達的最后一個分組發(fā)送確認,這樣就表示:到這個分組位置的所有分組都已正確收到了
捎帶確認:當一個數(shù)據(jù)幀到達的時候后,接收方并不是立即發(fā)送一個單獨的控制幀,而是抑制一下自己并且開始等待,知道網(wǎng)絡層傳遞給他下一個分組,然后,確認信息被附在往外發(fā)送的數(shù)據(jù)幀中(使用幀頭中的 ack 域)。實際上,確認報文搭了下一個外發(fā)數(shù)據(jù)幀的便車。
6.TCP 的擁塞控制:網(wǎng)絡擁塞的判斷,傳輸輪次與擁塞窗口大小的關(guān)系(慢開始與擁塞避免,門限 ssthresh,重傳計時器超時與三個重復 ACK)
網(wǎng)絡擁塞的判斷:重傳定時器超時
*** 傳輸輪次與擁塞窗口大小的關(guān)系(慢開始與擁塞避免,門限 ssthresh,重傳計時器超時與三個重復 ACK)***:
慢開始:每經(jīng)過一個 RTT,cwnd 翻倍
擁塞避免:每經(jīng)過一個 RTT,cwnd 加一
慢開始門限 ssthresh:當 cwnd = ssthresh 時由指數(shù)增長切換為線性增長;ssthresh=24 時,重傳計時器超時,發(fā)送方判斷為網(wǎng)絡擁塞。調(diào)整 ssthresh=cwnd/2,擁塞窗口 cwnd=1,執(zhí)行慢開始
7.TCP 連接:TCP 的套接字,三次握手建立 TCP 連接,四次握手釋放 TCP 連接
TCP 的套接字:就是對網(wǎng)絡中不同主機上的應用進程之間進行雙向通信的端點的抽象。一個套接字就是網(wǎng)絡上進程通信的一端,提供了應用層進程利用網(wǎng)絡協(xié)議交換數(shù)據(jù)的機制
三次握手建立 TCP 連接:
剛開始客戶端 A 和服務端 B 都是關(guān)閉的
B 的 TCP 服務器進程被動打開,準備接受客戶進程的連接請求
A 主動打開,A 向 B 發(fā)出 SYN 報文段,選擇初始序號,不攜帶數(shù)據(jù)。SYN=1,SEQ=X
B 收到 SYN 報文段,發(fā)回 ACK 報文段,選擇初始序號,分配緩存,不攜帶數(shù)據(jù)。SYN=1.ACK=1.SEQ=Y,ack=x+1
A 向 B 發(fā)送 SYN+ACK 報文段,可攜帶數(shù)據(jù)。通知上層應用進程:TCP 連接已建立。
B 通知其上層應用進程 TCP 連接已經(jīng)建立。
四次握手釋放 TCP 連接:
客戶端 A 主動關(guān)閉。A 向 B 發(fā)出 FIN 報文段,并停止發(fā)送是數(shù)據(jù)。FIN=1,seq=u
B 通知應用進程。B 收到 FIN 報文段,回復 ACK 報文段。TCP 連接處于半關(guān)閉狀態(tài):B 仍可發(fā)送數(shù)據(jù)。ACK=1,seq=v,ack=u+1
B 被動關(guān)閉。若 B 已經(jīng)沒有要向 A 發(fā)送的數(shù)據(jù),向 A 發(fā)送 FIN 報文段。FIN=1,ACK=1,seq=w,ack=u+1
A 收到 FIN 報文段后,必須發(fā)出 ACK 報文段。ACK=1,seq=u+1,ack=w+1
B 收到 ACK 報文段后,TCP 連接關(guān)閉。
客服QQ1:63355785 客服QQ2:61303373 客服QQ3:67399965 客服QQ4:2656068273 產(chǎn)品分類地圖
版權(quán)所有:保定市禾邦電子有限公司 保定市禾邦電子有限公司營業(yè)執(zhí)照 備案號:冀ICP備12019441號-1
關(guān)鍵字:保定電子元器件 保定電子元件 電子元器件 電子元件