當前位置:
首頁 > 最新 > TCP/IP協議族是什麼?

TCP/IP協議族是什麼?

TCP/IP協議模型(Transmission Control Protocol/Internet Protocol),包含了一系列構成互聯網基礎的網路協議,是Internet的核心協議。

基於TCP/IP的參考模型將協議分成四個層次,它們分別是鏈路層、網路層、傳輸層和應用層。下圖表示TCP/IP模型與OSI模型各層的對照關係。

OSI參考模型

OSI參考模型是ISO的建議,它是為了使各層上的協議國際標準化而發展起來的。OSI參考模型全稱是開放系統互連參考模型(Open System Interconnection Reference Model)。這一參考模型共分為七層:物理層、數據鏈路層、網路層、傳輸層、會話層、表示層和應用層。

物理層(Physical Layer)主要是處理機械的、電氣的和過程的介面,以及物理層下的物理傳輸介質等。

數據鏈路層(Data Link Layer)的任務是加強物理層的功能,使其對網路層顯示為一條無錯的線路。

網路層(Network Layer)確定分組從源端到目的端的路由選擇。路由可以選用網路中固定的靜態路由表,也可以在每一次會話時決定,還可以根據當前的網路負載狀況,靈活地為每一個分組分別決定。

傳輸層(Transport Layer)從會話層接收數據,並傳輸給網路層,同時確保到達目的端的各段信息正確無誤,而且使會話層不受硬體變化的影響。通常,會話層每請求建立一個傳輸連接,傳輸層就會為其創建一個獨立的網路連接。但如果傳輸連接需要一個較高的吞吐量,傳輸層也可以為其創建多個網路連接,讓數據在這些網路連接上分流,以提高吞吐量。而另一方面,如果創建或維持一個獨立的網路連接不合算,傳輸層也可將幾個傳輸連接復用到同一個網路連接上,以降低費用。除了多路復用,傳輸層還需要解決跨網路連接的建立和拆除,並具有流量控制機制。

會話層(Session Layer)允許不同機器上的用戶之間建立會話關係,既可以進行類似傳輸層的普通數據傳輸,也可以被用於遠程登錄到分時系統或在兩台機器間傳遞文件。

表示層(Presentation Layer)用於完成一些特定的功能,這些功能由於經常被請求,因此人們希望有通用的解決辦法,而不是由每個用戶各自實現。

應用層(Application Layer)中包含了大量人們普遍需要的協議。不同的文件系統有不同的文件命名原則和不同的文本行表示方法等,不同的系統之間傳輸文件還有各種不兼容問題,這些都將由應用層來處理。此外,應用層還有虛擬終端、電子郵件和新聞組等各種通用和專用的功能。

TCP/IP參考模型

TCP/IP參考模型是首先由ARPANET所使用的網路體系結構。這個體系結構在它的兩個主要協議出現以後被稱為TCP/IP參考模型(TCP/IP Reference Model)。這一網路協議共分為四層:網路訪問層、互聯網層、傳輸層和應用層。

網路訪問層(Network Access Layer)在TCP/IP參考模型中並沒有詳細描述,只是指出主機必須使用某種協議與網路相連。

互聯網層(Internet Layer)是整個體系結構的關鍵部分,其功能是使主機可以把分組發往任何網路,並使分組獨立地傳向目標。這些分組可能經由不同的網路,到達的順序和發送的順序也可能不同。高層如果需要順序收發,那麼就必須自行處理對分組的排序。互聯網層使用網際網路協議(IP,Internet Protocol)。TCP/IP參考模型的互聯網層和OSI參考模型的網路層在功能上非常相似。

傳輸層(Tramsport Layer)使源端和目的端機器上的對等實體可以進行會話。在這一層定義了兩個端到端的協議:傳輸控制協議(TCP,Transmission Control Protocol)和用戶數據報協議(UDP,User Datagram Protocol)。TCP是面向連接的協議,它提供可靠的報文傳輸和對上層應用的連接服務。為此,除了基本的數據傳輸外,它還有可靠性保證、流量控制、多路復用、優先權和安全性控制等功能。UDP是面向無連接的不可靠傳輸的協議,主要用於不需要TCP的排序和流量控制等功能的應用程序。

