TCP/IP協議棧

來源:互聯網
上載者:User

標籤:lag   blog   分區   記錄   個數   href   rcv   article   需要   

1. TCP三向交握

用戶端向服務端發送SYN請求建立串連的包,服務端收到後發送ACK確認收到用戶端的SYN包,接著發送SYN包表示服務端也希望建立TCP串連,用戶端收到服務端的SYN包會發送一個ACK包表示確認和服務端建立TCP串連。
(SYN,ACK在tcp包的flags欄位裡面)在wrieshark中顯示的通常是相對seq和ack,而不是真實的。(跟蹤相對的會容易一些)
較官方的說法:
第一次握手:用戶端發送SYN包至伺服器,並進入SYN_SENT狀態,等待伺服器確認
第二次握手:伺服器收到用戶端的SYN包,發送一個ACK,同時發送自己的SYN,此時伺服器進入SYN_RCVD狀態
第三向交握:用戶端接收到伺服器發送的SYN+ACK後,進入ESTABLISHED狀態,並發送伺服器SYN包的確認ACK,伺服器接收到用戶端ACK後,進入ESTABLISHED狀態
當用戶端和伺服器都進入ESTABLISHED狀態後,用戶端和伺服器之間就可以開始雙向傳遞資料了

2. TCP四次揮手

用戶端主動發送FIN包,請求中斷連線;服務端收到發送一個ACK包確認收到中斷連線,接著發送一個FIN包請求中斷連線;用戶端收到ACK確認後,中斷連線。此時,會話結束。
較官方的說法:
第一次揮手:主動關閉方發送一個FIN並進入FIN_WAI×××狀態
第二次揮手:被動關閉方接收到主動關閉方發送的FIN並發送ACK,此時被動關閉方進入CLOSE_WAIT狀態;主動關閉方收到被動關閉方的ACK後,進入FIN_WAIT2狀態
第三次揮手:被動關閉方發送一個FIN並進入LAST_ACK狀態
第四次揮手:主動關閉方收到被動關閉方發送的FIN並發送ACK,此時主動關閉方進入TIME_WAIT狀態,經過2MSL時間後關閉串連;被動關閉方收到主動關閉方的ACK後,關閉串連

3. TCP的重傳機制逾時重傳機制:

當發送方發現等待Seq 3的Ack(即Ack 4)逾時後,會認為Seq 3發送“失敗”,重傳Seq 3。一旦接收方收到Seq 3,會立即回Ack 4

快速重傳機制:

如果包沒有連續到達,就Ack最後那個可能被丟了的包;如果發送方連續收到3次相同的Ack,就重傳對應的Seq。
將逾時重傳與快速重傳結合起來,觸發快速重傳時,只重傳局部的一小段Seq(局部性原理,甚至只重傳一個Seq),其他Seq逾時後重傳。

4. TCP的視窗機制(視窗會滑動)

對於發送方將,視窗包括髮送視窗(已經發送了,但沒有收到ACK回應)和可用視窗,接收端允許發送但是沒有發送的部分。
視窗滑動原理:
TCP並不是每一個報文段都會回複ACK的,可能會對兩個報文段發送一個ACK,也可能會對多個報文段發送1個ACK【累計ACK】,比如說發送方有1/2/3 3個報文段,先發送了2,3 兩個報文段,但是接收方期望收到1報文段,這個時候2,3報文段就只能放在緩衝中等待報文1的空洞被填上,如果報文1,一直不來,報文2/3也將被丟棄,如果報文1來了,那麼會發送一個ACK對這3個報文進行一次確認。
52444277

5. TCP頭部

頭部長度:一般為20位元組,選項最多40位元組,限制60位元組。
源連接埠,目的連接埠,確認號,序號,頭部長度,保留,TCPflags(標誌資料包的屬性,如SYN、ACK等),滑動視窗(解決流控擁塞),資料,checksum(校正值),Urgent Pointer:緊急指標,可以告知緊急的資料位元置,需要和Flag的U flag 配合使用;options選項(如果有)

6. TCP的序號和確認號

Seq:序號,防亂序(第一個隨機(通常兩端的第一個seq都是0開始的),第二個開始看前一個ack大小)

Ack:確認號,防丟包(資料大小+序號)
序號為當前端成功發送的資料位元數,確認號為當前端成功接收的資料位元數,SYN標誌位和FIN標誌位也要佔1位

7. TCP、UDP

TCP:傳輸控制通訊協定,連線導向,可靠傳輸,支援流控和視窗機制,HTTP、FTP等
UDP:使用者資料包通訊協定,無串連,不可靠傳輸,不支援流控和視窗機制,TFTP、DNS、DHCP等
TCP包的固定長度為20位元組,UDP的固定長度為8位元組

8. UDP頭部

源連接埠,目的連接埠,長度,資料,checksum(校正值),

9. 連接埠號碼

源連接埠隨機分配(大於1023),目的連接埠是知名連接埠(1-1023)

10. IP包IP頭部資訊:

頭部長度:通常20位元組,有選項時更長,總共不超過60位元組。
IP資料報長度:65535位元組。
版本,頭部長度,服務類型,總長度,標識符,標誌,片位移,存留時間TTL,上層協議,頭部校正值,源IP,目的IP,選項,資料

11. IP資料分區與重組分區:

標識符:識別屬於同一個資料包的分區,區別於同一主機或其他主機的資料包分區;

標誌:

判斷是否收到最後一個分區,最後一個分區的標誌欄位為0,其餘的為1;目的端在收到標誌欄位為0時,開始重組報文;片位移:表示每個分區在原始報文中的位置。
為什麼要分區:IP資料包大於MTU時,需進行分區

12. TTL機制

資料報到達目的地之前允許經過的路由跳跳數。跳一下減1,得0丟棄。
65664309

13. UDP協議號17,TCP協議號6,ICMP協議號114. ARP泛洪

不斷髮送ARP請求,佔用上網資源,導致使用者無法上網。有點類似DDOS×××,導致伺服器無法正常工作。

15. ARP欺騙×××(中間人×××)

×××將自己的MAC綁定A發送給B的ARP請求的目的IP地址為B。也綁定B返回的目的IP地址為A。(說的有點拗口,水平有限,敬請原諒。)

16. IP選項值

可以實現IP記錄路由,時間戳記,來源站點路由技術
來源站點路由技術:來源站點路由反映的思路是提供一種方式,讓源主機指定一條通過互連網的路徑。
(IP支援2種形式的來源站點選路:1:鬆散來源站點路由:它給出了一連串路由器介面的IP地址序列,報文必須沿著IP地址序列傳送,但是允許在相繼的兩個地址之間跳過多個路由器。2:嚴格來源站點路由:它給出了一系列路由器介面的IP地址序列,報文必要嚴格按照路由轉寄,如果下一跳不在列表中,那麼將會發生錯誤。備忘:一般工作中,稱鬆散來源站點路由為鬆散路由。稱嚴格來源站點路由為來源站點路由。)

TCP/IP協議棧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.