天天看點

TCP模型及其重點協定總結 1、TCP4層協定模型概述 2、重點協定的使用

概述

tcp/ip協定族,作為最早的協定模型(後來osi七層也是在該基礎上細分而來),每層都有一些重點的協定,面試時也會被詢問,快要找工作,得做一些總結了

【1】tcp4層協定模型概述

【2】各層重點協定介紹

tcp與osi對比圖

TCP模型及其重點協定總結 1、TCP4層協定模型概述 2、重點協定的使用

其中tcp各層重點協定如下圖所示

TCP模型及其重點協定總結 1、TCP4層協定模型概述 2、重點協定的使用

網絡層協定包括:

【1】ip(internet protocol)協定

ip是網絡層的核心,通過路由選擇将下一條ip封裝後交給接口層。ip資料報是無連接配接服務。

【2】icmp(internet control message protocol)控制封包協定

icmp是網絡層的補充,可以回送封包。用來檢測網絡是否通暢。其中ping指令就是發送icmp的echo包,通過回送的echo relay進行網絡測試。

【3】arp(address resolution protocol)位址轉換協定

arp是正向位址解析協定,通過已知的ip,尋找對應主機的mac位址。

【4】rarp(reverse arp)反向位址轉換協定。

rarp是反向位址解析協定,通過mac位址确定ip位址。比如無盤工作站還有dhcp服務。

【5】igmp協定(internet group management protocol)

是網際網路協定家族中的一個多點傳播協定。該協定運作在主機群組播路由器之間

傳輸層協定:

【1】tcp(transmission control protocol)傳輸控制協定

tcp是面向連接配接的通信協定,通過三次握手建立連接配接,通訊完成時要拆除連接配接,由于tcp是面向連接配接的是以隻能用于點對點的通訊。tcp提供的是一種可靠的資料流服務,采用“帶重傳的肯定确認”技術來實作傳輸的可靠性。面向流的通信是無消息保護邊界的(會出現粘包)

【2】udp(user datagram protocol)使用者資料報協定

udp是面向無連接配接的通訊協定,udp資料包括目的端口号和源端口号資訊,由于通訊不需要連接配接,是以可以實作廣播發送。udp通訊時不需要接收方确認,屬于不可靠的傳輸,可能會出丢包現象,實際應用中要求程式員程式設計驗證。udp與tcp位于同一層,但它不管資料包的順序、 錯誤或重發。是無連接配接,面向消息的,面向消息的通信是有消息保護邊界的(不會出現粘包)

應用層協定。

【1】ftp(file transfer protocol)檔案傳輸協定

一般上傳下載下傳用ftp服務,資料端口是20h,控制端口是21h。

【2】telnet服務是使用者遠端登入服務,使用23h端口,使用明碼傳送,保密性差、簡單友善。

【3】dns(domain name service)是域名解析服務,提供域名到ip位址之間的轉換,使用端口53。

【4】smtp(simple mail transfer protocol)是簡單郵件傳輸協定,用來控制信件的發送、中轉,使用端口25。

【5】nfs(network file system)是網絡檔案系統,用于網絡中不同主機間的檔案共享。

【5】http(hypertext transfer protocol)是超文本傳輸協定,用于實作網際網路中的www服務,使用端口80。

著名應用:

【1】ping

【2】traceroute

icmp是網絡層的協定,通常icmp封包被ip層或更高層協定(tcp或udp)使用。一些icmp封包把差錯封包傳回給使用者程序。

icmp封包主要分為倆大類:【查詢封包】、【差錯封包】

差錯封包:

當ip資料發生錯誤時(主機不可達或者網絡故障)icmp将會發送一個icmp差錯封包給源主機,也是得益于此ip層以上的協定可以做到可靠傳輸

差錯封包主要分為以下5種:

1>  終點不可達:終點不可達分為:網絡不可達,主機不可達,協定不可達,端口不可達,需要分片但df比特已置為1,以及源路由失敗等六種情況,其代碼字段分别置為0至5。當出現以上六種情況時就向源站發送終點不可達封包。

