自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

IP /TCP協(xié)議及握手過程和數(shù)據(jù)包格式中級詳解

網(wǎng)絡 通信技術
IP被稱為網(wǎng)際協(xié)議,是Internet上使用的一個關鍵的底層協(xié)議。TCP/IP是通用的通信協(xié)議,使Internet成為一個允許連接不同類型的計算機和不同操作系統(tǒng)的網(wǎng)絡。

IP地址

定義:

IP被稱為網(wǎng)際協(xié)議,是Internet上使用的一個關鍵的底層協(xié)議。TCP/IP是通用的通信協(xié)議,使Internet成為一個允許連接不同類型的計算機和不同操作系統(tǒng)的網(wǎng)絡。

特點:

IP協(xié)議具有能適應各種各樣網(wǎng)絡硬件的靈活性,對底層網(wǎng)絡硬件幾乎沒有任何要求,任何一個網(wǎng)絡只要可以從一個地點向另外一個地點傳送二進制數(shù)據(jù),記憶可以使用IP協(xié)議加入Internet。

要求:

為了通信的需求,連接Internet的每臺計算機上都必須運行IP軟件。,以便時刻準備發(fā)送或接收信息。

實質:

IP地址是由IP協(xié)議規(guī)定的,由32位的二進制數(shù)表示(IPv4)。***的IPv6協(xié)議將IP地址升為128位,這使得IP地址更加廣泛,能夠很好的解決目前IP地址緊缺的情況。但是IPv6協(xié)議距離實際應用還有一段距離,目前多數(shù)操作系統(tǒng)和應用軟件都是以32位的IP地址為基準。

組成:

32位的IP地址(IPv4)主要分為兩個部分,即前綴和后綴。前綴表示計算機所屬的物理網(wǎng)絡(網(wǎng)絡號),后綴確定該網(wǎng)絡上的唯一一臺計算機(主機號)。 即 :

IP地址=網(wǎng)絡號+主機號

分類:

在Internet上,每一個物理網(wǎng)絡都有一個唯一的網(wǎng)絡號,根據(jù)網(wǎng)絡號的不同,可以將IP地址分為5類,即A類、B類、C類、D類和E類。其中A類、B類和C類屬于基本類,D類用于多播發(fā)送,E類屬于保留類。各類IP地址的范圍如下:

網(wǎng)絡地址:

在IP地址中主機地址為0的表示網(wǎng)絡地址。例如:128.111.0.0。

廣播地址(全‘1’地址):

在網(wǎng)絡號后所有為全是1的地址,表示廣播地址。

回送地址:

127.0.0.1表示回送地址,也叫本機地址,用于測試。

全‘0’地址:

對應當前主機。

ABC主要類型地址保留區(qū)域: 

IP /TCP協(xié)議及握手過程和數(shù)據(jù)包格式中級詳解

域名系統(tǒng)(DNS)

域名系統(tǒng)是一個分布的數(shù)據(jù)庫,它提供將主機名(即網(wǎng)址)轉換成IP地址的服務。

RFC

Request For Comments(RFC),是一系列以編號排定的文件。文件收集了有關互聯(lián)網(wǎng)相關信息,以及UNIX和互聯(lián)網(wǎng)社區(qū)的軟件文件,包括了tcp/ip協(xié)議的標準文檔。

端口(port)

端口(Port)包括邏輯端口和物理端口兩種類型。

物理端口指的是物理存在的端口,如ADSL Modem、集線器、交換機、路由器上用于連接其他網(wǎng)絡設備的接口,如RJ-45端口、SC端口等等。

邏輯端口是指邏輯意義上用于區(qū)分服務的端口,如TCP/IP協(xié)議中的服務端口,端口號的范圍從0到65535,比如用于瀏覽網(wǎng)頁服務的80端口,用于FTP服務的21端口等。 

IP /TCP協(xié)議及握手過程和數(shù)據(jù)包格式中級詳解

端口號(Port Code)

