1. 程式人生 > >TCP/IP協議

TCP/IP協議

internet

TCP/IP協議棧:

定義:

Transmission Control Protocol/Internet Protocol的縮寫,中譯名為——傳輸控制協議/因特網互聯協議,又名網絡通訊協議,是internet最基本的協議、internet國際互聯網絡的基礎,由-網絡層的IP協議和-傳輸層的TCP協議組成。TCP/IP定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。協議采用了4層的層級結構,每一層都呼叫它的下一層所提供的協議來完成自己的需求。通俗而言:TCP負責發現傳輸的問題,一有問題就發出信號,要求重新傳輸,直到所有數據安全正確地傳輸到目的地。而IP是給因特網的沒一臺聯網設備規定一個地址。


IP層:

IP層接收由更低層發來的數據包,並把該數據包發送到更高層---TCP層或UDP層;相反,IP層也把從TCP或UDP層接收來的數據包傳送到更低層。P數據包是不可靠的,因為IP並沒有做任何事情來確認數據包是否按順序發送的或者有沒有被破壞,IP數據包中含有發送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。

TCP層:

TCP是面向連接的通信協議,通過三次握手建立連接,通訊完成時要拆除連接,由於TCP是面向連接的所以只能用於端到端的通訊。

TCP提供的是一種可靠的數據流服務,采用“帶重傳的肯定確認”技術來實現傳輸的可靠性。TCP還采用一種稱為“滑動窗口”的方式進行流量控制,所謂窗口實際表示接收能力,用以限制發送方的發送速度。

如果IP數據包中有已經封好的TCP數據包,那麽IP將把它們向‘上’傳送到TCP層。TCP將包排序並進行錯誤檢查,同時實現虛電路間的連接。TCP數據包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。

TCP將它的信息送到更高層的應用程序,例如Telnet的服務程序和客戶程序。應用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅動程序和物理介質,最後到接收方。

面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發送和接收域名數據庫),但使用UDP傳送有關單個主機的信息。

UDP層:

UDP是面向無連接的通訊協議,UDP數據包括目的端口號和源端口號信息,由於通訊不需要連接,所以可以實現廣播發送。

UDP通訊時不需要接收方確認,屬於不可靠的傳輸,可能會出現丟包現象,實際應用中要求程序員編程驗證。

UDP與TCP位於同一層,但它不管數據包的順序、錯誤或重發。因此,UDP不被應用於那些使用虛電路的面向連接的服務,UDP主要用於那些面向查詢---應答的服務,例如NFS。相對於FTP或Telnet,這些服務需要交換的信息量較小。使用UDP的服務包括NTP(網絡時間協議)和DNS(DNS也使用TCP)。

欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與UDP相關的服務面臨著更大的危險


TCP/IP協議棧的四層結構:

1)網絡訪問層:相當於OSI模型的物理層和數據鏈路層

在TCP/IP參考模型中並沒有詳細描述,只是指出主機必須使用某種協議與網絡連接。

2)互聯網層(網絡層):相當於OSI模型的網絡層

是整個體系結構的關鍵部分,其功能是使主機可以把的不足發往任何網絡,並使分組獨立地傳向目標。

這些分組可能經由不同的網絡,到達的順序和發送的順序也可能不同。高層如果需要順序收發,那麽就必須自行處理對分組的排序。互聯網層使用因特網協議(IP,Internet Protocol)。

3)傳輸層:

使源端和目的機上的對等實體可以進行會話。

在這一層定義了兩個端到端的協議:傳輸控制協議和用戶數據報協議。

TCP是面向連接的協議,它提供可靠的報文傳輸和對上層應用的連接服務。

為此,除了基本的數據傳輸外,它還有可靠性保證、流量控制、多路復用、優先權和安全性控制等功能。

4)應用層:相當於OSI模型的表示層、會話層和應用層

包含的所有的高層協議,包括:

虛擬終端協議(TELNET,TELecommunications NETwork):TELNET允許一臺機器上的用戶登錄到遠程機器上,並進行工作

文件傳輸協議(FTP,File Transfer Protocol):FTP提供有效地將文件從一臺機器上移到另一臺機器上的方法

電子郵件傳輸協議(SMTP,Simple Mail Transfer Protocol):SMTP用於電子郵件的收發;

域名服務(DNS,Domain Name Service);DNS用於把主機名映射到網絡地址

網上新聞傳輸協議(NNTP,Net News Transfer Protocol):NNTP用於新聞的發布、檢索和獲取

超文本傳送協議(HTTP,HyperText Transfer Protocol):HTTP用於在WWW上獲取主頁。

...

互聯網層的IP協議:

存在著這樣的協議關系:

ICMP協議 IGMP協議 依賴於

Internet Protocol -- IP

ARP協議 ARAP協議 和網絡訪問層進行通信

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

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

GMP:互聯網組管理協議

ARP協議:地址解析協議,將邏輯地址轉變為物理地址

在已知邏輯地址的情況下,獲取對應邏輯地址的物理地址

如何解析:

1.在每一個參與網絡功能的設備中都有一個ARP庫;

2.ARP緩存:通過ARP協議進行廣播,指定的目標主機進行回應,本機緩存對應的結果信息;

RARP:反向地址解析協議

已知本機的物理地址,來獲取合法的邏輯地址

通常用於無盤工作站

接口類型:

傳輸層和應用層之間的接口叫協議接口

傳輸層和互聯網層之間的接口叫協議號

