各協(xié)議報(bào)文格式介紹課件_第1頁
各協(xié)議報(bào)文格式介紹課件_第2頁
各協(xié)議報(bào)文格式介紹課件_第3頁
各協(xié)議報(bào)文格式介紹課件_第4頁
各協(xié)議報(bào)文格式介紹課件_第5頁
已閱讀5頁,還剩229頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

各協(xié)議報(bào)文格式介紹——能看懂抓包內(nèi)容的關(guān)鍵各協(xié)議報(bào)文格式介紹——能看懂抓包內(nèi)1

以太網(wǎng)的兩個(gè)標(biāo)準(zhǔn)

DIXEthernetV2是世界上第一個(gè)局域網(wǎng)產(chǎn)品(以太網(wǎng))的規(guī)約。IEEE的802.3標(biāo)準(zhǔn)。DIXEthernetV2標(biāo)準(zhǔn)與IEEE的802.3標(biāo)準(zhǔn)只有很小的差別,因此可以將802.3局域網(wǎng)簡稱為“以太網(wǎng)”。嚴(yán)格說來,“以太網(wǎng)”應(yīng)當(dāng)是指符合DIXEthernetV2標(biāo)準(zhǔn)的局域網(wǎng)

以太網(wǎng)的兩個(gè)標(biāo)準(zhǔn)DIXEthernetV2是世界21.MAC

幀的格式常用的以太網(wǎng)MAC幀格式有兩種標(biāo)準(zhǔn):DIXEthernetV2標(biāo)準(zhǔn)IEEE的802.3標(biāo)準(zhǔn)最常用的MAC幀是以太網(wǎng)V2的格式。1.MAC幀的格式常用的以太網(wǎng)MAC幀格式有兩種標(biāo)準(zhǔn)3各協(xié)議報(bào)文格式介紹課件4各協(xié)議報(bào)文格式介紹課件5MAC幀物理層MAC層IP層目的地址源地址類型數(shù)據(jù)FCS6624字節(jié)46~1500IP數(shù)據(jù)報(bào)以太網(wǎng)V2的MAC幀格式源地址字段6字節(jié)MAC幀物理層MAC層IP層目的地址源地址類型數(shù)6MAC幀物理層MAC層IP層目的地址源地址類型數(shù)據(jù)FCS6624字節(jié)46~1500IP數(shù)據(jù)報(bào)以太網(wǎng)V2的MAC幀格式類型字段2字節(jié)類型字段用來標(biāo)志上一層使用的是什么協(xié)議,以便把收到的MAC幀的數(shù)據(jù)上交給上一層的這個(gè)協(xié)議。MAC幀物理層MAC層IP層目的地址源地址類型數(shù)7MAC幀物理層MAC層IP層目的地址源地址類型數(shù)據(jù)FCS6624字節(jié)46~1500IP數(shù)據(jù)報(bào)以太網(wǎng)V2的MAC幀格式數(shù)據(jù)字段46~1500字節(jié)數(shù)據(jù)字段的正式名稱是MAC

客戶數(shù)據(jù)字段最小長度64字節(jié)18字節(jié)的首部和尾部=數(shù)據(jù)字段的最小長度

MAC幀物理層MAC層IP層目的地址源地址類型數(shù)8MAC幀物理層MAC層IP層目的地址源地址類型數(shù)據(jù)FCS6624字節(jié)46~1500IP數(shù)據(jù)報(bào)以太網(wǎng)V2的MAC幀格式FCS字段4字節(jié)當(dāng)傳輸媒體的誤碼率為1108時(shí),MAC子層可使未檢測到的差錯(cuò)小于11014。當(dāng)數(shù)據(jù)字段的長度小于46字節(jié)時(shí),應(yīng)在數(shù)據(jù)字段的后面加入整數(shù)字節(jié)的填充字段,以保證以太網(wǎng)的MAC幀長不小于64字節(jié)。MAC幀物理層MAC層IP層目的地址源地址類型數(shù)9MAC幀物理層MAC層IP層目的地址源地址類型數(shù)據(jù)FCS6624字節(jié)46~1500IP數(shù)據(jù)報(bào)以太網(wǎng)V2的MAC幀格式1010101010101010101010101010101011前同步碼幀開始定界符7字節(jié)1字節(jié)…8字節(jié)插入在幀的前面插入的8字節(jié)中的第一個(gè)字段共7個(gè)字節(jié),是前同步碼,用來迅速實(shí)現(xiàn)MAC幀的比特同步。第二個(gè)字段是幀開始定界符,表示后面的信息就是MAC幀。為了達(dá)到比特同步,在傳輸媒體上實(shí)際傳送的要比MAC幀還多8個(gè)字節(jié)MAC幀物理層MAC層IP層目的地址源地址類型數(shù)10數(shù)據(jù)字段的長度與長度字段的值不一致;幀的長度不是整數(shù)個(gè)字節(jié);用收到的幀檢驗(yàn)序列FCS查出有差錯(cuò);數(shù)據(jù)字段的長度不在46~1500字節(jié)之間。有效的MAC幀長度為64~1518字節(jié)之間。對于檢查出的無效MAC幀就簡單地丟棄。以太網(wǎng)不負(fù)責(zé)重傳丟棄的幀。無效的MAC幀數(shù)據(jù)字段的長度與長度字段的值不一致;無效的MAC幀112.IP地址與硬件地址TCP報(bào)文IP數(shù)據(jù)報(bào)MAC幀應(yīng)用層數(shù)據(jù)首部首部尾部首部鏈路層及以下使用硬件地址硬件地址網(wǎng)絡(luò)層及以上使用IP地址IP地址2.IP地址與硬件地址TCP報(bào)文IP數(shù)據(jù)報(bào)MAC12IP數(shù)據(jù)報(bào)的格式一個(gè)IP數(shù)據(jù)報(bào)由首部和數(shù)據(jù)兩部分組成。首部的前一部分是固定長度,共20字節(jié),是所有IP數(shù)據(jù)報(bào)必須具有的。在首部的固定部分的后面是一些可選字段,其長度是可變的。IP數(shù)據(jù)報(bào)的格式一個(gè)IP數(shù)據(jù)報(bào)由首部和數(shù)據(jù)兩部分組成13固定部分可變部分04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)區(qū)分服務(wù)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分?jǐn)?shù)據(jù)部分首部IP數(shù)據(jù)報(bào)首部發(fā)送在前固可變04816192431版本標(biāo)志生存時(shí)間協(xié)14可變部分首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)區(qū)分服務(wù)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分?jǐn)?shù)據(jù)部分首部IP數(shù)據(jù)報(bào)固定部分發(fā)送在前可變首04816192431版本標(biāo)志生存時(shí)間協(xié)15首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分?jǐn)?shù)據(jù)部分首部IP數(shù)據(jù)報(bào)固定部分可變部分區(qū)分服務(wù)發(fā)送在前首04816192431版本標(biāo)志生存時(shí)間協(xié)議16首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分固定部分可變部分版本——占4位,指IP協(xié)議的版本目前的IP協(xié)議版本號(hào)為4(即IPv4)區(qū)分服務(wù)1.IP數(shù)據(jù)報(bào)首部的固定部分中的各字段首04816192431版本標(biāo)志生存時(shí)間協(xié)議17首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分固定部分可變部分首部長度——占4位,可表示的最大數(shù)值是15個(gè)單位(一個(gè)單位為4字節(jié))因此IP的首部長度的最大值是60字節(jié)。區(qū)分服務(wù)首04816192431版本標(biāo)志生存時(shí)間協(xié)議18首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分固定部分可變部分區(qū)分服務(wù)——占8位,用來獲得更好的服務(wù)在舊標(biāo)準(zhǔn)中叫做服務(wù)類型,但實(shí)際上一直未被使用過。1998年這個(gè)字段改名為區(qū)分服務(wù)。只有在使用區(qū)分服務(wù)(DiffServ)時(shí),這個(gè)字段才起作用。在一般的情況下都不使用這個(gè)字段區(qū)分服務(wù)首04816192431版本標(biāo)志生存時(shí)間協(xié)議19首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分固定部分可變部分總長度——占16位,指首部和數(shù)據(jù)之和的長度,單位為字節(jié),因此數(shù)據(jù)報(bào)的最大長度為65535字節(jié)。總長度必須不超過最大傳送單元MTU。

