ACK (bekräftelse)

ACK (bekräftelse)

Källnod: 2045892

Vad är ACK (acknowledgement)?

I viss digital kommunikation protokoll, ACK — förkortning för bekräftelse — hänvisar till en signal som en enhet skickar för att indikera det datum har tagits emot framgångsrikt. Signalen sänds av en mottagande station (destination) till den sändande stationen (källan) efter mottagandet av ett igenkännbart datablock av specifik och förväntad storlek.

ACK-signalen är viktig vid datoranvändning (bussar), telekommunikationer nätverk och datanät. Som en del av ett kommunikationsprotokoll är ACK ett sätt för destination processer eller enheter för att bekräfta att de har tagit emot ett meddelande från källprocesser eller enheter.

ACK-kommunikationen koda är vanligtvis en Amerikansk standardkod för informationsutbyte tecken (0000110 eller 6) som är reserverad och designad för att signalera kommunikation mellan destinationsstationen och sändningsstationen. Det är också känt som bekräftelsekod or erkännande karaktär. Koden anger hur olika sändare och mottagare hanterar datablock i ett visst kommunikationsprotokoll.

För att kunna kännas igen måste datablocket som skickas från källan till destinationen överensstämma med det protokoll som används. När källan tar emot ACK-signalen från destinationen sänder den nästa datablock. Om källan misslyckas med att ta emot signalen, upprepar den antingen datablocket eller upphör överföringen, beroende på protokollet. Denna iterativa och kontinuerliga process säkerställer att rätt typ och mängd data effektivt levereras från en avsändare till en mottagare. I vissa protokoll finns det olika ACK-signaler som indikerar framgångsrik mottagning och igenkänning av specifika kommandon, såsom avstängning eller standby, till exempel.

[Inbäddat innehåll]

ACK mot NAK

Medan ACK indikerar mottagandet av ett meddelande, NAK — eller NACK — skickas för att indikera motsatsen. NAK betyder specifikt negativt erkännande or inte erkänd. Det kan sändas av en destinationsenhet eller process för att indikera att den inte kan eller har misslyckats med att ta emot ett meddelande från en källenhet eller process.

NAK kan också skickas för att indikera att data som överförts över nätverket togs emot med fel. Det kan rapportera att källan måste skicka om en specifik, förväntad signal till destinationen. Precis som ACK är NAK också ett ASCII-tecken: 0010101 eller 15.

ACK-baserade kommunikationsprotokoll

TCP är ett av kommunikationsprotokollen som förlitar sig på ACK-signaler för att säkerställa framgångsrika dataöverföringar. När TCP paket skickas över ett nätverk, innehåller varje paket ett ACK-nummer eller flagga, som är satt till 1 i pakethuvud. Detta nummer indikerar sekvensnumret för nästa paket i dataströmmen som destinationsstationen (enhet eller process) bör förvänta sig att ta emot.

Så, i TCP, bekräftar destinationen de mottagna paketen genom att skicka tillbaka ett paket som innehåller ACK bitars uppsättning. En funktion hos TCP gör det möjligt för ACK att bekräfta att en serie TCP-paket har tagits emot istället för ett paket. Detta möjliggör många byte av data för att förbli under flygningen, samtidigt som förseningar minimeras. Liksom TCP, den ZMODEM Protokollet är också bekräftelsebaserat, vilket innebär att det innebär att destinationer positivt bekräftar mottagandet av meddelanden som skickats av källor genom att skicka ACK-koder.

[Inbäddat innehåll]

Andra protokoll är NAK-baserade, vilket innebär att de inte bekräftar mottagandet av meddelanden och bara svarar om det finns ett problem, till exempel ett fel. De flesta multicast-protokoll är NAK-baserade och skickar NAK-signaler när mottagaren upptäcker saknade paket. Ytterligare andra protokoll, såsom binär synkron kommunikation (Bisync), använd både ACK- och NAK-signaler. I Bisync sänder den mottagande stationen en NAK för att indikera att den har upptäckt ett överföringsfel i det tidigare mottagna blocket och är redo att acceptera dess återsändning av sändaren.

