兩台主機如何進行通訊
常見網路裝置
osi7層模型
封裝與解封裝
應用層:
用層協議:telnet(23),ssh(22)
tftp: 簡單檔案協議(無密碼)(nfs)
snmp:簡單網路管理協議(如:dhcp)
dhcp:動態主機分配協議
應用層 主機要主機層 網際網路層 網路接入層
應用層協議:
>01.客戶端主機發出廣播資訊,請求獲取ip位址
>02.服務端從位址池裡取出乙個ip位址分配給客戶端(192.168.1.1-192.168.1.250)
>03.客戶端返回確認資訊。
>04.服務端從位址池把已經分配的位址從位址池中刪除,避免被他人使用
>05.客戶端可以在一定時間內使用分配的位址
主機層協議:
udp: 使用者報文協議 屬於無連線的網路協議----離線傳輸協議,效率高,傳輸資料不可靠
傳輸控制協議(tcp)
使用者資料協議(udp)
面向連線
無連線可靠傳輸
不可靠傳輸
流量控制
盡力而為,盡力傳遞
使用tcp應用:
web瀏覽器,電子郵件
udp應用:
網域名稱系統(dns);視屏流; ip語音(voip)
udp隨機埠配置:
控制欄位ack/syn
ack表示控制字段,確認資料是否接收,控制欄位1為有效,為0表示失效syn表示請求建立連線字段 ,控制欄位1為有效,為0表示失效
fin表示斷開連線,控制欄位1為有效,為0表示失效
主動: syn請求建立連線,syn=1 seq=100
被動方: ack發出確認號,ack=100,syn=1,ack=101
syn確認ack1:ack=101syn=1,seq=101
被動方:確認
syn確認ack1: syn=1,seq=102
ack確認號,ack=102,syn=1,ack=101
確認ack-1確認seq=102
tcp 10.0.0.1 0 :22 10.0.0.1 : 22tcpdump -i eth0 -nn -x -c 5 "port 53" ##抓取53埠的包
tcpdump -i eth0 -nn -x -c 5 "port 53" -w /tmp/oldboy.pkg ##儲存到檔案
-n : 轉換網域名稱轉為ip
-x : 輸出包的頭部資料,會以16進製制和ascii兩種方式同時輸出
-xx: 輸出包的頭部資料,會以16進製制和ascii兩種方式同時輸出,更詳細。
11種狀態集解釋:
tcp11種狀態集的轉換
網路報文結構:
source port number
(16 bits)利用隨機埠號
destination port number
(16 bits)80 22 2301
23sequence number(重點)
(32 bits)45
67acknowledgement number(重點)
(32 bits)89
1011
header length
(4 bits)
reserved
(6 bits)
urgack
pshrst
synfin
windows size
(16 bits)
1213
1415
tcp checksum
(16 bits)
urgent pointer
(16 bits)
1617
1819
options
(if any,variable length,padded with 0's)
2021
2223
data
(if any)01
2345
6789
1011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
三次握手《 》四次握手
1 第一次握手 客戶端給伺服器傳送乙個 syn 報文。2 第二次握手 伺服器收到 syn 報文之後,會應答乙個 syn ack 報文。3 第三次握手 客戶端收到 syn ack 報文之後,會回應乙個 ack 報文。4 伺服器收到 ack 報文之後,三次握手建立完成 作用是為了確認雙方的接收與傳送能力...
TCP 三次握手 四次握手
http常見狀態碼 200 ok 伺服器成功處理了請求 301 302 moved permanently 重定向 response中應該包含乙個location url,說明資源現在所處的位置 304 not modified 未修改 客戶的快取資源是最新的,要客戶端使用快取 404 not fo...
三次握手 四次揮手
1.tcp連線的建立 1 首先是伺服器初始化的過程,從 closed 關閉 狀態開始通過順序呼叫 socket bind listen 和accept 原語建立 socket 套接字,進入 listen 監聽 狀態,等待客戶端的 tcp傳輸連線請求。2 客戶端最開始也是從 closed 狀態開始呼叫...