互聯網協議入門深刻

得到更多資料歡迎進入個人網站或者 csdn或者博客園

做爲一個程序員避免不了要和網絡通訊打交道。瞭解計算機網絡知識對每個程序員都是異常重要的。本文將簡要介紹下基礎的網絡知識;html

在閱讀以前,建議看下個人另一篇程序員

互聯網協議入門算法

OSI參考模型

OSI(Open System Interconnection,開放系統互連)七層網絡模型稱爲開放式系統互聯參考模型 ,是一個邏輯上的定義,一個規範,它把網絡從邏輯上分爲了7層。每一層都有相關、相對應的物理設備,好比路由器,交換機。OSI 七層模型是一種框架性的設計方法 ,創建七層模型的主要目的是爲解決異種網絡互連時所遇到的兼容性問題,其最主要的功能使就是幫助不一樣類型的主機實現數據傳輸。它的最大優勢是將服務、接口和協議這三個概念明確地區分開來,經過七個層次化的結構模型使不一樣的系統不一樣的網絡之間實現可靠的通信。數據庫

七層

一.物理層(Physical Layer)

物理層定義了全部電子及物理設備的規範。其中特別定義了設備與物理媒介之間的關係,這包括了針腳、電壓、線纜規範、集線器、中繼器、網卡、主機適配器(在SAN中使用的主機適配器)以及其餘的設備的設計定義。由於物理層傳送的是原始的比特數據流,即設計的目的是爲了保證當發送時的信號爲二進制「1」時,對方接收到的也是二進制「1」而不是二進制「0」。於是就須要定義哪一個設備有幾個針腳,其中哪一個針腳發送的多少電壓表明二進制「1」或二進制「0」,還有例如一個bit須要持續幾微秒,傳輸信號是否在雙向上同時進行,最初的鏈接如何建立和最終如何終止等問題。編程

爲了更好理解物理層與數據鏈路層之間的區別,能夠把物理層認爲是主要的,是與某個單一設備與傳輸媒介之間的交互有關,而數據鏈路層則更多地關注使用同一個通信媒介的多個設備(例如,至少兩個設備)之間的互動。物理層的做用是告訴某個設備如何傳送信號至一個通信媒介,以及另一個設備如何接收這個信號(大多數狀況下它並不會告訴設備如何與通信媒介相鏈接)。有些過期的物理層標準如RS-232卻是的確使用物理線纜來控制通信媒介的接入。瀏覽器

物理層的主要功能和提供的服務以下:緩存

在設備與傳輸媒介之間建立及終止鏈接。
參與通信過程使得資源能夠在共享的多用戶中有效分配。例如,衝突解決機制和流量控制。
對信號進行調製或轉換使得用戶設備中的數字信號定義能與信道上實際傳送的數字信號相匹配。這些信號能夠經由物理線纜(例如銅纜和光纜)或是無線信道傳送。安全

數據鏈路層(Data Link Layer)是OSI模型的第二層,負責創建和管理節點間的鏈路。該層的主要功能是:經過各類控制協議,將有差錯的物理信道變爲無差錯的、能可靠傳輸數據幀的數據鏈路。
在計算機網絡中因爲各類干擾的存在,物理鏈路是不可靠的。所以,這一層的主要功能是在物理層提供的比特流的基礎上,經過差錯控制、流量控制方法,使有差錯的物理線路變爲無差錯的數據鏈路,即提供可靠的經過物理介質傳輸數據的方法。
該層一般又被分爲介質訪問控制(MAC)和邏輯鏈路控制(LLC)兩個子層。
MAC子層的主要任務是解決共享型網絡中多用戶對信道競爭的問題,完成網絡介質的訪問控制;
LLC子層的主要任務是創建和維護網絡鏈接,執行差錯校驗、流量控制和鏈路控制。
數據鏈路層的具體工做是接收來自物理層的位流形式的數據,並封裝成幀,傳送到上一層;一樣,也未來自上層的數據幀,拆裝爲位流形式的數據轉發到物理層;而且,還負責處理接收端發回的確認幀的信息,以便提供可靠的數據傳輸。服務器

