tft每日頭條

 > 生活

 > 軟考初級程序員案例真題和答案

軟考初級程序員案例真題和答案

生活 更新时间:2024-11-24 09:41:54

TCP 報文是 TCP 層傳輸的數據單元,也叫報文段。 TCP 報文的格式如下圖所示

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)1

我們從 TCP 的報文格式中能看到 6 個标志位:URG ACK PSH RST SYN FIN,每一個标志位表示一個控制功能。

  • URG:緊急指針标志,為1時表示緊急指針有效,為0則忽略緊急指針。
  • ACK:确認序号标志,為1時表示确認号有效,為0表示報文中不含确認信息,忽略确認号字段。
  • PSH:push标志,為1表示是帶有push标志的數據,指示接收方在接收到該報文段以後,應盡快将這個報文段交給應用程序,而不是在緩沖區排隊。
  • RST:重置連接标志,用于重置由于主機崩潰或其他原因而出現錯誤的連接。或者用于拒絕非法的報文段和拒絕連接請求。
  • SYN:同步序号,用于建立連接過程,在連接請求中,SYN=1和ACK=0表示該數據段沒有使用捎帶的确認域,而連接應答捎帶一個确認,即SYN=1和ACK=1。
  • FIN:finish标志,用于釋放連接,為1時表示發送方已經沒有數據發送了,即關閉本方數據流。

TCP 的連接和斷開的過程和這幾個标志位有關

TCP分段中6個編碼位的含義

當值設為1時,表示分段中包含相應的控制信息

編碼位(從左到右)的标識

該位置“為1”的含義

URG

表示啟用了緊急指針字段

ACK

表示确認字段是有效的

PSH

請求急迫操作,即分段一到馬上送應用程序而不等到接收緩沖區滿時才送應用程序

RST

連接複位。複位因主機崩潰或其他原因而出現錯誤的連接,也可用于拒絕非法的分段或拒絕連接請求

SYN

與ACK合用以建立TCP連接。如SYN=1, ACK=0表示連接請求;而SYN=1,ACK=1表示同意建立連接

FIN

表示發送方已無數據要發送從而釋放連接,但接收方仍可繼續接收發送方此前發送的數據


實驗所需工具:

  • 客戶機操作系統:windows xp IP 地址為 192.168.1.100
  • 服務器操作系統:Windows 2000 Advance Server 地址為 192.168.1.101
  • 抓包軟件 Sniffer4.7.5

在客戶機上連接服務器的 FTP 服務:在客戶機上啟動 Sniffer, 然後在 DOS 命令下使用 FTP 指令連接服務器的 FTP 服務器,如圖

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)2

默認情況下,FTP 服務器支持匿名訪問,輸入的用戶命是 ftp,密碼是 ftp。退出對方 的 ftp 使用的命令是 bye。停止 Sniffer,查看抓取的 FTP 會話過程

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)3

觀察抓取到的 TCP 的三次握手的過程

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)4

第 1 次握手:由客戶機的應用層進程向其傳輸層 TCP 協議發出建立連接的命令,則客戶 機 TCP 向服務器上提供某特定服務的端口發送一個請求建立連接的報文段,該報文段中 SYN 被置 1,同時包含一個初始序列号 x(系統保持着一個随時間變化的計數器,建立連接時該 計數器的值即為初始序列号,因此不同的連接初始序列号不同)

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)5

第 2 次握手:服務器收到建立連接的請求報文段後,發送一個包含服務器初始序号 y,SYN 被置 1,确認号(ACK)置為 x 1 的報文段作為應答。确認号加 1 是為了說明服務器已正确收到一個 客戶連接請求報文段,因此從邏輯上來說,一個連接請求占用了一個序号

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)6

第 3 次握手:客戶機收到服務器的應答報文段後,也必須向服務器發送确認号(ACK)為 y 1 的 報文段進行确認。同時客戶機的 TCP 協議層通知應用層進程,連接已建立,可以進行數據傳輸了。 完成三次握手,客戶端與服務器開始傳送數據

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)7

TCP三次握手如圖所示

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)8


觀察抓取到的 TCP 的四次手的過程

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)9

第 1 次揮手:由客戶機的應用進程向其 TCP 協議層發出終止連接的命令,則客戶 TCP 協議層向服務器 TCP 協議層發送一個 FIN 被置 1 的關閉連接的 TCP 報文段

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)10

第 2 次揮手:服務器的 TCP 協議層收到關閉連接的報文段後,就發出确認,确認号為 已收到的最後一個字節的序列号加 1,同時把關閉的連接通知其應用進程,告訴它客戶機已經終止了數據傳送。在發送完确認後,服務器如果有數據要發送,則客戶機仍然可以繼續接收數據,因此把這種狀态叫半關閉(Half-close)狀态,因為服務器仍然可以發送數據,并 且可以收到客戶機的确認,隻是客戶方已無數據發向服務器了

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)11

第 3 次揮手:如果服務器應用進程也沒有要發送給客戶方的數據了,就通告其 TCP 協議層關閉連接。這時服務器的 TCP 協議層向客戶機的 TCP 協議層發送一個 FIN 置 1 的 報文段,要求關閉連接。

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)12

第 4 次揮手:同樣,客戶機收到關閉連接的報文段後,向服務器發送一個确認,确認号為已 收到數據的序列号加 1。當服務器收到确認後,整個連接被完全關閉。

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)13

如下圖所示,這就是 TCP 的四次揮手

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)14


知識補充

TCP連接的拒絕建立

  • 若主機B拒絕建立連接,則在收到主機A的連接請求後,發送一個置RST= "1" 的應答分段
  • 在第三次握手階段,發送第一次握手的主機A還有機會拒絕建立連接:發送一個置RST= "1" 的應答分段

軟考初級程序員案例真題和答案(軟考-信息安全工程師-實驗1)15

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved