版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-ACK

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

ACK (Acknowledge character)即是確認(rèn)字符,在數(shù)據(jù)通信中,接收站發(fā)給發(fā)送站的一種傳輸類控制字符。表示發(fā)來的數(shù)據(jù)已確認(rèn)接收無誤。

在TCP/IP協(xié)議中,如果接收方成功的接收到數(shù)據(jù),那么會(huì)回復(fù)一個(gè)ACK數(shù)據(jù)。通常ACK信號(hào)有自己固定的格式,長(zhǎng)度大小,由接收方回復(fù)給發(fā)送方。

簡(jiǎn)介ACK的全稱為Acknowledge character,即確認(rèn)字符,表示接收到的字符無錯(cuò)誤。1

接收站對(duì)所收到的報(bào)文進(jìn)行檢查,若未發(fā)現(xiàn)錯(cuò)誤,便向發(fā)送站發(fā)出確認(rèn)回答ACK,表明信息已被正確接收,并準(zhǔn)備好接收下一份報(bào)文。該控制字符可由中心結(jié)點(diǎn)發(fā)送,也可由遠(yuǎn)地結(jié)點(diǎn)發(fā)送。2

其格式取決于采取的網(wǎng)絡(luò)協(xié)議。當(dāng)發(fā)送方接收到ACK信號(hào)時(shí),就可以發(fā)送下一個(gè)數(shù)據(jù)。如果發(fā)送方?jīng)]有收到信號(hào),那么發(fā)送方可能會(huì)重發(fā)當(dāng)前的數(shù)據(jù)包,也可能停止傳送數(shù)據(jù)。具體情況取決于所采用的網(wǎng)絡(luò)協(xié)議。

1、TCP報(bào)文格式中的控制位由6個(gè)標(biāo)志比特構(gòu)成,其中一個(gè)就是ACK,ACK為1表示確認(rèn)號(hào)有效,為0表示報(bào)文中不包含確認(rèn)信息,忽略確認(rèn)號(hào)字段。

2、ACK也可用于AT24cxx這一系列的EEPROM中。

3、在USB傳輸中,ACK事務(wù)包用來向主機(jī)/設(shè)備報(bào)告包正確的傳輸。

相關(guān)簡(jiǎn)介否認(rèn)字符否認(rèn)字符NAK( Negative Acknowledge)的含義為接收站對(duì)所收到的報(bào)文進(jìn)行檢查,若發(fā)現(xiàn)錯(cuò)誤,便向發(fā)送站發(fā)送否認(rèn)回答NAK,表示報(bào)文有錯(cuò),并要求重發(fā)。

同步字符同步字符SYN( Synchronousidle)表示無論是中心結(jié)點(diǎn)還是遠(yuǎn)地結(jié)點(diǎn),在發(fā)送信息或回答之前,都要先發(fā)送同步字符,用以實(shí)現(xiàn)或保持發(fā)送站和接收站之間的同步。2

轉(zhuǎn)義字符轉(zhuǎn)義字符DLE( Data Link Escape)用于改變緊隨其后的有限個(gè)字符的意義,以提供附加的數(shù)據(jù)鏈路控制字符。

應(yīng)用ACK在三次握手中用到,三次握手的過程如右圖所示。

第一次

第一次握手:建立連接時(shí),客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器確認(rèn);SYN:同步序列編號(hào)(Synchronize Sequence Numbers)。

第二次

第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(seq=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);

第三次

第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED(TCP連接成功)狀態(tài),完成三次握手。3

完成三次握手,客戶端與服務(wù)器開始傳送數(shù)據(jù)。

本詞條內(nèi)容貢獻(xiàn)者為:

徐恒山 - 講師 - 西北農(nóng)林科技大學(xué)