TCP/UDP、封裝與解封裝

目錄

傳輸類型

網絡裏面三層架構

TCP/IP模型

OSI模型

TCP/IP模型   掌握

TCP/IP模型當中重點

數據傳遞過程中的封裝和解封裝

封裝

解封裝

 TCP/UDP

ICMP

ICMP錯誤報告

ICMP重定向

典型應用

PING應用

PING常用的配置參數說明如下

TRACERT應用

TRACERT常用的配置參數如下:


傳輸類型

單工:始終只能完成一個方向的數據傳輸(傳輸只有一個方向)
半雙工:同一時間只能完成一個方向的數據傳輸(同一時間只能一個方向進行傳輸)
全雙工:同一時間可以完成兩個方向的數據傳輸(同一時間可以進行雙向傳輸)

注意:同一物理鏈路上相連的兩臺設備的雙工模式必須保持一致

自協商模式下,配置雙工模式
執行命令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端口號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章