當前位置:首頁 » 文件傳輸 » ftp運行在tcp上
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ftp運行在tcp上

發布時間: 2023-01-31 19:35:42

㈠ FTP是什麼的縮寫,到底指什麼意思

FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為「文傳協議」。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。

FTP是一個8位的客戶端-伺服器協議,能操作任何類型的文件而不需要進一步處理,就像MIME或Unicode一樣。但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求數據之間的時間,會非常長;並且不時的必須執行一些冗長的登錄進程。

文件傳輸協議的原始規范於1971年4月16日發布為RFC 114。直到1980年,FTP運行在TCP/ IP的前身NCP上。該協議後來被TCP / IP版本,RFC 765(1980年6月)和RFC 959(1985年10月)(當前規范)所取代。

RFC 959提出了若干標准修改,例如RFC 1579(1994年2月)啟用防火牆FTP(被動模式),RFC 2228(1997年6月)提出安全擴展,RFC 2428(1998年9月)增加了對IPv6的支持,並定義了一種新型的被動模式。

(1)ftp運行在tcp上擴展閱讀
與大多數Internet服務一樣,FTP也是一個客戶機/伺服器系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP伺服器程序。用戶通過客戶機程序向伺服器程序發出命令,伺服器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。

比如說,用戶發出一條命令,要求伺服器向用戶傳送某一個文件的一份拷貝,伺服器會響應這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。

大多數最新的網頁瀏覽器和文件管理器都能和FTP伺服器創建連接。這使得在FTP上通過一個介面就可以操控遠程文件,如同操控本地文件一樣。

這個功能通過給定一個FTP的URL實現,形如ftp://<伺服器地址>(例如,ftp://ftp.gimp.org )。是否提供密碼是可選擇的,如果有密碼,則形如ftp://<login>:<password>@<ftpserveraddress>。大部分網頁瀏覽器要求使用被動FTP模式,然而並不是所有的FTP伺服器都支持被動模式。

㈡ FTP是什麼

FTP(File Transfer Protocol,文件傳輸協議) 是 TCP/IP 協議組中的協議之一。FTP協議包括兩個組成部分,其一為FTP伺服器,其二為FTP客戶端。

其中FTP伺服器用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位於FTP伺服器上的資源。在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web伺服器上。此外,由於FTP傳輸效率非常高,在網路上傳輸大的文件時,一般也採用該協議。



(2)ftp運行在tcp上擴展閱讀:

同大多數Internet服務一樣,FTP也是一個客戶/伺服器系統。用戶通過一個客戶機程序連接至在遠程計算機上運行的伺服器程序。依照 FTP 協議提供服務,進行文件傳送的計算機就是 FTP伺服器,而連接FTP伺服器,遵循FTP協議與伺服器傳送文件的電腦就是FTP客戶端。

用戶要連上FTP 伺服器,就要用到 FTP 的客戶端軟體,通常 Windows自帶「ftp」命令,這是一個命令行的 FTP客戶程序,另外常用的 FTP 客戶程序還有FileZilla、 CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-貓眼等。

㈢ 為什麼HTTP,FTP,SMTPPOP3都運行在TCP而不是UDP

HTTP,FTP,SMTPPOP3都運行在TCP而不是UDP。是因為UDP不提供數據傳送的保證機制,TCP提供數據傳送的保證機制。

UDP協議並不提供數據傳送的保證機制。如果在從發送方到接收方的傳遞過程中出現數據包的丟失,協議本身並不能做出任何檢測或提示。

而TCP協議中包含了專門的傳遞保證機制,當數據接收方收到發送方傳來的信息時,會自動向發送方發出確認消息;發送方只有在接收到該確認消息之後才繼續傳送其它信息,否則將一直等待直到收到確認信息為止。

(3)ftp運行在tcp上擴展閱讀:

TCP 具有高可靠性,確保傳輸數據的正確性,不出現丟失或亂序;UDP 在傳輸數據前不建立連接,不對數據報進行檢查與修改,無須等待對方的應答,所以會出現分組丟失、重復、亂序,應用程序需要負責傳輸可靠性方面的所有工作。

UDP 段結構比 TCP 的段結構簡單,因此網路開銷也小。TCP 協議可以保證接收端毫無差錯地接收到發送端發出的位元組流,為應用程序提供可靠的通信服務。對可靠性要求高的通信系統往往使用 TCP 傳輸數據。