note:端口不可達:udp的規則之一是:如果收到udp資料報而且目的端口與某個正在使用的程序不相符,那麼udp傳回一個icmp不可達封包。其中treaceroute就是利用端口不可達來産生icmp差錯封包的

2>  源站抑制:當路由器或主機由于擁塞而丢棄資料報時,就向源站發送源站抑制封包,使源站知道應當将資料報的發送速率放慢。

3>  時間超過:當路由器收到生存時間為零的資料報時,除丢棄該資料報外,還要向源站發送時間超過封包。當目的站在預先規定的時間内不能收到一個資料報的全部資料報片時,就将已收到的資料報片都丢棄,并向源站發送時間超過封包。

4>  參數問題:當路由器或目的主機收到的資料報的首部中的字段的值不正确時,就丢棄該資料報,并向源站發送參數問題封包。

5>  改變路由(重定向)路由器将改變路由封包發送給主機,讓主機知道下次應将資料報發送給另外的路由器。

note:

 【traceroute程式】

    traceroute是icmp協定的另一個重要應用,主要用來偵測源主機到目的主機之間所經過的路由的情況。traceroute使用icmp封包和 ip首部中的ttl字段,其原理很簡單,開始時發送一個ttl字段為1的udp資料報,而後每次收到icmp逾時封包後,再發送一個ttl字段加1的 udp資料報,以确定路徑中的每個路由器,而每個路由器在丢棄udp資料報時都會傳回一個icmp逾時封包,最終到達目的主機後,由于icmp選擇了一個 不可能的值作為udp端口(大于30000)。這樣目的主機就會發送一個端口不可達的icmp差錯封包。

查詢封包

查詢封包主要用途有4種:

回送請求和回答,時間戳請求和回答,掩碼位址請求和回答,以及路由器詢問和通過。

ping就是利用查詢封包的回送請求和應答來實作的具體見下。

【ping程式】

ping是icmp的一個很著名的應用。ping程式時對兩個tcp/ip系統連通性進行測試的基本工具,它隻利用icmp回應要求和回應答覆封包,而不 用經過傳輸層,ping伺服器一般在核心中試下icmp的功能。當某一個網站通路不了時,我們就可以ping一下這個網站,看下連通情況。

首先arp協定隻用于區域網路(外網則需要dns解析),它用來将ip位址解析為mac位址

區域網路中的每個主機都有一個arp緩存,它儲存了最近發起的ip位址到 mac位址的映射記錄,當該主機要向區域網路中的某一主機發送資料時,它會先從自己的緩存中查找,看是否存在目标ip位址,如果找到,就通過映射找到它的 mac位址,進而發送過去,如果沒有找到該目的ip位址,它就向該區域網路内發送一個廣播,廣播中包含自己的ip位址、mac位址和目的主機的ip位址,局 域網内的所有主機都會收到該廣播,但隻有目的ip位址的主機會做出回應,并把自己的mac位址發送給源主機,源主機收到後,在自己的arp緩存中增加上該 映射,并根據發來的mac位址将資料發送給目的主機。 arp高速緩存中的表項一般都要設定逾時值,如果一段時間内沒有與某主機通信,就将該主機對應的ip與mac之間的映射關系去掉,下次在需要通信時,依然發送廣播。

在網上找了一個例子

TCP模型及其重點協定總結 1、TCP4層協定模型概述 2、重點協定的使用

在上圖中,當主機a要和主機b通信(如主機a ping主機b)時。主機a會先檢查其arp緩存内是否有主機b的mac位址。如果沒有,主機a會發送一個arp請求廣播包,此包内包含着其欲與之通信的主機的ip位址,也就是主機b的ip位址。

當主機b收到此廣播後,會将自己的mac位址利用arp協定響應包傳給主機a,并更新自己的arp緩存,也就是同時将主機a的ip位址/mac位址對儲存起來,以供後面使用。主機a在得到主機b的mac位址後,就可以與主機b通信了。同時,主機a也将主機b的ip位址/mac位址對儲存在自己的arp協定緩存内。

轉載:http://blog.csdn.net/xsf50717/article/details/47302287

繼續閱讀