⑴ 計算機網路原理問題 請解答第二問
2017年12月07日星期四,
問題:
請注意看上圖,1分組中的第二行(tcp報頭)中第二個4位元組的值就是Sequence number(順序號碼),它明確的告訴目標主機(d3444750)需要接收Sequence number(順序號碼)為846b741c5的數據包,然後2分組中的源主機(d3444750)對Sequence number(順序號碼)846b741c5的數據包進行確認,並按照tcp規則將Sequence number(順序號碼)加一後寫入第二行的第三個4位元組中即Acknowledge number(確認號碼),同時,向自己的目標主機(c0a80008)發送Sequence number(順序號碼)為(e0599fef)的數據包,最後,3分組中的第二行中的第三個4位元組對剛才從主機(d3444750)接收的(e0599fef)的數據包進行了確認【也是Acknowledge number(確認號碼)+1】,又因為接到了主機(d3444750)對846b741c5的數據包的確認,因此將同時發送Sequence number(順序號碼)為846b741c6的數據包給目標主機(d3444750)。
參考書內容:TCP(Transmission Control Protocol)傳輸控制協議
TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,採用三次握手確認建立一個連接:
位碼即tcp標志位,有6種標示:SYN(synchronous建立聯機) ACK(acknowledgement 確認) PSH(push傳送) FIN(finish結束) RST(reset重置) URG(urgent緊急)Sequence number(順序號碼) Acknowledge number(確認號碼)
第一次握手:主機A發送位碼為syn=1,隨機產生seq number=1234567的數據包到主機B,主機B由SYN=1知道,A要求建立聯機;
第二次握手:主機B收到請求後,要確認聯機信息,向A發送ack number=1234568(主機A的seq number+1),syn=1,ack=1,隨機產生seq number=7654321的包;
第三次握手:主機A收到後檢查ack number是否正確,即第一次發送的seq number+1,以及ack(對A的發送來的請求,B的確認,)是否為1,若正確,主機A會再發送ack number=7654322(主機B的seq number+1),ack=1,主機B收到後確認seq number值(7654322)並且ack=1則連接建立成功。
擴展閱讀材料:
TCP傳輸連接中的SYN、ACK、SEQ、AN分別是什麼意思?他們所帶的數字又是代表什麼?
SYn=1.ACK=0,SEQ=200
SYN=1,ACK=1.SEQ=4800,AN=201
SYN=1,ACK=1.SEQ=201,AN=4801
SYN,ACK是標志位
SEQ,AN是數據包序號
SYN=1, ACK=0, SEQ=200 的意思是:發送端發出一個SYN請求(SYn=1),同時發送端發送了一個序號為SEQ=200的數據包,
SYN=1, ACK=1, SEQ=4800, AN=201 的意思是:接收端的確認信息,收到了序號為SEQ=200的數據包,同時接收端也發送了一個初始數據包序號為SEQ=4800的數據包,並等待發送端確認,
SYN=1,ACK=1.SEQ=201,AN=4801的意思是:首先,發送端通過接收端送回的AN=201,知道接收端已成功的接收了序號為SEQ=200的數據包,接下來發送端要發送序號為SEQ=201的數據包,並且同時告知接收端剛才送來的序號為SEQ=4800的包已收到,
⑵ 計算機網路中,SYN=1,ACK=0。0或1的數字代表什麼是需要和不需要的意思嗎
一般是SYN表示是否同步,ACK應該是應答檢測
⑶ 計算機網路中的「三次握手」是什麼
TCP握手協議
在TCP/IP協議中,TCP協議提供可靠的連接服務,採用三次握手建立一個連接。
第一次握手:建立連接時,客戶端發送syn包(syn=j)到伺服器,並進入SYN_SEND狀態,等待伺服器確認;
SYN:同步序列編號(SynchronizeSequenceNumbers)
第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時伺服器進入SYN_RECV狀態;
第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和伺服器進入ESTABLISHED狀態,完成三次握手。
完成三次握手,客戶端與伺服器開始傳送數據,在上述過程中,還有一些重要的概念:
未連接隊列:在三次握手協議中,伺服器維護一個未連接隊列,該隊列為每個客戶端的SYN包(syn=j)開設一個條目,該條目表明伺服器已收到SYN包,並向客戶發出確認,正在等待客戶的確認包。這些條目所標識的連接在伺服器處於Syn_RECV狀態,當伺服器收到客戶的確認包時,刪除該條目,伺服器進入ESTABLISHED狀態。
Backlog參數:表示未連接隊列的最大容納數目。
SYN-ACK重傳次數伺服器發送完SYN-ACK包,如果未收到客戶確認包,伺服器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該連接信息從半連接隊列中刪除。注意,每次重傳等待的時間不一定相同。
半連接存活時間:是指半連接隊列的條目存活的最長時間,也即服務從收到SYN包到確認這個報文無效的最長時間,該時間值是所有重傳請求包的最長等待時間總和。有時我們也稱半連接存活時間為Timeout時間、SYN_RECV存活時間。
⑷ 網路中的ACK; SYN; FIN都是什麼
這是網路安全中幾個重要的名詞,現總結如下
ACK是一種確認應答,在數據通信傳輸中,接收站發給發送站的一種傳輸控制字元。它表示確認發來的數據已經接受無誤。
SYN攻擊屬於DOS攻擊的一種,它利用TCP協議缺陷,通過發送大量的半連接請求,耗費CPU和內存資源。是最常見又最容易被利用的一種攻擊手法。
FIN是用來掃描保留的埠,發送一個FIN包(或者是任何沒有ACK或SYN標記的包)到目標的一個開放的埠,然後等待回應。許多系統會返回一個復位標記。