可靠安全 -> 7層架構(gòu)
? ?數(shù)據(jù)鏈路層?
? ? ? ? ? ? ? ?解決兩個(gè)節(jié)點(diǎn)傳輸,最小傳輸單位,數(shù)據(jù)包,可以通過基礎(chǔ)驗(yàn)證檢查這個(gè)包是否安全和正確
? ? 網(wǎng)絡(luò)層?
? ? ? ? ? ? ? 為了解決數(shù)據(jù)在網(wǎng)絡(luò)上的傳遞,加上了路由的概念,通過路由傳到指定的地址。為了標(biāo)記在網(wǎng)絡(luò)層上的地址,加上了IP協(xié)議
? ? 傳輸層?
? ? ? ? ? ? ?為了保證傳輸?shù)臄?shù)據(jù)包可靠,增加了出錯(cuò)重傳機(jī)制 TCP基于鏈接/UDP
? ? 應(yīng)用層?
? ? ? ? ? ? 為了解決這個(gè)數(shù)據(jù)是為哪個(gè)應(yīng)用服務(wù)的,SMTP/HTTP。。。
網(wǎng)絡(luò)傳輸?shù)膯栴}
不可靠: 丟包,重復(fù)包,出錯(cuò),亂序
不安全: 中間人攻擊,竊取,篡改
TCP怎么解決網(wǎng)絡(luò)不可靠問題
滑動(dòng)窗口協(xié)議,TCP協(xié)議中使用,通過維持發(fā)送方/接收方緩沖區(qū)解決。如果沒有滑動(dòng)窗口協(xié)議會一個(gè)一個(gè)傳遞導(dǎo)致吞吐量問題?;瑒?dòng)窗口協(xié)議,有超時(shí)重傳機(jī)制和按順序發(fā)ACK。圖片
Wireshark教程
有關(guān)TCP協(xié)議及滑動(dòng)窗口常見的問題
TCP協(xié)議要達(dá)到的目的?基于鏈接的一個(gè)協(xié)議,基于TCP協(xié)議達(dá)到一個(gè)可靠的傳輸??煽總鬏斒侵?,包是按序收到,不出錯(cuò),流量控制(滑動(dòng)窗口),擁塞控制
滑動(dòng)窗口是怎么運(yùn)行的?解決了什么問題?
解決吞吐量問題,流量控制,保證收發(fā)順序一致
TCP協(xié)議如何做到流量控制?如何做到擁塞控制?
TCP協(xié)議建立連接三次握手,斷開連接四次揮手
建立三次握手
1. CLIENT(SYS_SENT) -> SYN -> SERVER (LISTEN)
2. CLIENT(ESTABLSIHED) <- SYN,ACK <-?SERVER(SYS_RECEIVED)
3.? CLIENT(ESTABLSIHED) -> ACK -> SERVER(ESTABLSIHED)
C -> 數(shù)據(jù) -> S
四次揮手
1. SENDER (FIN_WAIT_1) -> FIN -> RECEIVER(ESTABISHED)
2. SENDER(FIN_WAIT_2) <- ACK <- RECEIVER(CLOSE_WAIT)
3. SENDER(TIME_WAIT) <- FIN<- RECEIVER(LAST_ACK)
4. SENDER(TIME_WAIT) -> ACK -> RECEIVER(CLOSED)
斷開連接為什么要四次揮手?
因?yàn)榻邮辗娇赡懿荒芰ⅠR進(jìn)行斷開,所以先發(fā)一個(gè)ACK確認(rèn)收到FIN請求。只有在準(zhǔn)備好以后接收方才會發(fā)送一個(gè)FIN請求給接收方