目錄
傳輸類型
單工:始終只能完成一個方向的數據傳輸(傳輸只有一個方向)
半雙工:同一時間只能完成一個方向的數據傳輸(同一時間只能一個方向進行傳輸)
全雙工:同一時間可以完成兩個方向的數據傳輸(同一時間可以進行雙向傳輸)
注意:同一物理鏈路上相連的兩臺設備的雙工模式必須保持一致
自協商模式下,配置雙工模式
執行命令negotiation auto
缺省情況下,以太網接口的雙工模式是和對端接口協商得到的。
非自協商模式下,配置雙工模式
執行命令undo negotiation auto
執行命令duplex { full | half },配置以太網接口的雙工模式。
缺省情況下,以太網接口的雙工模式爲全雙工。
網絡裏面三層架構
核心層:主要用於高速流量的轉發
匯聚層(分佈層)主要把我們接入流量匯聚起來給核心層
接入層:接入終端設備
TCP/IP模型
OSI模型
TCP/IP模型 掌握
目前應用比較廣泛的是TCP/IP模型
TCP/IP模型當中重點
應用層
應用層協議=傳輸層協議+端口號。
TCP協議+23端口=telnet協議(應用層)
常用的應用層協議:Telnet協議、dns協議等
傳輸層
端口號(16bit):代表一個主機的不同服務
範圍0—65535(其中0-1023是知名端口;1024-65535可以任意使用)
源端口(Sport)一般源端口是隨機產生的
目的端口(Dport)一般目的端口是知名端口
web服務:80端口
telnet服務:23端口
ssh服務:22端口
dns服務:53端口
FTP服務:21端口
網絡層
簡稱爲三層,三層邏輯地址,可以變化的比如:192.168.1.1
網絡設備主要是靠IP地址進行訪問
源IP地址(SIP)
目的IP地址(DIP)
一般情況下,在數據包的傳遞過程中SIP和DIP不會發生變化。
數據鏈路層
簡稱二層,二層裏面有一個物理地址 比如:
MAC地址 48bit,指的就是每一個網絡設備生產之後就會有唯一MAC地址。
源MAC地址(SMAC)
目的MAC地址(DMAC)
一般情況下 在數據包的傳遞過程中 SMAC和DMAC是不斷變化的
MAC地址由兩部分組成,分別是供應商代碼和序列號。其中前24位代表該供應商代碼,由IEEE管理和分配。剩下的24位序列號由廠商自己分配。
物理層
網線(光纖)通過比特流進行傳輸。
數據傳遞過程中的封裝和解封裝
封裝
數據包在發送的時候 進行的一個動作 叫做封裝
APP頭部 數據
UDP頭部 APP頭部 數據
IP頭部 UDP頭部 APP頭部 數據
以太網頭部 IP頭部 UDP頭部 APP頭部 數據
就會變成比特流傳輸傳輸給對端
總結:逐漸加頭部的過程 是從應用封裝到物理層
解封裝
當服務器接收數據流量的時候 我這邊會進行解分裝
首先會接收比特流
IP頭部 UDP頭部 APP頭部 數據
UDP頭部 APP頭部 數據
APP頭部 數據
數據
總結:逐漸去掉頭部的過程 是從物理層解封裝到應用層
TCP/UDP
TCP協議
傳輸控制協議 可靠協議
三次握手
A發送SYN
B回覆SYN+ACK
A回覆ACK
四次分手
A發送FIN
B回覆ACK
B發送FIN
A回覆ACK
UDP協議
用戶數據協議 不可靠協議
ICMP
ICMP(Internet Control Message Protocol)是網絡層的一個重要協議
ICMP作用:是一個網絡層協議 用於收集現網診斷信息 包括數據包的連通性或者網絡故障點
CMP使用兩種報文 一個Echo-request(請求報文) 另一個是Echo-reply報文(響應報文)
ICMP錯誤報告
ICMP定義了各種錯誤消息,用於診斷網絡連接性問題;根據這些錯誤消息,源設備可以判斷出數據傳輸失敗的原因。比如,如果網絡中發生了環路,導致報文在網絡中循環,最終TTL超時,這種情況下網絡設備會發送TTL超時消息給發送端設備。又比如如果目的不可達,則中間的網絡設備會發送目的不可達消息給發送端設備。
小結:
注意:ICMP定義了多種消息類型,用於不同的場景
有些消息不需要Code字段來描述具體類型參數,僅用Type字段表示消息類型。
有些ICMP消息使用Type字段定義消息大類,用Code字段表示消息的具體類型。
ICMP重定向
主機A希望發送報文到服務器A,於是根據配置的默認網關地址向網關RTB發送報文。網關RTB收到報文後,檢查報文信息,發現報文應該轉發到與源主機在同一網段的另一個網關設備RTA,因爲此轉發路徑是更優的路徑。所以RTB會向主機發送一個Redirect消息,通知主機直接向另一個網關RTA發送該報文。主機收到Redirect消息後,向RTA發送報文,RTA會將報文轉發給服務器A
發生重定向的條件:
第一:同接口進出
第二:滿足第二條源和下一跳同網段
第三:路由器RTB發出的重定向報文
典型應用
PING應用
Ping是檢測網絡連通性的常用工具,同時也能夠收集其他相關信息
PING常用的配置參數說明如下
-a(source-ip-address)參數
指定發送ICMP ECHO-REQUEST報文的源IP地址。如果不指定源IP地址,將採用出接口的IP地址作爲ICMP ECHO-REQUEST報文發送的源地址。
現在全網已經互通了,我們在R1上面驗證一下ping命令的參數
<R1>ping 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=40 ms
Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=254 time=20 ms
--- 3.3.3.3 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/30/40 ms
在R1上查看到達3.3.3.3路由的出接口爲R1的G0/0/0接口
<R1>display ip routing-table 3.3.3.3
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
3.3.3.3/32 Static 60 0 RD 12.1.1.2 GigabitEthernet
0/0/0
所以:默認情況下,R1訪問目標地址的時候,所攜帶的源IP地址是12.1.1.1即自己的接口IP地址作爲源IP地址訪問目標IP地址
驗證-a參數的用法:
<R1>ping -a 1.1.1.1 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=20 ms
Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=254 time=30 ms
--- 3.3.3.3 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/28/30 ms
<R1>
R1訪問目標地址的時候,所攜帶的源IP地址是1.1.1.1即自己的loopback 0地址
-c(count)參數
指定發送ICMP ECHO-REQUEST報文次數。缺省情況下發送5個ICMP ECHO-REQUEST報文。
<R1>ping -c 1000 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=40 ms
Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=254 time=20 ms
Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=254 time=20 ms
Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=254 time=40 ms
Reply from 3.3.3.3: bytes=56 Sequence=6 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=7 ttl=254 time=20 ms
Reply from 3.3.3.3: bytes=56 Sequence=8 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=9 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=10 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=11 ttl=254 time=20 ms
Reply from 3.3.3.3: bytes=56 Sequence=12 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=13 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=14 ttl=254 time=30 ms
--- 3.3.3.3 ping statistics ---
14 packet(s) transmitted
14 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/28/40 ms
<R1>
-h(ttl-value)參數
指定TTL的值。缺省值是255。
<R1>ping -h 1 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 3.3.3.3 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
<R1>ping -h 2 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=254 time=40 ms
--- 3.3.3.3 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/32/40 ms
-t(timeout)參數
指定發送完ICMP ECHO-REQUEST後,等待ICMP ECHO-REPLY的超時時間。
<R1>ping -t 31 3.3.3.3
PING 3.3.3.3: 56 data bytes, press CTRL_C to break
Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=254 time=30 ms
Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=254 time=30 ms
Request time out
Request time out
Reply from 3.3.3.3: bytes=56 Sequence=5 ttl=254 time=20 ms
--- 3.3.3.3 ping statistics ---
5 packet(s) transmitted
3 packet(s) received
40.00% packet loss
round-trip min/avg/max = 20/26/30 ms
注意:ping命令的輸出信息中包括目的地址、ICMP報文長度、序號、TTL值、以及往返時間。序號是包含在Echo回覆消息(Type=0)中的可變參數字段,TTL和往返時間包含在消息的IP頭中。
TRACERT應用
Tracert是檢測網絡丟包及時延的有效手段,同時可以幫助管理員發現網絡中的路由環路。
<RTA>tracert 30.0.0.2
Tracert to 30.0.0.2(30.0.0.2), max hops:30, packet length:40, press CTRL_C to break
1 10.0.0.2 130 ms 50 ms 40 ms
2 20.0.0.2 80 ms 60 ms 80 ms
3 30.0.0.2 80 ms 60 ms 70 ms
TRACERT常用的配置參數如下:
-a (source-ip-address)參數
指定tracert報文的源地址。
-f (first-ttl)參數
指定初始TTL。缺省值是1。
-m (max-ttl)參數
指定最大TTL。缺省值是30。
-name參數
使能顯示每一跳的主機名。
-p (port)參數
指定目的主機的UDP端口號。