由于物理端口和邏輯端口數(shù)量較多,共(2^16-1)個,為了對端口進行區(qū)分,將每個端口進行了編號,這就是端口號。運輸層的端口號分為服務端使用的端口號(0-49151[熟知端口號(0-1023)、登記端口號(1024-49151)])和客戶端使用的端口號(49151-65535)。網(wǎng)絡常用端口號 - 姜亞軻的博客 - CSDN博客

應用編程接口(API,Application Programming Interface)

API是一些預先定義的函數(shù)。常用的編程接口有socket和TLI。其功能主要包括:遠程過程調用(RPC)、標準查詢語言(SQL)、文件傳輸和信息交付等。API 可以應用于所有計算機平臺和操作系統(tǒng)。

概要設計文檔的接口部分簡單,一般分為:用戶接口、外部接口和內部接口三個部分。用戶接口只要簡述用戶操作和反饋結果等;外部接口簡述硬件輸入輸出、網(wǎng)絡傳輸協(xié)議等;內部接口簡述模塊間傳值、數(shù)據(jù)傳遞等即可。 

IP /TCP協(xié)議及握手過程和數(shù)據(jù)包格式中級詳解

數(shù)據(jù)包格式

TCP/IP協(xié)議的每層都會發(fā)送不同的數(shù)據(jù)包,常見的有IP書包,TCP數(shù)據(jù)包,UDP數(shù)據(jù)包和ICMP數(shù)據(jù)包。

 IP /TCP協(xié)議及握手過程和數(shù)據(jù)包格式中級詳解

IP數(shù)據(jù)包(IP Datagram):

IP數(shù)據(jù)包是在IP協(xié)議間發(fā)送的,主要在以太網(wǎng)與網(wǎng)際協(xié)議模塊之間傳輸,提供無鏈接數(shù)據(jù)博愛傳輸。IP協(xié)議不保證數(shù)據(jù)包的發(fā)送,但***限度的發(fā)送數(shù)據(jù)。IP協(xié)議提供不可靠無連接的數(shù)據(jù)報傳輸服務,IP層提供的服務是通過IP層對數(shù)據(jù)報的封裝與拆封來實現(xiàn)的。IP協(xié)議結構定義如下:

  1. typedef struct HeadIP { 
  2.  unsigned char headerlen: 4; //首部長度,占4位 
  3.  unsigned char version: 4 ; //版本,占4位 
  4.  unsigned char servertype ; //服務類型,占8位,即一個字節(jié) 
  5.  unsigned short totallen; //總長度,占16位 
  6.  unsigned short id ; // 與idoff構成表示,共占16位,前3位是標識,后13位是片偏移 
  7.  unsigned short idoff; 
  8.  unsigned char ttl ; //生存時間,占 8位 
  9.  unsigned char proto ;//協(xié)議,占8位 
  10.  unsigned short checksum ;// 首部檢驗和,占16位 
  11.  unsigned int sourceIP ; // 源IP地址 ,占32位 
  12.  unsigned int destIP ;// 目的IP地址,占32 位 
  13.  }HeadIP; 

注:理論上,IP數(shù)據(jù)包的***長度時655535字節(jié),這是由IP首部16位總長度字段所限制的。

IP路由選擇過程: 

IP /TCP協(xié)議及握手過程和數(shù)據(jù)包格式中級詳解

TCP數(shù)據(jù)包(TCP Datagram):

