TCP IP學習筆記(八)

2021-06-03 04:59:14 字數 4930 閱讀 4398

tcp/ip學習筆記(八)

一、ftp:檔案傳輸協議

1、 ftp協議:採用2個tcp連線來傳輸乙個檔案。

(1) 控制連線:

控制連線通常以客戶伺服器方式建立。控制連線始終等待客戶與伺服器的通訊,該連線將命令從客戶端傳給伺服器,並傳回伺服器的應答。

(2) 資料連線:

該連線用於資料傳輸。

2、 資料表示:

(1) 檔案型別:

◆ascii檔案:預設以nvt ascii形式傳輸。這要求傳送方將本地文字檔案轉換為nvt ascii碼,而接收方將nvt ascii碼再還原為本地文字檔案。用nvt asvcii碼傳輸的每一行都以乙個回車和乙個換行結束。

◆ebcdic檔案:要求兩端都是ebcdic系統。

◆ 二進位制檔案型別:資料傳送乙個連續的位元流,通常用於傳輸二進位制檔案。

◆ 本地檔案型別:再具有不同位元組大小的主機之間傳輸二進位制檔案。

(2) 格式控制,只對ascii和ebcdic檔案型別有效。

◆ 非列印(預設):檔案中不含垂直格式資訊。

◆ 遠端登入格式控制:檔案含有向印表機解釋的遠端登入垂直格式控制。

◆fortran回車控制:每行首字元是fortran格式控制符。

(3) 結構:

◆ 檔案結構(預設):檔案被認為是乙個連續的位元組流,不存在內部的檔案結構。

◆ 頁結構:每頁都帶有頁號傳送,以便收方能隨機儲存各頁。

(4) 傳輸方式

◆ 流方式(預設):檔案以位元組流傳輸,對於檔案結構,傳送方在檔案尾提示關閉資料連線。對於記錄結構,有專用的兩位元組序列碼標記記錄結束和檔案結束。

◆ 塊方式:檔案以一系列塊來傳輸,每塊前面都帶有乙個或多個首部位元組。

◆ 壓縮方式:

3、 ftp命令:

命令和應答在客戶和伺服器的控制連線上以nvt ascii形式傳送,這要求在每行結尾都要返回cr/lf。

ftp命令大家都很熟悉,這就不介紹了。

4、 ftp應答:

應答都是ascii碼形式的3位數字,並跟有報文選項。一些典型的應答:

◆ 125:資料連線已開啟,傳輸開始

◆ 200:就緒

◆ 214:幫助報文

◆ 331:使用者名稱就緒,要求輸入口令

◆ 425:不能開啟資料連線

◆ 452:錯寫檔案

◆ 500:未知語法錯誤

◆ 501:無效引數

◆ 502:未實現的mode型別

5、 連線管理:

資料連線有3大用途:

(1) 從客戶向伺服器傳送乙個檔案

(2) 從伺服器向客戶傳送乙個檔案

(3) 從伺服器向客戶傳送檔案或目錄列表。

每乙個資料連線對傳輸乙個檔案或目錄序列都要建立乙個新的連線。

(1) 客戶發出命令要求建立資料連線

(2) 客戶在客戶主機上未資料連線選擇乙個臨時埠號

(3) 客戶使用port命令從控制連線上把埠號發給伺服器。

(4) 伺服器在控制連線上接收埠號,並向客戶端主機上的埠發出主動開啟,伺服器的資料連線使用埠20。

二、smtp:簡單郵件傳送協議

1、smtp協議:

用tcp進行的郵件交換是由報文傳送**mta(message transfer agent)完成的。兩個mta之間用nvt ascii進行通訊,客戶向伺服器發出命令,伺服器用數字應答碼和可選的字串進行響應。

常見的smtp命令,其中只有5個smtp命令用於傳送郵件:hello、mail、rctp、data和quit。

helo:標識自己

mail:啟動使用者**

rcpt:標識接收方

data:郵件報文內容

quit:退出

rset:異常中止當前的郵件事務並使兩端復位

noop:強迫伺服器響應乙個ok應答碼,不做任何事。

2、信封、首部和正文

(1) 信封:由mta用來交付。

mail from:[email protected]

rcpt to:[email protected]

(2) 首部:由使用者**使用。共有9個字段:received、message_id、from、data、reply-to、x-phone、x-mailer、to、subject。每個首部欄位都包含乙個名、緊跟乙個冒號,接著是字段值。

(3)正文:是傳送給接收使用者報文的內容。當用data命令傳送時,先傳送首部,緊跟乙個空行,然後是正文。用data傳送的各行都必須小於1000位元組。

使用者接收正文部分,加上一些首部字段,並把結果傳給mta。mta加上一些首部字段,加上信封,並把結果發給另以mta。所有這一些都以nvt ascii格式傳送。

3、擴充的smtp:

要使用esmtp,首先通過ehlo命令而不是helo命令啟動與伺服器的會話。它會顯示擴充命令:expn、size、help、8bitmime、xadr等。size命令是讓客戶在mail from命令中以位元組的多少指定報文的大小,這樣伺服器可以在客戶開始傳送報文之前驗證它是否接收該長度的報文。8bitmime允許客戶把關鍵字body加到mail from命令中,指定正文中是否包含nvt ascii(預設)或8位資料。除非客戶收到伺服器響應ehlo命令發來的8bitmime關鍵字,否則禁止客戶傳送任何非nvt ascii字元。

(1) 首部變化:非ascii字元

用途主要是為了允許傳送方名、接收方名以及主題中使用其他的字元。

首部欄位中可以包含編碼字(coded word),其格式如下:

=?charset?encoding?encoded-text?=