區(qū)分服務(wù)首04816192431版本標(biāo)志生存時(shí)間協(xié)議20首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分固定部分可變部分標(biāo)識(shí)(identification)占16位,它是一個(gè)計(jì)數(shù)器,用來產(chǎn)生數(shù)據(jù)報(bào)的標(biāo)識(shí)。區(qū)分服務(wù)首04816192431版本標(biāo)志生存時(shí)間協(xié)議21首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)區(qū)分服務(wù)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分固定部分可變部分標(biāo)志(flag)占3位,目前只有前兩位有意義。標(biāo)志字段的最低位是MF(MoreFragment)。MF1表示后面“還有分片”。MF0表示最后一個(gè)分片。標(biāo)志字段中間的一位是DF(Don'tFragment)。只有當(dāng)DF0時(shí)才允許分片。

首04816192431版本標(biāo)志生存時(shí)間協(xié)議22首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分固定部分可變部分片偏移(12位)指出:較長的分組在分片后某片在原分組中的相對位置。片偏移以8個(gè)字節(jié)為偏移單位。區(qū)分服務(wù)首04816192431版本標(biāo)志生存時(shí)間協(xié)議23偏移=0/8=0偏移=0/8=0偏移=1400/8=175偏移=2800/8=350140028003799279913993799需分片的數(shù)據(jù)報(bào)數(shù)據(jù)報(bào)片1首部數(shù)據(jù)部分共3800字節(jié)首部1首部2首部3字節(jié)0數(shù)據(jù)報(bào)片2數(shù)據(jù)報(bào)片314002800字節(jié)0【例4-1】IP數(shù)據(jù)報(bào)分片偏移=0/8=0偏移=0/8偏移=1400/24首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分固定部分可變部分生存時(shí)間(8位)記為TTL(TimeToLive)數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中可通過的路由器數(shù)的最大值。區(qū)分服務(wù)首04816192431版本標(biāo)志生存時(shí)間協(xié)議25首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分固定部分可變部分協(xié)議(8位)字段指出此數(shù)據(jù)報(bào)攜帶的數(shù)據(jù)使用何種協(xié)議以便目的主機(jī)的IP層將數(shù)據(jù)部分上交給哪個(gè)處理過程區(qū)分服務(wù)首04816192431版本標(biāo)志生存時(shí)間協(xié)議26運(yùn)輸層網(wǎng)絡(luò)層首部TCPUDPICMPIGMPOSPF數(shù)據(jù)部分IP數(shù)據(jù)報(bào)協(xié)議字段指出應(yīng)將數(shù)據(jù)部分交給哪一個(gè)進(jìn)程運(yùn)輸層網(wǎng)絡(luò)層首部TCPUDPICMPIGMPOSPF數(shù)據(jù)27首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分固定部分可變部分首部檢驗(yàn)和(16位)字段只檢驗(yàn)數(shù)據(jù)報(bào)的首部不檢驗(yàn)數(shù)據(jù)部分。這里不采用

CRC

檢驗(yàn)碼而采用簡單的計(jì)算方法。區(qū)分服務(wù)首04816192431版本標(biāo)志生存時(shí)間協(xié)議28首部04816192431版本標(biāo)志生存時(shí)間協(xié)議標(biāo)識(shí)總長度片偏移填充首部檢驗(yàn)和源地址目的地址可選字段(長度可變)位首部長度數(shù)據(jù)部分固定部分可變部分源地址和目的地址都各占4字節(jié)區(qū)分服務(wù)首04816192431版本標(biāo)志生存時(shí)間協(xié)議295.1運(yùn)輸層協(xié)議概述

5.1.1進(jìn)程之間的通信從通信和信息處理的角度看,運(yùn)輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時(shí)也是用戶功能中的最低層。當(dāng)網(wǎng)絡(luò)的邊緣部分中的兩個(gè)主機(jī)使用網(wǎng)絡(luò)的核心部分的功能進(jìn)行端到端的通信時(shí),只有位于網(wǎng)絡(luò)邊緣部分的主機(jī)的協(xié)議棧才有運(yùn)輸層,而網(wǎng)絡(luò)核心部分中的路由器在轉(zhuǎn)發(fā)分組時(shí)都只用到下三層的功能。5.1運(yùn)輸層協(xié)議概述

5.1.1進(jìn)程之間的通信從通信和30運(yùn)輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信54321運(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信主機(jī)A主機(jī)B應(yīng)用進(jìn)程應(yīng)用進(jìn)程路由器1路由器2AP1LAN2WANAP2AP3AP4IP層LAN1AP1AP2AP4端口端口54321IP協(xié)議的作用范圍運(yùn)輸層協(xié)議TCP和UDP的作用范圍AP3運(yùn)輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信5運(yùn)輸層提供應(yīng)用進(jìn)31應(yīng)用進(jìn)程之間的通信兩個(gè)主機(jī)進(jìn)行通信實(shí)際上就是兩個(gè)主機(jī)中的應(yīng)用進(jìn)程互相通信。應(yīng)用進(jìn)程之間的通信又稱為端到端的通信。運(yùn)輸層的一個(gè)很重要的功能就是復(fù)用和分用。應(yīng)用層不同進(jìn)程的報(bào)文通過不同的端口向下交到運(yùn)輸層,再往下就共用網(wǎng)絡(luò)層提供的服務(wù)?!斑\(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信”?!斑壿嬐ㄐ拧钡囊馑际牵哼\(yùn)輸層之間的通信好像是沿水平方向傳送數(shù)據(jù)。但事實(shí)上這兩個(gè)運(yùn)輸層之間并沒有一條水平方向的物理連接。應(yīng)用進(jìn)程之間的通信兩個(gè)主機(jī)進(jìn)行通信實(shí)際上就是兩個(gè)主機(jī)中的應(yīng)用32運(yùn)輸層協(xié)議和網(wǎng)絡(luò)層協(xié)議的主要區(qū)別應(yīng)用進(jìn)程…應(yīng)用進(jìn)程…IP協(xié)議的作用范圍(提供主機(jī)之間的邏輯通信)TCP和UDP協(xié)議的作用范圍(提供進(jìn)程之間的邏輯通信)因特網(wǎng)運(yùn)輸層協(xié)議和網(wǎng)絡(luò)層協(xié)議的主要區(qū)別應(yīng)用進(jìn)程…應(yīng)用進(jìn)程…33運(yùn)輸層的主要功能運(yùn)輸層為應(yīng)用進(jìn)程之間提供端到端的邏輯通信(但網(wǎng)絡(luò)層是為主機(jī)之間提供邏輯通信)。運(yùn)輸層還要對收到的報(bào)文進(jìn)行差錯(cuò)檢測。運(yùn)輸層需要有兩種不同的運(yùn)輸協(xié)議,即面向連接的TCP和無連接的UDP。

運(yùn)輸層的主要功能運(yùn)輸層為應(yīng)用進(jìn)程之間提供端到端的邏輯通信(34兩種不同的運(yùn)輸協(xié)議運(yùn)輸層向高層用戶屏蔽了下面網(wǎng)絡(luò)核心的細(xì)節(jié)(如網(wǎng)絡(luò)拓?fù)?、所采用的路由選擇協(xié)議等),它使應(yīng)用進(jìn)程看見的就是好像在兩個(gè)運(yùn)輸層實(shí)體之間有一條端到端的邏輯通信信道。當(dāng)運(yùn)輸層采用面向連接的TCP協(xié)議時(shí),盡管下面的網(wǎng)絡(luò)是不可靠的(只提供盡最大努力服務(wù)),但這種邏輯通信信道就相當(dāng)于一條全雙工的可靠信道。當(dāng)運(yùn)輸層采用無連接的UDP

協(xié)議時(shí),這種邏輯通信信道是一條不可靠信道。兩種不同的運(yùn)輸協(xié)議運(yùn)輸層向高層用戶屏蔽了下面網(wǎng)絡(luò)核心的細(xì)節(jié)(35TCP/IP的運(yùn)輸層有兩個(gè)不同的協(xié)議:(1)用戶數(shù)據(jù)報(bào)協(xié)議UDP (UserDatagramProtocol)(2)傳輸控制協(xié)議TCP (TransmissionControlProtocol)5.1.2運(yùn)輸層的兩個(gè)主要協(xié)議TCP/IP的運(yùn)輸層有兩個(gè)不同的協(xié)議:5.1.2運(yùn)輸層的36兩個(gè)對等運(yùn)輸實(shí)體在通信時(shí)傳送的數(shù)據(jù)單位叫作運(yùn)輸協(xié)議數(shù)據(jù)單元TPDU(TransportProtocolDataUnit)。TCP傳送的數(shù)據(jù)單位協(xié)議是TCP報(bào)文段(segment)UDP傳送的數(shù)據(jù)單位協(xié)議是UDP報(bào)文或用戶數(shù)據(jù)報(bào)。TCP與UDP兩個(gè)對等運(yùn)輸實(shí)體在通信時(shí)傳送的數(shù)據(jù)單位叫作運(yùn)輸協(xié)議數(shù)據(jù)單元37TCP/IP體系中的運(yùn)輸層協(xié)議TCPUDPIP應(yīng)用層與各種網(wǎng)絡(luò)接口運(yùn)輸層TCP/IP體系中的運(yùn)輸層協(xié)議TCPUDPIP應(yīng)用層與各38TCP與UDPUDP在傳送數(shù)據(jù)之前不需要先建立連接。對方的運(yùn)輸層在收到UDP報(bào)文后,不需要給出任何確認(rèn)。雖然UDP不提供可靠交付,但在某些情況下UDP是一種最有效的工作方式。TCP則提供面向連接的服務(wù)。TCP不提供廣播或多播服務(wù)。由于TCP要提供可靠的、面向連接的運(yùn)輸服務(wù),因此不可避免地增加了許多的開銷。這不僅使協(xié)議數(shù)據(jù)單元的首部增大很多,還要占用許多的處理機(jī)資源。TCP與UDPUDP在傳送數(shù)據(jù)之前不需要先建立連接。39還要強(qiáng)調(diào)兩點(diǎn)運(yùn)輸層的

UDP

用戶數(shù)據(jù)報(bào)與網(wǎng)際層的IP數(shù)據(jù)報(bào)有很大區(qū)別。IP

數(shù)據(jù)報(bào)要經(jīng)過互連網(wǎng)中許多路由器的存儲(chǔ)轉(zhuǎn)發(fā),但

UDP

用戶數(shù)據(jù)報(bào)是在運(yùn)輸層的端到端抽象的邏輯信道中傳送的。TCP

報(bào)文段是在運(yùn)輸層抽象的端到端邏輯信道中傳送,這種信道是可靠的全雙工信道。但這樣的信道卻不知道究竟經(jīng)過了哪些路由器,而這些路由器也根本不知道上面的運(yùn)輸層是否建立了TCP連接。還要強(qiáng)調(diào)兩點(diǎn)運(yùn)輸層的UDP用戶數(shù)據(jù)報(bào)與網(wǎng)際層的IP數(shù)據(jù)405.1.3運(yùn)輸層的端口運(yùn)行在計(jì)算機(jī)中的進(jìn)程是用進(jìn)程標(biāo)識(shí)符來標(biāo)志的。運(yùn)行在應(yīng)用層的各種應(yīng)用進(jìn)程卻不應(yīng)當(dāng)讓計(jì)算機(jī)操作系統(tǒng)指派它的進(jìn)程標(biāo)識(shí)符。這是因?yàn)樵谝蛱鼐W(wǎng)上使用的計(jì)算機(jī)的操作系統(tǒng)種類很多,而不同的操作系統(tǒng)又使用不同格式的進(jìn)程標(biāo)識(shí)符。為了使運(yùn)行不同操作系統(tǒng)的計(jì)算機(jī)的應(yīng)用進(jìn)程能夠互相通信,就必須用統(tǒng)一的方法對TCP/IP體系的應(yīng)用進(jìn)程進(jìn)行標(biāo)志。5.1.3運(yùn)輸層的端口運(yùn)行在計(jì)算機(jī)中的進(jìn)程是用進(jìn)程標(biāo)識(shí)41需要解決的問題由于進(jìn)程的創(chuàng)建和撤銷都是動(dòng)態(tài)的,發(fā)送方幾乎無法識(shí)別其他機(jī)器上的進(jìn)程。有時(shí)我們會(huì)改換接收報(bào)文的進(jìn)程,但并不需要通知所有發(fā)送方。我們往往需要利用目的主機(jī)提供的功能來識(shí)別終點(diǎn),而不需要知道實(shí)現(xiàn)這個(gè)功能的進(jìn)程。需要解決的問題由于進(jìn)程的創(chuàng)建和撤銷都是動(dòng)態(tài)的,發(fā)送方幾乎無42端口號(hào)(protocolportnumber)

簡稱為端口(port)解決這個(gè)問題的方法就是在運(yùn)輸層使用協(xié)議端口號(hào)(protocolportnumber),或通常簡稱為端口(port)。雖然通信的終點(diǎn)是應(yīng)用進(jìn)程,但我們可以把端口想象是通信的終點(diǎn),因?yàn)槲覀冎灰岩獋魉偷膱?bào)文交到目的主機(jī)的某一個(gè)合適的目的端口,剩下的工作(即最后交付目的進(jìn)程)就由TCP來完成。端口號(hào)(protocolportnumber)

簡稱為端43軟件端口與硬件端口在協(xié)議棧層間的抽象的協(xié)議端口是軟件端口。路由器或交換機(jī)上的端口是硬件端口。硬件端口是不同硬件設(shè)備進(jìn)行交互的接口,而軟件端口是應(yīng)用層的各種協(xié)議進(jìn)程與運(yùn)輸實(shí)體進(jìn)行層間交互的一種地址。軟件端口與硬件端口在協(xié)議棧層間的抽象的協(xié)議端口是軟件端口。44TCP的端口端口用一個(gè)16位端口號(hào)進(jìn)行標(biāo)志。端口號(hào)只具有本地意義,即端口號(hào)只是為了標(biāo)志本計(jì)算機(jī)應(yīng)用層中的各進(jìn)程。在因特網(wǎng)中不同計(jì)算機(jī)的相同端口號(hào)是沒有聯(lián)系的。TCP的端口端口用一個(gè)16位端口號(hào)進(jìn)行標(biāo)志。45三類端口熟知端口,數(shù)值一般為0~1023。登記端口號(hào),數(shù)值為1024~49151,為沒有熟知端口號(hào)的應(yīng)用程序使用的。使用這個(gè)范圍的端口號(hào)必須在IANA登記,以防止重復(fù)??蛻舳丝谔?hào)或短暫端口號(hào),數(shù)值為49152~65535,留給客戶進(jìn)程選擇暫時(shí)使用。當(dāng)服務(wù)器進(jìn)程收到客戶進(jìn)程的報(bào)文時(shí),就知道了客戶進(jìn)程所使用的動(dòng)態(tài)端口號(hào)。通信結(jié)束后,這個(gè)端口號(hào)可供其他客戶進(jìn)程以后使用。三類端口熟知端口,數(shù)值一般為0~1023。465.2用戶數(shù)據(jù)報(bào)協(xié)議UDP