傳輸控制協(xié)議TCP是一種提供可靠數(shù)據(jù)傳輸?shù)耐ㄐ袇f(xié)議,他在網(wǎng)絡協(xié)議模塊和TCP模塊之間傳輸,TCP數(shù)據(jù)包分TCP包頭和數(shù)據(jù)兩個部分。TCP數(shù)據(jù)是被封裝在IP數(shù)據(jù)包中的,和udp類似,在IP數(shù)據(jù)包的數(shù)據(jù)部分。TCP包頭包含了源端口、目的端口、序列號、確認序列號、頭部長度、碼元比特、窗口、校驗和、緊急指針、可選項、填充位和數(shù)據(jù)區(qū),在發(fā)送數(shù)據(jù)時,應用層數(shù)據(jù)傳輸?shù)絺鬏攲樱由蟃CP的TCP包頭,數(shù)據(jù)就構成了包文。報文式網(wǎng)際層IP的數(shù)據(jù),如果再加上IP首部,就構成了IP數(shù)據(jù)包。TCP包頭結構定義如下:

  1. typedef struct HeadTCP{ 
  2.  WORD SourcePort ; //16位源端口號 
  3.  WORD DePort ;// 16位目的端口號 
  4.  DWORD SequenceNo ;//32位序列號 
  5.  DWORD ConfirmNo ;// 32位確認序列號 
  6.  BYTE HeadLen ; //與Flag為一個組成部分,首部長度,占4位,保留6位,6位表示,共16位 
  7.  BYTE Flag; 
  8.  WORD WndSize ; //16位窗口大小 
  9.  WORD CheckSum ; //16位校驗和 
  10.  WORD UrgPrt;// 16位緊急指針 
  11.  }HeadTCP; 

TCP提供了一個完全可靠的、面向連接的、全雙工的(包含兩個獨立且方向相反的連接)流傳輸服務,允許兩個應用程序建立一個連接,并在全雙工方向上發(fā)送數(shù)據(jù),然后終止連接。每一個TCP連接可靠的建立并完善地終止,在終止發(fā)生前,所有數(shù)據(jù)都會被可靠地傳送。 

IP /TCP協(xié)議及握手過程和數(shù)據(jù)包格式中級詳解

TCP比較有名的概念是3次握手,所謂3次握手指通信雙方批次交換3次信息。3次握手是在數(shù)據(jù)包丟失、重復和延遲的情況下,確保通信雙方信息交換確定性的充分必要條件。

TCP/IP 三次握手建立連接:

***次握手:客戶端--發(fā)送----syn包(seq=x)-----服務器--進入SYN_END狀態(tài),等待服務器確認;

第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=x+1),同時自己也發(fā)送一個SYN包(seq=x),即SYN+ACK包,此時服務器進入SYN——RECV狀態(tài);

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

IP /TCP協(xié)議及握手過程和數(shù)據(jù)包格式中級詳解

注:握手時,發(fā)送的包不包括數(shù)據(jù);連接建立后,才開始正式傳輸數(shù)據(jù)。在主動關閉連接之前,TCP連接將會被一直保持下去。

數(shù)據(jù)傳輸機制:

1. 超時重傳:該機制用來保證TCP傳輸?shù)目煽啃浴?/p>

2.快速重輸:發(fā)送端在收到連續(xù)的丟包信息后,立即啟動重傳,節(jié)約等待超時時間。

3.流量控制:TCP滑動窗流量控制。滑動窗可以是提高TCP傳輸效率的一種機制。

4.擁塞控制:基于整個網(wǎng)絡考慮的,擁堵策略算法主要包括:慢啟動,擁塞避免,擁塞發(fā)生,快速恢復。

TCP四次握手斷開連接:

***次握手:主斷方發(fā)送一個FIN,通知被斷方:我即將關閉數(shù)據(jù)傳輸通道。此時主斷方還可接收數(shù)據(jù)。

第二次握手:被斷方收到FIN包后,發(fā)送一個ACK給主斷方,確認序號為收到的序號+1(與SNK相同,一個FIN占用一個序號)。

第三次握手:被斷方發(fā)送一個FIN,通知主動方:我即將關閉數(shù)據(jù)傳輸通道。

第四次握手:主斷方收到FIN后,發(fā)送一個ACK給被斷方,確認序號為收到的序號+1,通道雙方斷開。四次揮手完成 。

IP /TCP協(xié)議及握手過程和數(shù)據(jù)包格式中級詳解

注:可靠傳輸服務軟件都是面向數(shù)據(jù)流的。

UDP數(shù)據(jù)包:

