首先確定下傳輸層的作用
01傳輸層基本功能
02TCP建立連接過(guò)程
?0201TCP序列號(hào)
03資源子網(wǎng)和通信子網(wǎng)
04?擁塞控制與流量控制
例子:
.在OSI參考模型中,自下而上第一個(gè)提供端到端服務(wù)的層次是 傳輸層
解析
傳輸層,傳輸層的是作用是負(fù)責(zé)為兩臺(tái)主機(jī)中應(yīng)用進(jìn)程之間的通信提供服務(wù),而對(duì)于網(wǎng)絡(luò)層來(lái)說(shuō),提供的是主機(jī)到主機(jī)之間的通信,所謂的端到端是指應(yīng)用進(jìn)程到應(yīng)用進(jìn)程。
02TCP建立連接過(guò)程
SYN(synchronous)是TCP/IP建立連接時(shí)使用的握手信號(hào)。在客戶機(jī)和服務(wù)器之間建立正常的TCP網(wǎng)絡(luò)連接時(shí),客戶機(jī)首先發(fā)出一個(gè)SYN消息,服務(wù)器使用SYN+ACK應(yīng)答表示接收到了這個(gè)消息,最后客戶機(jī)再以ACK消息響應(yīng)。這樣在客戶機(jī)和服務(wù)器之間才能建立起可靠的TCP連接,數(shù)據(jù)才可以在客戶機(jī)和服務(wù)器之間傳遞。
在第一次發(fā)送信息中,A隨機(jī)選取一個(gè)序列號(hào)x作為初始化序列號(hào)發(fā)送給B。
第二次B使用ack對(duì)A的數(shù)據(jù)報(bào)進(jìn)行確認(rèn),因?yàn)橐呀?jīng)收到了序列號(hào)為x的數(shù)據(jù)包,準(zhǔn)備接收序列號(hào)為x+1的包,所以ack=x+1,同時(shí)發(fā)送自己的初始化序列號(hào)seq=y
seq是數(shù)據(jù)報(bào)本身的序列號(hào);ack是期望對(duì)方繼續(xù)發(fā)送的那個(gè)數(shù)據(jù)包的序列號(hào)。
TCP連接的第一個(gè)包,非常小的一種數(shù)據(jù)包。SYN 攻擊包括大量此類的包,由于這些包看上去來(lái)自實(shí)際不存在的站點(diǎn),因此無(wú)法有效進(jìn)行處理。每個(gè)機(jī)器的欺騙包都要花幾秒鐘進(jìn)行嘗試方可放棄提供正常響應(yīng)。
如下圖所示,IP 地址在IP 數(shù)據(jù)報(bào)的首部,而硬件地址則放在MAC 幀的首部。在網(wǎng)絡(luò)層以上使用的是IP 地址,而鏈路層及以下使用的是硬件地址。
連接端點(diǎn)
TCP的連接端點(diǎn)稱為 套接字(socket),根據(jù)TCP協(xié)議的規(guī)定,端口號(hào)拼接到IP地址即構(gòu)成了套接字。
也就是說(shuō)TCP連接的端點(diǎn)不是主機(jī),不是IP不是應(yīng)用進(jìn)程,而是套接字。
套接字 socket = (IP地址:端口號(hào))
套接字 socket = (IP地址: 端口號(hào))
TCP 連接 ::= {socket1, socket2} = {(IP1: port1), (IP2: port2)}
Socket連接是一個(gè)五元組,包括協(xié)議類型,源IP,源端口,目標(biāo)地址和目標(biāo)端口
0201TCP序列號(hào)
TCP是面向字節(jié)流的,每一個(gè)字節(jié)對(duì)應(yīng)一個(gè)序列號(hào)。
TCP每次發(fā)送的報(bào)文段的首部中的序列號(hào)是該報(bào)文段的第一個(gè)字節(jié)的序號(hào)。
接收端返回的確認(rèn)號(hào)是收到數(shù)據(jù)的最高序號(hào)加1
一個(gè)?TCP報(bào)文段的數(shù)據(jù)部分最多是?
IP數(shù)據(jù)報(bào)的最大長(zhǎng)度=2^16-1=65535(字節(jié))
TCP報(bào)文段的數(shù)據(jù)部分=IP數(shù)據(jù)報(bào)的最大長(zhǎng)度-IP數(shù)據(jù)報(bào)的首部-TCP報(bào)文段的首部=65535-20-20=65495(字節(jié))
在IP 層抽象的互連網(wǎng)上,我們看到的只是IP 數(shù)據(jù)報(bào),路由器根據(jù)目的站的 IP地址進(jìn)行選路。在具體的物理網(wǎng)絡(luò)的鏈路層,我們看到的只是 MAC 幀,IP 數(shù)據(jù)報(bào)被封裝在 MAC幀里面。
MAC 幀在不同的網(wǎng)絡(luò)上傳送時(shí),其MAC 幀的首部是不同的。這種變化,在上面的IP 層上是看不到的。每個(gè)路由器都有IP 地址和硬件地址。使用IP 地址與硬件地址,盡管連接在一起的網(wǎng)絡(luò)的硬件地址體系各不相同,但 IP層抽象的互連網(wǎng)卻屏蔽了下層這些很復(fù)雜的細(xì)節(jié),并使我們能夠使用統(tǒng)一的、抽象的IP 地址進(jìn)行通信。
當(dāng)某個(gè)路由器發(fā)現(xiàn)一數(shù)據(jù)報(bào)的檢驗(yàn)和有差錯(cuò)時(shí),會(huì)直接丟棄。
03 資源子網(wǎng)與通信子網(wǎng)
網(wǎng)絡(luò)層 位于通信子網(wǎng)的最高層,實(shí)現(xiàn)網(wǎng)絡(luò)通信功能
傳輸層 位于資源子網(wǎng)的最低層,實(shí)現(xiàn)資源共享功能
思考
如何理解TCP/IP 協(xié)議本是為非實(shí)時(shí)數(shù)據(jù)業(yè)務(wù)而設(shè)計(jì)的
例:為什么在 TCP 首部中有一個(gè)首部長(zhǎng)度字段,而 UDP 的首部中就沒(méi)有這個(gè)字段?
答:這是TCP 與UDP 包的區(qū)別,TCP 包的首部字段可以更好的保證數(shù)據(jù)傳輸?shù)目煽堪踩鳸DP 就不能保證,所以UDP 比TCP 快,不間斷但是不可靠,例如QQ 視頻就是使用UDP,經(jīng)常出現(xiàn)人不動(dòng),就是這個(gè)原因
虛通信和實(shí)通信
虛電路
分組交換根據(jù)其通信子網(wǎng)向端點(diǎn)系統(tǒng)提供的服務(wù),還可以進(jìn)一步分為面向連接的虛電路方式和無(wú)連接的數(shù)據(jù)報(bào)方式。這兩種服務(wù)方式都由網(wǎng)絡(luò)層提供。
虛電路在發(fā)送方和接受方會(huì)建立一條邏輯上的連接,并不是一條真正的物理連接。
電路交換的電話通信是先建立一條真正的物理連接,因此分組交換的虛電路和電路交換的連接只是類似,并不完成一樣。
1 數(shù)據(jù)報(bào)服務(wù)發(fā)送分組前不需要建立連接
2 虛電路網(wǎng)絡(luò)中的每個(gè)結(jié)點(diǎn)上都維持一張?zhí)撾娐繁恚拿恳豁?xiàng)記錄了一個(gè)打開的虛電路的信息,包括在接受鏈路和發(fā)送鏈路的虛電路號(hào),前一結(jié)點(diǎn)和下一結(jié)點(diǎn)的標(biāo)識(shí)。
TCP確認(rèn)序列相關(guān)問(wèn)題
04擁塞控制與流量控制
關(guān)于擁塞上一張腦圖
發(fā)生擁塞控制的原因:資源(帶寬、交換節(jié)點(diǎn)的緩存、處理機(jī))的需求 > 可用資源。作用:擁塞控制就是為了防止過(guò)多的數(shù)據(jù)注入到網(wǎng)絡(luò)中,這樣可以使網(wǎng)絡(luò)中的路由器或者鏈路不至于過(guò)載。擁塞控制要做的都有一個(gè)前提:就是網(wǎng)絡(luò)能夠承受現(xiàn)有的網(wǎng)絡(luò)負(fù)荷。
對(duì)比流量控制:擁塞控制是一個(gè)全局的過(guò)程,涉及到所有的主機(jī)、路由器、以及降低網(wǎng)絡(luò)相關(guān)的所有因素。流量控制往往指點(diǎn)對(duì)點(diǎn)通信量的控制,是端對(duì)端的問(wèn)題。流量控制只關(guān)心發(fā)送方和接收方點(diǎn)對(duì)點(diǎn)的發(fā)送量。它的任務(wù)是處理發(fā)送能力大于接受能力。
網(wǎng)絡(luò)中存在太多的數(shù)據(jù)包,導(dǎo)致數(shù)據(jù)包被延遲和丟失,從而降低傳輸性能,這種情況稱為擁塞。網(wǎng)絡(luò)層和傳輸層共同承擔(dān)著處理?yè)砣呢?zé)任。
窗口
TCP連接的每一端都必須設(shè)有兩個(gè)窗口,一個(gè)發(fā)送窗口,一個(gè)接收端口。
TCP可靠傳輸機(jī)制用字節(jié)的序號(hào)進(jìn)行控制。TCP所有的確認(rèn)基于序號(hào)還不是基于報(bào)文。TCP 每發(fā)送一個(gè)報(bào)文段,就對(duì)這個(gè)報(bào)文段設(shè)置一次計(jì)時(shí)器。只要計(jì)時(shí)器設(shè)置的重傳時(shí)間到但還沒(méi)有收到確認(rèn),就要重傳這一報(bào)文段。TCP協(xié)議用于控制數(shù)據(jù)段是否需要重傳的依據(jù)是設(shè)立?重傳定時(shí)器。
保護(hù)數(shù)據(jù)不受主動(dòng)攻擊(數(shù)據(jù)的偽造和變動(dòng))的措施稱為報(bào)文認(rèn)證技術(shù)。
重傳ARQ滑動(dòng)窗口
自動(dòng)重傳請(qǐng)求(Automatic Repeat-reQuest,ARQ)是OSI模型中運(yùn)輸層的錯(cuò)誤糾正協(xié)議之一。它包括停止等待ARQ協(xié)議和連續(xù)ARQ協(xié)議,錯(cuò)誤偵測(cè)(Error Detection)、正面確認(rèn)(Positive Acknowledgment)、逾時(shí)重傳(Retransmission after Timeout)與負(fù)面確認(rèn)繼以重傳(Negative Acknowledgment and Retransmission)等。
重發(fā)定時(shí)器
TCP協(xié)議用于控制數(shù)據(jù)段是否需要重傳的依據(jù)是設(shè)立 ?重發(fā)定時(shí)器