5.2.1UDP概述

UDP只在IP的數(shù)據(jù)報(bào)服務(wù)之上增加了很少一點(diǎn)的功能,即端口的功能和差錯(cuò)檢測的功能。雖然UDP用戶數(shù)據(jù)報(bào)只能提供不可靠的交付,但UDP在某些方面有其特殊的優(yōu)點(diǎn)。5.2用戶數(shù)據(jù)報(bào)協(xié)議UDP

5.2.1UDP概47UDP的主要特點(diǎn)UDP是無連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接。UDP使用盡最大努力交付,即不保證可靠交付,同時(shí)也不使用擁塞控制。UDP是面向報(bào)文的。UDP沒有擁塞控制,很適合多媒體通信的要求。UDP支持一對一、一對多、多對一和多對多的交互通信。UDP的首部開銷小,只有8個(gè)字節(jié)。UDP的主要特點(diǎn)UDP是無連接的,即發(fā)送數(shù)據(jù)之前不需要48面向報(bào)文的UDP發(fā)送方UDP對應(yīng)用程序交下來的報(bào)文,在添加首部后就向下交付IP層。UDP對應(yīng)用層交下來的報(bào)文,既不合并,也不拆分,而是保留這些報(bào)文的邊界。應(yīng)用層交給UDP多長的報(bào)文,UDP就照樣發(fā)送,即一次發(fā)送一個(gè)報(bào)文。接收方UDP對IP層交上來的UDP用戶數(shù)據(jù)報(bào),在去除首部后就原封不動(dòng)地交付上層的應(yīng)用進(jìn)程,一次交付一個(gè)完整的報(bào)文。應(yīng)用程序必須選擇合適大小的報(bào)文。面向報(bào)文的UDP發(fā)送方UDP對應(yīng)用程序交下來的報(bào)文,在49UDP是面向報(bào)文的IP數(shù)據(jù)報(bào)的數(shù)據(jù)部分IP首部IP層UDP首部UDP用戶數(shù)據(jù)報(bào)的數(shù)據(jù)部分運(yùn)輸層應(yīng)用層報(bào)文應(yīng)用層UDP是面向報(bào)文的IP數(shù)據(jù)報(bào)的數(shù)據(jù)部分IP首部IP505.2.2UDP的首部格式偽首部源端口目的端口長度檢驗(yàn)和數(shù)據(jù)首部UDP長度源IP地址目的IP地址017IP數(shù)據(jù)報(bào)字節(jié)44112122222字節(jié)發(fā)送在前數(shù)據(jù)首部UDP用戶數(shù)據(jù)報(bào)5.2.2UDP的首部格式偽首部源端口目的端口長51UDP基于端口的分用IP層UDP數(shù)據(jù)報(bào)到達(dá)端口2端口3端口1UDP分用UDP基于端口的分用IP層UDP數(shù)據(jù)報(bào)到達(dá)端口2端525.3傳輸控制協(xié)議TCP概述