㈣ FTP使用傳輸層的什麼協議

FTP使用傳輸層的TCP協議。

TCP旨在適應支持多網路應用的分層協議層次結構。連接到不回同但互答連的計算機通信網路的主計算機中的成對進程之間依靠TCP提供可靠的通信服務。

TCP假設它可以從較低級別的協議獲得簡單的,可能不可靠的數據報服務。原則上,TCP應該能夠在從硬線連接到分組交換或電路交換網路的各種通信系統之上操作。

(4)ftp運行在tcp上擴展閱讀:

TCP協議的主要功能:

1、在數據正確性與合法性上,TCP用一個校驗和函數來檢驗數據是否有錯誤,在發送和接收時都要計算校驗和;同時可以使用md5認證對數據進行加密。

2、在保證可靠性上,採用超時重傳和捎帶確認機制。

3、在流量控制上,採用滑動窗口協議,協議中規定,對於窗口內未經確認的分組需要重傳。

㈤ FTP協議的中文含義是

選擇b是FTP (File Transfer Protocol, 文件傳輸協議) ,
還有幾個應用層的協議:也經常見。
該層包括所有和應用程序協同工作,利用基礎網路交換應用程序專用的數據的協議。如,
HTTP(Hypertext Transfer Protocol),超文本傳輸協議。
TELNET (Teletype over the Network, 網路電傳) ,通過一個終端(terminal)登陸到網路(運行在TCP協議上)。
FTP (File Transfer Protocol, 文件傳輸協議) ,由名知義(運行在TCP協議上) 。
SMTP (Simple Mail Transfer Protocol,簡單郵件傳輸協議) ,用來發送電子郵件(運行在TCP協議上) 。
DNS (Domain Name Service,域名服務) ,用於完成地址查找,郵件轉發等工作(運行在TCP和UDP協議上) 。
NTP (Network Time Protocol,網路時間協議) ,用於網路同步(運行在UDP協議上) 。
SNMP (Simple Network Management Protocol, 簡單網路管理協議) ,用於網路信息的收集和網路管理。
傳輸層協議
該層提供端對端的通信。最重要的傳輸層協議是傳輸控制協議TCP。
傳輸控制協議TCP (Transport Control Protocol) - 數據流傳輸(面向連接,可靠)
用戶數據報文協議UDP (User Datagram Protocol) - 數據報文傳輸(無連接不可靠)

網路層協議
該層負責數據轉發和路由。從該層上面往下看,可以認為底下存在的是一個不可靠無連接的端對端的數據通路。最核心的協議當然是IP協議。此外還有ICMP,RIP,OSPF,IS-IS,BGP,ARP,RARP等。

鏈路層協議
TCP/IP參考模型定義了鏈路層,但該層不屬於TCP/IP協議棧的范圍。常用的鏈路層技術有乙太網(Ethernet),令牌環(Token Ring),光纖數據分布介面(FDDI),端對端協議( PPP),X.25,幀中繼(Frame Relay),ATM,Sonet, SDH等。

㈥ ftp客戶和伺服器間傳遞ftp命令時,使用的連接是tcp還是udp

ftp客戶和伺服器間傳遞ftp命令時,使用的連接是tcp。

FTP協議是基於傳輸層TCP協議的。FTP的控制連接使用埠21,用來傳輸控制信息(如連接請求、傳送請求等),數據連接使用埠20,用來傳輸數據。

控制連接的特點是:

1、以客戶一伺服器方式建立。

2、伺服器以被動方式打開用於FTP的埠21,等待客戶的連接。

3、客戶則以主動方式打開TCP埠21,來建立連接。

4、控制連接始終等待客戶與伺服器之間的通信。該連接將命令從客戶傳給伺服器,並傳回伺服器的應答。由於命令通常是由用戶鍵入的,所以IP對控制連接的服務主要責任就是「最大限度地減小遲延」。

(6)ftp運行在tcp上擴展閱讀:

FTP協議包括兩個組成部分,其一為FTP伺服器,其二為FTP客戶端。其中FTP伺服器用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位於FTP伺服器上的資源。