三.網絡層(Network Layer)

網絡層(Network Layer)是OSI模型的第三層,它是OSI參考模型中最複雜的一層,也是通訊子網的最高一層。它在下兩層的基礎上向資源子網提供服務。其主要任務是:經過路由選擇算法,爲報文或分組經過通訊子網選擇最適當的路徑。該層控制數據鏈路層與傳輸層之間的信息轉發,創建、維持和終止網絡的鏈接。具體地說,數據鏈路層的數據在這一層被轉換爲數據包,而後經過路徑選擇、分段組合、順序、進/出路由等控制,將信息從一個網絡設備傳送到另外一個網絡設備。
通常地,數據鏈路層是解決同一網絡內節點之間的通訊,而網絡層主要解決不一樣子網間的通訊.例如在廣域網之間通訊時,必然會遇到路由(即兩節點間可能有多條路徑)選擇問題。
在實現網絡層功能時,須要解決的主要問題以下:
尋址:數據鏈路層中使用的物理地址(如MAC地址)僅解決網絡內部的尋址問題。在不一樣子網之間通訊時,爲了識別和找到網絡中的設備,每一子網中的設備都會被分配一個惟一的地址。因爲各子網使用的物理技術可能不一樣,所以這個地址應當是邏輯地址(如IP地址)。
交換:規定不一樣的信息交換方式。常見的交換技術有:線路交換技術和存儲轉發技術,後者又包括報文交換技術和分組交換技術。
路由算法:當源節點和目的節點之間存在多條路徑時,本層能夠根據路由算法,經過網絡爲數據分組選擇最佳路徑,並將信息從最合適的路徑由發送端傳送到接收端。
鏈接服務:與數據鏈路層流量控制不一樣的是,前者控制的是網絡相鄰節點間的流量,後者控制的是從源節點到目的節點間的流量。其目的在於防止阻塞,並進行差錯檢測。網絡

四.傳輸層(Transport Layer)

O S I 模型中最重要的一層。傳輸協議同時進行流量控制或是基於接收方可接收數據的快慢程度規定適當的發送速率。除此以外,傳輸層按照網絡能處理的最大尺寸將較長的數據包進行強制分割。例如,以太網沒法接收大於1 5 0 0 字節的數據包。發送方節點的傳輸層將數據分割成較小的數據片,同時對每一數據片安排一序列號,以便數據到達接收方節點的傳輸層時,能以正確的順序重組。該過程即被稱爲排序。工做在傳輸層的一種服務是 T C P / I P 協議套中的T C P (傳輸控制協議),另外一項傳輸層服務是I P X / S P X 協議集的S P X (序列包交換)。

五.會話層(Session Layer)

負責在網絡中的兩節點之間創建、維持和終止通訊。 會話層的功能包括:創建通訊連接,保持會話過程通訊連接的暢通,同步兩個節點之間的對話,決定通訊是否被中斷以及通訊中斷時決定從何處從新發送。   你可能經常聽到有人把會話層稱做網絡通訊的「交通警察」。當經過撥號向你的 ISP (因特網服務提供商)請求鏈接到因特網時,ISP 服務器上的會話層向你與你的 PC 客戶機上的會話層進行協商鏈接。若你的電話線偶然從牆上插孔脫落時,你終端機上的會話層將檢測到鏈接中斷並從新發起鏈接。會話層經過決定節點通訊的優先級和通訊時間的長短來設置通訊期限

六.表示層(Presentation Layer)

應用程序和網絡之間的翻譯官,在表示層,數據將按照網絡能理解的方案進行格式化;這種格式化也因所使用網絡的類型不一樣而不一樣。表示層管理數據的解密與加密,如系統口令的處理。例如:在 Internet上查詢你銀行帳戶,使用的便是一種安全鏈接。你的帳戶數據在發送前被加密,在網絡的另外一端,表示層將對接收到的數據解密。除此以外,表示層協議還對圖片和文件格式信息進行解碼和編碼。