用戶數(shù)據(jù)包協(xié)議UDP是一個面向無連接的協(xié)議,采用該協(xié)議后,兩個應用程序不需要建立連接,他為應用程序提供一次向的數(shù)據(jù)傳輸服務。UDP協(xié)議工作在網(wǎng)際協(xié)議模塊與UDP模塊之間,不提供差錯恢復,不能提供數(shù)據(jù)重傳,所以使用UDP協(xié)議的應用程序都比較復雜,例如DNS(域名解析服務)應用程序。UDP數(shù)據(jù)包包頭結構如下:

  1. typedef struct HeadUDP { 
  2.  WORD SourcePort ;// 16位端口號 
  3.  WORD DePort ; //16位目的端口 
  4.  WORD Len;//16位UDP長度 
  5.  WORD ChkSum;// 16位UDP校驗和 
  6. }HeadUDP; 

UDP數(shù)據(jù)包分為偽首部和首部兩個部分。

首部包含原IP地址、目標IP地址、協(xié)議字、UDP長度、源端口、目的端口、包文長度、校驗和、數(shù)據(jù)區(qū),是為了計算和檢驗而設置的。

偽首部包含IP首部一些字段,其目的是讓UDP兩次檢查數(shù)據(jù)是否正確到達目的地。使用UDP協(xié)議時,協(xié)議字為17,包文長度包括頭部和數(shù)據(jù)區(qū)的總長度,最小8個字節(jié)。校驗和是以16為單位,各位求補(首位為符號位)將和相加,然后再求補。

現(xiàn)在的大部分系統(tǒng)默認提供了可讀寫大于8192字節(jié)的UDP數(shù)據(jù)包(使用這個默認值是因為8192是NFS讀寫用戶數(shù)據(jù)的默認值)。因為UDP協(xié)議是誤差錯控制的,所以發(fā)送過程與IP協(xié)議類似,即IP分組,然后用ARP協(xié)議來解析物理地址,***發(fā)送。

UDP網(wǎng)絡發(fā)送和接收數(shù)據(jù):

 

IP /TCP協(xié)議及握手過程和數(shù)據(jù)包格式中級詳解

ICMP數(shù)據(jù)包

ICMP協(xié)議被稱為網(wǎng)際控制包文協(xié)議。作為IP協(xié)議的附屬協(xié)議,ICMP協(xié)議用來與其他主機或路由器交換錯誤包文和其他重要信息,可以將某個設備的故障信息發(fā)送到其他設備上。ICMP數(shù)據(jù)包包頭結構如下:

  1. typedef struct HeadICMP { 
  2.  BYTE Type ;//8位類型 
  3.  BYTE Code; //8位代碼 
  4.  WORD ChkSum;// 16位校驗和 
  5. }HeadICMP; 

 

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-05-12 00:07:27

TCPIP協(xié)議

2019-08-21 05:48:06

TCPIP協(xié)議棧

2014-07-09 09:43:59

2015-04-01 10:22:06

WebSocket網(wǎng)絡協(xié)議WebSocket協(xié)議

2010-06-13 14:41:59

TCP IP協(xié)議

2014-09-22 09:15:03

TCPIP

2019-10-17 11:06:32

TCP粘包通信協(xié)議

2019-04-29 07:53:11

TCP數(shù)據(jù)包TCP網(wǎng)絡編程

2019-09-30 09:28:26

LinuxTCPIP

2019-05-28 10:32:29

TCPUDP SYN

2010-06-13 15:22:16

TCP協(xié)議數(shù)據(jù)報頭

2017-09-25 21:27:07

TCP協(xié)議數(shù)據(jù)鏈

2010-05-26 17:42:29

IPv6數(shù)據(jù)包

2024-06-07 06:29:49

2017-04-07 09:30:49

Linux網(wǎng)絡數(shù)據(jù)包

2017-03-28 13:25:14

Linux網(wǎng)絡數(shù)據(jù)包

2017-06-22 09:02:40

TCPIP重組

2015-11-09 09:58:56

2014-11-21 09:16:23

TCPIP

2018-12-03 05:54:48

Wireshark網(wǎng)絡協(xié)議TCP
點贊
收藏

51CTO技術棧公眾號