在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web伺服器上。此外,由於FTP傳輸效率非常高,在網路上傳輸大的文件時,一般也採用該協議。

默認情況下FTP協議使用TCP埠中的 20和21這兩個埠,其中20用於傳輸數據,21用於傳輸控制信息。但是,是否使用20作為傳輸數據的埠與FTP使用的傳輸模式有關,如果採用主動模式,那麼數據傳輸埠就是20;如果採用被動模式,則具體最終使用哪個埠要伺服器端和客戶端協商決定。

㈦ FTP使用傳輸層的什麼協議

FTP使用傳輸層的TCP協議。

TCP旨在適應支持多網路應用的分層協議層次結構。 連接到不同但互連的計算機通信網路的主計算機中的成對進程之間依靠TCP提供可靠的通信服務。

TCP假設它可以從較低級別的協議獲得簡單的,可能不可靠的數據報服務。 原則上,TCP應該能夠在從硬線連接到分組交換或電路交換網路的各種通信系統之上操作。



(7)ftp運行在tcp上擴展閱讀:

TCP連接每一方的接收緩沖空間大小都固定,接收端只允許另一端發送接收端緩沖區所能接納的數據,TCP在滑動窗口的基礎上提供流量控制,防止較快主機致使較慢主機的緩沖區溢出。

作為IP數據報來傳輸的TCP分片到達時可能會失序,TCP將對收到的數據進行重新排序,將收到的數據以正確的順序交給應用層。

TCP將保持它首部和數據的檢驗和,這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到分片的檢驗和有差錯,TCP將丟棄這個分片,並不確認收到此報文段導致對端超時並重發。

㈧ 什麼是ftp

我們在使用電腦進行文件傳輸的時候經常會看到FTP這個詞,那麼它具體是什麼意思呢?一起來了解一下吧。

FTP的含義

FTP是文件傳輸協議的英文簡稱,而中文簡稱為文傳協議。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序。

FTP的作用和弊端

FTP是一個8位的客戶端伺服器協議,能操作任何類型的文件而不需要進一步處理,就像MIME或Unicode一樣。但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求數據之間的時間會非常長,並且還必須執行一些冗長的登錄進程。

總的來說,FTP是文件傳輸協議的英文簡稱,是一種客戶端/伺服器協議。用於Internet上的控制文件的雙向傳輸。

㈨ TCP/IP協議是什麼

包含了一系列構成互聯網基礎的網路協議。這些協議最早發源於美國國防部的DARPA互聯網項目。TCP/IP字面上代表了兩個協議:TCP傳輸控制協議和IP互聯網協議。

時間回放到1983年1月1日,在這天,互聯網的前身Arpanet中,TCP/IP協議取代了舊的網路核心協議NCP(Network Core Protocol),從而成為今天的互聯網的基石。最早的的TCP/IP由Vinton Cerf和Robert Kahn兩位開發,慢慢地通過競爭戰勝了其它一些網路協議的方案,比如國際標准化組織ISO的OSI模型。TCP/IP的蓬勃發展發生在上世紀的90年代中期。當時一些重要而可靠的工具的出世,例如頁面描述語言HTML和瀏覽器Mosaic,導致了互聯網應用的飛束發展。

隨著互聯網的發展,目前流行的IPv4協議(IP Version 4,IP版本四)已經接近它的功能上限。IPv4最致命的兩個缺陷在與:

地址只有32位,IP地址空間有限;
不支持服務等級(Quality of Service, Qos)的想法,無法管理帶寬和優先順序,故而不能很好的支持現今越來越多的實時的語音和視頻應用。因此IPv6 (IP Version 6, IP版本六) 浮出海面,用以取代IPv4。
TCP/IP成功的另一個因素在與對為數眾多的低層協議的支持。這些低層協議對應與OSI模型 中的第一層(物理層)和第二層(數據鏈路層)。每層的所有協議幾乎都有一半數量的支持TCP/IP,例如: 乙太網(Ethernet),令牌環(Token Ring),光纖數據分布介面(FDDI),端對端協議( PPP),X.25,幀中繼(Frame Relay),ATM,Sonet, SDH等。

目錄
1 TCP/IP協議棧組成

2 必須協議

3 推薦協議

4 可選協議

5 範例: 不同計算機運行的不同協議

6 參考文獻