5.3.1TCP最主要的特點(diǎn)

TCP是面向連接的運(yùn)輸層協(xié)議。每一條TCP連接只能有兩個(gè)端點(diǎn)(endpoint),每一條TCP連接只能是點(diǎn)對點(diǎn)的(一對一)。TCP提供可靠交付的服務(wù)。TCP提供全雙工通信。面向字節(jié)流。5.3傳輸控制協(xié)議TCP概述

5.3.1TC53768HTCP面向流的概念發(fā)送TCP報(bào)文段發(fā)送方接收方把字節(jié)寫入發(fā)送緩存從接收緩存讀取字節(jié)應(yīng)用進(jìn)程應(yīng)用進(jìn)程1230181716151419202145131211H109H加上TCP首部構(gòu)成TCP報(bào)文段TCPTCP字節(jié)流字節(jié)流H表示TCP報(bào)文段的首部x表示序號(hào)為x的數(shù)據(jù)字節(jié)TCP連接768HTCP面向流的概念發(fā)送TCP報(bào)文段發(fā)送方54應(yīng)當(dāng)注意TCP連接是一條虛連接而不是一條真正的物理連接。TCP對應(yīng)用進(jìn)程一次把多長的報(bào)文發(fā)送到TCP的緩存中是不關(guān)心的。TCP根據(jù)對方給出的窗口值和當(dāng)前網(wǎng)絡(luò)擁塞的程度來決定一個(gè)報(bào)文段應(yīng)包含多少個(gè)字節(jié)(UDP發(fā)送的報(bào)文長度是應(yīng)用進(jìn)程給出的)。TCP可把太長的數(shù)據(jù)塊劃分短一些再傳送。TCP也可等待積累有足夠多的字節(jié)后再構(gòu)成報(bào)文段發(fā)送出去。應(yīng)當(dāng)注意TCP連接是一條虛連接而不是一條真正的物理連接。555.3.2TCP的連接TCP把連接作為最基本的抽象。每一條TCP連接有兩個(gè)端點(diǎn)。TCP連接的端點(diǎn)不是主機(jī),不是主機(jī)的IP地址,不是應(yīng)用進(jìn)程,也不是運(yùn)輸層的協(xié)議端口。TCP連接的端點(diǎn)叫做套接字(socket)或插口。端口號(hào)拼接到(contatenatedwith)IP地址即構(gòu)成了套接字。5.3.2TCP的連接TCP把連接作為最基本的抽象56TCP可靠通信的具體實(shí)現(xiàn)TCP連接的每一端都必須設(shè)有兩個(gè)窗口——一個(gè)發(fā)送窗口和一個(gè)接收窗口。TCP的可靠傳輸機(jī)制用字節(jié)的序號(hào)進(jìn)行控制。TCP所有的確認(rèn)都是基于序號(hào)而不是基于報(bào)文段。TCP兩端的四個(gè)窗口經(jīng)常處于動(dòng)態(tài)變化之中。TCP連接的往返時(shí)間RTT也不是固定不變的。需要使用特定的算法估算較為合理的重傳時(shí)間。TCP可靠通信的具體實(shí)現(xiàn)TCP連接的每一端都必須設(shè)有兩57TCP首部20字節(jié)的固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32位SYNRSTPSHACKURG位08162431填充TCP數(shù)據(jù)部分TCP首部TCP報(bào)文段IP數(shù)據(jù)部分IP首部發(fā)送在前5.5TCP報(bào)文段的首部格式TCP20字節(jié)的目的端口數(shù)據(jù)檢驗(yàn)和58TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充源端口和目的端口字段——各占2字節(jié)。端口是運(yùn)輸層與應(yīng)用層的服務(wù)接口。運(yùn)輸層的復(fù)用和分用功能都要通過端口才能實(shí)現(xiàn)。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選59TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充序號(hào)字段——占4字節(jié)。TCP連接中傳送的數(shù)據(jù)流中的每一個(gè)字節(jié)都編上一個(gè)序號(hào)。序號(hào)字段的值則指的是本報(bào)文段所發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選60TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充確認(rèn)號(hào)字段——占4字節(jié),是期望收到對方的下一個(gè)報(bào)文段的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選61TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充數(shù)據(jù)偏移(即首部長度)——占4位,它指出TCP報(bào)文段的數(shù)據(jù)起始處距離TCP報(bào)文段的起始處有多遠(yuǎn)?!皵?shù)據(jù)偏移”的單位是32位字(以4字節(jié)為計(jì)算單位)。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選62TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充保留字段——占6位,保留為今后使用,但目前應(yīng)置為0。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選63TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充緊急URG——當(dāng)URG1時(shí),表明緊急指針字段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級(jí)的數(shù)據(jù))。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選64TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充確認(rèn)ACK——只有當(dāng)ACK1時(shí)確認(rèn)號(hào)字段才有效。當(dāng)ACK0時(shí),確認(rèn)號(hào)無效。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選65TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充推送PSH(PuSH)——接收TCP收到PSH=1的報(bào)文段,就盡快地交付接收應(yīng)用進(jìn)程,而不再等到整個(gè)緩存都填滿了后再向上交付。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選66TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充復(fù)位RST(ReSeT)——當(dāng)RST1時(shí),表明TCP連接中出現(xiàn)嚴(yán)重差錯(cuò)(如由于主機(jī)崩潰或其他原因),必須釋放連接,然后再重新建立運(yùn)輸連接。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選67TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充同步SYN——同步SYN=1表示這是一個(gè)連接請求或連接接受報(bào)文。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選68TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充終止FIN(FINis)——用來釋放一個(gè)連接。FIN1表明此報(bào)文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選69TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充窗口字段——占2字節(jié),用來讓對方設(shè)置發(fā)送窗口的依據(jù),單位為字節(jié)。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選70TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充檢驗(yàn)和——占2字節(jié)。檢驗(yàn)和字段檢驗(yàn)的范圍包括首部和數(shù)據(jù)這兩部分。在計(jì)算檢驗(yàn)和時(shí),要在TCP報(bào)文段的前面加上12字節(jié)的偽首部。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選71TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充緊急指針字段——占16位,指出在本報(bào)文段中緊急數(shù)據(jù)共有多少個(gè)字節(jié)(緊急數(shù)據(jù)放在本報(bào)文段數(shù)據(jù)的最前面)。