charset表示字符集,有效值時us-ascii和iso-8859-x。

encoding是乙個單個字元用來指定編碼方法,支援2個值:

◆ q:意思是引號中可列印的,目的是用於拉丁字符集。大多數字元作為nvt ascii傳送的。任何要傳送的字元若第8位是1則被作為3個字元傳送,第乙個字元是"=",跟著兩個16進製制數,如0xe9,則傳送3個字元"=e9",空格通常作為下劃線或三個字元"=20"傳送。

◆ b:意思是以64為基數的編碼。文字中的3個連續位元組(24位)被編碼為4個6位值,用於表示所有可能的6位值的64個nvt ascii字元。當要編碼的個數不是3的倍數時,等號被用作填充符。

(2) 正文變化:通用internet郵件擴充可以把結構置入正文,這就是mime,即通用internet擴充。mime不要求任何擴充,

mime-version:當前版本是1.0

content-transfer-encoding:內容傳送編碼有5中:7bit(即nvt ascii ),quoted-printable,base64,8bit,binary。

content-id:

content-description:

三、nfs:網路檔案系統

1、遠端過程呼叫rpc(remote procedue access),主要過程如下:

(1) 當客戶程式呼叫遠端的過程時,它實際上只呼叫了乙個位於本機上的由rpc程式生成的函式,這個函式稱為客戶殘樁(stub),客戶殘樁將過程的引數封裝為乙個網路報文並將該報文傳送給伺服器程式。

(2) 伺服器主機上的乙個伺服器殘樁負責接收這個網路報文,它從網路報文中提取引數,然後呼叫伺服器程序。

(3) 當伺服器函式返回時,它返回到伺服器殘樁。伺服器殘樁提取返回值,把返回值封裝成乙個網路報文,然後將報文傳送給客戶殘樁。

(4) 客戶殘樁從接收的網路報文中取出返回值,將其返回給客戶程式。

2、xdr:外部資料表示

xdr用來對rpc呼叫報文和應答報文中的值進行編碼,這些值包括rpc首部字段(xid、程式號、接收狀態等)、過程引數和過程結果。xdr定義了很多資料型別以及它們如何在乙個rpc報文中傳輸的具體形式。傳送者必須採用xdr格式構造乙個rpc報文,然後接收者將xdr格式的報文轉換為本機形式。

3、埠對映器

包含遠端過程的rpc伺服器程式使用的是臨時視窗,這就要求跟蹤rpc程式使用了哪乙個臨時埠。埠對映器本身必須由乙個知名埠111,同時由乙個程式號(100000),乙個版本號(2)。伺服器程式使用rpc呼叫埠對映器註冊本身,客戶程式使用使用rpc呼叫埠對映器查詢。

埠對映器提供4個服務程序:

4、nfs協議

(1) 訪問的是乙個本地檔案還是nfs檔案對於客戶是透明的,當檔案被開啟時,由核心決定。

(2) nfs客戶通過它的tcp/ip模組向nfs伺服器傳送rpc請求。

(3) nfs伺服器一般在埠2049接收作為udp資料報的客戶請求。

(4) nfs伺服器收到客戶請求時,它將這個請求傳遞給本地檔案訪問例程,後者訪問伺服器主機上的乙個本地檔案。

(5) 大多數nfs伺服器是多執行緒的,可以處理多個請求。

(6) 客戶也可以執行多個nfs客戶。

5、檔案控制代碼

檔案控制代碼是乙個不透明的物件,用來引用伺服器上的乙個檔案或目錄。伺服器建立檔案控制代碼,把它傳遞給客戶,然後客戶訪問檔案時使用這個控制代碼。

6、安裝協議

客戶必須在訪問伺服器上乙個檔案系統中的檔案之前,使用安裝協議安裝哪個檔案系統。一般時客戶主機引導時完成。

7、nfs過程:字首為nfsproc_

(1) getattr:返回檔案屬性

(2) setattr:設定檔案屬性

(3) status:返回乙個檔案系統的狀態

(4) lookup:查詢乙個檔案

(5) read:讀資料

(6) write:寫資料

(7) create:建立檔案

(8) remove:刪除檔案

(9) rename:重新命名檔案

(13) mkdir:建立目錄

(14) rmdir:刪除目錄

(15) readdir:讀目錄。

---------end--------

單位:南京中萃食品**** 資訊部

郵件:[email protected]

TCP IP學習筆記(八)

tcp ip學習筆記 八 一 ftp 檔案傳輸協議 1 ftp協議 採用2個tcp連線來傳輸乙個檔案。1 控制連線 控制連線通常以客戶伺服器方式建立。控制連線始終等待客戶與伺服器的通訊,該連線將命令從客戶端傳給伺服器,並傳回伺服器的應答。2 資料連線 該連線用於資料傳輸。2 資料表示 1 檔案型別 ...

tcp ip 學習筆記

最近學習網路程式設計,看了周立發老師的blog 也模仿寫了乙個檔案管理併發伺服器。選擇多程序併發伺服器 技術難點 建立tcp 伺服器 fork 產生新的處理程序 使用getopt 函式使伺服器配置引數化,使用同一的linux風格 設定埠復用,瀏覽檔案系統,思路 1 首先建立乙個被動套接字 設定套接字...

Tcp ip學習筆記

分層 網路協議通常分不同層次進行開發,每一層分別負責不同的通訊功能。乙個協議族,比如t c p i p,是一組不同層次上的多個協議的組合。t c p i p通常被認為是乙個四層協議系統,如圖1 1所示。每一層負責不同的功能 1 鏈路層,有時也稱作資料鏈路層或網路介面層,通常包括作業系統中的裝置驅動程...