應用層(Application Layer)包含所有的高層協議,包括:虛擬終端協議(TELNET,TELecommunications NETwork)、文件傳輸協議(FTP,File Transfer Protocol)、電子郵件傳輸協議(SMTP,Simple Mail Transfer Protocol)、域名服務(DNS,Domain Name Service)、網上新聞傳輸協議(NNTP,Net News Transfer Protocol)和超文本傳送協議(HTTP,HyperText Transfer Protocol)等。TELNET允許一台機器上的用戶登錄到遠程機器上,並進行工作;FTP提供有效地將文件從一台機器上移到另一台機器上的方法;SMTP用於電子郵件的收發;DNS用於把主機名映射到網路地址;NNTP用於新聞的發布、檢索和獲取;HTTP用於在WWW上獲取主頁。

在 TCP/IP 中包含的一系列協議:

從協議分層模型方面來講,TCP/IP由四個層次組成:網路介面層、網路層、傳輸層、應用層。

TCP/IP協議並不完全符合OSI的七層參考模型,OSI(Open System Interconnect)是傳統的開放式系統互連參考模型,是一種通信協議的7層抽象的參考模型,其中每一層執行某一特定任務。該模型的目的是使各種硬體在相同的層次上相互通信。這7層是:物理層、數據鏈路層(網路介面層)、網路層(網路層)、傳輸層(傳輸層)、會話層、表示層和應用層(應用層)。而TCP/IP通訊協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的網路來完成自己的需求。由於ARPANET的設計者注重的是網路互聯,允許通信子網(網路介面層)採用已有的或是將來有的各種協議,所以這個層次中沒有提供專門的協議。實際上,TCP/IP協議可以通過網路介面層連接到任何網路上,例如X.25交換網或IEEE802區域網。

注意tcp本身不具有數據傳輸中噪音導致的錯誤檢測功能,但是有實現超時的錯誤重傳功能;

網路介面層

網路介面層

物理層是定義物理介質的各種特性:

1、機械特性;

2、電子特性;

3、功能特性;

4、規程特性。

數據鏈路層是負責接收IP數據包並通過網路發送,或者從網路上接收物理幀,抽出IP數據包,交給IP層。

ARP是正向地址解析協議,通過已知的IP,尋找對應主機的MAC地址。

RARP是反向地址解析協議,通過MAC地址確定IP地址。比如無盤工作站還有DHCP服務。

常見的介面層協議有:

Ethernet 802.3、Token Ring 802.5、X.25、Frame relay、HDLC、PPP ATM等。

網路層

負責相鄰計算機之間的通信。其功能包括三方面。

.

處理來自傳輸層的分組發送請求,收到請求後,將分組裝入IP數據報,填充報頭,選擇去往信宿機的路徑,然後將數據報發往適當的網路介面。

.

.

處理輸入數據報:首先檢查其合法性,然後進行尋徑--假如該數據報已到達信宿機,則去掉報頭,將剩下部分交給適當的傳輸協議;假如該數據報尚未到達信宿,則轉發該數據報。

.

.

處理路徑、流控、擁塞等問題。

.

網路層包括:IP(Internet Protocol)協議、ICMP(Internet Control Message Protocol)

控制報文協議、ARP(Address Resolution Protocol)地址轉換協議、RARP(Reverse ARP)反向地址轉換協議。

IP是網路層的核心,通過路由選擇將下一條IP封裝後交給介面層。IP數據報是無連接服務。

ICMP是網路層的補充,可以回送報文。用來檢測網路是否通暢。

Ping命令就是發送ICMP的echo包,通過回送的echo relay進行網路測試。

傳輸層