TCP20目的端口數(shù)據(jù)檢驗(yàn)和選72TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充選項(xiàng)字段——長度可變。TCP最初只規(guī)定了一種選項(xiàng),即最大報(bào)文段長度MSS。MSS告訴對方TCP:“我的緩存所能接收的報(bào)文段的數(shù)據(jù)字段的最大長度是MSS個(gè)字節(jié)?!盡SS(MaximumSegmentSize)是TCP報(bào)文段中的數(shù)據(jù)字段的最大長度。數(shù)據(jù)字段加上TCP首部才等于整個(gè)的TCP報(bào)文段。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選73其他選項(xiàng)窗口擴(kuò)大選項(xiàng)——占3字節(jié),其中有一個(gè)字節(jié)表示移位值S。新的窗口值等于TCP首部中的窗口位數(shù)增大到(16+S),相當(dāng)于把窗口值向左移動(dòng)S位后獲得實(shí)際的窗口大小。時(shí)間戳選項(xiàng)——占10字節(jié),其中最主要的字段時(shí)間戳值字段(4字節(jié))和時(shí)間戳回送回答字段(4字節(jié))。其他選項(xiàng)窗口擴(kuò)大選項(xiàng)——占3字節(jié),其中有一個(gè)字節(jié)表示移74TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充填充字段——這是為了使整個(gè)首部長度是4字節(jié)的整數(shù)倍。TCP20目的端口數(shù)據(jù)檢驗(yàn)和選75TCP的流量控制

利用滑動(dòng)窗口實(shí)現(xiàn)流量控制一般說來,我們總是希望數(shù)據(jù)傳輸?shù)酶煲恍?。但如果發(fā)送方把數(shù)據(jù)發(fā)送得過快,接收方就可能來不及接收,這就會(huì)造成數(shù)據(jù)的丟失。流量控制(flowcontrol)就是讓發(fā)送方的發(fā)送速率不要太快,既要讓接收方來得及接收,也不要使網(wǎng)絡(luò)發(fā)生擁塞。利用滑動(dòng)窗口機(jī)制可以很方便地在TCP連接上實(shí)現(xiàn)流量控制。TCP的流量控制