七.應用層(Application Layer)

應用層(Application Layer)是OSI參考模型的最高層,它是計算機用戶,以及各類應用程序和網絡之間的接口,其功能是直接向用戶提供服務,完成用戶但願在網絡上完成的各類工做。它在其餘6層工做的基礎上,負責完成網絡中應用程序與網絡操做系統之間的聯繫,創建與結束使用者之間的聯繫,並完成網絡用戶提出的各類網絡服務及應用所需的監督、管理和服務等各類協議。此外,該層還負責協調各個應用程序間的工做。
應用層爲用戶提供的服務和協議有:文件服務、目錄服務、文件傳輸服務(FTP)、遠程登陸服務(Telnet)、電子郵件服務(E-mail)、打印服務、安全服務、網絡管理服務、數據庫服務等。上述的各類網絡服務由該層的不一樣應用協議和程序完成,不一樣的網絡操做系統之間在功能、界面、實現技術、對硬件的支持、安全可靠性以及具備的各類應用程序接口等各個方面的差別是很大的。應用層的主要功能以下:
用戶接口:應用層是用戶與網絡,以及應用程序與網絡間的直接接口,使得用戶可以與網絡進行交互式聯繫。
實現各類服務:該層具備的各類應用程序能夠完成和實現用戶請求的各類服務。

TCP/IP的5層模型(各層介紹見)

互聯網協議入門
相比於OSI的七層模型,更經常使用的是TCP/IP的5層模型。TCP/IP的5層模型是將ISO的七層模型的應用層、表示層、會話層合併爲應用層,獲得以下圖所示的五層模型:
五層

TCP/IP通訊的三次握手、四次揮手

三次握手:

第一次握手:客戶端發送syn包(syn=x)到服務器,並進入SYN_SEND狀態,等待服務器確認;

第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=x+1),同時本身也發送一個SYN包(syn=y),即SYN+ACK包,此時服務器進入SYN_RECV狀態;

第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=y+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。

握手過程當中傳送的包裏不包含數據,三次握手完畢後,客戶端與服務器才正式開始傳送數據。理想狀態下,TCP鏈接一旦創建,在通訊雙方中的任何一方主動關閉鏈接以前,TCP 鏈接都將被一直保持下去。

四次揮手

第一次揮手:主動關閉方發送一個FIN,用來關閉主動方到被動關閉方的數據傳送,也就是主動關閉方告訴被動關閉方:我已經不會再給你發數據了(固然,在fin包以前發送出去的數據,若是沒有收到對應的ack確認報文,主動關閉方依然會重發這些數據),可是,此時主動關閉方還能夠接受數據。

第二次揮手:被動關閉方收到FIN包後,發送一個ACK給對方,確認序號爲收到序號+1(與SYN相同,一個FIN佔用一個序號)。

第三次揮手:被動關閉方發送一個FIN,用來關閉被動關閉方到主動關閉方的數據傳送,也就是告訴主動關閉方,個人數據也發送完了,不會再給你發數據了。

第四次揮手:主動關閉方收到FIN後,發送一個ACK給被動關閉方,確認序號爲收到序號+1,至此,完成四次揮手。

戲說TCP/IP狀態轉化圖

TCP/IP協議是計算機網絡中的一個協議族,也是網絡編程中的重頭戲!理解TCP/IP狀態轉化圖,對理解TCP/IP協議的工做過程異常重要。

以下圖所示,描述了一個狀態機到另外一個狀態機的轉變,已經觸發這種狀態轉變的條件。

tcp

狀態圖詳細說明以下:

1.CLOSED:起始點,在超時或者鏈接關閉時候進入此狀態。

2.LISTEN:svr端在等待鏈接過來時候的狀態,svr端爲此要調用socket,bind,listen函數,就能進入此狀態。此稱爲應用程序被動打開(等待客戶端來鏈接)。