Slutligen några protokoll, som t.ex User Datagram Protocol och RC-5, använd varken ACK eller NAK. Istället utför de blind sändning och kan sända samma meddelande flera gånger i hopp om att åtminstone en kopia sänds korrekt och utan fel till den mottagande stationen.

Trevägshandslag i TCP med ACK

Många typer av meddelanden skickas över nätverk baserade på TCP. Till exempel används SYN (synkronisering) för att initiera och upprätta en anslutning och för att synkronisera sekvensnummer mellan enheter i nätverket. Den mottagande stationen sänder ACK för att bekräfta för avsändaren att den har tagit emot SYN. På liknande sätt är SYN-ACK ett SYN-meddelande från den lokala enheten och ACK från det föregående paketet.

complete TCP handshake vs. half-open connection
Diagram som illustrerar komplett TCP-handskakning kontra en halvöppen anslutning

I TCP, trafik börjar med ett trevägshandslag, en process där nätverket upprättar en koppling mellan server och klient för att möjliggöra dataöverföring. I denna process utbyter både servern och klienten SYN- och ACK-paket innan datakommunikation kan starta.

För att starta handskakningsprocessen och initiera konversationen begär klienten en kommunikationssession med servern. Den upprättar anslutningen med en SYN-signal. Därefter svarar servern på klientförfrågan med en SYN-ACK-signal. I steg tre bekräftar klienten serverns svar och en stabil anslutning upprättas mellan klienten och servern för att påbörja dataöverföringsprocessen. När överföringen är klar avslutar TCP automatiskt anslutningen mellan servern och klienten.

ACK översvämning DDoS-attacker

En ACK-flod är ett lager 4 (transportlager) distribuerad denial-of-service (DDoS) ge sig på. I det här scenariot kan en angripare eller hot skådespelare, försöker överbelasta en server med TCP ACK-paket eller skräpdata för att krascha servern och neka tjänst för legitima användare. Målservern måste bearbeta varje ACK-paket, vilket kräver mycket datorkraft, vilket saktar ner tjänsten för användarna.

ACK flood DDoS-attacker riktar sig vanligtvis mot enheter som krävs för att bearbeta alla mottagna paket, till exempel nätverk brandväggar och servrar. Enheter som inte bearbetar varje paket, som t.ex lastbalanserare, routrar och switchar är inte mottagliga för dessa attacker.

OSI model transport layer
ACK flood är ett transportlager — Layer 4 i OSI (Open Systems Interconnection) referensmodell för hur applikationer kommunicerar över ett nätverk — distribuerad denial-of-service (DDoS) attack.

ACK översvämningsattacker blir problematiska eftersom både legitima och illegitima ACK-paket ser likadana ut – även om de inte innehåller huvuddelen av ett datapaket, eller nyttolast. De kan dock stoppas med en innehållsleveransnätverk som filtrerar bort onödiga ACK-paket och skickar ytterligare trafik till andra servrar för att förhindra att en server – eller webbplats – blir helt otillgänglig.

Vissa angripare använder också SYN-ACK DDoS-attacker för att neka användarna tjänster. Grundidén liknar ACK DDoS-attacker: att överväldiga en målserver med för många paket och göra den otillgänglig. En SYN-ACK DDoS-attack involverar översvämning målet med SYN-ACK-paket, som vanligtvis skickas av en server som svar på ett SYN-paket från en klientenhet som en del av TCP-trevägshandskakningsprocessen. Flöden av SYN-ACK-paket är inte en del av det legitima handslaget. Dess enda syfte är att störa målets normala verksamhet.

[Inbäddat innehåll]

Förutom ACK och SYN-ACK, har vissa angripare även SYN-paket för att skapa och köra SYN översvämning DDoS-attacker.

Läs om sju TCP/IP-sårbarheter och hur man förhindrar dem.

Tidsstämpel:

Mer från IoT-agendan