天天看點

【幹貨】詳解TCP和UDP的連接配接及三次握手&8

特别說明:本文為原創内容,但部分圖檔來源于網絡(本章使用思科模拟器(Cisco Packet Tracer)作為實驗軟體)

# 8.TCP和UDP

【幹貨】詳解TCP和UDP的連接配接及三次握手&8

TCP:可靠傳輸、面向連接配接;速度相比UDP要慢,但是準确性高

UDP:不可靠傳輸、非面向連接配接;速度相比TCP要快,但是準确性差

面向連接配接:如果某個應用層協定的四層使用TCP端口,那麼在該協定正式傳輸資料包之前,必須先建立連接配接,隻有建立完連接配接之後才可以傳輸資料。

可靠傳輸:用戶端收到資料包之後,需要發送TCP的ACK确認包,并告訴服務端接下來要收的資料包序号。同時該過程确定了兩者傳輸的"windows滑動視窗"大小,如下圖所示:接收方隻能收2個資料包,是以會發送“ACK3 Window size=2”把發送方發送的"Window size =3 send 3"丢棄掉

【幹貨】詳解TCP和UDP的連接配接及三次握手&8

滑動視窗:

滑動的意義是因為用戶端的接收能力不一樣,是以接收端和發送端互相要确認一次最大的資料發送量,如圖所示:

【幹貨】詳解TCP和UDP的連接配接及三次握手&8

如下圖所示:

192.168.1.9HTTP通路192.168.2.09的過程中,詳解TCP三向交握連接配接的建立:

首先可以看到PC1首先發送一個帶“SYN”的Resquest請求TCP連接配接的資料包給192.168.20.9,然後192.168.20.9給PC1回複“SYN+ACK”的Reply資料包以确認,最後PC1再一次回複“ACK”給192.168.20.9如下圖所示:

【幹貨】詳解TCP和UDP的連接配接及三次握手&8
【幹貨】詳解TCP和UDP的連接配接及三次握手&8
【幹貨】詳解TCP和UDP的連接配接及三次握手&8
【幹貨】詳解TCP和UDP的連接配接及三次握手&8
【幹貨】詳解TCP和UDP的連接配接及三次握手&8
【幹貨】詳解TCP和UDP的連接配接及三次握手&8

注:PC1再一次向192.168.20.9發送“ACK”确認TCP連接配接的同時就開始和192.168.20.9互動HTTP資料包,如下圖所示:

【幹貨】詳解TCP和UDP的連接配接及三次握手&8
【幹貨】詳解TCP和UDP的連接配接及三次握手&8

三次握手:面向連接配接的高層協定在正式傳輸資料之前需要先建立連接配接,建立連接配接的過程需要來回互動三個封包:①SYN、②SYN+ACK、③ACK;我們稱建立連接配接的過程稱為三次握手;

當192.168.20.9和PC1互動完了HTTP資料之後,會向PC1發送含有“PSH+ACK”的TCP資料包,那麼PC1這時候就會發送含有“FIN+ACK”的TCP資料包結束本次TCP連接配接,如下圖所示:

【幹貨】詳解TCP和UDP的連接配接及三次握手&8
【幹貨】詳解TCP和UDP的連接配接及三次握手&8

常用的TCP伺服器端口:

一般情況下TCP的1到1024端口都是固定端口,每個端口都已被公認被某個服務所用掉了,例如:

HTTP:TCP的80端口

Telnet: TCP的23端口

FTP :TCP的20,21兩個端口

RDP :TCP的3389端口

VNC :TCP的5900

擴充知識:平時在CMD視窗下可以用telnet指令測試某個端口是否開起,如圖:

【幹貨】詳解TCP和UDP的連接配接及三次握手&8

擴充知識:wireshark過濾規則:

ip.addr==11.22.33.44 過濾出包含11.22.33.44的資料包

ip.src==X.X.X.X 過濾出源IP位址X.X.X.X

ip.dst==X.X.X.X 過濾出目标IP位址X.X.X.X

tcp.port==80 過濾出端口80的

tcp.dstport==80 過濾出目标端口為80的

tcp.srcport==80 過濾出源端口為80的

eth.src==XX:XX:XX:XX:XX:XX 過濾出MAC位址XX:XX:XX:XX:XX:XX的

VNC;HTTP;ARP 過濾高層協定

支援and且,or或,not非,以及( )組合;例如:tcp or http and (not vnc)就是過濾出來TCP或HTTP協定,但是不包括VNC協定;

(未完待續。。。。。。)