TCPIP詳解 卷一 協議 15 例子

2022-01-18 00:01:46 字數 1253 閱讀 8624

最先引起我們注意的是在unix系統下接收的檔案長度是節,而tftp則傳送了962個位元組。使用wc程式我們看到檔案共有48行,因此48個unix的換行符被轉化成48個cr/cf對,因為預設情況下tftp使用netascii模式傳送。

圖15-2顯示了發生的分組交換過程。

圖15-2使用tftp傳輸乙個檔案的分組交換過程

第1行顯示了客戶向伺服器傳送的讀請求。由於目的udp埠是tftp熟知埠(69),tcpdump將解釋tftp分組,並顯示rrq和檔名。19位元組的udp資料報括2位元組的操作碼,

7位元組的的檔名,1位元組的0,8位元組的netascii模式以及另1位元組的0結束。

下乙個分組由伺服器發回(第2行),共包含節:2位元組的操作碼,2位元組的資料塊號和節的資料。第3行是這個資料塊的確認,它包括2位元組的操作碼和2位元組的資料塊號。

最後的資料分組(第4行)包含節的資料。這節的資料加上第2行的節的資料就是向該客戶傳送的節的資料。注意tcpdump僅在第1行解釋tftp報文,而在2~5行都不顯示任何tftp協議資訊。

這是因為伺服器程序的埠在第1行和第2行發生了變化。

tftp協議需要客戶程序向伺服器程序的udp熟知埠(69)傳送第乙個分組(rrq或wrq)。

之後伺服器程序便向伺服器主機申請乙個尚未使用的埠(1077,見圖15-2),伺服器程序使用這個埠來進行請求客戶程序與伺服器程序間的其他資料交換。客戶程序的埠號(在這個例子中為1106)沒有變化。tcpdump無法知道主機srv4上的1077埠是乙個tftp伺服器程序。

伺服器程序埠變化的原因是伺服器程序不能占用這個熟知埠來完成需一些時間的檔案傳輸(可能是幾十秒甚至數分鐘)。相反,在傳輸當前檔案的過程中,這個熟知埠要留出來供其他的tftp客戶程序傳送它們的請求。

回顧圖10-6,當rip伺服器向客戶傳送的資料超過節,兩個udp資料報都使用伺服器的熟知埠。在那個例子中,即使伺服器程序必須寫多個資料報以便將所有資料發回,伺服器程序也是先寫乙個,再寫乙個,它們都使用它的熟知埠。然而,tftp協議與它不同,因為客戶與伺服器間的連線需要持續乙個較長的時間(可能是數秒或數分鐘)。

如果乙個伺服器程序使用熟知埠來進行檔案傳輸,那麼在檔案傳輸期間,它要麼拒絕任何來自其他客戶的請求,要麼乙個伺服器程序在同一埠(69)同時對多個客戶程序進行多個檔案傳輸。最簡單的辦法是讓伺服器程序在收到rrq或wrq後,改用新的埠。當然,客戶程序在收到第乙個資料分組(圖15-2的第2行)後必須探測到這個新的埠,並將之後的所有確認(第3行和第5行)傳送到那個新的埠。

在16.3節我們將看到當x終端在進行系統引導時將使用tftp。

TCPIP詳解 卷一 協議 11 簡單的例子

用我們自己編寫的sock程式生成一些可以通過tcpdump觀察的udp資料報 bsdi sock v u i n4svr4discard connectedon140.252.13.35.1108to140.252.13.34.9bsdi sock v u i n4 w0svr4discard co...

TCPIP詳解卷一協議49小結

在大多數的tcp ip實現中,arp是乙個基礎協議,但是它的執行對於應用程式或系統管理員來說一般是透明的。arp快取記憶體在它的執行過程中非常關鍵,我們可以用arp命令對快取記憶體進行檢查和操作。快取記憶體中的每一項內容都有乙個定時器,根據它來刪除不完整和完整的表項。arp命令可以顯示和修改arp快...

TCPIP詳解 卷一 協議 7 5小結

ping程式是對兩個tcp ip系統連通性進行測試的基本工具。它只利用icmp回顯請求和 回顯應答報文,而不用經過傳輸層 tcp udp ping伺服器一般在核心中實現icmp的功能。我們分析了在lan wan以及slip鏈路 撥號和線路 上執行ping程式的輸出結果,並對序列線路上的slip鏈路吞...