利用滑動(dòng)窗口實(shí)現(xiàn)流量控制一般說來,我76以字節(jié)為單位的滑動(dòng)窗口前移不允許發(fā)送已發(fā)送并收到確認(rèn)A的發(fā)送窗口=20允許發(fā)送的序號(hào)26272829303132333435363738394041424344454647484950515253545556B期望收到的序號(hào)前沿后沿前移收縮根據(jù)B給出的窗口值A(chǔ)構(gòu)造出自己的發(fā)送窗口TCP標(biāo)準(zhǔn)強(qiáng)烈不贊成發(fā)送窗口前沿向后收縮以字節(jié)為單位的滑動(dòng)窗口前移不允許發(fā)送已發(fā)送并A的發(fā)送窗口77不允許發(fā)送已發(fā)送并收到確認(rèn)A的發(fā)送窗口位置不變允許發(fā)送但尚未發(fā)送262728293031323334353637383940414243444546474849505152535455已發(fā)送但未收到確認(rèn)56P1P2P3不允許接收已發(fā)送確認(rèn)并交付主機(jī)B的接收窗口允許接收26272829303132333435363738394041424344454647484950515253545556未按序收到可用窗口A發(fā)送了11個(gè)字節(jié)的數(shù)據(jù)P3–P1=A的發(fā)送窗口(又稱為通知窗口)P2–P1=已發(fā)送但尚未收到確認(rèn)的字節(jié)數(shù)P3–P2=允許發(fā)送但尚未發(fā)送的字節(jié)數(shù)(又稱為可用窗口)不允許發(fā)送已發(fā)送并A的發(fā)送窗口位置不變允許發(fā)送但尚未發(fā)送278允許發(fā)送但尚未發(fā)送A的發(fā)送窗口向前滑動(dòng)262728293031323334353637383940414243444546474849505152535455已發(fā)送并收到確認(rèn)不允許發(fā)送已發(fā)送但未收到確認(rèn)56P1P2P3允許接收B的接收窗口向前滑動(dòng)262728293031323334353637383940414243444546474849505152535455已發(fā)送確認(rèn)并交付主機(jī)不允許接收56未按序收到A收到新的確認(rèn)號(hào),發(fā)送窗口向前滑動(dòng)先存下,等待缺少的數(shù)據(jù)的到達(dá)允許發(fā)送但尚未發(fā)送A的發(fā)送窗口向前滑動(dòng)262728293079不允許發(fā)送已發(fā)送并收到確認(rèn)A的發(fā)送窗口已滿,有效窗口為零262728293031323334353637383940414243444546474849505152535455已發(fā)送但未收到確認(rèn)56P1P2P3A的發(fā)送窗口內(nèi)的序號(hào)都已用完,但還沒有再收到確認(rèn),必須停止發(fā)送。不允許已發(fā)送并收到確認(rèn)A的發(fā)送窗口已滿,有效窗口為零26280發(fā)送緩存最后被確認(rèn)的字節(jié)發(fā)送應(yīng)用程序發(fā)送緩存最后發(fā)送的字節(jié)發(fā)送窗口已發(fā)送TCP序號(hào)增大發(fā)送緩存最后被確認(rèn)發(fā)送應(yīng)用程序發(fā)送緩存最后發(fā)送發(fā)送窗口已發(fā)81接收緩存接收應(yīng)用程序已收到接收窗口TCP接收緩存下一個(gè)讀取的字節(jié)序號(hào)增大下一個(gè)期望收到的字節(jié)(確認(rèn)號(hào))接收緩存接收應(yīng)用程序已收到接收窗口TCP接收緩存下一個(gè)讀取序82發(fā)送緩存與接收緩存的作用發(fā)送緩存用來暫時(shí)存放:

發(fā)送應(yīng)用程序傳送給發(fā)送方TCP準(zhǔn)備發(fā)送的數(shù)據(jù);TCP已發(fā)送出但尚未收到確認(rèn)的數(shù)據(jù)。接收緩存用來暫時(shí)存放:

按序到達(dá)的、但尚未被接收應(yīng)用程序讀取的數(shù)據(jù);不按序到達(dá)的數(shù)據(jù)。

發(fā)送緩存與接收緩存的作用發(fā)送緩存用來暫時(shí)存放:83需要強(qiáng)調(diào)三點(diǎn)A的發(fā)送窗口并不總是和B的接收窗口一樣大(因?yàn)橛幸欢ǖ臅r(shí)間滯后)。TCP標(biāo)準(zhǔn)沒有規(guī)定對不按序到達(dá)的數(shù)據(jù)應(yīng)如何處理。通常是先臨時(shí)存放在接收窗口中,等到字節(jié)流中所缺少的字節(jié)收到后,再按序交付上層的應(yīng)用進(jìn)程。TCP要求接收方必須有累積確認(rèn)的功能,這樣可以減小傳輸開銷。需要強(qiáng)調(diào)三點(diǎn)A的發(fā)送窗口并不總是和B的接收窗口一樣大(84TCP的運(yùn)輸連接管理

1.運(yùn)輸連接的三個(gè)階段

運(yùn)輸連接就有三個(gè)階段,即:連接建立、數(shù)據(jù)傳送和連接釋放。運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和釋放都能正常地進(jìn)行。連接建立過程中要解決以下三個(gè)問題:要使每一方能夠確知對方的存在。要允許雙方協(xié)商一些參數(shù)(如最大報(bào)文段長度,最大窗口大小,服務(wù)質(zhì)量等)。能夠?qū)\(yùn)輸實(shí)體資源(如緩存大小,連接表中的項(xiàng)目等)進(jìn)行分配。TCP的運(yùn)輸連接管理

1.運(yùn)輸連接的三個(gè)階段運(yùn)輸連接85客戶服務(wù)器方式TCP連接的建立都是采用客戶服務(wù)器方式。主動(dòng)發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶(client)。被動(dòng)等待連接建立的應(yīng)用進(jìn)程叫做服務(wù)器(server)??蛻舴?wù)器方式TCP連接的建立都是采用客戶服務(wù)器方式。86

用三次握手建立TCP連接

SYN=1,seq=xCLOSEDCLOSED主動(dòng)打開被動(dòng)打開AB客戶服務(wù)器5.9.1TCP的連接建立A的TCP向B發(fā)出連接請求報(bào)文段,其首部中的同步位SYN=1,并選擇序號(hào)seq=x,表明傳送數(shù)據(jù)時(shí)的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)是x。

用三次握手建立TCP連接SYN=1,seq=87

用三次握手建立TCP連接

SYN=1,seq=xCLOSEDCLOSED主動(dòng)打開被動(dòng)打開AB客戶服務(wù)器5.9.1TCP的連接建立SYN=1,ACK=1,seq=y,ack=x1B的TCP收到連接請求報(bào)文段后,如同意,則發(fā)回確認(rèn)。B在確認(rèn)報(bào)文段中應(yīng)使SYN=1,使ACK=1,其確認(rèn)號(hào)ack=x1,自己選擇的序號(hào)seq=y。