提供應用程序間的通信。其功能包括:一、格式化信息流;二、提供可靠傳輸。為實現後者,傳輸層協議規定接收端必須發回確認,並且假如分組丟失,必須重新發送,即耳熟能詳的「三次握手」過程,從而提供可靠的數據傳輸。

傳輸層協議主要是:傳輸控制協議TCP(Transmission Control Protocol)和用戶數據報協議UDP(User Datagram protocol)。

應用層

向用戶提供一組常用的應用程序,比如電子郵件、文件傳輸訪問、遠程登錄等。遠程登錄TELNET使用TELNET協議提供在網路其它主機上註冊的介面。TELNET會話提供了基於字元的虛擬終端。文件傳輸訪問FTP使用FTP協議來提供網路內機器間的文件拷貝功能。

應用層協議主要包括如下幾個:FTP、TELNET、DNS、SMTP、NFS、HTTP。

FTP(File Transfer Protocol)是文件傳輸協議,一般上傳下載用FTP服務,數據埠是20H,控制埠是21H。

Telnet服務是用戶遠程登錄服務,使用23H埠,使用明碼傳送,保密性差、簡單方便。

DNS(Domain Name Service)是域名解析服務,提供域名到IP地址之間的轉換,使用埠53。

SMTP(Simple Mail Transfer Protocol)是簡單郵件傳輸協議,用來控制信件的發送、中轉,使用埠25。

NFS(Network File System)是網路文件系統,用於網路中不同主機間的文件共享。

HTTP(Hypertext Transfer Protocol)是超文本傳輸協議,用於實現互聯網中的WWW服務,使用埠80。

網路層中的協議主要有IP,ICMP,IGMP等,由於它包含了IP協議模塊,所以它是所有基於TCP/IP協議網路的核心。在網路層中,IP模塊完成大部分功能。ICMP和IGMP以及其他支持IP的協議幫助IP完成特定的任務,如傳輸差錯控制信息以及主機/路由器之間的控制電文等。網路層掌管著網路中主機間的信息傳輸。

傳輸層上的主要協議是TCP和UDP。正如網路層控制著主機之間的數據傳遞,傳輸層控制著那些將要進入網路層的數據。兩個協議就是它管理這些數據的兩種方式:TCP是一個基於連接的協議;UDP則是面向無連接服務的管理方式的協議。

封裝過程

具體協議

協議族

TCP/IP 是基於 TCP 和 IP 這兩個最初的協議之上的不同的通信協議的大集合。

TCP - 傳輸控制協議

TCP 用於從應用程序到網路的數據傳輸控制。

TCP 負責在數據傳送之前將它們分割為 IP 包,然後在它們到達的時候將它們重組。

IP - 網際協議(Internet Protocol)

IP 負責計算機之間的通信。

IP 負責在網際網路上發送和接收數據包。

HTTP - 超文本傳輸協議(Hyper Text Transfer Protocol)

HTTP 負責 web 伺服器與 web 瀏覽器之間的通信。

HTTP 用於從 web 客戶端(瀏覽器)向 web 伺服器發送請求,並從 web 伺服器向 web 客戶端返回內容(網頁)。

HTTPS - 安全的 HTTP(HTTP Secure)

HTTPS 負責在 web 伺服器和 web 瀏覽器之間的安全通信。

作為有代表性的應用,HTTPS 會用於處理信用卡交易和其他的敏感數據。

SSL - 安全套接字層(Secure Sockets Layer)

SSL 協議用於為安全數據傳輸加密數據。

SMTP - 簡易郵件傳輸協議(Simple Mail Transfer Protocol)

SMTP 用於電子郵件的傳輸。

MIME - 多用途網際網路郵件擴展(Multi-purpose Internet Mail Extensions)

MIME 協議使 SMTP 有能力通過 TCP/IP 網路傳輸多媒體文件,包括聲音、視頻和二進位數據。

IMAP - 網際網路消息訪問協議(Internet Message Access Protocol)

IMAP 用於存儲和取回電子郵件。

POP - 郵局協議(Post Office Protocol)