互聯網層和網路訪問層之間的接口叫做協議類型

互聯網協議的特征:

1.運行於OSI網絡層

2.面向無連接:

1)無需再通信之前建立通信連接,也無需維護鏈接穩定,通信結束也無需拆除鏈接;

2)無序數據傳輸

3)沒有所謂的數據恢復和數據可靠性保證

3.獨立處理數據包

只有IP協議可以處理網絡的數據

4.分層編址

5.盡力而為傳輸

6.無數據恢復功能

為什麽使用IP地址?

它們可唯一標識IP網絡中的每臺設備。

每臺主機必須具有唯一的地址。

主機ID:

標識單個主機

由組織分配給各設備

地址分為兩部分:

網絡部分:用來描述指定主機所在的網絡範圍

主機部分:用來描述指定主機在特定的網絡範圍中的具體位置


IP地址:

IP地址是由IPv4協議定義的,整個地址由32位二進制位構成,包含網絡位和主機位兩部分。

IP地址的分類:

A類:第1位必須是0,第一個二進制位必須是0,並且網絡位8位

B類:前2位必須是10:前兩個二進制位必須為10,並且網絡位16為

C類:前3位必須是110,並且網絡位24位

D類:前4位1110,並且網絡位32位,通常用於組播通信

E類:前4位1111,沒有網絡位要求,保留用於科學研究

IP地址的十進制表示法:

1.將32位的IP地址位,以8位為一組,分為4組;

2.每一組之間使用.符號進行分割;

3.將每個8位組轉換為10進制表示

使用點分十進制表示法表示的各類IP地址範圍:

A類:0.0.0.0~127.255.255.255

有效的A類地址:1.0.0.0~126.255.255.255

註意:

第一個8位組全為0的,是無效IP,因為其表示整個IP地址棧;

第一個8位組中除了第一位以外全部為1,稱為環回地址;

B類:128.0.0.0~192.255.255.255

10000000.00000000.00000000.00000000


10111111.11111111.11111111.11111111


C類:192.0.0.0~223.255.255.255

11000000.00000000.00000000。00000000


10111111 11111111 11111111 11111111


D類:224.0.0.0 ~239.255.255.255

11100000.00000000.00000000.00000000


11101111.11111111.11111111.11111111


E類:240.0.0.0 ~ 255.255.255.255

1110000.00000000.00000000.00000000


11111111.11111111.11111111.11111111


保留地址:不能選擇為其他主機配置使用的IP地址

0.0.0.0-0.255.255.255:0這個網段

127.0.0.0-127.255.255.255:127這個網段


自動分配地址段:

169.254.0.0-169.254.255.255


網絡地址:

主機位全為0的地址;

1.0.0.0:表示一個範圍的名稱


廣播地址:

主機位全為1的地址;

1.255.255.255:作為目的地址代表整個網段中的所有IP地址


定向廣播地址:

255.255.255.255:作為目的地址代表整個IP地址棧中的所有IP地址

為了解決IP地址枯竭的問題:

增加IP地址的復用次數;

私有IP地址:在不同的網絡中,可以重復使用,但是不能訪問互聯網,互聯網無法為其路由

A類:10.0.0.0-10.255.255.255

B類:172.16.0.0-172.31.255.255

C類:192.168.0.0-192.168.255.255

公有IP地址:可以在互聯網中使用,但必須唯一

NAT:Network Address Translation

SNAT:源地址轉換,使用公有IP地址替換數據包中的私有IP地址;

DNAT:目的地址轉換,使用私有IP地址替換數據包中的公有IP地址

研究更加龐大的地址棧:

IPv6:128bit,2^128個IP地址

冒號分十六進制;


IPv4和IPv6共存:

1.地址轉換

2.IPv6地址包含IPv4地址:IPv6地址的最右側的32位就是IPv4地址


IP協議是如何進行數據封裝的:

技術分享

IP首部的格式:

Version:4bits,協議版本信息;IPv4:0100 IPv6:0110

IHL:Internet Protocol Header Length ,IP首部長度,4bits,首部最大長度為15行

20byte ~ 60Byte,必須為4的整數倍,默認為20Byte

服務類型:

4bits:服務類型

0000,0001,0010,0100,1000:最大帶寬,最小延遲,最大吞吐量,最高可靠性

1bit:保留位

3bits:優先級

000,001,010,011,100,101,110,111

數據包長度:16bits,最大長度為65536Byte,包括首部;64KB

標識:標識數據的來源,標識指定的數據是由那個原數據分片得到的;

標誌:3bits,

第一位:保留

第二位: 是否分片

第三位:是否有更多分片,表示數據是否為最後一個分片

000,010,011

片偏移:13bits,IP協議在對數據包分片之後的序號;

生存時間(Time To Live,TTL);8bits,計數器,每一個數據包都會獲得一個初始化的TTL值,在每次經過路由設備之後,都會自減1,0表示該數據包為不可用數據,下一次路 由設備將其獲得後,會直接丟棄;可以有效防止數據包的無限循環傳輸

初始值為:255,128,64

協議號:

8bits,互聯網層和傳輸層直接的通信接口,根據協議號指示的內容,正確接受數據之後,向上交給傳輸層的哪個協議進行進一步解封處理:

TCP:6

UCP:17

OSPF:89

EIGRP:88

首部校驗和:16bits,進行首部的可靠性校驗,校驗首部格式是否完整

源地址:

32bits,發送方地址

目的地址:

32bits,接收方地址



TCP/IP協議