用三次握手建立TCP連接SYN=1,seq=88SYN=1,seq=xACK=1,seq=x+1,ack=y1CLOSEDCLOSED主動(dòng)打開被動(dòng)打開AB客戶服務(wù)器SYN=1,ACK=1,seq=y,ack=x1A收到此報(bào)文段后向B給出確認(rèn),其ACK=1,確認(rèn)號(hào)ack=y1。A的TCP通知上層應(yīng)用進(jìn)程,連接已經(jīng)建立。SYN=1,seq=xACK=1,seq=89SYN=1,seq=xACK=1,seq=x+1,ack=y1CLOSEDCLOSED數(shù)據(jù)傳送主動(dòng)打開被動(dòng)打開AB客戶服務(wù)器SYN=1,ACK=1,seq=y,ack=x1B的TCP收到主機(jī)A的確認(rèn)后,也通知其上層應(yīng)用進(jìn)程:TCP連接已經(jīng)建立。SYN=1,seq=xACK=1,seq=90SYN-SENTESTAB-LISHEDSYN-RCVDLISTENESTAB-LISHED

用三次握手建立TCP連接的各狀態(tài)

SYN=1,seq=xACK=1,seq=x+1,ack=y1CLOSEDCLOSED數(shù)據(jù)傳送主動(dòng)打開被動(dòng)打開AB客戶服務(wù)器5.9.1TCP的連接建立SYN=1,ACK=1,seq=y,ack=x1SYN-ESTAB-SYN-LISTENESTAB-

用三次91FIN=1,seq=uCLOSED主動(dòng)關(guān)閉數(shù)據(jù)傳送ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器CLOSED5.9.2TCP

的連接釋放數(shù)據(jù)傳輸結(jié)束后,通信的雙方都可釋放連接?,F(xiàn)在A的應(yīng)用進(jìn)程先向其TCP發(fā)出連接釋放報(bào)文段,并停止再發(fā)送數(shù)據(jù),主動(dòng)關(guān)閉TCP連接。A把連接釋放報(bào)文段首部的FIN=1,其序號(hào)seq=u,等待B的確認(rèn)。FIN=1,seq=uCLOSED主動(dòng)關(guān)閉數(shù)據(jù)傳送92FIN=1,seq=uACK=1,seq=v,ack=u1主動(dòng)關(guān)閉數(shù)據(jù)傳送通知應(yīng)用進(jìn)程ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器5.9.2TCP

的連接釋放B發(fā)出確認(rèn),確認(rèn)號(hào)ack=u1,而這個(gè)報(bào)文段自己的序號(hào)seq=v。TCP服務(wù)器進(jìn)程通知高層應(yīng)用進(jìn)程。從A到B這個(gè)方向的連接就釋放了,TCP連接處于半關(guān)閉狀態(tài)。B若發(fā)送數(shù)據(jù),A仍要接收。FIN=1,seq=uACK=1,seq=93FIN=1,seq=uACK=1,seq=v,ack=u1FIN=1,ACK=1,seq=w,ack=u1主動(dòng)關(guān)閉被動(dòng)關(guān)閉數(shù)據(jù)傳送通知應(yīng)用進(jìn)程ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器數(shù)據(jù)傳送5.9.2TCP

的連接釋放若B已經(jīng)沒有要向A發(fā)送的數(shù)據(jù),其應(yīng)用進(jìn)程就通知TCP釋放連接。FIN=1,seq=uACK=1,seq=94FIN=1,seq=uACK=1,seq=v,ack=u1FIN=1,ACK=1,seq=w,ack=u1主動(dòng)關(guān)閉被動(dòng)關(guān)閉數(shù)據(jù)傳送通知應(yīng)用進(jìn)程ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器數(shù)據(jù)傳送5.9.2TCP

的連接釋放A收到連接釋放報(bào)文段后,必須發(fā)出確認(rèn)。ACK=1,seq=u+1,ack=w1FIN=1,seq=uACK=1,seq=95FIN=1,seq=uACK=1,seq=v,ack=u1FIN=1,ACK=1,seq=w,ack=u1主動(dòng)關(guān)閉被動(dòng)關(guān)閉數(shù)據(jù)傳送通知應(yīng)用進(jìn)程ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器數(shù)據(jù)傳送5.9.2TCP

的連接釋放在確認(rèn)報(bào)文段中ACK=1,確認(rèn)號(hào)ackw1,自己的序號(hào)seq=u+1。ACK=1,seq=u+1,ack=w1FIN=1,seq=uACK=1,seq=96CLOSEDACK=1,seq=u+1,ack=w1FIN=1,seq=uACK=1,seq=v,ack=u1FIN=1,ACK=1,seq=w,ack=u1FIN-WAIT-1CLOSE-WAITFIN-WAIT-2LAST-ACK等待2MSLTIME-WAIT主動(dòng)關(guān)閉被動(dòng)關(guān)閉數(shù)據(jù)傳送通知應(yīng)用進(jìn)程ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器數(shù)據(jù)傳送CLOSED5.9.2TCP

的連接釋放TCP連接必須經(jīng)過時(shí)間2MSL后才真正釋放掉。CLOSEDACK=1,seq=u+1,ac97常見端口號(hào)20

FTP(文件傳輸協(xié)議)數(shù)據(jù)端口

21

FTP(文件傳輸協(xié)議)控制端口

22

SSH安全Shell服務(wù)

23

telnet

Telnet(終端仿真服務(wù))

25

SMTP

簡單郵件傳輸協(xié)議(SMTP)53

DNS域名解析服務(wù)(如BIND)67

DHCP動(dòng)態(tài)主機(jī)配置協(xié)議服務(wù)使用

68

DHCP動(dòng)態(tài)主機(jī)配置協(xié)議客戶使用

69

TFTP簡單文件傳輸協(xié)議80

HTTP

用于萬維網(wǎng)(WWW)服務(wù)的超文本傳輸協(xié)議

110POP3

郵局協(xié)議版本3

143

IMAP

互聯(lián)網(wǎng)消息存取協(xié)議

161

SNMP

簡單網(wǎng)絡(luò)管理協(xié)議179

BGP

邊界網(wǎng)絡(luò)協(xié)議443

https

安全超文本傳輸協(xié)議520RIP路由信息協(xié)議

常見端口號(hào)20

FTP(文件傳輸協(xié)議)數(shù)據(jù)端口

98Wireshark抓包工具的使用Wireshark抓包工具的使用99wireshark是一款抓包軟件,比較易用,在平??梢岳盟グ?,分析協(xié)議或者監(jiān)控網(wǎng)絡(luò),是一個(gè)比較好的工具。wireshark是一款抓包軟件,比較易用,在平常可以利用它100(1)Wireshark的啟動(dòng)界面和抓包界面(1)Wireshark的啟動(dòng)界面和抓包界面101抓包界面的啟動(dòng)

按file下面的按鈕之后會(huì)出現(xiàn)抓包界面的啟動(dòng)