TCP/IP協議棧組成
整個通信網路的任務,可以劃分成不同的功能塊,即抽象成所謂的 」 層」 。用於互聯網的協議可以比照TCP/IP參考模型進行分類。TCP/IP協議棧起始於第三層協議IP(互聯網協議) 。所有這些協議都在相應的RFC文檔中討論及標准化。重要的協議在相應的RFC文檔中均標記了狀態: 「必須「 (required) ,「推薦「 (recommended) ,「可選「 (elective) 。其它的協議還可能有「 試驗「(experimental) 或「 歷史「(historic) 的狀態。

必須協議
所有的TCP/IP應用都必須實現IP和ICMP。對於一個路由器(router) 而言,有這兩個協議就可以運作了,雖然從應用的角度來看,這樣一個路由器 意義不大。實際的路由器一般還需要運行許多「推薦「使用的協議,以及一些其它的協議。

在幾乎所有連接到互聯網上的計算機上都存在的IPv4 協議出生在1981年,今天的版本和最早的版本並沒有多少改變。升級版IPv6 的工作始於1995年,目的在與取代IPv4。ICMP 協議主要用於收集有關網路的信息查找錯誤等工作。

推薦協議
每一個應用層(TCP/IP參考模型 的最高層) 一般都會使用到兩個傳輸層協議之一: 面向連接的TCP傳輸控制協議和無連接的包傳輸的UDP用戶數據報文協議 。 其它的一些推薦協議有:

TELNET (Teletype over the Network, 網路電傳) ,通過一個終端(terminal)登陸到網路(運行在TCP協議上)。
FTP (File Transfer Protocol, 文件傳輸協議) ,由名知義(運行在TCP協議上) 。
SMTP (Simple Mail Transfer Protocol,簡單郵件傳輸協議) ,用來發送電子郵件(運行在TCP協議上) 。
DNS (Domain Name Service,域名服務) ,用於完成地址查找,郵件轉發等工作(運行在TCP和UDP協議上) 。
ECHO (Echo Protocol, 回繞協議) ,用於查錯及測量應答時間(運行在TCP和UDP協議上) 。
NTP (Network Time Protocol,網路時間協議) ,用於網路同步(運行在UDP協議上) 。
SNMP (Simple Network Management Protocol, 簡單網路管理協議) ,用於網路信息的收集和網路管理。
BOOTP (Boot Protocol,啟動協議) ,應用於無盤設備(運行在UDP協議上)。

可選協議
最常用的一些有

支撐萬維網WWW的超文本傳輸協議HTTP,
動態配置IP地址的DHCP(Dynamic Host Configuration Protocol,動態主機配置協議),
收郵件用的POP3 (Post Office Protocol, version 3, 郵局協議) ,
用於加密安全登陸用的SSH (Secure Shell,用於替代安全性差的TELNET) ,
用於動態解析乙太網硬體地址的ARP (Address Resolution Protocol,地址解析協議) 。

範例: 不同計算機運行的不同協議
一個簡單的路由器上可能會實現ARP, IP, ICMP, UDP, SNMP, RIP。
WWW用戶端使用ARP, IP, ICMP, UDP, TCP, DNS, HTTP, FTP。
一台用戶電腦上還會運行如TELNET, SMTP, POP3, SNMP, ECHO, DHCP, SSH, NTP。
無盤設備可能會在固件比如ROM中實現了ARP, IP, ICMP, UDP, BOOT, TFTP (均為面向數據報的協議,實現起來相對簡單)。
TCP/IP基礎講座-1:1層,2層,3層?

讀過關於網路的課程的,都知道ISO-OSI 7層協議這個名詞,許多書籍都會具體的畫出那幅圖,然後標註上物理層,數據鏈路層,網路層等等.背的大家要死.但是卻又不知道具體這些層次干嗎用的勒?

其實在互聯網中,由於實際使用的是TCP/IP模型,也就是DOD模型(現在不知道沒關系,後面會說).所以7層模型在現實網路環境中只是一個理論上,學究派的東西.這個模型中,我們真正關心的是下面的3層.