3.SYN_SENT:客戶端發起鏈接,發送SYN給服務器端。若是服務器端不能鏈接,則直接進入CLOSED狀態。

4.SYN_RCVD:跟3對應,服務器端接受客戶端的SYN請求,服務器端由LISTEN狀態進入SYN_RCVD狀態。同時服務器端要回應一個ACK,同時發送一個SYN給客戶端;另一種狀況,客戶端在發起SYN的同時接收到服務器端得SYN請求,客戶端就會由SYN_SENT到SYN_RCVD狀態。

5.ESTABLISHED:服務器端和客戶端在完成3次握手進入狀態,說明已經能夠開始傳輸數據了。

以上是創建鏈接時服務器端和客戶端產生的狀態轉移說明。相對來講比較簡單明瞭,若是你對三次握手比較熟悉,創建鏈接時的狀態轉移仍是很容易理解。

下面,咱們來看看鏈接關閉時候的狀態轉移說明,關閉須要進行4次雙方的交互,還包括要處理一些善後工做(TIME_WAIT狀態),注意,這裏主動關閉的一方或被動關閉的一方不是指特指服務器端或者客戶端,是相對於誰先發起關閉請求來講的:

6.FIN_WAIT_1:主動關閉的一方,由狀態5進入此狀態。具體的動做是發送FIN給對方。

7.FIN_WAIT_2:主動關閉的一方,接收到對方的FIN -ACK,進入此狀態。由此不能再接收對方的數據。可是可以向對方發送數據。

8.CLOSE_WAIT:接收到FIN之後,被動關閉的一方進入此狀態。具體動做是接收到FIN,同時發送ACK。

9.LAST_ACK:被動關閉的一方,發起關閉請求,由狀態8進入此狀態。具體動做是發送FIN給對方,同時在接收到ACK時進入CLOSED狀態。

10.CLOSING:兩邊同時發起關閉請求時,會由FIN_WAIT_1進入此狀態。具體動做是接收到FIN請求,同時響應一個ACK。

11.TIME_WAIT:最糾結的狀態來了。從狀態圖上能夠看出,有3個狀態能夠轉化成它,咱們一一來分析:

a.由FIN_WAIT_2進入此狀態:在雙方不一樣時發起FIN的狀況下,主動關閉的一方在完成自身發起的關閉請求後,接收到被動關閉一方的FIN後進入的狀態。

b.由CLOSING狀態進入:雙方同時發起關閉,都作了發起FIN的請求,同時接收到了FIN並作了ACK的狀況下,由CLOSING狀態進入。

c.由FIN_WAIT_1狀態進入:同時接受到FIN(對方發起),ACK(自己發起的FIN迴應),與b的區別在於自己發起的FIN迴應的ACK先於對方的FIN請求到達,而b是FIN先到達。這種狀況機率最小。

關閉的4次鏈接最難理解的狀態是TIME_WAIT,存在TIME_WAIT的2個理由:

1.可靠地實現TCP全雙工鏈接的終止。

2.容許老的重複分節在網絡中消逝。

MAC地址的概念及其做用

MAC地址(Media Access Control Address),媒體訪問控制地址,或稱爲物理地址,是用來定義網絡設備的位置的。在OSI模型中,第三層網絡層負責IP地址,第二層數據鏈結層則負責MAC地址。一個主機會有一個IP地址,而每一個網絡位置會有一個專屬於它的MAC地址。

ARP協議的用途及其工做原理

地址解析協議(Address Resolution Protocol),其基本功能爲經過目標設備的IP地址,查詢目標設備的MAC地址,以保證通訊的順利進行。它是IPv4中網絡層必不可少的協議,不過在IPv6中已再也不適用,並被鄰居發現協議(NDP)所替代。

在每檯安裝有TCP/IP協議的電腦或路由器裏都有一個ARP緩存表,表裏的IP地址與MAC地址是一對應的,以下圖所示。

arp

