???章節(jié)匯總?
一、第一章——計(jì)算機(jī)網(wǎng)絡(luò)概述
二、第二章——物理層
三、第三章——數(shù)據(jù)鏈路層
四、第四章——網(wǎng)絡(luò)層
五、第五章——運(yùn)輸層
六、第六章——應(yīng)用層
目錄
五、第五章——運(yùn)輸層
1、運(yùn)輸層概述
2、運(yùn)輸層端口號(hào)、復(fù)用、分用
(1)熟知端口號(hào)、登記端口號(hào)、短暫端口號(hào)
(2)熟知端口號(hào)
(3)發(fā)送方復(fù)用、接收方分用
3、UDP與TCP對(duì)比
(1)UDP
(2)為什么TCP面向字節(jié)流、UDP面向報(bào)文?
4、TCP各種機(jī)制
(1)TCP——流量控制
(2)擁塞控制
(2)擁塞控制 ——慢開始 & 擁塞避免
(2)擁塞控制 ——快重傳 & 快恢復(fù)
(2)擁塞控制 ——總結(jié)
(3)TCP——超時(shí)重傳
(4)TCP——可靠傳輸
(5)TCP——連接建立(※)
(6)TCP——連接釋放(※)
(7)TCP——首部格式
(8)TCP——首部格式——端口、序號(hào)、確認(rèn)號(hào)
(9)TCP——首部格式——數(shù)據(jù)偏移、保留、窗口
(10)TCP——首部格式——標(biāo)志位、緊急指針
(11)TCP——首部格式——校驗(yàn)和、填充、選項(xiàng)
五、第五章——運(yùn)輸層
1、運(yùn)輸層概述
網(wǎng)絡(luò)層實(shí)現(xiàn)了主機(jī)與主機(jī)
運(yùn)輸層實(shí)現(xiàn)端口到端口(進(jìn)程與進(jìn)程)
運(yùn)輸層協(xié)議 = 端到端協(xié)議
2、運(yùn)輸層端口號(hào)、復(fù)用、分用
(1)熟知端口號(hào)、登記端口號(hào)、短暫端口號(hào)
注意:端口號(hào)的范圍——0~65535
端口號(hào)是用于標(biāo)識(shí)應(yīng)用程序或服務(wù)的通信端口。它是一個(gè)16位的數(shù)字,范圍從0到65535。
0到1023是熟知端口號(hào)(Well-known Ports),
1024到49151是登記端口號(hào)(Registered Ports),
49152到65535是短暫端口號(hào)(Dynamic or Private Ports)。
熟知端口號(hào)是廣泛使用和標(biāo)準(zhǔn)化的一些常用端口號(hào),由IANA指定。
登記端口號(hào)是由IANA進(jìn)行登記但沒有被廣泛使用或標(biāo)準(zhǔn)化的一些端口號(hào),范圍在1024到49151之間。
短暫端口號(hào)是臨時(shí)分配給客戶端的端口號(hào),范圍在49152到65535之間。
(2)熟知端口號(hào)
(3)發(fā)送方復(fù)用、接收方分用
發(fā)送方復(fù)用(Sender Multiplexing)和接收方分用(Receiver Demultiplexing)是指通過端口號(hào)來(lái)將多個(gè)應(yīng)用程序的數(shù)據(jù)進(jìn)行區(qū)分和傳輸?shù)倪^程。
發(fā)送方復(fù)用是指發(fā)送方的運(yùn)輸層將來(lái)自不同應(yīng)用程序的數(shù)據(jù)進(jìn)行合并,并使用源端口號(hào)將這些數(shù)據(jù)分配給不同的傳輸連接。每個(gè)傳輸連接都與一個(gè)唯一的目標(biāo)端口號(hào)相關(guān)聯(lián),這樣在接收端可以根據(jù)目標(biāo)端口號(hào)將數(shù)據(jù)正確地交付給對(duì)應(yīng)的應(yīng)用程序。
接收方分用是指接收方的運(yùn)輸層根據(jù)目標(biāo)端口號(hào)將到達(dá)的數(shù)據(jù)進(jìn)行分發(fā),確保這些數(shù)據(jù)被正確地交付給相應(yīng)的應(yīng)用程序。接收方依靠目標(biāo)端口號(hào)來(lái)識(shí)別傳輸連接,并將數(shù)據(jù)傳遞給相應(yīng)的應(yīng)用程序,從而實(shí)現(xiàn)數(shù)據(jù)的分發(fā)和傳輸。
通過發(fā)送方復(fù)用和接收方分用,不同應(yīng)用程序的數(shù)據(jù)可以共享同一個(gè)網(wǎng)絡(luò)連接,并通過運(yùn)輸層使用端口號(hào)進(jìn)行區(qū)分和傳輸。
這種復(fù)用和分用的機(jī)制有效地提高了網(wǎng)絡(luò)資源的利用率和通信效率。
3、UDP與TCP對(duì)比
注意:TCP面向字節(jié)流、UDP面向報(bào)文
特性 |
TCP |
UDP |
連接性 |
面向連接 |
無(wú)連接 |
可靠性 |
提供可靠的數(shù)據(jù)傳輸 |
不保證可靠性 |
傳輸順序 |
保證數(shù)據(jù)按照發(fā)送順序進(jìn)行傳輸 |
不保證數(shù)據(jù)按照發(fā)送順序進(jìn)行傳輸 |
消息邊界 |
無(wú)消息邊界,數(shù)據(jù)流進(jìn)行分段和重組 |
有消息邊界,保持消息的完整性 |
開銷 |
較大的開銷,提供錯(cuò)誤檢測(cè)、重傳和流量控制機(jī)制 |
較小的開銷,不提供錯(cuò)誤檢測(cè)和重傳機(jī)制 |
(1)UDP
UDP是一個(gè)無(wú)連接協(xié)議,傳輸數(shù)據(jù)之前源端和終端不建立連接,當(dāng)它想傳送時(shí)就簡(jiǎn)單地去抓取來(lái)自應(yīng)用程序的數(shù)據(jù),并盡可能快地把它扔到網(wǎng)絡(luò)上。在發(fā)送端,UDP傳送數(shù)據(jù)的速度僅僅是受應(yīng)用程序生成數(shù)據(jù)的速度、計(jì)算機(jī)的能力和傳輸帶寬的限制;在接收端,UDP把每個(gè)消息段放在隊(duì)列中,應(yīng)用程序每次從隊(duì)列中讀一個(gè)消息段。
(2)為什么TCP面向字節(jié)流、UDP面向報(bào)文?
TCP 面向字節(jié)流:
TCP 將數(shù)據(jù)視為字節(jié)流,發(fā)送端將連續(xù)的字節(jié)流分成合適的大?。ǜ鶕?jù)網(wǎng)絡(luò)狀況動(dòng)態(tài)調(diào)整)進(jìn)行發(fā)送,接收端再將其按照相同的字節(jié)順序重組成原始數(shù)據(jù)。
發(fā)送的字節(jié)流被切割成多個(gè) TCP 分段(Segment),每個(gè)分段都有序號(hào),以便接收端可以按正確的順序重組。TCP 在傳輸過程中會(huì)提供流量控制、擁塞控制和丟失重傳等機(jī)制,確保數(shù)據(jù)可靠地到達(dá)。由于 TCP 的可靠性保證,它能夠提供一個(gè)高層次的抽象,將應(yīng)用程序的數(shù)據(jù)傳輸看作一個(gè)連續(xù)的字節(jié)流。
UDP 面向報(bào)文:
UDP 則將數(shù)據(jù)視為報(bào)文,每個(gè) UDP 分組(Datagram)都是一個(gè)獨(dú)立的消息單元,具有自己的頭部和標(biāo)識(shí)信息。
UDP 不對(duì)數(shù)據(jù)進(jìn)行切割或重新組裝,發(fā)送方的每個(gè)報(bào)文都作為一個(gè)獨(dú)立的實(shí)體發(fā)送給接收方。每個(gè)報(bào)文都有自己的標(biāo)識(shí)信息,接收方根據(jù)報(bào)文的邊界來(lái)區(qū)分不同的報(bào)文。
由于 UDP 不提供可靠性保證,發(fā)送的報(bào)文可能會(huì)丟失、重復(fù)或亂序到達(dá)。應(yīng)用程序需要自己處理這些問題,因此 UDP 提供了一個(gè)更加輕量級(jí)和低開銷的傳輸機(jī)制。
總結(jié):
TCP 是面向字節(jié)流的協(xié)議,它提供可靠的、有序的、基于連接的數(shù)據(jù)傳輸。
UDP 是面向報(bào)文的協(xié)議,它提供簡(jiǎn)單的、無(wú)連接的、不可靠的數(shù)據(jù)傳輸。
TCP 的面向字節(jié)流特性使其適合于需要可靠性和順序性的應(yīng)用,
?UDP 的面向報(bào)文特性使其適合于快速傳輸和對(duì)實(shí)時(shí)性要求較高的應(yīng)用。
報(bào)文:就是獨(dú)立的數(shù)據(jù)單元(所以丟了也問題不大)
字節(jié)流:就是連續(xù)的數(shù)據(jù),相互是需要拼接的(所以要保障可靠性)
4、TCP各種機(jī)制
(1)TCP——流量控制
不太發(fā)送太快,速度要一致!??!
1、建立連接:主機(jī)告訴服務(wù)器,自己的窗口大小(服務(wù)器就會(huì)調(diào)整自己的流量窗口,和目的主機(jī)同步)
2、當(dāng)窗口中的數(shù)據(jù)包發(fā)送后,就開始計(jì)時(shí),如果一直到超時(shí),都沒有得到ACK確認(rèn),就重發(fā)!
3、服務(wù)器當(dāng)?shù)玫紸CK確認(rèn)后,就可以根據(jù)相關(guān)信息,移動(dòng)和調(diào)整窗口,繼續(xù)發(fā)數(shù)據(jù)
1、當(dāng)主機(jī)窗口為0時(shí),服務(wù)器會(huì)開啟(0窗口計(jì)時(shí)器)
2、持續(xù)發(fā)送探測(cè)報(bào)文,以此等待主機(jī)有空閑窗口,進(jìn)行接收信息
3、期間,如果報(bào)文如果有丟失,就會(huì)進(jìn)入死鎖局面
4、在TCP中,當(dāng)出現(xiàn)網(wǎng)絡(luò)丟包或連接中斷情況時(shí),并不會(huì)直接導(dǎo)致死鎖局面。TCP具有超時(shí)重傳機(jī)制和連接恢復(fù)機(jī)制,可以通過重發(fā)數(shù)據(jù)、重新建立連接等措施來(lái)處理異常情況。
習(xí)題
(2)擁塞控制
慢開始、擁塞避免、快重傳、快恢復(fù)
(2)擁塞控制 ——慢開始 & 擁塞避免
通過(慢開始 & 擁塞避免)算法,讓發(fā)送數(shù)據(jù)的量維持在一定的值?。?!
cwnd:可發(fā)送一次性報(bào)文段的個(gè)數(shù)
swnd:發(fā)送窗口
ssthresh:慢開始門限閾值
這兩個(gè)算法——容易讓傳輸效率降低??!(具體原因看下圖)
(2)擁塞控制 ——快重傳 & 快恢復(fù)
快重傳:報(bào)文段丟失了,就讓對(duì)方快速告訴我(連續(xù)喊我3次,那么我就信了,就重傳)
不會(huì)因?yàn)閳?bào)文段的丟失,傻傻的等著超時(shí)再重傳,而導(dǎo)致后面?zhèn)鬏數(shù)臄?shù)據(jù)都失效!
(其實(shí),就是兩者約定好,當(dāng)發(fā)生了這種情況該怎么做)協(xié)議就是這樣滴~
快恢復(fù):不是像擁塞避免那樣,直接把發(fā)送窗口的值置為1(太der了)
(2)擁塞控制 ——總結(jié)
慢開始:發(fā)送數(shù)據(jù)的段數(shù),從1開始,當(dāng)段數(shù)小于【門限閾值】時(shí),段數(shù)為指數(shù)上升
擁塞避免:當(dāng)段數(shù)大于【門限閾值】時(shí),段數(shù)逐步+1
注意:當(dāng)發(fā)生了【超時(shí)重傳】時(shí),將會(huì)把發(fā)送窗口大小設(shè)為1
快重傳:當(dāng)發(fā)生【個(gè)別報(bào)文段】丟失時(shí)(不是通道擁塞,超時(shí)造成的),由接受方喊3次,然后重傳
快恢復(fù):當(dāng)出現(xiàn)【個(gè)別掉點(diǎn)】時(shí),就讓【發(fā)送窗口大小】和【門限閾值】設(shè)置為【當(dāng)前發(fā)送窗口大小的一半】——以此實(shí)現(xiàn)快恢復(fù)(與超時(shí)重傳情況下不同喲?。?/span>
習(xí)題:
?慢開始(Slow Start):
- 在 TCP 建立連接后,發(fā)送方會(huì)將發(fā)送窗口大小初始化為一個(gè)較小的值。
- 發(fā)送方起初以指數(shù)級(jí)別遞增發(fā)送段的數(shù)量,即每次窗口大小翻倍,因此稱為慢開始。
- 當(dāng)達(dá)到一個(gè)門限閾值(通常由擁塞窗口大小決定)時(shí),發(fā)送方會(huì)進(jìn)入擁塞避免階段。
擁塞避免(Congestion Avoidance):
- 在擁塞避免階段,發(fā)送方每經(jīng)過一個(gè)往返時(shí)間就將擁塞窗口(發(fā)送窗口大?。┘?,使得發(fā)送段的數(shù)量逐漸增加
- 通過逐漸增加發(fā)送段的數(shù)量來(lái)控制發(fā)送速率,以避免網(wǎng)絡(luò)擁塞。
超時(shí)重傳(Timeout Retransmission):
- 如果發(fā)送方在一定時(shí)間內(nèi)未收到接收方的確認(rèn) ACK,就會(huì)認(rèn)為有段丟失或網(wǎng)絡(luò)狀況不佳,觸發(fā)超時(shí)重傳機(jī)制。
- 在超時(shí)重傳時(shí),將發(fā)送窗口大小設(shè)置為1,重新發(fā)送丟失的數(shù)據(jù)段。
快重傳(Fast Retransmit):
- 當(dāng)接收方接收到亂序的報(bào)文段,但后續(xù)的報(bào)文段已經(jīng)到達(dá)時(shí),會(huì)立即向發(fā)送方發(fā)送重復(fù)的 ACK 確認(rèn)。
- 當(dāng)發(fā)送方連續(xù)收到3個(gè)相同的確認(rèn) ACK 時(shí),會(huì)立即重傳下一個(gè)未收到確認(rèn)的報(bào)文段,而無(wú)需等待超時(shí)。
快恢復(fù)(Fast Recovery):
- 當(dāng)發(fā)送方收到快重傳的確認(rèn) ACK 后,會(huì)將擁塞窗口大小設(shè)置為當(dāng)前發(fā)送窗口大小的一半,并進(jìn)行擁塞避免。
- 這樣可以快速恢復(fù)發(fā)送方的發(fā)送速率,而不需要執(zhí)行慢開始的過程。
流量控制(Flow Control):
- TCP 使用滑動(dòng)窗口機(jī)制來(lái)進(jìn)行流量控制,確保發(fā)送方不會(huì)淹沒接收方。
- 接收方通過發(fā)送窗口大小告知發(fā)送方自己的可接收能力,發(fā)送方會(huì)根據(jù)接收窗口大小來(lái)控制發(fā)送速率。
(3)TCP——超時(shí)重傳
超時(shí)重傳時(shí)間的選擇是TCP最復(fù)雜的問題之一
超時(shí)閾值太小(容易超時(shí))、太大(空閑時(shí)間較大,傳輸效率降低)
超時(shí)重傳時(shí)間(計(jì)算公式采用——加權(quán)平均)——在每一次成功傳輸后
但是!難以正確計(jì)算【超時(shí)重傳時(shí)間】(具體情況,看下圖)
Karn算法:
既然你重傳后,無(wú)法正確計(jì)算【往返時(shí)間】,那么我就不管【重傳這一情況】。
弊端:如果網(wǎng)絡(luò)環(huán)境一直保持擁塞,就會(huì)一直導(dǎo)致重傳(因?yàn)槟銢]有考慮重傳的計(jì)算,就不會(huì)修改超時(shí)時(shí)間閾值)
修正:重傳后,把RTO增大一些
模擬練習(xí) (這個(gè)公式有點(diǎn)難記,忘記了,可以再去看看視頻結(jié)尾)
5.6 TCP超時(shí)重傳時(shí)間的選擇_嗶哩嗶哩_bilibili
公式
(4)TCP——可靠傳輸
字節(jié)為單位——滑動(dòng)窗口
利用三個(gè)指針——我們可以確認(rèn)很多東西(窗口大小,已發(fā)送數(shù)據(jù),未發(fā)送數(shù)據(jù))
注意事項(xiàng)?。?!
雙方窗口可能不一樣大、全雙工、數(shù)據(jù)如何處理、如何確認(rèn)收到?
習(xí)題
?
(5)TCP——連接建立(※)
不能用兩報(bào)文握手(畢竟,相當(dāng)于你主機(jī)發(fā)送一個(gè)建立連接,服務(wù)器就會(huì)進(jìn)入連接狀態(tài))
這是非常不好滴(對(duì)服務(wù)器來(lái)說(shuō),太容易被惡搞了)
雖然對(duì)于這個(gè)三報(bào)文握手,仍有SYN洪水和ACK洪水,但是總比兩報(bào)文要好一點(diǎn)點(diǎn)
seq:隨機(jī)的值
通過三次握手的過程,雙方確認(rèn)了對(duì)方的能力與意愿建立連接,并確保了初始序列號(hào)的一致性。這有助于避免惡意主機(jī)的濫用和預(yù)防網(wǎng)絡(luò)中的重復(fù)連接。
盡管三次握手不能完全消除洪水攻擊的風(fēng)險(xiǎn),但它是確保連接可靠性和安全性的基本機(jī)制。
在實(shí)際應(yīng)用中,還可以采取其他安全措施,如防火墻、入侵檢測(cè)系統(tǒng)(IDS)、反洪水限制等來(lái)進(jìn)一步增強(qiáng)網(wǎng)絡(luò)的安全性和可靠性。
(6)TCP——連接釋放(※)
四次揮手
當(dāng)主機(jī)故障后,服務(wù)器如何判別?
每隔一段時(shí)間,就發(fā)送一個(gè)【探測(cè)報(bào)文】,如果連續(xù)10次無(wú)響應(yīng),就自動(dòng)斷開連接!
(7)TCP——首部格式
?
這里可以和IP數(shù)據(jù)報(bào)、數(shù)據(jù)幀;進(jìn)行對(duì)比記憶(源IP/MAC地址和目的IP/MAC地址)
源端口、目的端口
序號(hào)、確認(rèn)號(hào)、確認(rèn)標(biāo)志位ACK
重點(diǎn)?。。。ㄇf(wàn)別被搞混了)
認(rèn)真看看下面的圖!(客戶和服務(wù)器發(fā)送的信息)
我已經(jīng)寫上了每一個(gè)數(shù)據(jù)的意義!(這兩個(gè)是在相互交流的喲?。。。?/span>
(8)TCP——首部格式——端口、序號(hào)、確認(rèn)號(hào)
(9)TCP——首部格式——數(shù)據(jù)偏移、保留、窗口
注意:偏移量(重點(diǎn)!?。。┐翱冢ㄓ脕?lái)流量控制的?。?/span>?
(10)TCP——首部格式——標(biāo)志位、緊急指針
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-682318.html
(11)TCP——首部格式——校驗(yàn)和、填充、選項(xiàng)
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-682318.html
到了這里,關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)-筆記-第五章-運(yùn)輸層的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!