🔧 AI Nachrichten Major AI platforms go down in unprecedented simultaneous outage(03.09.2026 um 17:34 Uhr)
🔧 AI Nachrichten ChatGPT, Claude, and Grok Down? Users Report Widespread Outages(03.09.2026 um 19:14 Uhr)
🔧 AI Nachrichten OpenAI Launches GPT-6 Astra, Says We May Have Entered the AGI Era(03.09.2026 um 22:08 Uhr)
🔧 AI Nachrichten Claude Comes to CarPlay as Fifth Major AI Chatbot App(05.09.2026 um 05:31 Uhr)
🔧 AI Nachrichten OpenAI’s GPT-6 Astra Is AGI, Says NVIDIA CEO Jensen Huang(07.09.2026 um 06:31 Uhr)
🔧 AI Nachrichten Blame AI companies for Mac mini and Mac Studio shortage(31.08.2026 um 10:32 Uhr)
🔧 AI Nachrichten Major AI platforms go down in unprecedented simultaneous outage(03.09.2026 um 17:34 Uhr)
🔧 AI Nachrichten ChatGPT, Claude, and Grok Down? Users Report Widespread Outages(03.09.2026 um 19:14 Uhr)
🔧 AI Nachrichten OpenAI Launches GPT-6 Astra, Says We May Have Entered the AGI Era(03.09.2026 um 22:08 Uhr)
🔧 AI Nachrichten Claude Comes to CarPlay as Fifth Major AI Chatbot App(05.09.2026 um 05:31 Uhr)
🔧 AI Nachrichten OpenAI’s GPT-6 Astra Is AGI, Says NVIDIA CEO Jensen Huang(07.09.2026 um 06:31 Uhr)
🔧 AI Nachrichten Blame AI companies for Mac mini and Mac Studio shortage(31.08.2026 um 10:32 Uhr)

🔧 Programmierung 🕛 kürzlich 4 Min Lesezeit
0

RFC 1071 Checksum Explained: x64 Assembly Implementation

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht




Research Context



As the development of my ICMP-based Network Communication Project continues at full throttle, today I want to talk about the most "diplomatic" part of the operation: the Checksum. If you don't stamp this seal correctly on the packet you're sending, the Target host's operating system treats your packet as a "Malformed data" and dumps it in the trash before it even gets through the door.



So, how exactly is this "seal" calculated in a low-level language? Let's examine it step-by-step through the very algorithm I wrote and currently use in my project.






🛠️ The Heart of the Algorithm: perform_checksum



The ICMP protocol uses a 16-bit One's Complement sum to ensure data integrity. This means you have to add up the entire packet in 16-bit (2-byte) chunks.



Here is what this mathematical operation looks like in the x64 Assembly realm:



Note: In this context, rdi represents the starting address of our data buffer, r14 is the starting offset, and r15 is the ending offset.




CODE

perform_checksum:

; RFC 1071 standard 16-bit one's complement sum algorithm

xor eax, eax ; Clear eax (Accumulator for the sum)

mov r10, r14 ; r10 = Current offset

.loop:

mov r11, r15 ; r11 = End offset

sub r11, r10 ; Remaining bytes to process

cmp r11, 1 ; Check if only 1 byte is left (odd length)

jle .last ; If <= 1 byte left, jump to final block



movzx r12d, word [rdi + r10]; Read 2 bytes (1 word) zero-extended

add eax, r12d ; Add to accumulator

add r10, 2 ; Move offset forward by 2 bytes

jmp .loop ; Repeat










🧩 Part 1: Gathering the Pieces



We are essentially telling the CPU: "Fetch me a 16-bit (word) chunk from memory, add it to the eax register, and move to the next 2 bytes." This loop runs smoothly until we hit the end of the packet.






⚖️ Part 2: The "Odd Byte" Paradox



If the total length of the packet is an odd number (e.g., 11 bytes), the very last byte won't have a pair to form a 16-bit word. In this scenario, our algorithm elegantly dives into the .final block:




CODE
.last:
je .final ; If exactly 1 byte left, handle it
jmp .wrap ; If 0 bytes left, finalize calculation
.final:
movzx r12d, byte [rdi + r10]; Read the last remaining single byte
add eax, r12d ; Add it to the accumulator









🔄 Part 3: The Wrap and Carry



Mathematically, this continuous addition might exceed a 16-bit boundary. This is where the most critical aspect of RFC 1071 comes into play: Adding the overflowing bits (the carry) back into the main sum.




CODE
.wrap:
mov r11d, eax ; Copy sum to r11d
shr r11d, 16 ; Shift right to isolate the carry bits
and eax, 0xFFFF ; Mask eax to keep only the lower 16 bits
add ax, r11w ; Add the carry bits back to the sum
adc ax, 0 ; Add any final carry (add with carry)
not ax ; One's complement (invert bits) for final checksum
ret









🎯 Why not ax?



The not instruction at the very end is the final requirement of the One's Complement logic. By inverting the bits (0 -> 1, 1 -> 0), we ensure that when the receiving end takes our packet and performs the exact same addition, the result will be 0xFFFF. If it is, the data is clean, and our seal is valid!






Conclusion



Writing this algorithm in Assembly is a fantastic exercise to truly understand how data is laid out in memory and how the CPU crunches bytes. Thanks to this algorithm, our custom ICMP packets can bypass kernel-level drops and roam the network like "official documents".



When I integrate dynamic targeting and fileless execution (memfd_create) into my Distributed management architecture, this checksum engine will remain the most reliable gear in the machine.



Stay Coded!






Related



Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
3 Quellen
GPT-6 Astra Release Today? OpenAI’s Next Major AI Model Is Almost Here
1 Quelle
Apple accuses OpenAI of destroying evidence as trade-secrets fight intensifies
1 Quelle
Major AI platforms go down in unprecedented simultaneous outage
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten RFC 1071 Checksum Explained: x64 Assembly Implementation

Thematisch verwandte Begriffe: 1071, Checksum, Explained, Assembly · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...