一.回顧 IP ICMP ARP
1.IP協議報頭結構
版本號 首部長度 優先級與服務類型 總長度 4字節
標識符 標誌 段偏移量 4字節
TTL 協議號 首部校驗和 4字節
源地址 4字節
目標地址 4字節
20字節
可選項 0-40字節
數據
2.ICMP協議
檢測網絡連接情況,排錯工具
1)反饋信息
reply from 正常
request timed out 請求超時
destination host unreachable 目標主機不可達
unknown host abc 未知主機名
2)ICMP類型
echo request 8 請求
echo reply 0 迴應
3.ARP協議
IP=>MAC地址
在一個廣播域內通信,使用是MAC地址
在不同廣播域通信,使用是IP地址
解析原理:ARP廣播,ARP緩存
arp -a 查看arp緩存
arp -d 清空arp緩存
arp -s 創建arp靜態映射
1.傳輸層的作用
傳輸層數據端(端口)到端(端口)的傳輸
網絡層數據點到點的傳輸
1)TCP協議
傳輸控制協議
面向連接可靠協議
傳輸效率低
http,telnet
2)UDP協議
用戶數據報協議
面向無連接不可靠協議
傳輸效率高
tftp
2.TCP報頭結構
源端口號 目標端口號
序列號
確認號
首部長度 控制位(syn,fin,ack,rst,urg,psh) 窗口大小
校驗和 緊急指針
20字節
可選項 0-40字節
數據
註釋:
源端口號:發送端口數據出去的端口 0-65535
目標端口號:需要訪問的目標主機的端口號 0-65535
序列號:傳輸層運單的編號 100
確認號:到底收到了發送方的哪個報文 發送端序列號+1 100+1=101
控制位:
SYN=1 發起連接
FIN=1 中斷連接
ACK=1 確認消息
RST=1 重置連接
URG=1 開啓緊急指針
PSH=1 啓用數據緩衝
窗口大小:協商發送數據的大小
3.TCP三次握手
主機A 主機B
第一次 發起連接: 序列號 100,syn=1
第二次 確認: 確認號 101,ack=1
發起連接:序列號 300,syn=1
第三次 確認: 序列號 101,確認號 301
ack=1
3.TCP四次揮手
主機A 主機B
第一次 fin=1,ack=1(我要分手)
第二次 ack=1(我知道了)
第三次 fin=1,ack=1(我也要分手)
第四次 ack=1(我也知道了)
5.TCP計時器
1)重傳計時器
發送完數據後,開啓一個時間爲60秒的重傳計時器
如果在60秒內沒有收到對方的確認報文,則重傳數據。
2)TCP保活計時器
客戶端連接到服務器後,服務器會開啓一個時間爲2小時的保活計時器,
如果有兩小時內,客戶端沒有任何活動,服務器會每隔75秒給客戶端
發送一個探測數據段,一共發送10個,如果客戶端還是沒有迴應,則斷
開連接。
3)TCP等待計時器
主機A發送完TCP最後一次分手報文後,會等待一會,如果在這個時間內,
沒有再次收到主機B的分手報文,則斷開連接。
6.基於TCP的應用層協議
http 80/tcp
dns 53/tcp
telnet 23/tcp
ftp 21/tcp
C:\Windows\System32\drivers\etc\services 記錄應用層協議的端口號
7.UDP協議
1)UDP報頭結構
源端口號 目標端口號 4字節
UDP長度 校驗和 4字節
-------------------------------------------------------------------
8字節
數據
2)基於UDP的應用層協議
tftp 69/udp
dns 53/udp
ntp 123/udp
rpc 111/udp
實驗:使用科來抓取遠程桌面服務的TCP流量
1.設置虛擬機和本機聯網
虛擬機:vmnet8,192.168.10.1
本機:vmnet8,192.168.10.2
關閉防火牆
2.在虛擬機上開啓遠程桌面服務
此電腦–遠程設置–選擇"允許遠程連接到此計算機"–取消下邊的複選框
3.在虛擬機設置管理員的用戶名密碼
此電腦–管理–本地用戶和組–用戶–administrator
4.在本機遠程連接虛擬機
windows+r 調出運行 mstsc 遠程桌面客戶端
輸入 192.168.10.1
5.在本機開啓科來軟件
選擇“vmnet8”網卡,開始抓包
6.從新遠程登錄192.168.10.1
7.在本機停止抓包,查看“數據包”選項卡,查看“tcp會話”選項卡,前三個tcp報文
8.在已經登錄虛擬機的遠程桌面中查看虛擬機端口的連接情況
netstat -an