標籤:大數 資料連結層 習慣 tin 訪問 使用者數 報文 access nic
一、TCP/IP協議族
電腦與網路裝置要相互連信,雙方就必須基於相同的方法。比如,如何探測到通訊目標、由哪邊發起通訊,使用哪種語言進行通訊,怎麼結束通訊等規則都需要事先確定。所有的這一切都需要一種規則,這種規則稱之為協議(protocol),也叫握手。
像這樣把互連網相關聯的協議集合起來總稱為TCP/IP。
二、TCP/IP的分層管理
這裡暫且不談OSI模型,TCP/IP協議族按層次分別為:應用程式層、傳輸層、網路層和資料連結層。處於應用程式層上的應用可以只考慮指派給自己的任務,而不用弄清對方在地球上的哪個地方、對方的傳輸路線是怎樣的、能否確保傳輸送達等問題。
TCP/IP協議族各層的作用如下:
應用程式層
應用程式層決定了向使用者提供應該服務時通訊的活動。TCP/IP協議族內預存了各類通用的應用服務。比如,FTP(File Transfer Protocol,檔案傳輸通訊協定)和DNS(Domain Name System,網域名稱系統)服務就是其中的兩類。HTTP協議也處於該層。
傳輸層
傳輸層對上層應用程式層,提供處於網路連接中兩台電腦之間的資料轉送。在傳輸層有兩個性質不同的協議:TCP(Transmission Control Protocol,傳輸控制通訊協定)和UDP(User Data Protocol,使用者資料包通訊協定)。
網路層(又名網路互連層)
網路層用來處理在網路上流動的資料包。資料包是網路傳輸的最小資料單位。該層規定了通過怎樣的路徑(所謂的傳輸路線)到達對方電腦,並把資料包傳送給對方。與對方電腦之間通過多台電腦或網路裝置進行傳輸時,網路層所起的所用就是在眾多的選項內選擇一條傳輸路線。
鏈路層(又名資料連結層,網路介面層)
用來處理串連網路的硬體部分。包括控制作業系統、硬體的裝置驅動、NIC(Network Interface Card,網路介面卡,即網卡),及光纖等物理可見部分(還包括連接器等一切傳輸媒介)。硬體上的範疇均在鏈路層的作用範圍之內。
三、TCP/IP通訊傳輸層
利用TCP/IP協議族進行網路通訊時,會通過分層順序與對方進行通訊。發送端從應用程式層往下走,接收端則往應用程式層上走。
我們利用HTTP舉例來說明,首先作為發送端的用戶端在應用程式層(HTTP協議)發出一個想看某個Web頁面請求的HTTP請求。接著,為了傳輸方便,在傳輸層(TCP協議)把從應用程式層處接收到的資料(HTTP請求報文)進行分割,並在各個報文上打上標記序號及連接埠號碼後轉寄給網路層。在網路層(IP協議),增加作為通訊目的的MAC地址後轉寄給鏈路層。這樣一來,發往網路的通訊請求就準備齊全了。在接收端的伺服器在鏈路層接收到資料,按序往上層發送,一直到應用程式層。當傳輸到應用程式層,才算真正接收到由用戶端發送過來的HTTP請求。
發送端在層與層之間傳輸資料時,每經過一層時必定會被打上一個該層所屬的首部資訊。反之,接收端在層與層傳輸資料時,每經過一層時彙報對應的首部消去。
這種把資料資訊封裝起來的做法成為封裝。
四、TCP/IP中的TCP、IP、DNS
這三個協議與HTTP協議關係密切,以下進行淺談。
1. IP協議
按層次分,IP(Internet Protocol)網際協議位於網路層。Internet Protocol這個名詞可能聽起來有點誇張,但事實正是如此,因為幾乎所有使用網路的系統都會用到IP協議。TCP/IP協議族中的IP指的就是網際協議。可能會有人把“IP”和“IP地址”搞混,“IP”其實是一種協議的名稱。
IP協議的作用是把各種資料包傳送給對方。而要保證確實傳送到對方那裡,則需要滿足各類條件。其中兩個重要的條件是IP地址和MAC地址(Media Access Control Address)。IP地址指明了節點被分配到的地址,MAC地址是指網卡所屬的固定地址。IP地址可以和MAC地址進行配對。IP地址可變換,但MAC地址基本上不會改變。
IP間的通訊依賴MAC地址。在網路上,通訊的雙發在同一區域網路(LAN)內的情況是很少的,通常是經過台電腦和網路裝置中轉才能串連到對方。而在進行中轉時,會利用下一站中轉裝置的MAC地址來搜尋下一個中轉目標。這是,會採用ARP協議(Address Resolution Protocol)。ARP是一種用以解析地址的協議,根據通訊方的IP地址就可以反查出對應的MAC地址。
在到達通訊目標前的中轉過程中,那些電腦和路由器等網路裝置只能獲悉很粗略的傳輸路線。這種機製成為路由選擇(routing),有點像快遞公司的送貨過程。想要寄快遞的人,只要將自己的貨物送到集散中心,就可以知道快遞公司是否肯收件發貨,該快遞公司的集散中間檢查貨物的送達地址,明確下閘該送往那個地區的集散中心。接著,那個地區的集散中心自然會判斷能否送到對方的家中。
傳輸的大致過程:
2. TCP協議
按層次分,TCP位於傳輸層,提供可靠的位元組流服務。所謂的位元組流服務(Byte Stream Service)是指,為了方便傳輸,將大塊資料分割成以報文段(segment)為單位的資料包進行管理。而可靠的傳輸服務是指,能夠把資料準確可靠的傳送給對方。一言以蔽之,TCP協議為了更容易傳輸大資料才把資料分割,而且TCP協議能夠確認資料最終是否送達對方。
為了準確無誤的將資料送達目標處,TCP協議採用了三向交握(three-way handshaking)策略。用TCP協議把資料包送出去後,TCP不會對傳送後的情況置之不理,它一定會向對方確認是否成功送達。握手過程中使用了TCP的標誌(flag)–SYN(synchronize)和ACK(acknowledgement)。
若在握手過程中某個階段莫名中斷,TCP協議會再次以相同的順序發送相同的資料包。
3. DNS服務
DNS(Domain Name System)服務是和HTTP協議一樣位於應用程式層的協議。它提供網域名稱到IP地址之間的解析服務。
電腦既可以被賦予IP地址,也可以被賦予主機名稱和網域名稱。比如www.baidu.com。使用者通常使用主機名稱或網域名稱來訪問對方的電腦,而不是通過IP地址來訪問。因為與IP地址的一組純數字相比,用字母配合數位表示形式來指定電腦名稱更符合人類的記憶習慣。但要讓電腦去理解名稱,相對而言就變得困難了。因為電腦更擅長處理一長串數字。為瞭解決上述的問題,DNS服務應運而生。DNS協議通過提供網域名稱尋找IP地址,或逆向從IP地址反查網域名稱的服務。
五、TCP/IP協議中的各個協議和HTTP協議的關係
通過下面從用戶端輸入URL到顯示出頁面發生了什麼來瞭解下IP協議、TCP協議和DNS服務在使用HTTP協議的通訊過程中各自發揮了哪些作用。
《圖解HTTP》--TCP/IP初識