1.物理層 .哦.是的.這個名詞還算容易了解.網卡還有那些網線構成了這一層.那些在網線中傳播的二進制數據流是這層的具體表象.也就是說,這一層上面沒有什麼協議(不是很精確的說法,但是你可以這么理解).有的都是電流而已.我們把兩台機器用網線連起來.或者用HUB把機器都連起來,這些工作就是物理層的工作.

有2個設備屬於物理層的,一個是中繼器,一個是HUB.大家知道.物理上面的連線距離一長就會產生電信號的衰減.為了重新加強這個信號,我們就需要在一定距離之後加上一個信號放大器,這就是中繼器(repeater)

恩...這個比較容易理解.repeater就是連接在2根網線之間的么.沒有做任何處理.所以只是一個物理設備.屬於1層的.

那麼集線器(HUB) 呢?這個怎麼會是在1層???似乎非常難以理解.

當我說出HUB的本質,大家就能夠清楚了解了

HUB的本質其實只是一個多口中繼器(MULTI PORT REPEATER) .啊...這樣大家能夠理解了.HUB不叫多口中繼器其實只是為了銷售上面的策略.他的本質就是連接多根網線的一個物理設備.也是不對經過的電信號做任何邏輯處理的.

2.數據鏈路層

歐~這個名詞有些別扭了.DATA LINK層.英文似乎更加容易理解.

這個層面上面的東西不再是電信號了.而是DATA了.對,既然是DATA就有了邏輯關系了.這個層面上面的基本單位是幀(Frame) .這層和物理層的接觸是最緊密的.他是把從網線上面傳輸的電流轉換成0和1的組合.

物理層只是網卡對網線發出或者接受各種電平信號,那就是說物理層是無法判別電流的來源和目標的.那麼把電流打成0和1的幀之後.裡面就有邏輯數據了.有了數據,就可以判別數據從何而來,到何處去.所以也就可以真正的形成LINK.

既然可以判別地址,那麼地址是按照什麼來判別的呢?

那就是最重要的概念之一:MAC地址

大家肯定都聽說過我們的網卡都有MAC地址

有些人可能也知道MAC地址都是唯一的.

對.MAC地址是全球唯一的.也就是說你的網卡雖然便宜.但是他也是世界上獨一無二的.

有些人說他可以改MAC.那就不是唯一了.對.雖然可以更改,那隻是欺騙上層對封包裡面的MAC地址進行改寫.你網卡真正的MAC地址是固化的.無法修改的.

我們有了MAC地址了.這樣就可以有針對性對所有連接在一起的計算機進行通訊了.是的.我們終於可以在一個區域網內通訊了.

但是有個問題我們前面沒有提到.就是既然物理層傳輸的是電信號.那麼如果我有2台機器一起發電信號,信號豈不是混亂了么?

非常正確.這個問題在網路裡面成為"碰撞",所以協議裡面規定了如果你需要往外發數據,一定需要先看看電纜裡面有沒有別的信號.如果沒有,那就可以發.如果2者同時發送,檢測到碰撞之後2者分別等待一個隨機時間,然後重發.這個就是重要的"碰撞檢測 ".

哈.看來問題解決了.不是么.現在整個網路可以正常運行了.

確實如此.但是如果連接在網路上的計算機越來越多,那麼碰撞的現象會越來越頻繁.這樣效率一定很低了.恩.這里還有一個重要概念"沖突域 ".在同一個物理上連接的網路上的所有設備是屬於同一個沖突域的.

接著就需要引入我們的2層設備來分割沖突域了.

網橋(Bridge) 就是連接2個不同的物理網路的.主要功能是在2個網路之間轉發Frame.因為從實際中我們可以知道.其實很多時候並非整個網路都在相互通訊.最多相互通訊的一組計算機我們可以分在一個小的沖突域內.這樣分割以後可以減少沖突域,也就相對的減少了沖突的機會.而之間使用網橋來橋接,由於網橋兩邊的通訊不是非常頻繁,所以使用網橋來為2邊作為"代言人".這樣任意一個小網路裡面產生沖突的機會就少了.

交換機(Switch)是我們最熟悉的設備了,交換機的本質其實就是一個多口網橋(Multi port Bridge) .同理可得.交換機的每個口後面都是一個沖突域.我們都說交換機比HUB快,就是因為交換機分割了所有的沖突域.