以主機A(192.168.38.10)向主機B(192.168.38.11)發送數據爲例。當發送數據時,主機A會在本身的ARP緩存表中尋找是否有目標IP地址。若是找到了,也就知道了目標MAC地址爲(00-BB-00-62-C2-02),直接把目標MAC地址寫入幀裏面發送就能夠了;若是在ARP緩存表中沒有找到相對應的IP地址,主機A就會在網絡上發送一個廣播(ARP request),目標MAC地址是「FF.FF.FF.FF.FF.FF」,這表示向同一網段內的全部主機發出這樣的詢 問:「192.168.38.11的MAC地址是什麼?」網絡上其餘主機並不響應ARP詢問,只有主機B接收到這個幀時,才向主機A作出這樣的迴應(ARP response):「192.168.38.11的MAC地址是(00-BB-00-62-C2-02)」。 這樣,主機A就知道了主機B的MAC地址,它就能夠向主機B發送信息了。同時它還更新了本身的ARP緩存表,下次再向主機B發送信息時,直接從ARP緩存表裏查找就能夠了。ARP緩存表採用了老化機制,在一段時間內若是表中的某一行沒有使用,就會被刪除,這樣能夠大大減小ARP緩存表的長度,加快查詢速度。

瞭解交換機、路由器、網關的概念,並知道各自的用途

交換機

在計算機網絡系統中,交換機是針對共享工做模式的弱點而推出的。交換機擁有一條高帶寬的背部總線和內部交換矩陣。交換機的全部的端口都掛接在這條背部總線上,當控制電路收到數據包之後,處理端口會查找內存中的地址對照表以肯定目的MAC(網卡的硬件地址)的NIC(網卡)掛接在哪一個端口上,經過內部交換矩陣迅速將數據包傳送到目的端口。目的MAC若不存在,交換機才廣播到全部的端口,接收端口迴應後交換機會「學習」新的地址,並把它添加入內部地址表中。

交換機工做於OSI參考模型的第二層,即數據鏈路層。交換機內部的CPU會在每一個端口成功鏈接時,經過ARP協議學習它的MAC地址,保存成一張ARP表。在從此的通信中,發往該MAC地址的數據包將僅送往其對應的端口,而不是全部的端口。所以,交換機可用於劃分數據鏈路層廣播,即衝突域;但它不能劃分網絡層廣播,即廣播域。

交換機被普遍應用於二層網絡交換,俗稱「二層交換機」。

交換機的種類有:二層交換機、三層交換機、四層交換機、七層交換機分別工做在OSI七層模型中的第二層、第三層、第四層盒第七層,並所以而得名。

路由器

路由器(Router)是一種計算機網絡設備,提供了路由與轉送兩種重要機制,能夠決定數據包歷來源端到目的端所通過的路由路徑(host到host之間的傳輸路徑),這個過程稱爲路由;將路由器輸入端的數據包移送至適當的路由器輸出端(在路由器內部進行),這稱爲轉送。路由工做在OSI模型的第三層——即網絡層,例如網際協議。

路由器的一個做用是連通不一樣的網絡,另外一個做用是選擇信息傳送的線路。 路由器與交換器的差異,路由器是屬於OSI第三層的產品,交換器是OSI第二層的產品(這裏特指二層交換機)。

網關

網關(Gateway),網關顧名思義就是鏈接兩個網絡的設備,區別於路由器(因爲歷史的緣由,許多有關TCP/IP的文獻曾經把網絡層使用的路由器(Router)稱爲網關,在今天不少局域網採用都是路由來接入網絡,所以如今一般指的網關就是路由器的IP),常常在家庭中或者小型企業網絡中使用,用於鏈接局域網和Internet。 網關也常常指把一種協議轉成另外一種協議的設備,好比語音網關。

在傳統TCP/IP術語中,網絡設備只分紅兩種,一種爲網關(gateway),另外一種爲主機(host)。網關能在網絡間轉遞數據包,但主機不能轉送數據包。在主機(又稱終端系統,end system)中,數據包需通過TCP/IP四層協議處理,可是在網關(又稱中介系統,intermediate system)只須要到達網際層(Internet layer),決定路徑以後就能夠轉送。在當時,網關(gateway)與路由器(router)尚未區別。