按file下面的按鈕102這個(gè)是網(wǎng)卡的顯示,因?yàn)槲矣刑摂M機(jī)所以會(huì)顯示虛擬網(wǎng)卡,我們現(xiàn)在抓的是真實(shí)網(wǎng)卡上的包所以在以太網(wǎng)卡右邊點(diǎn)擊start開始抓包這個(gè)是網(wǎng)卡的顯示,因?yàn)槲矣刑摂M機(jī)所以會(huì)顯示虛擬網(wǎng)卡,我們現(xiàn)在103這個(gè)就是抓包的界面了(也是主界面)這個(gè)就是抓包的界面了(也是主界面)104(2)Wireshark主窗口由如下部分組成:菜單——用于開始操作。主工具欄——提供快速訪問菜單中經(jīng)常用到的項(xiàng)目的功能。Fitertoolbar/過濾工具欄——提供處理當(dāng)前顯示過濾得方法。PacketList面板——顯示打開文件的每個(gè)包的摘要。點(diǎn)擊面板中的單獨(dú)條目,包的其他情況將會(huì)顯示在另外兩個(gè)面板中。Packetdetail面板——顯示您在Packetlist面板中選擇的包的更多詳情。Packetbytes面板——顯示您在Packetlist面板選擇的包的數(shù)據(jù),以及在Packetdetails面板高亮顯示的字段。狀態(tài)欄——顯示當(dāng)前程序狀態(tài)以及捕捉數(shù)據(jù)的更多詳情。(2)Wireshark主窗口由如下部分組成:菜單——用于開105抓包列表抓包列表106封包列表中顯示所有已經(jīng)捕獲的封包。在這里您可以看到發(fā)送或接收方的MAC/IP地址,TCP/UDP端口號(hào),協(xié)議或者封包的內(nèi)容。如果捕獲的是一個(gè)OSIlayer2的封包,您在Source(來源)和Destination(目的地)列中看到的將是MAC地址,當(dāng)然,此時(shí)Port(端口)列將會(huì)為空。如果捕獲的是一個(gè)OSIlayer3或者更高層的封包,您在Source(來源)和Destination(目的地)列中看到的將是IP地址。Port(端口)列僅會(huì)在這個(gè)封包屬于第4或者更高層時(shí)才會(huì)顯示。

您可以在這里添加/刪除列或者改變各列的顏色:

Editmenu->Preferences封包列表中顯示所有已經(jīng)捕獲的封包。在這里您可以看到發(fā)送或接收107(3).封包詳細(xì)信息這里顯示的是在封包列表中被選中項(xiàng)目的詳細(xì)信息。

信息按照不同的OSIlayer進(jìn)行了分組,您可以展開每個(gè)項(xiàng)目查看。ps:wireshark會(huì)用不難,難的是會(huì)看懂這些包

(如果對這些包頭信息不了解的可以自己去查查資料)(3).封包詳細(xì)信息這里顯示的是在封包列表中被選中項(xiàng)目的詳細(xì)108

16進(jìn)制數(shù)據(jù)

“解析器”在Wireshark中也被叫做“16進(jìn)制數(shù)據(jù)查看面板”。這里顯示的內(nèi)容與“封包詳細(xì)信息”中相同,只是改為以16進(jìn)制的格式表述。16進(jìn)制數(shù)據(jù)“解析器”在Wireshark中也被叫做“1109(3)我們還要學(xué)會(huì)在大量的信息中過濾和分析我們需要的信息過濾:過濾器會(huì)如此重要。它們可以幫助我們在龐雜的結(jié)果中迅速找到我們需要的信息。- 捕捉過濾器:用于決定將什么樣的信息記錄在捕捉結(jié)果中。需要在開始捕捉前設(shè)置。- 顯示過濾器:在捕捉結(jié)果中進(jìn)行詳細(xì)查找。他們可以在得到捕捉結(jié)果后隨意修改。兩種過濾器的目的是不同的。1.捕捉過濾器是數(shù)據(jù)經(jīng)過的第一層過濾器,它用于控制捕捉數(shù)據(jù)的數(shù)量,以避免產(chǎn)生過大的日志文件。2.顯示過濾器是一種更為強(qiáng)大(復(fù)雜)的過濾器。它允許您在日志文件中迅速準(zhǔn)確地找到所需要的記錄。(3)我們還要學(xué)會(huì)在大量的信息中過濾和分析我們需要的信息過濾1101.捕捉過濾器設(shè)置捕捉過濾器的步驟是:

-選擇capture->options。

-填寫"capturefilter"欄或者點(diǎn)擊"capturefilter"按鈕為您的過濾器起一個(gè)名字并保存,以便在今后的捕捉中繼續(xù)使用這個(gè)過濾器。

-點(diǎn)擊開始(Start)進(jìn)行捕捉。

1.捕捉過濾器設(shè)置捕捉過濾器的步驟是:

-選擇captu111語法:ProtocolDirectionHost(s)ValueLogicalOperationsOtherexpression_r例子:tcpdst80andtcpdst3128語法:112Protocol(協(xié)議):

可能的值:ether,fddi,ip,arp,rarp,decnet,lat,sca,moprc,mopdl,tcpandudp.

如果沒有特別指明是什么協(xié)議,則默認(rèn)使用所有支持的協(xié)議。

Direction(方向):

可能的值:src,dst,srcanddst,srcordst

如果沒有特別指明來源或目的地,則默認(rèn)使用"srcordst"作為關(guān)鍵字。

例如,"host"與"srcordsthost"是一樣的。

Host(s):

可能的值:net,port,host,portrange.

如果沒有指定此值,則默認(rèn)使用"host"關(guān)鍵字。

例如,"src"與"srchost"相同。

LogicalOperations(邏輯運(yùn)算):

可能的值:not,and,or.

否("not")具有最高的優(yōu)先級(jí)?;?"or")和與("and")具有相同的優(yōu)先級(jí),運(yùn)算時(shí)從左至右進(jìn)行。

例如,

"nottcpport3128andtcpport23"與"(nottcpport3128)andtcpport23"相同。

"nottcpport3128andtcpport23"與"not(tcpport3128andtcpport23)"不同。Protocol(協(xié)議):

可能的值:ether113例子:tcpdstport3128顯示目的TCP端口為3128的封包。ipsrchost顯示來源IP地址為的封包。host顯示目的或來源IP地址為的封包。srcportrange2000-2500顯示來源為UDP或TCP,并且端口號(hào)在2000至2500范圍內(nèi)的封包。notimcp顯示除了icmp以外的所有封包。(icmp通常被ping工具使用)srchost2andnotdstnet/16顯示來源IP地址為2,但目的地不是/16的封包。(srchost2orsrcnet/16)andtcpdstportrange200-10000anddstnet/8顯示來源IP為2或者來源網(wǎng)絡(luò)為/16,目的地TCP端口號(hào)在200至10000之間,并且目的位于網(wǎng)絡(luò)/8內(nèi)的所有封包。例子:114Examples

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論