Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Implementing ping from the Ethernet layer (ARP,IPv4,ICMP in user space) (github.com/v420v)
3 points by ibuki256 7 hours ago | hide | past | favorite | 1 comment
I built a user-space implementation of ping that constructs Ethernet frames, performs ARP resolution, builds IPv4 headers, and sends ICMP echo requests manually using AF_PACKET.

- ARP (packet format, cache with aging, re-ARP, conflict handling) - IPv4 header construction and checksum - DF handling and ICMP Fragmentation Needed (Type 3 Code 4) - IP fragment reassembly - ICMP echo request/reply parsing - A basic ping loop with loss statistics

The goal was to understand how packets actually move from Layer 2 upward.

 help



Fragment reassembly in user space is the part most toy implementations skip. Handling the DF bit and ICMP Fragmentation Needed (Type 3/4) means it actually deals with path MTU discovery scenarios. Most stop at basic echo/reply.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: