計算機網路基礎(一)

2022-06-28 05:18:12 字數 2260 閱讀 5994

應用層與傳輸控制層之間通過套接字(socket)傳遞資料,套接字是傳輸控制層與應用層的乙個中間媒介,位於兩層之間。

當linux系統中,使用抓包工具tcpdump抓取資料報:

# -nn : 數字的方式顯示ip和埠,乙個n是ip

# -i : 網絡卡

# port : 埠號

命令列引數說明:

網路號(網段)

通過ip位址與子網掩碼進行二進位制按位與運算得到,例如:

主機ip:192.168.150.11

子網掩碼:255.255.255.0

則該區域網網段為192.168.150.0,該主機的主機號為11。在此區域網下的其他主機ip可能為192.168.150.1, 192.168.150.2, 192.168.150.3……等。

在linux系統中使用命令:

route -n
得到本機路由表資訊如下:

路由表的每一行代表乙個路由規則:將服務端ip與掩碼進行二進位制按位與運算。如果計算得到的位址存在於本機路由表中的destination中,則傳輸控制層可以向該服務端傳送資料報,從而建立連線。

例如:服務端為同一區域網的另一台主機,ip位址192.168.150.n。那麼它與掩碼255.255.255.0二進位制按位與運算後的結果為192.168.150.0,即路由表中第一行的destination。第一行的閘道器為0.0.0.0,代表不需要通過閘道器,可以直接通過eth0傳送資料報;

如果服務端為baidu,ip位址220.181.38.149。那麼它與掩碼0.0.0.0進行計算後的結果為0.0.0.0,即路由表中第三行的destination。第三行的閘道器為192.168.150.2,因此需要將資料報傳送到此閘道器。當閘道器完成「下一跳」後,資料報才會到達服務端。

上述第二個例子中,如果傳輸控制層發出的資料報上只寫乙個ip位址,那麼應該寫192.168.150.2還是220.181.38.149呢?

如果寫192.168.150.2,閘道器可以接收到資料報,但是它卻不知道這個資料報後續應該交給誰;如果寫220.181.38.149,網路層就不知道該把這個資料報交給哪個閘道器了,因此需要鏈路層為我們完成這項任務。

在linux系統中使用命令:

arp -n
檢視本機的arp協議,即ip位址與網絡卡實體地址之間的對映關係:

而當我們使用命令:

ping www.baidu.com
建立乙個連線後,再次檢視arp協議,會發現增加了一對對映關係:

實際上arp完成了乙個在區域網廣播請求的過程:誰有192.168.150.2的實體地址?請把它傳送給我。

如果把資料報比作乙個三層包裝的郵政包裹,為了能夠準確地將它送往服務端,鏈路層給它的最外層寫上了閘道器192.168.150.2的mac位址00:50:56:f7:53:2b,網路層給中間層寫上了服務端的ip位址220.181.38.149,傳輸控制層則在最內層寫上了服務端監聽的埠號port:80。

在每一跳中遵循類似的路由查詢過程,直到資料報到達目標伺服器。資料報的傳輸過程中,ip位址和埠號始終不變。類似於資料結構中的鍊錶,mac位址永遠指向下乙個目標。

我們再次使用tcpdump進行抓包,這次還包括了arp廣播發出的資料報:

tcpdump -nn -i eth0 port 80 or arp
可以發現在tcp發出握手請求之前,arp就會發起廣播請求:

who has 192.168.150.2 tell 192.168.150.11
reply 192.168.150.2 is -at 00:50:56:f7:53:2b
鏈路層便得到了指定閘道器的實體地址。

計算機網路概述 計算機網路基礎

邊緣部分 核心部分 報文交換 報文一般比分組長,報文交換的時延較長。對於廣域網區域網新的理解 不單單從網路覆蓋範圍區分區域網和廣域網,而是在應用技術方面進行區分,應用了區域網技術就是區域網,應用了廣域網技術就是廣域網。區域網一般是自己購買裝置,自己維護,寬頻固定。廣域網 花錢買服務,花錢買頻寬,效能...

計算機網路基礎(一)

1 二層交換機與三層交換機的區別?通俗的講,2層交換機 不帶路由功能。3層交換機帶路由功能。3層可以當 路由器用。也可以當交換機用。1個3層等於1個路由器和乙個2層交換機 2 資料封裝流程簡介 3 雙絞線的線序分類及各線序的用處 問 交叉網線基本都用在什麼裝置上啊?問題補充 另外,2臺pc用網線進行...

計算機網路基礎 一

此為sunny 王苗苗同學的學習筆記 本章主要內容 csma cd 網橋,ip分類 我一直很納悶計算機之間是如何進行通訊的,為什麼a跟b之間能相互通訊呢?用頻率來傳送訊號,那麼如果頻率不同怎麼辦?其實每台計算機上都會有個介面卡。多台機器連在一根線上,如何避免相互干擾?上面只是a,b兩台機連在同一根線...