在現代網絡術語中,網關(gateway)與路由器(router)的定義不一樣。網關(gateway)能在不一樣協議間移動數據,而路由器(router)是在不一樣網絡間移動數據,至關於傳統所說的IP網關(IP gateway)。

網關是鏈接兩個網絡的設備,對於語音網關來講,他能夠鏈接PSTN網絡和以太網,這就至關於VOIP,把不一樣電話中的模擬信號經過網關而轉換成數字信號,並且加入協議再去傳輸。在到了接收端的時候再經過網關還原成模擬的電話信號,最後才能在電話機上聽到。

對於以太網中的網關只能轉發三層以上數據包,這一點和路由是同樣的。而不一樣的是網關中並無路由表,他只能按照預先設定的不一樣網段來進行轉發。網關最重要的一點就是端口映射,子網內用戶在外網看來只是外網的IP地址對應着不一樣的端口,這樣看來就會保護子網內的用戶。

初識路由表

路由表(routing table)或稱路由擇域信息庫(、 Routing Information Base),是一個存儲在路由器或者聯網計算機中的電子表格(文件)或類數據庫。路由表存儲着指向特定網絡地址的路徑(在有些狀況下,還記錄有路徑的路由度量值)。路由表中含有網絡周邊的拓撲信息。路由表創建的主要目標是爲了實現路由協議和靜態路由選擇。

路由表使用了和利用地圖投遞包裹類似的思想。只要網絡上的一個節點須要發送數據給網絡上的另外一個節點,它就必需要知道把數據發送到哪。設備不可能直接鏈接到目的節點,它須要找到另外一個方式去發送數據包。在局域網中,節點也不知道如何發送IP包到網關。將數據包發到正確的地址是一個複雜的任務,網關須要記錄發送數據包的路徑信息。路由表就存儲着這樣的路徑信息,就如地圖同樣,是一個記錄路徑信息,併爲須要這些信息的節點提供服務的數據庫。

以下圖所示爲一張路由表:

路由表

路由表參數說明:

Destination:目的網段

mask:子網掩碼

interface:到達該目的地的本路由器的出口ip

gateway:下一跳路由器入口的ip,路由器經過interface和gateway定義一調到下一個路由器的鏈路,一般狀況下,interface和gateway是同一網段的

metric:跳數,該條路由記錄的質量,通常狀況下,若是有多條到達相同目的地的路由記錄,路由器會採用metric值小的那條路由

MTU

最大傳輸單元(Maximum Transmission Unit,MTU)是指一種通訊協議的某一層上面所能經過的最大數據包大小(以字節爲單位)。最大傳輸單元這個參數一般與通訊接口有關(網絡接口卡、串口等)。

因特網協議容許IP分片,這樣就能夠將數據包分紅足夠小的片斷以經過那些最大傳輸單元小於該數據包原始大小的鏈路了。這一分片過程發生在網絡層(OSI 模型的第三層),第四層爲傳輸層,傳輸層是 OSI 模型中最重要的一層,這裏是根據窗口控制傳輸,而非MTU。傳輸協議同時進行流量控制或是基於接收方可接收數據的快慢程度規定適當的發送速率。除此以外,傳輸層按照網絡能處理的最大尺寸將較長的數據包進行強制分割。例如,以太網沒法接收大於1500字節的數據包。發送方節點的傳輸層將數據分割成較小的數據片,同時對每一數據片安排一序列號,以便數據到達接收方節點的傳輸層時,能以正確的順序重組,該過程即被稱爲排序。它使用的是將分組發送到鏈路上的網絡接口的最大傳輸單元的值。

以太網MTU值爲1500字節 。

RIP、OSPF、BGP認識

路由信息協議(Routing Information Protocol,RIP)

