全球专业中文经管百科,由121,994位网友共同编写而成,共计436,017个条目

TCP/IP

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

TCP/IP(Transmission Control Protocol/Internet Protocol)

目錄

什麼是TCP/IP[1]

  Intemet採用TCP/IP協議。TCP/IP是一種網際互聯通信協議,它包括兩個核心協議TCP和IP。TCP稱為傳輸控制協議,IP稱為互聯網路協議。

TCP/IP的基本工作原理[2]

  TCP/IP模型有四層(應用層、傳輸層、網際層、網路介面層),每層分別具有不同的協議和功能,TCP/IP協議族是一組在不同層上的多個協議的組合。各層在實現自身的功能時,使用它的直接下層提供的服務,同時也為它的直接上層提供服務。下麵說明這些協議進行協調工作的基本原理。

  1.TCP/IP協議族中各協議之間的關係

  TCP/IP協議族中有很多協議,這些協議處於不同的層,它們之間的關係如下圖所示。

  Image:TCP/IP协议族中各协议之间的关系.jpg

  每個應用層協議都是為瞭解決某一類應用問題而定義的,各種應用進程就是通過不同的應用層協議來使用網路所提供的服務。圖1-4中的應用進程代表實現不同應用層協議功能的進程。例如,實現文件傳輸協議的FTP應用進程可以為用戶提供電腦之間的文件傳輸服務,實現超文本傳輸協議的HTTP應用進程可以為用戶提供瀏覽Web網頁的功能等。

  TCP和UDP是兩個傳輸層協議。一般地,應用進程可以選擇使用TCP或者UDP協議。如果應用層協議要求傳輸層提供可靠的服務,則應該選擇TCP協議;否則,如果應用層協議要求較高的數據傳輸速率,但是可以容忍一定的數據丟失,則可以選擇UDP協議。TCP協議的數據單元稱為TCP報文段或簡稱TCP段(TCPsegment),UDP協議的數據單元稱為UDP數據報(UDPdatagram)。

  IP協議是網際層上的一個主要協議。TCP和UDP協議都可以直接使用IP協議所提供的服務。IP協議的數據傳送單位稱為IP數據報或IP分組。TCP報文段或UDP數據報都可以封裝在IP數據報中,以便在互聯網上傳輸。除IP協議外,網際層還有其他協議,例如ICMP協議用於報告差錯和其他重要信息;IGMP是多播組管理協議,是一個與多播有關的協議;ARP(地址解析協議)和RARP(逆向地址解析協議)用於提供ⅡP地址與物理地址的映射功能。IP數據報可以在不同的物理網路上進行傳送。通過乙太網傳送的數據單元稱為乙太網幀,或簡稱為幀(frame)。

  2.封裝和拆封

  在發送方(也稱為源主機),當應用程式使用TCP或UDP傳送用戶數據時,將用戶數據送人TCP/IP協議棧,然後自上而下地逐個通過每一層,直到被當做一串比特流送入網路。其中每一層對收到的數據都需要增加一些首部信息,有時還需要增加尾部信息。這些操作過程稱為封裝,如圖所示。

  Image:2.数据进入TCP/IP协议栈时的封装过程.jpg

  TCP、UDP、ICMP和IGMP等協議都要使用IP數據報傳送數據,所以必須在IP數據報的首部加入某種標識,以說明是哪個協議的數據封裝到了IP數據報中。IP數據報首部定義的一個8位的“協議”宇段就是為此目的而設置的。協議宇段的值為1表示ICMP,為2表示IGMP,為6表示TCP,為17表示UDP。

  類似地,許多應用進程使用TCP或UDP傳送數據,則需要在TCP段或UDP數據報首部定義一個應用程式標識符。TCP和UDP都使用一個16位的埠號來標識不同的應用程式,TCP和UDP把“源埠號”和“目的埠號”分別存人TCP段首部和UDP數據報首部。網路介面分別發送和接收IP、ARP、RARP的數據,同理,也必須在乙太網(假定物理網路是一個乙太網)的首部加入一個欄位,用來說明是哪個協議的數據。為此,乙太網幀首部定義了一個16位的“類型”欄位。當接收方(也稱目的主機)收到一個乙太網幀時,數據就開始在協議棧中自下而上傳送。各層協議利用報文首部所攜帶的協議控制信息做相應的處理,然後去掉各層協議數據單元的首部,將封裝的數據交給上層協議。每層協議都要檢查協議首部中的協議標識,以確定讓哪一個協議接收數據,這個過程稱為拆封。下圖說明瞭乙太網數據幀的拆封過程。

  Image:3.以太网数据帧的拆封过程.jpg

  總而言之,發送數據時需要自上而下,層層封裝。接收數據時需要自下而上,層層拆封。

  3.兩個端系統的TCP/IP通信

  兩個端系統的通信會涉及不同層的協議。如下圖所示,主機A和主機B在同一個區域網(乙太網)上,兩台主機都運行實現FTP協議的應用進程,它們的通信過程所涉及到的主要協議都標識在下圖中。

  Image:4.局域网上运行FTP的两台主机.jpg

  主機A主機B大多數網路應用程式都設計成客戶—伺服器方式,客戶是服務請求方,伺服器是服務提供方,伺服器為客戶提供某種服務。例如,FTP伺服器允許客戶訪問FTP伺服器所在主機上的文件,WWW伺服器允許客戶(瀏覽器)訪問WWW伺服器所在主機上的網頁,等等。在兩個端系統的同一層上,雙方都有對應的一個或多個協議進行通信。例如傳輸層利用TCP或UDP等進行通信,網際層利用IP進行通信。

  上圖區域網上運行FTP的兩台主機從前面的講述可知,應用進程的數據要經過主機A(源主機)自上而下的封裝,然後在網路中傳輸,最後在主機B(目的主機)經過自下而上的拆封這樣複雜的處理過程,才能到達目的主機的應用進程。但是,對用戶來說,這些複雜的處理過程都屏蔽掉了,好像是主機A的應用進程直接把數據交給了主機B的應用進程。同理,我們可以認為,任何兩個對等層(peerlayer),例如傳輸層、網際層、網路介面層之間的通信,如同上圖中標識的一樣,好像是將數據通過水平虛線直接傳遞給對方,這就是所謂的對等層之間的通信。實際上,協議就是在兩個對等層之間傳遞數據時的各種規定。由此可以這樣認為:實際通信是按垂直方向進行的,層與層之間經過封裝和拆封這樣的操作實現物理通信。但是邏輯上,卻是在水平方向上利用協議進行的對等層通信。在協議的控制下,對等層的通信使得本層能夠向上層提供服務。為了實現本層協議,還需要使用下麵一層所提供的服務。如果兩個端系統不在同一個網路上,例如它們分別是在路由器連接起來的兩個不同的網路上,主機A在乙太網上,主機B在令牌環網上,通過一個路由器使這兩個網路連接起來。乙太網上的任何主機都可以與令牌環網上的任何主機進行通信,如下圖所示。

  Image:5.通过路由器连接的两个网络.jpg

  應用層和傳輸層使用端到端(end-to-end)協議,路由器中沒有這兩層協議,只有端系統才有這兩層協議。網際層是逐跳(hop-by-hop)協議,端系統和路由器都有網際層協議。一個路由器具有兩個或多個網路介面,這樣才能連接兩個或多個網路。互聯網的目的之一是在應用程式中屏蔽所有的物理網路細節。在上圖中,應用層不需要關心一個端系統是在乙太網上還是在令牌環網上,它們通過路由器進行通信。隨著不同類型物理網路的增加,互聯網的規模變得越來越大,也需要增加路由器,但是應用層仍然是一樣的。物理網路細節的屏蔽使得互聯網功能非常強大,也非常有用。

參考文獻

  1. 大學電腦基礎 Windows 2000環境.中國計划出版社,2007.8.
  2. 李向麗,李磊,陳靜.電腦網路技術與應用.機械工業出版社,2006年08月.
本條目對我有幫助40
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

泡芙小姐,Yixi,方小莉,Mis铭,寒曦,苏青荇,刘维燎.

評論(共0條)

提示:評論內容為網友針對條目"TCP/IP"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

下载APP

闽公网安备 35020302032707号