tcp/ip詳解卷一(筆記4:應用層應用與協議)
阿新 • • 發佈:2018-12-21
相關文章:
tcp/ip詳解卷一(筆記1:概述與IP層協議)
tcp/ip詳解卷一(筆記2:UDP及相關的協議)
tcp/ip詳解卷一(筆記3:tcp與相關協議)
文章目錄
25 SNMP(簡單網路管理協議)
基於TCP/IP網路管理包含兩部分:網路管理站(也叫管理程序,manager)和被管理的網路單元。被管裝置種類繁多,如路由器,x終端,終端伺服器和印表機。這些被管理的裝置的共同點就是都允許TCP/IP協議。被管裝置端和管理相關軟體叫做代理程式或代理程序。
網路管理協議需要了解如下內容:
- 管理資訊庫MIB(management information base),包含所有代理程序的所有被查詢和修改的引數;
- 關於MIB的一套共用的結構和表示符號,叫做管理資訊結構SMI(structure of managemnt infomation)
- 管理與被管理程序之間的通訊協議SNMP。
本章要點:
- nmp協議報文格式;
- snmp協議報文型別,5中(get-request, get-next-request, set-request, get-response ,trap)
- mib及mib變數查詢、修改,mib變數型別、變數組織、命名方式;
25.1 SNMP報文
其中:PDU型別有5中,如下圖所示。
差錯狀態欄位是一個整數,它由代理程序標註的,指明有錯誤發生,如下圖所示。
25.2 mib 中引數標識
在實際應用中(在管理程序和代理程序進行資料報互動時),mib變數名是以物件標識來識別的,都是以1.3.6.1.2.1 (root.iso.org.dod.internet.mgmt.mib)開頭的
物件標識:物件標識指明一種“授權”命名的物件。“授權”的意思就是這些標識不是隨便分配的,它是有一些權威機構進行管理和分配的。物件標識是一個整數序列,以點(“.”)。這些整數構成一個樹型結構,類似於DNS或是unix檔案系統。物件標識從樹的頂部開始,頂部沒有標識,以root表示。樹上每個節點同時還有一個檔名,主要方便人們閱讀,類似與DNS中的hostname與IP。
26 telnet與rlogin:遠端登入
telnet 客戶-伺服器模式的telnet簡圖
對於應用層協議,基於下面的資料傳輸層傳輸資料,拿到資料後,需要自己去解析資料。為了合理的解決應用場景中的問題,還需要定義資料傳輸中的特定含義。
對於rlogin,需要注意的是:
- 在建立普通的tcp資料連線後,client需要給server傳送 登入主機名、終端速率,server返回一個位元組0;然後server選擇是否需要使用者口令,另外,server還需要向client詢問終端的視窗大小;
- 流量控制:client進行需要能夠識別使用者鍵入的stop,start的ascii字元,並能夠終止或啟動終端的輸出。例如,當用戶輸入終止終端輸出命令後,該命令傳輸到server上,server不傳送資料輸出了,但是之前網路通道中還存在之前傳送的、client還沒有接收到資料。這些資料還在將來進入client中,client必須能夠正確處理,不再在螢幕中顯示(因為使用者已經輸入了螢幕stop命令);
- server到client的命令處理:當server要給client傳送命令時,server就進入緊急狀態,並且把命令放在緊急資料的最後一個位元組中。當客戶程序收到這個緊急方式的通知時,它從連線上讀取資料並且儲存起來,直到獨到命令位元組(即緊急資料的最後一個位元組)。這個時候客戶程序根據讀到的命令,再決定對於所讀到並儲存起來的資料是顯示在終端上還是丟棄它。
- clent到sever的命令處理:從client到server之間的命令(只有一條,將當前的視窗大小更新發送給Server)採用和普通資料的傳送方式(即帶內資料)。但是隻有一條連線,client必須對在該連線上傳送的命令進行區分(將命令和普通的資料區分開來)。處理方式是在兩個位元組的oxff後面緊跟著傳送兩個特殊的標誌位元組。由於client傳送命令和資料一起在同一個連線上傳送,則server必須對收到的資料進行檢測,檢視是否有連續的兩個oxff。而client不需要對server傳送的資料進行檢查,除非server程序進入了緊急方式,如果進入了,也只需要檢視緊急指標所指向的位元組。這樣區別的原因是:client傳送給server的資料較少,所有server對所有的資料進行檢測也問題不大;但是server傳送給client的資料就比較多了,進行資料搜尋檢查代價較大。
對於telnet,需要注意的是:
- telnet協議可以工作在內容主機或任何終端之間。RFC 854定義了該協議的規範,其中還定義了一種通用的字元終端叫做網路虛擬終端NVT(network virtual terminal)。NVT是虛擬裝置,連線的雙方,即client和server,都必須將他們的物理終端和NVT 進行相關轉換。也就是說,不管客戶終端是什麼型別,作業系統都必須把它轉化成NVT格式。同時不管server伺服器程序是什麼型別,作業系統必須能夠把NVT格式轉化成終端能夠支援的格式。
2.telnet命令: telnet 通訊的兩個方向都採用帶內資料的方式傳輸。位元組oxff叫做IAC( interpret as command).該位元組後面的位元組才是命令位元組。
27 FTP:檔案傳輸協議
FTP使用了2個tcp連線來傳輸一個檔案。一個傳輸控制資料,一個傳輸檔案普通資料;