由於現在交換機非常便宜.所以一般我們都是直接在交換機的口上接計算機.這樣每台計算機都是一個獨立的沖突域.這樣碰撞的問題就沒有了.所以速度是比HUB快.

而前面說過.2層設備主要是個轉發的功能.交換機的主要功能就是轉發包.而不是讓所有的沖突域直接物理連接.所以交換機有CPU,有內存,可以對frame進行處理等等.這些也是交換機和HUB的區別.

3.網路層

我們前面的一些技術就可以構建出區域網了.有了網路層以後.數據才能夠真正的在整個世界間傳送

由於倫納德?博薩卡(Leonard Bosack)和姍蒂?雷納(Sandy Lerner)為了解決他們之間的通信問題(關於路由器發明的版本有很多.你聽到的別的說法可能比這個說法更准確,但是誰知道呢.呵呵).路由器被發明用來解決"信息孤島"問題.而且如果是由SWITCH來構建整個網路,那麼整個網路將會有"中心節點",這樣也不符合ARPANET的初衷.所以我們有了這一層.(這樣說可能會感覺本末倒置,但是先這么理解吧.)

這一層的基本單元是包(Packet) .所有的包都有一個IP頭.啊.聽起來很熟悉不是么.IP就是用來在這層上面標識包的來源和目的地址的.

這層的一個主要概念就是"路由 ",也就是和switch一樣,把包轉發到其他的地方.不過有個不同的地方,switch只有知道具體的MAC在哪裡的情況下才能夠發送給指定的計算機,而路由則不需要知道最終IP所在的計算機在哪個位置,只要知道那個途徑可以過去就可以工作.

這3層構建了整個網路的基礎.由於TCP/IP模型將最下面2層合並成為一層,所以在TCP/IP裡面總共這2層也是整個構架最基礎的內容.而網路方面要做的工作也都是針對於這2層做的.

2: TCP/IP.真實世界的模型

上一講裡面我們說過OSI 7層模型只是一個理論模型,而實際中只需要保證7層的功能能夠實現,實際分層無需按照7層來分.而且如果真的分7層.那麼數據處理的速度便要慢許多.

在實際應用中.使用最多的便是DoD模型.也成為TCP/IP協議簇

DoD模型(Department Of Defanse Model 美國國防部模型) 顧名思義,是美國國防部設計的一個網路模型.最早用於ARPANET.這些話可能在許多教材的第一章就會講了.但是一般教材對於DoD模型與OSI模型對應關系都沒有講到.或者很多是模糊或者錯誤的.

在這里我就要描述一下2者對應關系.OSI模型有7層我們已經知道了,而DoD模型則只有4層.下面是對應關系

OSI DoD

7.Application ┐

6.Presentation |-> 4. Application/Process

5.Session ┘

4.Transport ---> 3. Host to Host

3.Network ---> 2. Internet

2.Data Link ┬-> 1. Network Access

1.Physical ┘

由於我不會製表符.所以圖有些難看.其實就是OSI的1.2層對應DoD的第1層

OSI的5.6.7對應DoD的第4層

其實這個還是比較容易記憶的

由於物理層和數據鏈路層非常密切.所以分為一個.然後上面依次對應,最上面的一大塊成為應用層(處理層)

現在我們有了一個可用的實際模型了.不過一般我們在描述某個設備或者協議的時候.還是會使用OSI的模型,比如我們在討論SWITCH的時候,就會說他是一個2層的設備.而路由器是一個3層的設備,還會有一些特殊的設備,比如3層交換機,4層交換機.這些都是使用OSI模型進行分類的.這點大家不要搞混淆了.

我們一直聽說TCP或者UDP.還有什麼SMTP.POP3.這些協議到底是在哪一層定義的那?接下來的一張圖會給大家一個非常清晰的概念了(不能算是圖拉 :D ).

4. APPLICATION

HTTP,FTP,telnet,SNMP,SMTP,POP3,DNS 等等

3.Host to Host

TCP,UDP

2.internet

ICMP,ARP,RARP,IP

1.Network Access

Ethernet,FastEthernet,Token Ring 等等

恩...這下清楚了.讓我們從下至上來看看

首先是最下層的.包括了乙太網,快速乙太網,還有現在的千M乙太網等等的協議,這些協議規定了線纜的絞數.連接方式等等物理層的東西.還有底層使用MAC通訊的方式等等.

