最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

TCPIP通讯协定及网路架构研析

来源:动视网 责编:小OO 时间:2025-09-25 13:53:05
文档

TCPIP通讯协定及网路架构研析

TCP/IP通訊協定及網路架構研析資訊組一、TCP/IP整體架構概述一般而言,網路通訊協定是一種層級式(Layering)的結構,每一層都呼叫它的下一層所提供的服務來完成自己的需求。而TCP/IP通訊協定可以分為以下四層:圖一、TCP/IP協定架構的層次(一)應用層(ApplicationLayer):應用程式間溝通的協定,如簡易電子郵件傳送(SMTP,SimpleMailTransferProtocol)、檔案傳輸協定(FTP,FileTransferProtocol)、網路終端機模擬協定(
推荐度:
导读TCP/IP通訊協定及網路架構研析資訊組一、TCP/IP整體架構概述一般而言,網路通訊協定是一種層級式(Layering)的結構,每一層都呼叫它的下一層所提供的服務來完成自己的需求。而TCP/IP通訊協定可以分為以下四層:圖一、TCP/IP協定架構的層次(一)應用層(ApplicationLayer):應用程式間溝通的協定,如簡易電子郵件傳送(SMTP,SimpleMailTransferProtocol)、檔案傳輸協定(FTP,FileTransferProtocol)、網路終端機模擬協定(
TCP/IP通訊協定及網路架構研析

資訊組

一、TCP/IP整體架構概述

一般而言,網路通訊協定是一種層級式(Layering)的結構,每一層都呼叫它的下一層所提供的服務來完成自己的需求。而TCP/IP通訊協定可以分為以下四層:

圖一、TCP/IP協定架構的層次

(一)應用層(ApplicationLayer):應用程式間溝通的協定,如簡易電子郵件傳送(SMTP,SimpleMailTransferProtocol)、檔案傳輸協定

(FTP,FileTransferProtocol)、網路終端機模擬協定(TELNET)等。

(二)主機傳輸層(TransportLayer):提供端點間的資料傳送服務,如傳輸控制協定(TCP,TransmissionControlProtocol)、使用者資料協定

(UDP,UserDatagramProtocol)等,負責傳送資料,並且確定資料已被送達並接收。

(三)網際層(InternetLayer):負責提供基本的封包傳送功能,讓每一塊資料封包都能夠到達目的端主機(但不檢查是否被正確接收),如網際協定

(IP,InternetProtocol)。

(四)網路存取層(NetworkAccessLayer):實質網路媒體的管理協定,定義如何使用實際網路(如Ethernet,SerialLine等)來傳送資料。

舉例而言,當我們要寄一封電子郵件(E-mail)的時候,首先我們啟動收發郵件的程式,指定這封郵件的收件人及寄件人姓名及地址,以及郵件的內容。以上這些資料格式都定義在電子郵件協定中。而電子郵件協定又利用TCP模組,將整份郵件訊息由本地送到收件人的信箱去。

在TCP中定義了如何將訊息正確無誤地送抵目的端主機,TCP模組先將訊息切割成一塊塊方便傳輸的資料包(datagram),藉由記錄及追蹤送出的資料包,可以得知哪些資料包已經到達目的端主機。而那些沒有到達目的端主機的資料包,就必須再送一次,直到對方確定收到為止。這些資料包將會在網際網路中穿梭奔馳,經過各種不同類型的網路及主機,才能到達目的端,而IP就負責幫我們做這件事。

首先,當資料包經過不同類型的網路時,由於每一種網路所能傳輸的單元大小不同,所以連接不同網路的閘道(gateway)主機內的IP模組,可能需要把資料包再分成較小塊的資料塊(fragment),然後才能在下一個網路中繼續旅程。另外,IP也定義了在網際網路上每一台主機的位址格式,有了這些可唯一辦認每一台主機的位址,每一塊包含IP位址的資料塊才能夠正確地抵達目的端主機。

到達目的端之後,目的端主機的IP模組,會設法將所有的資料塊組合起來,TCP模組再將資料包組合成訊息,並要求來源端主機重送遺失的資料包。目的端主機上的TCP模組確定資料包已經組合成為完整無缺的訊息之後,就通知來源端主機的TCP模組,完成訊息傳送。最後,目的端主機上的郵件傳輸協定(SMTP)負責將訊息轉成收件人看得懂的郵件,正如寄件人所發出的原件一般。

由以上介紹可知,網際協定(IP),是TCP/IP的心臟,也是網際層中最重要的協定。IP提供基本的封包傳送服務,而這正是TCP/IP網路賴以建立的基礎。本研究報告將詳細討論IP運作的原理以及在網路中實際的運用情形。

二、利用TCP/IP傳送訊息

在上一節中我們提到了TCP/IP的整體架構。接著我們詳細討論資料包如何在TCP/IP的網路架構中傳送。在四層網路架構中,有兩個協定負責傳送及處理資料包。TCP負責將訊息切割成一塊塊資料包,在遠端主機重新按順序組合起資料包,並且要負責重送遺失的資料包。為了達成任務,TCP必須在每一塊資料包的前面加上一個資料頭,資料頭中包含了TCP所需用來處理資料包的資訊。這就好像我們將信件裝進信封中,而郵差可以根據信封上的住址替我們送信一般。

TCP資料頭格式

一塊被TCP加上資料頭的資料塊看起來就像下面這個樣子:

圖二、TCP資料頭格式

其中的SourcePort及DestinationPort用來指定此資料包對於主機的不同連結(connection)。假設有兩個人同時在一台就地端主機上對另一台遠端主機做檔案傳輸,此時就地端的FTP程式可能指定其中一人的SourcePort為1001,而另一個人的SourcePort為1002(這是隨機所取的數字,只要能區分不同連結即可)。至於遠端的主機為了讓世界各地的主機能夠和它作檔案傳輸的動作,所以其FTP 伺服器須有一公開的標準Port(就是Port21)。有了SourcePort及DestinationPort,遠端主機的TCP模組就可以把資料包組合起來給某一連結。譬如,所有SourcePort=1001及DestinationPort=21的封包們會被組合成為完整訊息,交給遠端的FTP伺服器程式(DestinationPort21所指定的應用程式)。同理也適用於SourcePort=1002及DestinationPort=21的資料包們。

至於資料頭中的SequenceNumber,則是指定此資料包在訊息中的序號。有了這些序號,遠端的TCP模組才能夠依序將資料包組合起來而不弄錯順序。AcknowledgeNumber則是接收者用來通知發送者(所以此欄位在由遠端傳回的資料包中才有效)已成功地接收到的字元數,讓發送者在一段時間後重新發送未到達的資料包。

假設我們用下圖來表示待傳送的訊息:

圖三、待傳送的訊息

首先,發送及接收兩端的TCP模組互相對話、建立連接,並且根據兩端所能處理的資料包大小,選擇較小的那個為標準來切割資料包,結果如下:

圖四、訊息被切割成為資料包

然後,TCP模組在每一塊資料包前加上前述的TCP資料頭,此時整個待傳送的訊息看起來如下:

圖五、資料包加上TCP資料頭

為了方便起見,我們仍將一塊被加上TCP資料頭的資料包稱為資料包(datagram),TCP模組將這些資料包送給IP模組,同時告訴IP模組接收端主機的IP位址。(此IP位址是一個32位元的數字,可以唯一區別網際網路上的每一台主機。我們將在下一節中詳細討論此一位址的定義及相關技術)。IP的工作就是負責幫資料包找到一條適當的路徑(route)以到達接收端主機。為了讓各網路的路由器(router)能往前繼續傳送資料包,IP必須在資料包前加上自己的資料頭。

IP資料頭格式被IP加上資料頭之後的資料包,看起來是這個樣子的:

圖六、IP資料頭格式

P的資料頭中最重要的就是來源位址(SourceAddress)及目的位址(DestinationAddress),來源位址是發出此訊息的主機位址,有了此一位址,目的端主機才知道資料包從何處來,在必要時可以回覆訊息。目的位址則是接收訊息的主機位址,有了此一位址,網路上的各router才能判斷將資料包往何處送。

ProtocolNumber則告知目的端主機將此資料包送給哪一個呼叫此IP的協定(TCP或是UDP...等其中之一)模組繼續處理。當資料包被送到某個網路時,如果這個網路沒有辦法傳送如此大的資料包時,每一個資料包會被切成幾個更小的資料塊,此時Flags和FragmentOffset被用來記錄追蹤這些小資料塊們。TimetoLive中的數字在資料包每經過一個系統的時候就會被逐漸遞減,當此值等於0時,此資料包會被丟棄不再傳送,如此就可以避免萬一傳送的路徑形成迴路時無法停止傳送。

加上IP資料頭之後,整個訊息看起來就變成這個樣子:

圖七、資料包加上IP資料頭

Ethernet資料頭格式

最後,目前大多數的網路在實質上都屬於乙太網路(Ethernet)。由於Ethernet 有自己的定址方式(Ethernet使用48位元的位址格式,每塊Ethernet網路控制卡本身就內含了這個位址設定,所有的Ethernet控制卡製造廠商都得向全球統一的中心註冊,以確保每一塊卡上的位址都不相同)。所以當資料包在Ethernet上傳送時,Ethernet協定要負責將每一塊資料包上的目的端主機位址和自己主機上的Ethernet位址做一轉換比對,才知道是不是要接收此資料包或是要繼續向外傳送此資料包。所以Ethernet會在所有的資料包前加上來源及目的主機的位址(各48位元)。如下圖所示:

圖八、Ethernet資料頭格式

TypeCode是用來指明此資料包在Ethernet上層對應的是TCP/IP或DECnet 或Xerox...等協定中的哪一種。而Ethernet除了會為資料包加上資料頭之外,也會在資料包的尾端加上一個加總檢查數,以確保資料包內容在傳送過程中沒有出錯。若用「E」代表Ethernet資料頭,「C」代表加總檢查數,你的訊息看起來會是這樣子:

圖九、資料包加上Ethernet資料頭

當這些資料包被目的端主機接收到之後,所有的資料頭都會被移除。Ethernet 模組會除去Ethernet資料頭及加總檢查數,並且依據TypeCode來做進一步處理。如果TypeCode表明了使用IP,則Ethernet模組會將資料包上傳給IP模組。IP 模組除去了IP資料頭時,根據該IP資料頭的Protocol欄位中所指明的協定做判斷,若其值為TCP,則該資料包會被上傳給TCP模組。TCP模組再根據TCP資料頭中的SequenceNumber及其它資訊來組合所有的資料包,還原成原來的訊息。

三、IP網路架構概述

IP功能概述

正如上節所述,網際協定(IP)是整個網際網路的中心協定,它的功能包括:(一)定義資料包。資料包(datagram)是網際網路中傳送資料的基本單位。(二)執行資料包的分解及重組。當資料包經過不同類的網路時,閘道中的IP 模組,可能需要把資料包分成較小塊的資料。

(三)定義定址方式。網際網路位址(InternetAddress,或稱為IPAddress),用來明確區分網際網路中各主機的所在位址。

(四)決定資料包到遠地主機的路徑。稱為PathRouting。

其中的前兩點,己於上一小節中介紹過了,以下將介紹IP位址的定義方式。至於網際網路中的路徑架構及尋找路徑的方式,將在下一章中介紹。

IP的定址方式IP利用資料包的形式在主機間移動資料。資料包的來源位址和目的位址,包含在資料頭中。此位址是一32位元的數字,通常我們以點號分開4成個位元組來表示之,並且寫成十進位數以方便閱讀(如128.6.4.7)。

由於IP位址必須明確的代表某一網路中的某一主機,所以必須包含有兩個部份。第一個部份指定網路,第二部份再指定此網路中的某一台主機。由於實際上各地區的網路可能有大有小(大的如學校機構,小的如私人公司),所以位址的範圍有三種不同的設定:

(一)如果IP位址的第一個位元是0,我們稱之為A等級(ClassA)的網路位址。

圖十、ClassA的網路位址格式

此種ClassA位址的第一個位元指定等級,其後七個位元指定網路,最後二十四個位元指定主機。也就是說IP位址屬於1.1.1.1到126.254.254.254的都是ClassA(原本應為0.0.0.0到127.255.255.255,但是0.0.0.0和127.0.0.0兩組,以及所有的位元組值0及255都被保留成其它用途,將在後面解釋),而每一組ClassA的網路都可以容納數百萬台主機。

(二)如果IP位址的前兩個位元是10,我們稱之為B等級(ClassB)的網路位址。

圖十一、Class B的網路位址格式

這些位址的特性是前兩個位元指定等級,其後十四個位元指定網路,最後八個位元指定主機。也就是說IP位址屬於128.1.0.0到191.254.254.254的都是ClassB,而每一組B等級網路都可以容納516台主機。

(三)如果IP位址的前三個位元是110,我們稱之為C等級(ClassC)的網路位址。

圖十二、Class C的網路位址格式

這些位址的特性是前三個位元指定等級,其後二十一個位元指定網路,最後八個位元指定主機。也就是說IP位址屬於192.1.1.1到223.254.254.254的都是Class C。每一組Class C網路可以容納254台主機。

其它的IP位址(前三位元為111,也就是大於223)是保留位址,目前尚未定義。

並不是所有的網路位址或主機位址都可以拿來使用。有兩個A等級網路位址(0和127)被保留做特殊用途。網路0指的是「預設路徑」(defaultroute),而用來簡化IP必須處理的路徑資訊。網路127是「繞回位址」(lookbackaddress)。IP主機位址中所有的位元都設定為0時,指的是網路本身;而IP主機位址中所有的位元都設定為1時,指的是廣播位址,用來向一個網路上的所有主機同時發送訊息。

子網路(Subnet)

IP位址分為兩部分,前半部是網路位址,後半部是主機在網路中的位置。IP 利用位址的網路部分,在網路間為資料包選擇路徑。而主機部分則在資料包到達目的網路後,用來完成最後的傳送。一個大機構如果分配到一組網路位址,管理者要負責管理整個網路中的主機位址。此時可以將整個大網路分散成數個較小的網路,這些較小的內部網路,就叫做「子網路」。

子網路的基本原理是利用移動網路位址和主機位址位元間的「分隔線」來產生新的網路,但減少了每一個網路可有主機的數目。例如:一個Class B的網路128.66.0.0,前16位元是此網路的位址(128.26),而後16位元則可用來指定此網路內部的主機位置,共可有約,000台主機。

為了管理方便,我們可以將16位元的主機位址切分出8位元來做子網路。如此一來,前24位元代表網路位址(128..1~128..254,有254個網路可供應用),而最後8個位元代表主機,也就是每一個子網路中可以有254台主機。如此一來,每一個部門可以擁有自己的子網路,並且定義管理自己的主機位址。

子網路只有當地知道,對Internet上的其它網路來說,並不在意某個網路中有幾個子網路,整個32位元的位址仍然是被當作標準的IP位址來解讀,當資料包進入某區域網路時,我們用一個所謂的「子網路遮罩」(SubnetMask)來達到處理subnet的目的。如果此mask中的某位元是1,則IP位址中的相對位元,就被解讀成網路位元。如果是0,則這個位元屬於主機位址部分。

例如,標準的classB的subnetmask是255.255.0.0(代表IP位址的前16位元是網路位址,後16位元是主機位址)但是如果使用SubnetMask為255.255.255.0的話,就可代表我們上列的例子(前24位元是網路位址,後8位元是主機位址)。

此時,若某資料包上的目的IP位址是128.66.12.1,進入此classB網路之後,和subnetmask255.255.255.0作一運算,可得知目的地是subnet128.66.12.0上的第一台主機。

網路間路由器介面

IP位址通常被當作是主機位址,這在大部分的主機上沒有錯,但是正確的定義應該是指某一主機上的某一網路介面的位址,因為在連接兩個(或以上)不同實質網路的路由器(Router)上,必須給每一個網路介面一個IP位址,如此才能夠作為兩個網路間傳送資料的橋樑。例如,在圖十三中RouterX和RouterY分別有兩個不同的IP的位址,以連接兩邊不同的網路。

圖十三、網路間路由器介面實例

RouterX連接起128.66.12.0及128.66.1.0兩個網路。128.66.12.0中的主機(如主機A─128.66.12.2)認為RouterX的位址是128.66.12.3,而128.66.1.0中的主機(如主機C─128.66.1.2)則認為RouterX的位址是128.66.1.5。如此一來,從主機A要傳送到主機C的資料包,將先送到主機A所認得的RouterX,位址為128.66.12.3的網路介面;再由RouterX透過位址為128.66.1.5的網路介面轉送到主機C上。而主機A如何得知資料包要透過RouterX(而不是RouterY)才能到達主機C呢?這就有賴於所謂的「路由協定」(Routing Protocol)了。

文档

TCPIP通讯协定及网路架构研析

TCP/IP通訊協定及網路架構研析資訊組一、TCP/IP整體架構概述一般而言,網路通訊協定是一種層級式(Layering)的結構,每一層都呼叫它的下一層所提供的服務來完成自己的需求。而TCP/IP通訊協定可以分為以下四層:圖一、TCP/IP協定架構的層次(一)應用層(ApplicationLayer):應用程式間溝通的協定,如簡易電子郵件傳送(SMTP,SimpleMailTransferProtocol)、檔案傳輸協定(FTP,FileTransferProtocol)、網路終端機模擬協定(
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top