特别說明:本文為原創内容,但部分圖檔來源于網絡(本章使用思科模拟器(Cisco Packet Tracer)作為實驗軟體)
# 8.TCP和UDP
TCP:可靠傳輸、面向連接配接;速度相比UDP要慢,但是準确性高
UDP:不可靠傳輸、非面向連接配接;速度相比TCP要快,但是準确性差
面向連接配接:如果某個應用層協定的四層使用TCP端口,那麼在該協定正式傳輸資料包之前,必須先建立連接配接,隻有建立完連接配接之後才可以傳輸資料。
可靠傳輸:用戶端收到資料包之後,需要發送TCP的ACK确認包,并告訴服務端接下來要收的資料包序号。同時該過程确定了兩者傳輸的"windows滑動視窗"大小,如下圖所示:接收方隻能收2個資料包,是以會發送“ACK3 Window size=2”把發送方發送的"Window size =3 send 3"丢棄掉
滑動視窗:
滑動的意義是因為用戶端的接收能力不一樣,是以接收端和發送端互相要确認一次最大的資料發送量,如圖所示:
如下圖所示:
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如下圖所示:
注:PC1再一次向192.168.20.9發送“ACK”确認TCP連接配接的同時就開始和192.168.20.9互動HTTP資料包,如下圖所示:
三次握手:面向連接配接的高層協定在正式傳輸資料之前需要先建立連接配接,建立連接配接的過程需要來回互動三個封包:①SYN、②SYN+ACK、③ACK;我們稱建立連接配接的過程稱為三次握手;
當192.168.20.9和PC1互動完了HTTP資料之後,會向PC1發送含有“PSH+ACK”的TCP資料包,那麼PC1這時候就會發送含有“FIN+ACK”的TCP資料包結束本次TCP連接配接,如下圖所示:
常用的TCP伺服器端口:
一般情況下TCP的1到1024端口都是固定端口,每個端口都已被公認被某個服務所用掉了,例如:
HTTP:TCP的80端口
Telnet: TCP的23端口
FTP :TCP的20,21兩個端口
RDP :TCP的3389端口
VNC :TCP的5900
擴充知識:平時在CMD視窗下可以用telnet指令測試某個端口是否開起,如圖:
擴充知識: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協定;
(未完待續。。。。。。)