1. 程式人生 > 其它 >TCP、ARP協議

TCP、ARP協議

ARP協議
'''
APR 地址解析協議,用於實現從IP地址到MAC地址的對映,即詢問目標IP對應的MAC地址
'''

arp協議的兩方面用途:

1. arp協議會把ip地址解析成mac地址
2. 根據ip以及子網標識子網地址

arp協議工作流程:

# 模擬定義一個源地址以及目標地址:
# 源地址:192.168.1.10/24
# 目標地址:192.168.1.20/24
1. 通訊的第一步先拿到目標主機的ip地址和子網掩碼,即192.168.1.20/24
2. arp協議算出本機的網段以及目標主機的網段,源地址:192.168.1.0,目標地址:192.168.1.0
3. 此時的話就可以判斷出源地址與目標地址網段一致(在一個子網內),即可直接使用mac地址定位目標

交換機只有在兩種情況下才把包廣播

    目標mac是:FF-FF-FF-FF-FF-FF
    目標mac不存在於mac地址表中
'''
    如果在一個子網裡面,資料包的走向為: 源地址>本地交換機>目標主機
    1. 如果在一個子網內進行通訊,則靠的是mac地址定位到對方在哪裡
    2. 傳送arp協議的廣播包拿到目標主機的mac地址(因為我們現在有的只是目標的ip地址),格式如下
        "自己的mac地址 FF-FF-FF-FF-FF-FF 192.168.1.10/24 192.168.1.20/24 資料部分"
        "在未得到目標mac地址的情況下,先用FF代替,然後交換機進行廣播,通過ip地址來辨別目標身份"
    3. 發起真正的通訊(通過上面傳送的廣播包拿到mac地址後)
        "自己的mac地址  目標主機的mac地址 192.168.1.10/24  192.168.1.20/24 源埠 目標埠 資料部分"
'''

# 修改上述同在一個子網內的地址
# 源地址:192.168.1.10/24
# 目標地址:101.200.10.22/24
1. 首先拿到目標主機的ip地址和子網掩碼,即172.16.1.10/24
2. arp協議算出本機與目標地址的網段是否一樣(明顯不在一個子網內)
'''
    不在一個子網的話,先前的主力就從交換機變到路由器了
    傳送arp協議的廣播包要先拿到閘道器的mac地址,格式如下(跟上面步驟一樣,不過把目標主機換成了閘道器):
        "自己的mac地址 FF-FF-FF-FF-FF-FF 192.168.1.10/24 閘道器的ip地址 資料部分"
        "通過上述方式獲取到閘道器的mac地址後,經由路由器轉發到目標地址,因為三層主要依靠ip協議"
    真正通訊:
        "自己mac地址 閘道器的mac地址 192.168.1.10/24 101.200.10.22/24 源埠 目標埠 資料部分”
'''

二層隔離和三層隔離

主要針對於子網劃分

  1. 二層隔離: 即使用不同的交換機來劃分不同的區域網
  2. 三層隔離: 主要是通過更改子網掩碼來實現邏輯上的子網劃分

總結

  1. 二層隔離與三層隔離要保持一致
  2. 二層聯通,三層可以隔離,即兩臺計算機接入一臺交換機,但不一定在一個子網內

IP地址與子網劃分基礎知識

根據tcp/ip協議,連線在internet上的每個裝置都需要有ip地址,它是一個32位二進位制數,也可以用點分十進位制來表示,每八位一組,用一個十進位制表示即0~255,每組用'.'隔開。例如:172.16.1.1

  1. 特殊的IP地址
    "IP地址被分為常用的A類(1126),B類(128191),C類(192~223);還有不經常用的D和E類"
    廣播地址: 主機號部分全為1(即255)的ip地址稱之為廣播地址,如192.168.1.255
    有限廣播地址:指的是32位全為1(255.255.255.255)的ip地址,用於本網廣播
    網路地址:主機號全為0的ip地址稱之為玩過地址,如172.16.45.0就是一個B類的網路地址
    迴環地址:127.0.0.1即自己本機網路,用於迴路測試
    私有地址:只能在區域網中使用,有以下幾種:
    1. 10.0.0.0----10.255.255.255 1個A類
    2. 172.16.0.0----172.31.255.255 16個B類地址
    3. 192.168.0.0----192.168.255.255 256個C類地址
  2. 子網掩碼
    "子網掩碼用來識別ip地址中的網路地址和主機地址"
    "子網掩碼也是32位二進位制數字,在子網掩碼中,對應與網路地址部分全用1表示,主機部分用0表示"
  3. 子網劃分
    "子網劃分與vlam都可以做到隔離廣播域,子網是劃分三層隔離,vlan是二層隔離"
    優點:減少網路流量,提高網路效能,簡化管理,易於擴大地理範圍

TCP三次握手以及四次揮手
三次握手(主要用來建立雙向連結):
1. 客戶端傳送連結請求;此時客戶端得狀態為syn_sent
連結過程由syn=1表示,為了安全起見將隨機產生一個序列號即:seq=x
2. 服務端確認連結請求,並同時向客戶端傳送連線請求,此時服務端得狀態為syn_RCVD
連結過程由syn=1表示,ack=1+x表示迴應和迴應的序列號,seq=y重新生成一個序列號
3. 客戶端確定連結請求,此時客戶端狀態為ESTABLISHED,服務端接收到狀態也為ESTABLISHED
連結過程只有客戶端的迴應操作,即ack=1+y.
經過以上三個步驟後,雙向連結已經建立,之後便可正常傳輸資料


四次揮手(用來斷開雙向連結)
1. 客戶端傳送斷鏈請求;此時客戶端狀態為fin_wait_1
斷鏈過程由fin=1表示
2. 服務端確認斷鏈請求;此時服務端狀態為close_wait,客戶端狀態為fin_wait2,此時第一條連結已斷
迴應過程由ack=1表示
3. 服務端傳送第二條的斷鏈請求,此時服務端狀態為last_ack,
請求狀態由fin=1表示
4. 客戶端確認請求;此時客戶端的狀態為time_wite
迴應過程由ack=1表示