> For the complete documentation index, see [llms.txt](https://book.ferro.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.ferro.pro/nw/l3.md).

# L3

* [IPv4 Packet](#ipv4-packet)
* [IPv6 Packet](#ipv6-packet)
  * [Header](#header)
* [Protocol](#protocol)
* [DB](#db)

## IPv4 Packet

<https://en.wikipedia.org/wiki/Internet\\_Protocol\\_version\\_4> ![](https://upload.wikimedia.org/wikipedia/commons/6/60/IPv4_Packet-en.svg)

## IPv6 Packet

<https://en.wikipedia.org/wiki/IPv6>

* An IPv6 packet has two parts: a header and payload. ![](https://upload.wikimedia.org/wikipedia/commons/6/6e/IPv6_packet.svg)

### Header

Extension headers: The IPv6 packet header has a minimum size of 40 octets (320 bits). Options are implemented as extensions. ![](https://upload.wikimedia.org/wikipedia/commons/9/9a/IPv6_headers_sequence-en.svg) ![](https://upload.wikimedia.org/wikipedia/commons/a/ab/Ipv6_header.svg)

## Protocol

<https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml>

* IPv4\[[RFC791](https://www.iana.org/go/rfc791)]: "Protocol" field, 8 bit
* IPv6\[[RFC8200](https://www.iana.org/go/rfc8200)]: "Next Header" field

## DB

v4/v6 ASN/Country/API: <https://networksdb.io/>
