你知道TCP/IP協議如何測試嗎?
- 2019 年 10 月 8 日
- 筆記
作為一個測試人員,如果你確實還沒接觸過網路、數據通訊方面的技術,那麼咱們的路還很長,至少我認為軟體測試並非只停留在上層的應用,而測試的最高境界應該是對底層核心技術的測試,通過架構分析、協議數據包分析等等來測試出結果~~~所以我們應該掌握的技術有:TCP/IP、Socket、多執行緒,這些是必須的。
一、什麼是TCP/IP
TCP/IP 是一類協議系統,它是用於網路通訊的一套協議集合.
傳統上來說 TCP/IP 被認為是一個四層協議

1) 網路介面層:
主要是指物理層次的一些介面,比如電纜等.
2) 網路層:
提供獨立於硬體的邏輯定址,實現物理地址與邏輯地址的轉換.
在 TCP / IP 協議族中,網路層協議包括 IP 協議(網際協議),ICMP 協議( Internet 互聯網控制報文協議),以及 IGMP 協議( Internet 組管理協議).
3) 傳輸層:
為網路提供了流量控制,錯誤控制和確認服務
在 TCP / IP 協議族中有兩個互不相同的傳輸協議:TCP(傳輸控制協議)和 UDP(用戶數據報協議).
4) 應用層:
為網路排錯,文件傳輸,遠程控制和 Internet 操作提供具體的應用程式
二、TCP/IP協議核心與應用程式關係
TCP/IP協議的核心部分是傳輸層協議(TCP、UDP),網路層協議(IP)和物理介面層,這三層通常是在作業系統內核中實現。
通常用戶的服務需要通過應用程式來實現,所以在底層與應用層就是通過套接字來實現,也就是我們通常所說的Socket來建立連接的。

TCP/IP協議核心與應用程式關係如上圖所示,所以對照這個圖來理解我們的應用層開發,就直觀多了,特別是對一些應用進行性能測試時,基於什麼協議來通訊,分析也會得心應手了。
三、TCP/IP的工作原理
下面以採用TCP/IP協議傳送文件為例,說明TCP/IP的工作原理,其中應用層傳輸文件採用文件傳輸協議(FTP)。
TCP/IP協議的工作流程如下:
1.在源主機上,應用層將一串應用數據流傳送給傳輸層。
2.傳輸層將應用層的數據流截成分組,並加上TCP報頭形成TCP段,送交網路層。
3.在網路層給TCP段加上包括源、目的主機IP地址的IP報頭,生成一個IP數據包,並將IP數據包送交鏈路層。
4.鏈路層在其MAC幀的數據部分裝上IP數據包,再加上源、目的主機的MAC地址和幀頭,並根據其目的MAC地址,將MAC幀發往目的主機或IP路由器。
5.在目的主機,鏈路層將MAC幀的幀頭去掉,並將IP數據包送交網路層。
6.網路層檢查IP報頭,如果報頭中校驗和與計算結果不一致,則丟棄該IP數據包;若校驗和與計算結果一致,則去掉IP報頭,將TCP段送交傳輸層。
7.傳輸層檢查順序號,判斷是否是正確的TCP分組,然後檢查TCP報頭數據。若正確,則向源主機發確認資訊;若不正確或丟包,則向源主機要求重發資訊。
8.在目的主機,傳輸層去掉TCP報頭,將排好順序的分組組成應用數據流送給應用程式。這樣目的主機接收到的來自源主機的位元組流,就像是直接接收來自源主機的位元組流一樣。
四、TCP/IP協議測試
安裝網路硬體和網路協議之後,我們一般要進行TCP/IP協議的測試工作,那麼怎樣測試才算是比較全面的測試呢?我們認為,全面的測試應包括區域網和互聯網兩個方面,因此應從區域網和互聯網兩個方面測試,以下是我們在實際工作中利用命令行測試TCP/IP配置的步驟: 1、 單擊「開始」/「運行」,輸入CMD按回車,打開命令提示符窗口。
2、 首先檢查IP地址、子網掩碼、默認網關、DNS伺服器地址是否正確,輸入命令ipconfig /all,按回車。此時顯示了你的網路配置,觀察是否正確。
3、 輸入ping 127.0.0.1,觀察網卡是否能轉發數據,如果出現「Request timed out」,表明配置差錯或網路有問題。

4、 Ping一個互聯網地址,如ping 202.102.128.68,看是否有數據包傳回,以驗證與互聯網的連接性。
5、 Ping 一個區域網地址,觀察與它的連通性。
6、 用nslookup測試DNS解析是否正確,輸入如nslookup www.163.com,查看是否能解析。
如果你的電腦通過了全部測試,則說明網路正常,否則網路可能有不同程度的問題。在此不展開詳述。不過,要注意,在使用 ping命令時,有些公司會在其主機設置丟棄ICMP數據包,造成你的ping命令無法正常返回數據包,不防換個網站試試。
ping命令詳解:
ping [-n count][-l size][-w timeout]
-n 發送的ICMP數據包數,默認是4個
-l 發送的ICMP數據包大小,一般是56K+8K=64K
-w 超時時間
另外因為經常被問到幀和IP數據包是怎麼回事,所以也找了找這方面的資料。
數據格式: 數據幀:幀頭+IP數據包+幀尾 (幀頭包括源和目標主機MAC地址及類型,幀尾是校驗字) IP數據包:IP頭部+TCP數據資訊 (IP頭包括源和目標主機IP地址、類型、生存期等) TCP數據資訊:TCP頭部+實際數據 (TCP頭包括源和目標主機埠號、順序號、確認號、校驗字等)