接下來是IP.ARP這些.IP在OSI模型的時候也說過.通過IP地址.我們在轉發包的時候無需知道具體目標機的位置.而路由器自然會根據路由表來轉發.最後一站一站的慢慢傳遞.達到最終目標.而ARP協議就是在IP和MAC之間轉換用的.

我在上一章提過,由於有了路由器,IP,整個網路才真正能夠覆蓋全球.所以這一層叫做internet大家也應該容易記憶了.

WOW.TCP,UDP是我們聽說最多的了.他是屬於控制網路連接的.在OSI稱為Transport.傳輸層.在DoD內是Host to Host 端對端.意思其實是一樣的.就是在在2台計算機之間構建出一個虛擬的通訊通道來.

最上面一層就無窮無盡了.所有的最終應用層的東西都在這里,你甚至可以定義你自己的協議類型.這些都是完全可以的.因為本身這一層就是提供給開發人員自行發揮的.只是上面列舉的都經過標准化了.

TCP包頭結構

源埠 16位

目標埠 16位

序列號 32位

回應序號 32位

TCP頭長度 4位

reserved 6位

控制代碼 6位

窗口大小 16位

偏移量 16位

校驗和 16位

選項 32位(可選)

這樣我們得出了TCP包頭的最小大小.就是20位元組.

UDP包頭結構

源埠 16位

目的埠 16位

長度 16位

校驗和 16位

恩...UDP的包小很多.確實如此.因為UDP是非可靠連接.設計初衷就是盡可能快的將數據包發送出去.所以UDP協議顯得非常精簡.

有一個問題,似乎這些頭裡面怎麼沒有IP地址啊.沒有IP地址這些包往哪裡發送那?

對.你觀察的很仔細.TCP和UDP的頭裡面確實沒有任何IP信息.我們回頭想一下TCP和UDP是屬於DoD的哪一層的? 對了!是第3層. 而IP則位於模型的第二層.也就是他們兩者雖然有聯系.但是不屬於同一層.

模型的一個重要規則就是.當發送端發送一個數據,上一層將數據傳往下一層的時候.上一層的包就成為了下一層包的數據部分.

而到接受端接受到數據.下一層將本層的頭部信息去掉後交給上一層去處理.

那麼我們來看看實際例子:

假使我們通過SMTP協議發送數據AAA到另外一段.那麼數據先會被加上SMTP的頭.成為[SMTP]AAA.往下發送到TCP層.成為[TCP][SMTP]AAA.再往下送到internet層[IP][TCP][SMTP]AAA.然後成為[MAC][IP][TCP][SMTP]AAA

這樣通過enternet或者FastEnternet發送到路由器.路由器得到後替換自己的MAC地址上去.傳到下一級的路由器.這樣經過長途跋涉.最終這個數據流到達目標機.

目標機先從下面一層開始.去掉MAC,成為[IP][TCP][SMTP]AAA往上到IP層,恩,比對後是發送給我這個IP的.去掉,成為[TCP][SMTP]AAA.TCP接到了查看校驗和,沒錯.往上[SMTP]AAA.最後SMTP協議去解釋.得到了AAA.

萬里長征終於結束.我們也將AAA發送到了目標機.大家也應該明白了為何TCP包頭和UDP包頭裡面沒有IP地址那?因為IP位於他們下面一層.TCP和UDP的包頭信息是作為IP包的數據段來傳送的.

IP層可不管那許多.他只管他那層的協議,也就是管把從上面層來的數據加上自己的頭,傳到下面一層.把從下面一層來的數據去掉頭.傳到上面一層.

每層都是這么乾的.完美的契合完成了數據包的最終旅程.

TCP/IP的通訊協議

這部分簡要介紹一下TCP/IP的內部結構。TCP/IP協議組之所以流行,部分原因是因為它可以用在各種各樣的信道和底層協議(例如T1和X.25、乙太網以及RS-232串列介面)之上。確切地說,TCP/IP協議是一組包括TCP協議和IP協議,UDP(User Datagram Protocol)協議、ICMP(Internet Control Message Protocol)協議和其他一些協議的協議組。

TCP/IP整體構架概述