路由信息協議(Routing Information Protocol,RIP)是一種使用最普遍的內部網關協議(IGP)。(IGP)是在內部網絡上使用的路由協議(在少數情形下,也能夠用於鏈接到因特網的網絡),它能夠經過不斷的交換信息讓路由器動態的適應網絡鏈接的變化,這些信息包括每一個路由器能夠到達哪些網絡,這些網絡有多遠等, RIP 屬於網絡層。

開放式最短路徑優先(Open Shortest Path First,OSPF)

開放式最短路徑優先(Open Shortest Path First,OSPF)是對鏈路狀態路由協議的一種實現,是大中型網絡上使用最爲普遍的IGP(Interior Gateway Protocol)協議,運做於自治系統內部。著名的迪克斯加算法被用來計算最短路徑樹。它使用「代價(Cost)」做爲路由度量。鏈路狀態數據庫(LSDB)用來保存當前網絡拓撲結構,它在同一區域中的全部路由器上是相同的。

BGP (邊界網關協議,Border Gateway Protocol )

BGP (邊界網關協議,Border Gateway Protocol )是自治系統之間的路由選擇協議,是互聯網上一個核心的去中心化自治路由協議。

BGP 是惟一一個用來處理像因特網大小的網絡的協議,也是惟一可以妥善處理好不相關路由域間的多路鏈接的協議。 BGP 構建在 EGP 的經驗之上。 BGP 系統的主要功能是和其餘的 BGP 系統交換網絡可達信息。網絡可達信息包括列出的自治系統(AS)的信息。這些信息有效地構造了 AS 互聯的拓樸圖並由此清除了路由環路,同時在 AS 級別上可實施策略決策。

DNS

DNS(Domain Name System,域名系統),因特網上做爲域名和IP地址相互映射的一個分佈式數據庫,可以使用戶更方便的訪問互聯網,而不用去記住可以被機器直接讀取的IP數串。經過主機名,最終獲得該主機名對應的IP地址的過程叫作域名解析(或主機名解析)。DNS協議運行在UDP協議之上,使用端口號53。

TCP、UDP和HTTP區別於聯繫

TCP/IP協議是一個協議簇,這個協議簇中包含了不少種協議,TCP、UDP和HTTP只是TCP/IP協議簇的成員。之因此命名爲TCP/IP協議,由於TCP,IP協議是兩個很重要的協議,就用他兩命名了。

1)TCP/IP協議簇,大體可分爲三個層次:網絡層、傳輸層和應用層。
在網絡層有IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議。
在傳輸層中有TCP協議與UDP協議。
在應用層有FTP、HTTP、TELNET、SMTP、DNS等協議。
HTTP也是一個協議,是從Web服務器傳輸超文本到本地瀏覽器的傳送協議。

2)HTTP協議是創建在請求/響應模型上的。首先由客戶創建一條與服務器的TCP連接,併發送一個請求到服務器,請求中包含請求方法、URI、協議版本以及相關的MIME樣式的消息。服務器響應一個狀態行,包含消息的協議版本、一個成功和失敗碼以及相關的MIME式樣的消息。
HTTP/1.0爲每一次HTTP的請求/響應創建一條新的TCP連接,所以一個包含HTML內容和圖片的頁面將須要創建屢次的短時間的TCP連接。一次TCP連接的創建將須要3次握手。
另外,爲了得到適當的傳輸速度,則須要TCP花費額外的迴路連接時間(RTT)。每一次連接的創建須要這種常常性的開銷,而其並不帶有實際有用的數據,只是保證連接的可靠性,所以HTTP/1.1提出了可持續連接的實現方法。HTTP/1.1將只創建一次TCP的連接而重複地使用它傳輸一系列的請求/響應消息,所以減小了連接創建的次數和常常性的連接開銷。

3)雖然HTTP自己是一個協議,但其最終仍是基於TCP的。目前,有人正在研究基於TCP+UDP混合的HTTP協議。

以上講述了一些計算機網絡相關的術語,概念,固然,一切纔剛剛開始。

本文轉與修改於快客網

相關文章
相關標籤/搜索