複製鏈接
請複製以下鏈接發送給好友

ACK

鎖定
ACK (Acknowledge character)即是確認字符,在數據通信中,接收站發給發送站的一種傳輸類控制字符。表示發來的數據已確認接收無誤。
TCP/IP協議中,如果接收方成功的接收到數據,那麼會回覆一個ACK數據。通常ACK信號有自己固定的格式,長度大小,由接收方回覆給發送方。
中文名
ACK
外文名
Acknowledge character
中文譯名
確認字符
分 類
傳輸與接入
應    用
數據通信
協議支持
TCP/IP協議
定    義
在數據通信中,接收站發給發送站的一種傳輸類控制字符

ACK簡介

ACK的全稱為Acknowledge character,即確認字符,表示接收到的字符無錯誤。 [1] 
接收站對所收到的報文進行檢查,若未發現錯誤,便向發送站發出確認回答ACK,表明信息已被正確接收,並準備好接收下一份報文。該控制字符可由中心結點發送,也可由遠地結點發送。 [2] 
其格式取決於採取的網絡協議。當發送方接收到ACK信號時,就可以發送下一個數據。如果發送方沒有收到信號,那麼發送方可能會重發當前的數據包,也可能停止傳送數據。具體情況取決於所採用的網絡協議
1、TCP報文格式中的控制位由6個標誌比特構成,其中一個就是ACK,ACK為1表示確認號有效,為0表示報文中不包含確認信息,忽略確認號字段。
2、ACK也可用於AT24cxx這一系列的EEPROM中。
3、在USB傳輸中,ACK事務包用來向主機/設備報告包正確的傳輸。

ACK相關簡介

ACK否認字符

否認字符NAK( Negative Acknowledge)的含義為接收站對所收到的報文進行檢查,若發現錯誤,便向發送站發送否認回答NAK,表示報文有錯,並要求重發。

ACK同步字符

同步字符SYN( Synchronousidle)表示無論是中心結點還是遠地結點,在發送信息或回答之前,都要先發送同步字符,用以實現或保持發送站和接收站之間的同步。 [2] 

ACK轉義字符

轉義字符DLE( Data Link Escape)用於改變緊隨其後的有限個字符的意義,以提供附加的數據鏈路控制字符。

ACK應用

圖1:三次握手圖 圖1:三次握手圖
ACK在三次握手中用到,三次握手的過程(如圖1:三次握手圖)所示。
第一次
第一次握手:建立連接時,客户端發送syn包(seq=j)到服務器,並進入SYN_SENT狀態,等待服務器確認;SYN:同步序列編號(Synchronize Sequence Numbers)。
第二次
第二次握手:服務器收到syn包,必須確認客户的SYN(ack=j+1),同時自己也發送一個SYN包(seq=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態。
第三次
第三次握手:客户端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客户端和服務器進入ESTABLISHED(TCP連接成功)狀態,完成三次握手。 [3] 
完成三次握手,客户端與服務器開始傳送數據。
參考資料
  • 1.    汪自雲.計算機與現代教育技術:湖北教育出版社,2000:213
  • 2.    湯子瀛.計算機網絡技術及其應用:電子科技大學出版社,1996:67-68
  • 3.    三次握手  .百度百科[引用日期2019-06-24]