POP 用於從電子郵件伺服器向個人電腦下載電子郵件。

FTP - 文件傳輸協議(File Transfer Protocol)

FTP 負責計算機之間的文件傳輸。

NTP - 網路時間協議(Network Time Protocol)

NTP 用於在計算機之間同步時間(鍾)。

DHCP - 動態主機配置協議(Dynamic Host Configuration Protocol)

DHCP 用於向網路中的計算機分配動態 IP 地址。

SNMP - 簡單網路管理協議(Simple Network Management Protocol)

SNMP 用於計算機網路的管理。

LDAP - 輕量級的目錄訪問協議(Lightweight Directory Access Protocol)

LDAP 用於從網際網路搜集關於用戶和電子郵件地址的信息。

ICMP - 網際網路消息控制協議(Internet Control Message Protocol)

ICMP 負責網路中的錯誤處理。

ARP - 地址解析協議(Address Resolution Protocol)

ARP - 用於通過 IP 來查找基於 IP 地址的計算機網卡的硬體地址。

RARP - 反向地址轉換協議(Reverse Address Resolution Protocol)

RARP 用於通過 IP 查找基於硬體地址的計算機網卡的 IP 地址。

BOOTP - 自舉協議(Boot Protocol)

BOOTP 用於從網路啟動計算機。

PPTP - 點對點隧道協議(Point to Point Tunneling Protocol)

PPTP 用於私人網路之間的連接(隧道)。

IPv4

IPv4,是互聯網協議(Internet Protocol,IP)的第四版,也是第一個被廣泛使用,構成現今互聯網技術的基石的協議。1981年Jon Postel 在RFC791中定義了IP,Ipv4可以運行在各種各樣的底層網路上,比如端對端的串列數據鏈路(PPP協議和SLIP協議) ,衛星鏈路等等。區域網中最常用的是乙太網。

傳統的TCP/IP協議基於IPV4屬於第二代互聯網技術,核心技術屬於美國。它的最大問題是網路地址資源有限,從理論上講,編址1600萬個網路、40億台主機。但採用A、B、C三類編址方式後,可用的網路地址和主機地址的數目大打折扣,以至IP地址已經枯竭。其中北美佔有3/4,約30億個,而人口最多的亞洲只有不到4億個,中國截止2010年6月IPv4地址數量達到2.5億,落後於4.2億網民的需求。雖然用動態IP及Nat地址轉換等技術實現了一些緩衝,但IPV4地址枯竭已經成為不爭的事實。在此,專家提出IPV6的互聯網技術,也正在推行,但IPV4的使用過過渡到IPV6需要很長的一段過渡期。中國主要用的就是ip4,在win7中已經有了ipv6的協議不過對於中國的用戶們來說可能很久以後才會用到吧。

傳統的TCP/IP協議基於電話寬頻以及乙太網的電器特性而制定的,其分包原則與檢驗佔用了數據包很大的一部分比例造成了傳輸效率低,網路正向著全光纖網路高速乙太網方向發展,TCP/IP協議不能滿足其發展需要。

1983年TCP/IP協議被ARPAnet採用,直至發展到後來的互聯網。那時只有幾百台計算機互相聯網。到1989年聯網計算機數量突破10萬台,並且同年出現了1.5Mbit/s的骨幹網。因為IANA把大片的地址空間分配給了一些公司和研究機構,90年代初就有人擔心10年內IP地址空間就會不夠用,並由此導致了IPv6 的開發。

IPv6

IPv6是Internet Protocol Version 6的縮寫,其中Internet Protocol譯為「互聯網協議」。IPv6是IETF(互聯網工程任務組,Internet Engineering Task Force)設計的用於替代現行版本IP協議(IPv4)的下一代IP協議。

與IPV4相比,IPV6具有以下幾個優勢:

一、IPv6具有更大的地址空間。IPv4中規定IP地址長度為32,即有2^32-1(符號^表示升冪,下同)個地址;而IPv6中IP地址的長度為128,即有2^128-1個地址。