TCP/IP協議並不完全符合OSI的七層參考模型。傳統的開放式系統互連參考模型,是一種通信協議的7層抽象的參考模型,其中每一層執行某一特定任務。該模型的目的是使各種硬體在相同的層次上相互通信。這7層是:物理層、數據鏈路層、網路層、傳輸層、話路層、表示層和應用層。而TCP/IP通訊協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的網路來完成自己的需求。這4層分別為:

應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協議(FTP)、網路遠程訪問協議(Telnet)等。

傳輸層:在此層中,它提供了節點間的數據傳送服務,如傳輸控制協議(TCP)、用戶數據報協議(UDP)等,TCP和UDP給數據包加入傳輸數據並把它傳輸到下一層中,這一層負責傳送數據,並且確定數據已被送達並接收。

互連網路層:負責提供基本的數據封包傳送功能,讓每一塊數據包都能夠到達目的主機(但不檢查是否被正確接收),如網際協議(IP)。

網路介面層:對實際的網路媒體的管理,定義如何使用實際網路(如Ethernet、Serial Line等)來傳送數據。

TCP/IP中的協議

以下簡單介紹TCP/IP中的協議都具備什麼樣的功能,都是如何工作的:

1. IP

網際協議IP是TCP/IP的心臟,也是網路層中最重要的協議。

IP層接收由更低層(網路介面層例如乙太網設備驅動程序)發來的數據包,並把該數據包發送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數據包傳送到更低層。IP數據包是不可靠的,因為IP並沒有做任何事情來確認數據包是按順序發送的或者沒有被破壞。IP數據包中含有發送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。

高層的TCP和UDP服務在接收數據包時,通常假設包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務的認證基礎,這些服務相信數據包是從一個有效的主機發送來的。IP確認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對於一些TCP和UDP的服務來說,使用了該選項的IP包好象是從路徑上的最後一個系統傳遞過來的,而不是來自於它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連接。那麼,許多依靠IP源地址做確認的服務將產生問題並且會被非法入侵。

2. TCP

如果IP數據包中有已經封好的TCP數據包,那麼IP將把它們向『上』傳送到TCP層。TCP將包排序並進行錯誤檢查,同時實現虛電路間的連接。TCP數據包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。

TCP將它的信息送到更高層的應用程序,例如Telnet的服務程序和客戶程序。應用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅動程序和物理介質,最後到接收方。

面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發送和接收域名資料庫),但使用UDP傳送有關單個主機的信息。

3.UDP

UDP與TCP位於同一層,但對於數據包的順序錯誤或重發。因此,UDP不被應用於那些使用虛電路的面向連接的服務,UDP主要用於那些面向查詢---應答的服務,例如NFS。相對於FTP或Telnet,這些服務需要交換的信息量較小。使用UDP的服務包括NTP(網落時間協議)和DNS(DNS也使用TCP)。

欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與UDP相關的服務面臨著更大的危險。

4.ICMP

ICMP與IP位於同一層,它被用來傳送IP的的控制信息。它主要是用來提供有關通向目的地址的路徑信息。ICMP的『Redirect』信息通知主機通向其他系統的更准確的路徑,而『Unreachable』信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接『體面地』終止。PING是最常用的基於ICMP的服務。

5. TCP和UDP的埠結構

TCP和UDP服務通常有一個客戶/伺服器的關系,例如,一個Telnet服務進程開始在系統上處於空閑狀態,等待著連接。用戶使用Telnet客戶程序與服務進程建立一個連接。客戶程序向服務進程寫入信息,服務進程讀出信息並發出響應,客戶程序讀出響應並向用戶報告。因而,這個連接是雙工的,可以用來進行讀寫。

兩個系統間的多重Telnet連接是如何相互確認並協調一致呢?TCP或UDP連接唯一地使用每個信息中的如下四項進行確認:

源IP地址 發送包的IP地址。

目的IP地址 接收包的IP地址。

源埠 源系統上的連接的埠。

目的埠 目的系統上的連接的埠。

埠是一個軟體結構,被客戶程序或服務進程用來發送和接收信息。一個埠對應一個16比特的數。服務進程通常使用一個固定的埠,例如,SMTP使用25、Xwindows使用6000。這些埠號是『廣為人知』的,因為在建立與特定的主機或服務的連接時,需要這些地址和目的地址進行通訊。