二、IPv6使用更小的路由表。IPv6的地址分配一開始就遵循聚類(Aggregation)的原則,這使得路由器能在路由表中用一條記錄(Entry)表示一片子網,大大減小了路由器中路由表的長度,提高了路由器轉發數據包的速度。

三、IPv6增加了增強的組播(Multicast)支持以及對流的控制(Flow Control),這使得網路上的多媒體應用有了長足發展的機會,為服務質量(QoS,Quality of Service)控制提供了良好的網路平台。

四、IPv6加入了對自動配置(Auto Configuration)的支持。這是對DHCP協議的改進和擴展,使得網路(尤其是區域網)的管理更加方便和快捷。

五、IPv6具有更高的安全性。在使用IPv6網路中用戶可以對網路層的數據進行加密並對IP報文進行校驗,極大的增強了網路的安全性。

三次握手

TCP是面向連接的,無論哪一方向另一方發送數據之前,都必須先在雙方之間建立一條連接。在TCP/IP協議中,TCP協議提供可靠的連接服務,連接是通過三次握手進行初始化的。三次握手的目的是同步連接雙方的序列號和確認號並交換 TCP窗口大小信息。

第一次握手: 建立連接。客戶端發送連接請求報文段,將SYN位置為1,Sequence Number為x;然後,客戶端進入SYN_SEND狀態,等待伺服器的確認;

第二次握手: 伺服器收到SYN報文段。伺服器收到客戶端的SYN報文段,需要對這個SYN報文段進行確認,設置Acknowledgment Number為x+1(Sequence Number+1);同時,自己自己還要發送SYN請求信息,將SYN位置為1,Sequence Number為y;伺服器端將上述所有信息放到一個報文段(即SYN+ACK報文段)中,一併發送給客戶端,此時伺服器進入SYN_RECV狀態;

第三次握手: 客戶端收到伺服器的SYN+ACK報文段。然後將Acknowledgment Number設置為y+1,向伺服器發送ACK報文段,這個報文段發送完畢以後,客戶端和伺服器端都進入ESTABLISHED狀態,完成TCP三次握手。

為什麼要三次握手?

為了防止已失效的連接請求報文段突然又傳送到了服務端,因而產生錯誤。

具體例子:「已失效的連接請求報文段」的產生在這樣一種情況下:client發出的第一個連接請求報文段並沒有丟失,而是在某個網路結點長時間的滯留了,以致延誤到連接釋放以後的某個時間才到達server。本來這是一個早已失效的報文段。但server收到此失效的連接請求報文段後,就誤認為是client再次發出的一個新的連接請求。於是就向client發出確認報文段,同意建立連接。假設不採用「三次握手」,那麼只要server發出確認,新的連接就建立了。由於現在client並沒有發出建立連接的請求,因此不會理睬server的確認,也不會向server發送數據。但server卻以為新的運輸連接已經建立,並一直等待client發來數據。這樣,server的很多資源就白白浪費掉了。採用「三次握手」的辦法可以防止上述現象發生。例如剛才那種情況,client不會向server的確認發出確認。server由於收不到確認,就知道client並沒有要求建立連接。

註:三次握手的具體實例參考自【技術特工隊】

總結

感謝您能夠認真的閱讀到這裡,如果對部分理解不太明白,建議現將文章收藏起來,然後在進行再次閱讀,相信您會有更深的理解與認知。如果您喜歡這篇文章,就點個贊或者分享出去吧,小茂感謝您的分享。

文章對於TCP/IP的總結來自小茂的學習筆記與閱讀,大多是必備的基礎知識,雖然基礎但依舊是面試中的高頻問題。

喜歡本文的朋友們,歡迎長按下圖關注網工小茂,收看更多內容(精彩內容小茂會一點點的豐富起來的,謝謝您的支持。)


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

結婚到底結什麼……
新加坡篇——亞洲大陸最南端

TAG:全球大搜羅 |