/dev/posts/

Protocol stack diagrams

Layers all the way down

Published:

Updated:

A collection of ASCII-art protocol stack diagrams.

They can be used as a base for doing quick diagrams. Feel free to copy/reuse/adapt them for your own purpose.

These diagrams are released as CC0 (“No Rights Reserved”).

2025-07-27: added a few things (SOAP, Varlink, HL7).

2025-12-04: add PSP.

2026-01-05: add details about TURN.

2026-04-28: add details about DNS, DoH, DNSSEC.

2026-04-29: add WebTransport, fix MASQUE stacks.

2026-05-15: add DNS over CoAP (DoC) and EDHOC

Table of content

Notations

Layers:

[JSON \-/ CBOR]   Format conversion, eg. JSON/CBOR conversion
[HTTP \-/ CoAP]   Proxy/interworking, eg. HTTP/CoAP proxy/interworking
[(TLS) |(DTLS)]   Optional layers
[TCP   |   UDP]   TCP and UDP layers
[IPv4  /  IPv6]   Either IPv4 or IPv6
[Eth. \-/ Wifi]   Bridge, eg. Ethernet/Wifi bridge

[STUN¦app     ]   STUN and and some application protocol used together between the same peers

[HTTP + WebDAV]   Protocol with some extension, eg. HTTP with WebDAV
[TLS + PSK    ]   Protocol with some feature, eg. TLS with PSK key exchange

[ -           ]   Empty, not a protocol layer

[app.  ]          Some undefined application layer
[...   ]          Some protocol layer(s)
 Foo              Entity name

Communications:

 <----->          Bidirectional communications
 <----->o         Client/server relation, etc.
 ------>          One-way communications
 <=====>          Protected communications (usually both confidentiality and integrity)
 <=-=-=>          Integrity-protected communications (possibly with anti-replay protection)
    K             Interface name

Concepts

Layers, PDUs and SDUs:

                N+1 PDU
[N+1 Layer]<----------------->[N+1 Layer]
     ↑                             ↑
     |                             |  N SDU
     ↓                             ↓
     o           N PDU             o  N SAP
[N Layer  ]<----------------->[N Layer  ]
     ↑                             ↑
     |                             |  N-1 SDU
     ↓                             ↓
     o           N-1 PDU           o  N-1 SAP
[N-1 Layer]<----------------->[N-1 Layer]

Switches, bridges/hubs, routers, proxy:

[app.    ]<------------------------------------------------>[app. ]<-->[app. ]
[(TLS)   ]<================================================>[(TLS)]<-->[(TLS)]
[TCP     ]<------------------------------------------------>[TCP  ]<-->[TCP  ]
[IP      ]<------------------------------>[IP          ]<-->[IP   ]<-->[IP   ]
[Eth. MAC]<---------------->[Eth. MAC]<---[Eth. MAC|...]<-->[...  ]<-->[...  ]
[Eth. PHY]<-->[Eth. PHY]<-->[Eth. PHY]<-->[Eth. PHY|...]<-->[...  ]<-->[...  ]
(Client)           Hub       Switch/bridge   Router       (Reverse)   (Server)
                                                            Proxy

OSI

L7 [Application ]<-------------------------------->[Application ]
L6 [Presentation]<-------------------------------->[Presentation]
L5 [Session     ]<-------------------------------->[Session     ]
L4 [Transport   ]<-------------------------------->[Transport   ]
L3 [Network     ]<-->[Network  ]<-->[Network  ]<-->[Network     ]
L2 [Data link   ]<-->[Data link]<-->[Data link]<-->[Data link   ]
L1 [Physical    ]<-->[Physical ]<-->[Physical ]<-->[Physical    ]

IP

          [(DHCP)|DNS|app|DNS|app]                     [(DHCPv6)|DNS|app|DNS|app]
[ICMP|IGMP|UDP           |TCP    ]      [ICMPv6+NDP+MLD|UDP             |TCP    ]
[IPv4                            |ARP]  [IPv6                                   ]

IP model:

[app.]<---------------------------------->[app.]  (end to end)
[TCP ]<---------------------------------->[TCP ]  (end to end)
[IP  ]<--->[IP ]<--->[IP ]<--->[IP  ]<--->[IP  ]
[... ]<--->[...]<--->[...]<--->[... ]<--->[... ]  (local network layers)
           Router    Router    Router

IP transport protocols:

                                                              [app.]
                                       [app.]   [app.] [app.] [SCTP] [app.]
[app.] [app.] [app.    ] [app.] [app.] [SCTP]   [TLS ] [DTLS] [DTLS] [QUIC|TLS]
[TCP ] [UDP ] [UDP-lite] [DCCP] [SCTP] [UDP ]   [TCP ] [UDP ] [UDP ] [UDP     ]
[IP  ] [IP  ] [IP      ] [IP  ] [IP  ] [IP  ]   [IP  ] [IP  ] [IP  ] [IP      ]
TCP    UDP    UDP-lite   DCCP   SCTP   SCTP     TLS    DTLS   SCTP   QUIC
                                       /UDP     /TCP   /UDP   /DTLS

Application layers

DNS

                 [DNS    ]        [DNS       ]
       [DNS    ] [framing] [DNS ] [HTTP      ] [DNS ]
[DNS]  [framing] [TLS    ] [DTLS] [TLS / QUIC] [QUIC]
[UDP]  [TCP    ] [TCP    ] [UDP ] [TCP / UDP ] [UDP ]
[IP ]  [IP     ] [IP     ] [IP  ] [IP        ] [IP  ]
“Do53” “Do53”    “DoT”            “DoH”        “DoQ”
DNS    DNS       DNS       DNS    DNS          DNS
over   over      over      over   over         over
UDP    TCP       TLS       DTLS   HTTPS        QUIC
[DNS   ]    [DNS   ]
[CoAP  ]    [CoAP  ]
[(DTLS)]    [(TLS) ]
[UDP   ]    [TCP   ]
[IP    ]    [IP    ]
“DoC”       “DoC”
DNS         DNS
over CoAP   over CoAP      
(UDP)       over TCP
[DNS       ]
[Obliv. DNS]
[HTTP      ]    [CoAP  ]  [CoAP ]
[TLS / QUIC]    [(DTLS)]  [(TLS)]
[TCP / UDP ]    [UDP   ]  [TCP  ]
[IP        ]    [IP    ]  [IP   ]
“ODoH”          “DoC“     “DoC“
Oblivious DNS   DNS       DNS
over            over      over
HTTPS           CoAP      CoAP

Notes

Classic DNS:

                            /Recurse\
             /(Cache)\      /(Cache)\      /Zone(s)\
[DNS  ]<--->o[DNS    ]<--->o[DNS    ]<--->o[DNS    ]
[UDP  ]<--->o[UDP|UDP]<--->o[UDP|UDP]<--->o[UDP    ]
[IP   ]<---->[IP |IP ]<---->[IP |IP ]<---->[IP     ]
Client       Stub           Recursive      Authoritative
             Resolver       Resolver       Server

Example of transport-level (hop-to-hop) protection for DNS (DNS over HTTPS, DoH):

                               /Recurse\
              /(Cache)\        /(Cache)\       /Zone(s)\
[DNS  ]<---->o[DNS     ]<---->o[DNS     ]<--->o[DNS    ]
                  [HTTP]<---->o[HTTP]
                  [TLS ]<====>o[TLS ]
[UDP  ]<---->o[UDP|TCP ]<---->o[TCP |UDP]<--->o[UDP    ]
[IP   ]<----->[IP |IP  ]<----->[IP  |IP ]<---->[IP     ]
Client        Stub             Recursive       Authoritative
              Resolver         Resolver        Server

Example with DNSSEC:

                              /Recurse  \
            /((Valid.))\      /(Valid.) \       /Zone(s)   \<---sign
            /(Cache   )\      /(Cache)  \
[DNS ]<--->o[DNS+DNSSEC]<-=->o[DNS+DNSSEC]<-=->o[DNS+DNSSEC]
[UDP ]<--->o[UDP   |UDP]<--->o[UDP  |UDP ]<--->o[UDP       ]
[IP  ]<---->[IP    |IP ]<---->[IP   |IP  ]<---->[IP        ]
Client      Stub              Recursive         Authoritative   Signing
            Resolver          Resolver          Server          Software

Oblivious DNS over HTTPS:

[DNS       ]<--------------------->o[DNS           ]<---->o[DNS]
[Obliv. DNS]<=====================>o[Obliv. DNS|-  ]
[HTTP      ]<--->o[HTTP      ]<--->o[HTTP      |-  ]
[TLS / QUIC]<===>o[TLS / QUIC]<===>o[TLS / QUIC|-  ]
[TCP / UDP ]<--->o[TCP / UDP ]<--->o[TCP / UDP |UDP]<----o>[UDP]
[IP        ]<---->[IP        ]<---->[IP        |IP ]<----->[IP ]
Oblivious         Oblivious          Oblivious
Client            Relay              Target

NTP

      ([NTP])
[NTP]  [TLS]
[UDP]  [TCP]
[IP ]  [IP ]
 NTP    NTS
        KE

Notes:

HTTP

                          [HTTP/1.x] [HTTP/2] [HTTP/3|TLS]
[HTTP/1.x] [HTTP/2]       [TLS     ] [TLS   ] [QUIC      ]
[TCP     ] [TCP   ]       [TCP     ] [TCP   ] [UDP       ]
[IP      ] [IP    ]       [IP      ] [IP    ] [IP        ]
HTTP/1.x   HTTP/2         HTTP/1.x   HTTP/2   HTTP/3
           w/o TLS        over TLS   over TLS (over QUIC)
           "h2c"                     "h2"     "h3"
(HTTP)     (HTTP)         (HTTPS)    (HTTPS)  (HTTPS)

WebSocket

[WebSocket]  [WebSocket]  [WebSocket]
[HTTP/1.x ]  [HTTP/2   ]  [HTTP/3   ]
[(TLS)    ]  [(TLS)    ]  [QUIC     ]
[TCP      ]  [TCP      ]  [UDP      ]
[IP       ]  [IP       ]  [IP       ]
WebSocket    Websocket    WebSocket
(HTTP/1.x)   (HTTP/2)     (HTTP/3)

Notes:

HTTP Datagrams

[datagram ]  [datagram]  [datagram]
[Capsule  ]  [Capsule ]  [Capsule ]  [Capsule|datagram]
[HTTP/1.x ]  [HTTP/2  ]  [HTTP/3  ]  [HTTP/3 |H3 dgram]
[(TLS)    ]  [(TLS)   ]  [QUIC    ]  [QUIC    +dgram  ]
[TCP      ]  [TCP     ]  [UDP     ]  [UDP             ]
[IP       ]  [IP      ]  [IP      ]  [IP              ]
HTTP         HTTP        HTTP        HTTP
Datagrams    Datagrams   Datagrams   Datagrams
(HTTP/1.X)   (HTTP/2)    (HTTP/3)    (HTTP/3)
                         w/o HTTP/3  w/ HTTP/3
                         datagrams   datagrams

HTTP CONNECT proxy

Classic HTTP CONNECT:

[app. ]  [app.  ]
[HTTP ]  [HTTP/3]
[(TLS)]  [QUIC  ]
[TCP  ]  [UDP   ]
[IP.  ]  [IP.   ]

MASQUE (without HTTP/3 datagrams):

               [application]  [IP         ]          [application]       [Eth. MAC   ]
[application]  [UDP prox.  ]  [IP prox.   ]          [UDP-l prox.]       [Eth. prox. ]
[TCP prox.  ]  [HTTP dgram ]  [HTTP dgram |config.]  [HTTP dgram ]       [HTTP dgram ]
[Capsule    ]  [Capsule    ]  [Capsule            ]  [Capsule    ]       [Capsule    ]
[HTTP       ]  [HTTP       ]  [HTTP               ]  [HTTP       ]       [HTTP       ]
[(TLS)/ QUIC]  [(TLS)/ QUIC]  [(TLS) / QUIC       ]  [(TLS)/ QUIC]       [(TLS)/ QUIC]
[TCP  / UDP ]  [TCP  / UDP ]  [TCP   / UDP        ]  [TCP  / UDP ]       [TCP  / UDP ]
[IP.        ]  [IP         ]  [IP                 ]  [IP         ]       [IP         ]
TCP in HTTP    UDP in HTTP    IP in HTTP             UDP-listen in HTTP  Ethernet in HTTP

MASQUE with HTTP/3 datagrams:

                                                                                           
       [app.     ]  [config.|IP      ]         [application]         [Eth. MAC   ]
       [UDP prox.]  [Capsule|IP prox.]         [UDP-l prox.]         [Eth. prox. ]
[HTTP/3|H3 dgram ]  [HTTP/3 |H3 dgram]  [HTTP/3|H3. dgram  ]  [HTTP/3|H3 dgram   ]
[QUIC +dgram     ]  [QUIC +dgram     ]  [QUIC +dgram       ]  [QUIC +dgram       ]
[UDP             ]  [UDP             ]  [UDP               ]  [UDP               ]
[IP              ]  [IP              ]  [IP                ]  [IP                ]
UDP in HTTP/3       IP in HTTP/3        UDP-listen in HTTP/3  Ethernet in HTTP/3
datagrams           datagrams           datagrams             datagrams

WebTransport

[WT     |WT dgram]  [WT     |WT dgram]    [WT       ]            [WT ctrl]
[Capsule         ]  [Capsule         ]    [Capsule  |WT dgram ]  [Capsule]         [WT dgram ]
[HTTP/2          ]  [HTTP/3          ]    [HTTP/3   |H3. dgram]  [HTTP/3 |WT stream|H3. dgram]
[TLS             ]  [QUIC            ]    [QUIC      +dgram   ]  [QUIC             |+dgram   ]
[TCP             ]  [UDP             ]    [UDP                ]  [UDP                        ]
[IP              ]  [IP              ]    [IP                 ]  [IP                         ]
Capsule-based       Capsule-based         Capsule-based
WebTransport        WebTransport          WebTransport           WebTransport
(HTTP/2)            (HTTP/3)              (HTTP/3)               (HTTP/3)
                    w/o HTTP/3 datagram   w/ HTTP/3 datagram     w/ HTTP/3 datagram
("webtransport")    ("webtransport")      ("webtransport")       ("webtransport-h3")

File Transfer

[FTP  ] [SFTP] [HTTP+WebDAV ]       [SMB ]
[(TLS)] [SSH ] [(TLS) / QUIC] [SMB] [QUIC] [NFS]
[TCP  ] [TCP ] [TCP   / UDP ] [TCP] [UDP ] [TCP]
[IP   ] [IP  ] [IP          ] [IP ] [IP  ] [IP ]
FTP     SFTP   WebDAV         SMB   SMB    NFSv4
                                    /QUIC

Notes:

LDAP

[LDAP       ]
[(SASL sec.)]
[(TLS)      ]
[TCP        ]
[IP         ]
LDAP

UPnP

              [Device/service desc.]  [SOAP/1.1]  [UPnP event] [UPnP event]
              [XML                 ]  [XML     ]  [XML       ] [XML       ]
[HTTP+SSDP ]  [HTTP                ]  [HTTP    ]  [HTTP+GENA ] [HTTP+GENA ]
[UDP       ]  [TCP                 ]  [TCP     ]  [TCP       ] [UDP       ]
[IP (mcast)]  [IP                  ]  [IP      ]  [IP        ] [IP (mcast)]
Service       Service                 Control     Eventing     Eventing
Discovery     Description             (RPC)       (unicast)    (multicast)

CoAP

                   [CoAP     ]
                   [WebSocket]  [...        ]
[CoAP  ]  [CoAP ]  [HTTP     ]  [CoAP       ]  [EDHOC]
[(DTLS)]  [(TLS)]  [(TLS)    ]  [COSE       ]  [CBOR ]
[UDP   ]  [TCP  ]  [TCP      ]  [CoAP+OSCORE]  [CoAP ]
[IP    ]  [IP   ]  [IP       ]  [...        ]  [...  ]
CoAP      CoAP/TCP CoAP/WS(S)   OSCORE         EDHOC

RPC

SOAP:

             [SOAP+XOP ]
[SOAP     ]  [XML      |...]
[XML      ]  [multipart    ]
[HTTP     ]  [HTTP         ]  [SOAP     ]
(TLS      )  (TLS          )  [XML      ]
[TCP      ]  [TCP          ]  [email    ]
[IP       ]  [IP           ]  [...      ]
SOAP/HTTP    SOAP/HTTP        SOAP/email
             with MOTM

Varlink:

       [Varlink IDL]
[Varlink messages  ]
[JSON              ]
[NUL-framing       ]
[TCP|UDS           ]
[IP ]
Varlink

Query Languages

SPARQL:

[SPARQL   ] [RDF           ]
(multipart) [XML|Turtle|...] [SPARQL res.     ]
[HTTP     ] [HTTP          ] [XML|JSON|CSV|TSV]
(TLS      ) (TLS           ) [TLS             ]
[TCP      ] [TCP           ] [TCP             ]
[IP       ] [IP            ] [IP              ]
SPARQL      SPARQL RDF       SPARQL result
request     response         response
/HTTP       /HTTP            /HTTP

Multimedia

SIP, RTP, RTSP

Signaling:

                                                             [SDP      ]
                                                             [(S/MIME) ]
                              [SDP             ]  [SDP     ] [SIP      ]
[SDP  ]   [SDP             ]  [SIP             ]  [(S/MIME)] [WebSocket]
[RTSP ]   [(S/MIME)        ]  [S/MIME          ]  [SIP     ] [HTTP     ]
[(TLS)]   [SIP             ]  [SIP             ]  [TLS     ] [(TLS    )]
[TCP  ]   [UDP / TCP / SCTP]  [UDP / TCP / SCTP]  [TCP     ] [TCP      ]
[IP   ]   [IP              ]  [IP              ]  [IP      ] [IP       ]
RTSP      SIP                 Tunneling SIP       SIP-TLS    SIP/WebSocket

SIP call through proxy servers:

[SDP]<------------------------>[SDP]
[SIP]<-->[SIP]<------>[SIP]<-->[SIP]
[TLS]<-->[TLS]<------>[TLS]<-->[TLS]
[TCP]<-->[TCP]<------>[TCP]<-->[TCP]
[IP ]<-->[IP ]<------>[IP ]<-->[IP ]
 UA      Proxy         Proxy   UA

RTP (media transport):

[A/V]      [A/V]             [A/V ]            [A/V ]      
[RTP|RTCP] [SRTP|SRTCP] [DTLS|SRTP|SRTCP] [ZRTP|SRTP|SRTCP]
[UDP     ] [UDP       ] [UDP            ] [UDP            ]
[IP      ] [IP        ] [IP             ] [IP             ]
RTP, RTCP  SRTP, SRTCP  DTLS-SRTP         ZRTP        

Alternative transports for RTP:

              [A/V]      [A/V]
[A/V]         [RTP|RTCP  |RTP|RTCP  ]
[RTP|RTCP  ]  [RoQ stream|RoQ Datag.]
[framing   ]  [QUIC                 ]
[TCP       ]  [UDP                  ]
[IP        ]  [IP                   ]
RTP over TCP  RTP over QUIC (RoQ)

Notes:

Message multiplexing:

WebRTC

                                                     [DCEP|data. chan.]           
                 [DCEP|data. chan.]                  [SCTP            |A/V ]      
                 [SCTP            |A/V ]        [STUN|mDTLS           |SRTP|SRTCP]
            [STUN|mDTLS           |SRTP|SRTCP]  [framing                         ]
[SDP     ]  [UDP (+ ICE)                     ]  [TCP (+ ICE)                     ]
[anything]  [IP  (+ ICE)                     ]  [IP  (+ ICE)                     ]
WebRTC      WebRTC over UDP                     WebRTC over TCP                   
Signaling

Type of payloads:

                                                                               [DCEP|data chan.]
                              [DCEP|data chan.]            [A/V ]              [SCTP           ]
           [A/V ]             [SCTP           ] [STUN|mDTLS|SRTP|SRTCP]   [STUN|mDTLS          ]
[STUN|mDTLS|SRTP|SRTCP]  [STUN|mDTLS          ] [framing              ]   [framing             ]
[UDP (+ ICE)          ]  [UDP (+ICE)          ] [TCP (+ ICE)          ]   [TCP (+ICE)          ]
[IP  (+ ICE)          ]  [IP  (+ICE)          ] [IP  (+ ICE)          ]   [IP  (+ICE)          ]
WebRTC A/V streams       WebRTC Data Channel    WebRTC A/V streams        WebRTC Data Channel 
(DTLS-SRTP)              (SCTP/DTLS)            (DTLS-SRTP)               (SCTP/DTLS)

proto=UDP/TLS/RTP/SAVPF  proto=UDP/DTLS/SCTP    proto=TCP/TLS/RTP/SAVPF   proto=TCP/DTLS/SCTP

Example WebRTC stack with TURN tunneling:


     [DCEP|data. chan.]           
     [SCTP            |A/V ]      
[STUN|mDTLS           |SRTP|SRTCP]
[TURN                            ]
[(DTLS)                          ]
[UDP                             ]
[IP                              ]
WebRTC with TURN tunnel

Notes:

Healthcare

HL7

                    
[HL7v2    ]        [HL7v3|CDA]     [FHIR    ]
[RE7  |XML]        [XML      ]     [XML|JSON]  [FHIR           ]
--------------------------------------------   [XML|JSON|Turtle]
                   [HTTP]  [SFTP]  [FTP]       [HTTP           ]
[MLLP ]            (TLS )  [SSH ]  (TLS)       (TLS            )
[TCP  ]  [MLLP  ]  [TCP ]  [TCP ]  [TCP]       [TCP            ]
[IP   ]  [serial]  [IP  ]  [IP  ]  [IP]        [IP             ]
MLLP      MLLP      HL7    HL7     HL7         FHIR API
/TCP      /serial   /HTTP  /SFTP   /FTP

LLMs and agents

MCP

MCP (Model Context Protocol):

              [MCP     ]
              [JSON-RPC]
              [JSON    ]
[MCP       ]  [(SSE)   ]
[JSON-RPC  ]  [HTTP    ]
[JSON      ]  [(TLS)   ]
[LF-framing]  [TCP     ]
[STDIO     ]  [IP      ]
 MCP           MCP
 /STDIO        /Streamable
               HTTP

A2A

A2A (Agent-to-agent) protocol:

[A2A      ]
[JSON-RPC ]  [A2A      ]
[JSON     ]  [Protobuf ]  [A2A      ]
[(SSE)    ]  [gRPC     ]  [JSON     ]
[HTTP     ]  [HTTP/2   ]  [HTTP     ]
[(TLS)    ]  [TLS      ]  [(TLS)    ]
[TCP      ]  [TCP      ]  [TCP      ]
[IP       ]  [IP       ]  [IP       ]
 A2A          A2A          A2A
 /JSON-RPC    /gRPC        /JSON REST

Security Layers

TLS

TLS sublayers:

[Handshake | ChangecipherSpec | Alert | Application]
[TLS Record Protocol: fragmentation                ] [Handshake | Alert | Application       ]
[TLS Record Protocol: compression                  ] [TLS Record Protocol: fragmentation    ]
[TLS Record Protocol: record protection            ] [TLS Record Protocol: record protection]
[Transport layer                                   ] [Transport layer                       ]
TLS v1.2                                             TLS v1.3

Some protocol stacks using TLS:

[... ] [...   ]     [email] [email]                 [mTLS   ]
[HTTP] [HTTP/3|TLS] [SMTP ] [IMAP ] [TLS|IP / Eth.] [EAP-TLS]    [mTLS   ]
[TLS ] [QUIC      ] [TLS  ] [TLS  ] [OpenVPN      ] [EAP    ]    [EAP-TLS]
[TCP ] [UDP       ] [TCP  ] [TCP  ] [TCP / UDP    ] [EAPOL  ]    [EAP    ]
[IP  ] [IP        ] [IP   ] [IP   ] [IP           ] [Wifi   ]    [PPP    ]
HTTPS  HTTPS        SMTPS   IMAPS   OpenVPN         WPA2-EAP     PPP
       (HTTP/3)                                     with EAP-TLS with EAP-TLS

DTLS

Transports:

[app.] [app.] [app.]
[DTLS] [DTLS] [DTLS]
[UDP ] [SCTP] [DCCP]
[IP  ] [IP  ] [IP  ]
DTLS   DTLS   DTLS
over   over   over
UDP    SCTP   DCCP

QUIC

[app.]      [app. streams|app. dgrams]
[QUIC|TLS]  [QUIC         +dgram.    |TLS]
[UDP     ]  [UDP                         ]
[IP      ]  [IP                          ]
QUIC        QUIC with QUIC datagrams

SSH

Applications:

       [SFTP]                [SSH]
[SSH ] [SSH ] [SOCKS|SSH]    [SSH]
[TCP ] [TCP ] [TCP      ]    [TCP]
[IP  ] [IP  ] [IP       ]    [IP ]
SSH    SFTP   OpenSSH        SSH
              dynamic proxy  ProxyJump

Alternative transports:

                    [SSH      ]
[SSH]    [SSH  ]    [VSOCK-MUX]
[UDS]    [VSOCK]    [UDS      ]
SSH/UDS  SSH/VSOCK  SSH-to-VSOCK
                    through VSOCK-MUX
                    (firecracker)

Internal protocol stack:

               [(GSS-API)|shell|command|forwarding]
[SSH Authentication Layer|SSH Connection Layer    ]
[SSH Transport Layer                              ]
[TCP                                              ]
[IP                                               ]

VPNs and tunnels

IPSec

SA (Security Associations) establishment:

        [...  ]
        [EAP  ]
[IKEv2] [IKEv2]
[UDP  ] [UDP  ]
[IP   ] [IP   ]
IKEv2   IKEv2
        w/ EAP

IPsec:

                                          [UDP|TCP|...] [IP ]
[UDP|TCP|...] [IP]   [UDP|TCP|...] [IP ]  [ESP        ] [ESP]
[AH         ] [AH]   [ESP        ] [ESP]  [UDP        ] [UDP]
[IP         ] [IP]   [IP         ] [IP ]  [IP         ] [IP ]
AH            AH     ESP           ESP    ESP/UDP       ESP/UDP
Transport     Tunnel Transport     Tunnel Transport     Transport

ESP transport mode:

[app.]<--------->[app.]
[TCP ]<--------->[TCP ]
[ESP ]<=========>[ESP ]
[IP  ]<--------->[IP  ]
correspondent    correspondent

ESP tunnel mode:

[app.]<------------------------------>[app.]
[TCP ]<------------------------------>[TCP ]
[IP  ]<-------->[IP ]<----->[IP ]<----[IP  ]
                [ESP]<=====>[ES ]
                [IP ]<----->[IP ]
correspondent   Gateway     Gateway   correspondent

AH transport mode:

[app.]<--------->[app.]
[TCP ]<--------->[TCP ]
[AH  ]<--------->[AH  ]
[IP  ]<=-=-=-=-=>[IP  ]
correspondent    correspondent

AH tunnel mode:

[app.]<---------------------------->[app.]
[TCP ]<---------------------------->[TCP ]
[IP  ]<-------->[IP]<----->[IP]<--->[IP  ]
                [AH]<----->[AH]
                [IP]<=-=-=>[IP]
correspondent   Gateway    Gateway  correspondent

PSP

[TCP] [UDP] [IPc4] [IPv6]
[PSP] [PSP] [PSP ] [PSP ]
[UDP] [UDP] [UDP ] [UDP ]
[IP ] [IP ] [IP  ] [IP  ]

VPNs

[IPv4|IPv6|(TLS)]   [Eth. MAC|(TLS)]  [IP       ]  [IP   ]  [Eth. MAC]
[OpenVPN        ]   [OpenVPN       ]  [WireGuard]  [SSH  ]  [SSH     ]
[TCP / UDP      ]   [TCP /  UDP    ]  [UDP      ]  [TCP  ]  [TCP     ]
[IP             ]   [IP            ]  [IP       ]  [IP   ]  [IP      ]
OpenVPN IP          OpenVPN Ethernet  WireGuard    OpenSSH  OpenSSH
(TUN mode)          (TAP mode)                     tunnel   tunnel
                                                   (IP)     (Ethernet)

                                [IP    ] 
[IP     ]  [IP               ]  [PPP   ]  [IP    ]
[Capsule]  [Capsule|-        ]  [SSTP  ]  [PPP   ]
[HTTP   ]  [HTTP3  |H3 dgram.]  [HTTP  ]  [HTTP  ]
[(TLS)  ]  [QUIC      +dgram.]  [TLS   ]  [TLS   ]
[TCP    ]  [UDP              ]  [TCP   ]  [TCP   ]
[IP     ]  [IP               ]  [IP    ]  [IP    ]
IP in HTTP IP in HTTP/3         MS-SSTP   FortiSSL

Notes:

Simple Tunnels

          [IP        ]  [IP  ]
          [GRE       ]  [GRE ]
          [(UDP)     ]  [DTLS]        [Eth. MAC]
[IP]      [(AH / ESP)]  [UDP ]        [EtherIP ]
[IP]      [IP        ]  [IP  ]        [IP      ]
IP in IP  GRE           GRE-UDP-DTLS  EtherIP

L2TPv3

Pseudowires:

[PPP ] [Eth. MAC] [Frame Relay] [HDLC] [ATM ]
[L2TP] [L2TP    ] [L2TP       ] [L2TP] [L2TP]
[... ] [...     ] [...        ] [... ] [... ]

Transports:

                            [... ]
                            [L2TP]
[... ]                      [SNAP] [... ]
[L2TP] [... ] [...        ] [LLC ] [L2TP]
[UDP ] [L2TP] [L2TP       ] [AAL5] [AAL5]
[IP  ] [IP  ] [Frame Relay] [ATM ] [ATM ]
L2TP   L2TP   L2TP          L2TP   L2TP
/UDP   /IP    /Frame Relay  /ATM   /ATM
                            (LLC)  (VC mux)

Network virtualization

[Eth. MAC  ] [Eth. / IP / ...] [Eth. / IP / ...]
[VXLAN     ] [GENEVE         ] [GRE + Key ext. ]
[UDP       ] [UDP            ] [(UDP)          ]
[(AH / ESP)] [(AH / ESP)     ] [(AH / ESP)     ]
[IP        ] [IP             ] [IP             ]
VXLAN        GENEVE            NVGRE           

Authentication, authorization

EAP

TLS-based EAP methods:

          [...     ]
          [EAP     ] [PAP     ] [CHAP    ] [... ] [... ]
          [AVP     ] [AVP     ] [AVP     ] [EAP ] [EAP ]
[mTLS   ] [TLS     ] [TLS     ] [TLS     ] [TLS ] [TLS ]
[EAP-TLS] [EAP-TTLS] [EAP-TTLS] [EAP-TTLS] [PEAP] [TEAP]
[EAP    ] [EAP     ] [EAP     ] [EAP     ] [EAP ] [EAP ]
[...    ] [...     ] [...     ] [...     ] [... ] [... ]
 EAP-TLS     EAP         PAP       CHAP    EAP    EAP
             over        over      over    over   over
           EAP-TTLS    EAP-TTLS  EAP-TTLS  PEAP   TEAP

EAP transports:

                          [... ] [...] [...      ] [...       ]
      [...     ] [...   ] [EAP ] [EAP] [EAP      ] [EAP       ]
[...] [EAP     ] [EAP   ] [PANA] [IKE] [RADIUS   ] [Diameter  ]
[EAP] [802.1X  ] [802.1X] [UDP ] [UDP] [UDP / TCP] [TCP / SCTP]
[PPP] [Ethernet] [Wifi  ] [IP  ] [IP ] [IP       ] [IP        ]
 EAP  802.1X     WPA-EAP  PANA   EAP   EAP over    EAP/Diameter
 for                             for   RADIUS
 PPP                             IKE

Example full protocol stacks:

           [EAP-MSCHAPV2]
           [EAP         ]
[mTLS   ]  [TLS         ]
[EAP-TLS]  [TEAP        ]
[EAP    ]  [EAP         ]
[802.1X ]  [802.1X      ]
[Wifi   ]  [Wifi        ]
WPA-EAP    WPA-EAP  
with       with     
EAP-TLS    EAP-EAP
           and MSCHAPv2

Kerberos

           [Kerberos]
           [MS-KKDCP]
           [HTTP    ]
[Kerberos] [TLS     ]
[UDP/TDP ] [TCP     ]
[IP      ] [IP      ]
Kerberos   MS-KKDCP

SASL

General SASL stack:

[mechanism]
[SASL     ]   [protocol   ]
[protocol ] → [(SASL sec.)]
[...      ]   [...        ]

Notes:

GSSAPI

           [Kerberos] [MS-NLMP ]  [...    ]
[Kerberos] [SPNEGO  ] [SPNEGO  ]  [EAP    ]
[GSS-API ] [GSS-API ] [GSS-API ]  [GSS-API]
[SASL    ] [SASL    ] [SASL    ]  [SASL   ]
[...     ] [...     ] [...     ]  [...    ]
GSS-API    GSS-API    NTLM
with       with       with SNPEGO
Kerberos   SPNEGO     /SASL
/ SASL     /SASL

Notes:

RADIUS and DIAMETER

                  [RADIUS]                       [Diameter] [Diameter]
[RADIUS] [RADIUS] [TLS   ] [Diameter] [Diameter] [TLS     ] [DTLS    ]
[UDP   ] [TCP   ] [TCP   ] [TCP     ] [SCTP    ] [TCP     ] [SCTP    ]
[IP    ] [IP    ] [IP    ] [IP      ] [IP      ] [IP      ] [IP      ]
RADIUS   RADIUS   RADIUS   Diameter   Diameter   Diameter   Diameter
/UDP     /TCP     /TLS     /TCP       /SCTP      /TLS       /DTLS
                  (RadSec)

NAT traversal

STUN and TURN

                [App.        ] [App. ]
[STUN        ]  [TURN        ] [TURN ]
[(DTLS / TLS)]  [(DTLS / TLS)] [(TLS)]
[UDP   / TCP ]  [UDP   / TCP ] [TCP  ]
[IP          ]  [IP          ] [IP   ]
    STUN        TURN (UDP)     TURN-TCP

TURN:

      Client's       Client's               Peer's       Peer's
          Host       Reflexive           Reflexive       Host
     Transport       Transport           Transport       Transport
       Address       Address               Address       Address
             |       |                           |       |
             |       | TURN Server's   Relayed   |       |
             |       | Transport     Transport   |       |
             |       | Address         Address   |       |
             |       | |                   |     |       |
             |       | |                   |     |       |
 [App.      ]<------------------------------------------->[App.]
 [STUN      ]<--------->[STUN       ]
([TLS / DTLS]<=========>[TLS / DTLS ])
 [TCP / UDP ]<->[...]<->[TCP / UDP  | UDP ]<----->[UDP]<->[UDP]
 [IP        ]<->[IP ]<->[IP               ]<----->[IP ]<->[IP ]
 STUN client     NAT     STUN server              (NAT)   Peer

TURN-TCP:

      Client's       Client's              Peer's       Peer's
          Host       Reflexive          Reflexive       Host
     Transport       Transport          Transport       Transport
       Address       Address              Address       Address
             |       |                          |       |
             |       | TURN Server's  Relayed   |       |
             |       | Transport    Transport   |       |
             |       | Address        Address   |       |
             |       | |                  |     |       |
             |       | |                  |     |       |
 [App.      ]<------------------------------------------>[App.]
 [STUN      ]<--------->[STUN      ]
([TLS       ]<=========>[TLS       ])
 [TCP       ]<->[TCP]<->[TCP       | TCP ]<----->[TCP]<->[TCP]
 [IP        ]<->[IP ]<->[IP              ]<----->[IP ]<->[IP ]
 STUN client     NAT     STUN server             (NAT)   Peer

ICE

                                 [SDP ]
[STUN (+TURN)]   [SDP]           [HTTP]           [STUN|app.    ]
[(DTLS / TLS)]   [SIP]           [TLS ]           [(DTLS)/ (TLS)]
[UDP   / TCP ]   [TCP]           [TCP ]           [UDP   / TCP  ]
[IP          ]   [IP ]           [IP  ]           [IP           ]
STUN, TURN       ICE candidate   ICE candidates   ICE communications
(candidate       exchange        exchange         (direct)
 collection)     with SIP        with SDP/HTTPS

Example of ICE through TURN:

[STUN¦app ]<-------------------->[STUN¦app]
[TURN     ]<--->o[TURN]          [-       ]
[TLS      ]<===>o[TLS ]          [-       ]
[TCP      ]<--->o[TCP |UDP]<---->[UDP     ]
[IP       ]<---->[IP      ]<---->[IP      ]
Appl. Peer                       Appl. Peer
TURN client      TURN server

Ethernet (802.1)

       [...  ]  [IP|ARP|...  ]
       [EAP  ]  [SNAP        ]
[IP|ARP|EAPOL]  [LLC         ]
[(802.1Q    )]  [(802.1Q    )]
[(802.1ad   )]  [(802.1ad   )]
[Ethernet MAC]  [Ethernet MAC]
[Ethernet PHY]  [Ethernet PHY]
Ethernet II     802.1 with SNAP

Ethernet PHY sublayers (since Fast Ethernet):

[Ethernet PCS]  [Ethernet PCS]   (PHY)
[Ethernet PMA]  [Ethernet PMA]   (PHY)
[Ethernet PMD]  [Ethernet PMD]   (PHY)

Wifi (802.11)

[...      ]
[EAP      ]
[EAPOL    ]    [IP                   |ARP]
[SNAP     ]    [SNAP                     ]  (Link)
[LLC      ]    [LLC                      ]  (Link)
               [(WEP / TKIP / CCMP / GCM)]  (Link)
[Wifi MAC ]    [Wifi MAC                 ]  (Link)
[Wifi PLCP]    [Wifi PLCP                ]  (Phy.)
[Wifi PMD ]    [Wifi PMD                 ]  (Phy.)
WPA-Entreprise
Authentication
(WPA-EAP)

Access Point:

[app.    ]<--------------------------->[app.    ]
[TCP     ]<--------------------------->[TCP     ]
[IP      ]<--------------------------->[IP      ]
[SNAP    ]<--------------------------->[SNAP    ]
[LLC     ]<--------------------------->[LLC     ]
[sec. #1 ]<===>[sec. #1 | sec. #2]<===>[sec. #2 ]
[Wifi MAC]<--->[Wifi MAC         ]<--->[Wifi MAC]
[Wifi PHY]<--->[Wifi PHY         ]<--->[Wifi PHY]
Station 1         Access Point         Station 2

Ethernet/Wireless bridge:

[app.    ]<------------------------------->[app.    ]
[TCP     ]<------------------------------->[TCP     ]
[IP      ]<------------------------------->[IP      ]
[SNAP    ]<----[SNAP      ]
[LLC     ]<--->[LLC       ]
[security]<===>[security  ]
[Wifi MAC]<--->[Wifi MAC \-/ Eth. MAC]<--->[Eth. MAC]
[Wifi PHY]<--->[Wifi PHY  |  Eth. PHY]<--->[Eth. PHY]
Station 1      Ethernet/Wireless bridge     Station 2

ATM

        [...   /  ...]
        [NLPID / SNAP]
[... ]  [LLC         ]
[AAL5]  [AAL5        ]
[ATM ]  [ATM         ]
[phy. ] [phy.        ]
VC Mux  LLC Encap.

PPP

Configuration:

              [...        ]
[LCP] [CCP]   [compression]
[PPP] [PPP]   [PPP        ]
[...] [...] → [...        ]
LCP   CCP and compression

Authentication:

             [...]
[PAP] [CHAP] [EAP]
[PPP] [PPP ] [PPP]
[...] [... ] [...]
PAP   CHAP   EAP

Applications:

[IPCP|IPv4] [IPv6CP|IPv6]
[PPP      ] [PPP        ]
[...      ] [...        ]
IPv4/PPP    IPv6/PPP

Transports:

                               [...   ]       
                               [PPP   ]        [...]
[...   ]   [... ]   [...     ] [(SNAP)] [... ] [PPP]
[PPP   ]   [PPP ]   [PPP     ] [LLC   ] [PPP ] [SSH]
[HDLC  ]   [HDLC]   [PPPoE   ] [AAL5  ] [L2TP] [TCP]
[RS-232]   [V.92]   [Ethernet] [ATM   ] [... ] [IP ]
PPP/RS-232 PPP/PSTN PPPoE      PPPoA    L2TP   PPP
                                               /SSH

GPON (G.984)

Gigabit Passive Optical Network:

                                                 [PWE3          ]
                               [SIP |RTP      ]  [RTP           ]
                               [TCP |UDP      ]  [UDP           ]
                   [IP      ]  [IP            ]  [IP            ]  [MEF-8         ]
                   [VLAN    ]  [VLAN          ]  [VLAN          ]  [VLAN          ]
               [TDM|Eth. MAC]  [Eth. MAC      ]  [Eth. MAC      ]  [Eth. MAC      ]  [SDH           ]
[PLOAM|OMCI|ATM|GEM         ]  [GEM           ]  [GEM           ]  [GEM           ]  [GEM           ]
[GTC adaptation             ]  [GTC adaptation]  [GTC adaptation]  [GTC adaptation]  [GTC adaptation]
[GTC framing                ]  [GTC framing   ]  [GTC framing   ]  [GTC framing   ]  [GTC framing   ]
[GPM                        ]  [GPM           ]  [GPM           ]  [GPM           ]  [GPM           ]
General stack                  Voice (VoIP)      Voice with PWE3   Voice with MEF-8  Voice (TDM)

XG-PON (G.987)

                                                      [PWE3               ]
                               [SIP|RTP            ]  [RTP                ]
                               [TCP|UDP            ]  [UDP                ]
                  [IP  ]       [IP                 ]  [IP                 ]  [MEF-8              ]
           [802.1X|VLAN]       [VLAN               ]  [VLAN               ]  [VLAN               ]
           [Eth. MAC   |MPLS]  [Eth. MAC           ]  [Eth. MAC           ]  [Eth. MAC           ]
[PLOAM|OMCI|XGEM            ]  [XGEM               ]  [XGEM               ]  [XGEM               ]
[XGTC framing               ]  [XGTC framing       ]  [XGTC framing       ]  [XGTC framing       ]
[XGTC PHY adaptation        ]  [XGTC PHY adaptation]  [XGTC PHY adaptation]  [XGTC PHY adaptation]
[XGON PMD                   ]  [XGON PMD           ]  [XGON PMD           ]  [XGON PMD           ]
General stack                  Voice (voIP)           Voice with PWE3        Voice with MEF-8

Phone

SS7

                [... ]  [... ]       [...  ]       [...    ]  [... ]
           [ISUP|TCAP]  [TCAP]       [TCAP ]       [TCAP   ]  [TCAP]
[TUP / ISUP|SCCP     ]  [SUA |ISUP]  [SCCP ]       [SCCP   ]  [SCCP|ISUP]
[MTP-3               ]  [-        ]  [MTP-3|ISUP]  [MTP-3  ]  [M3UA     ]
[MTP-2               ]  [-        ]  [M2PA      ]  [M2UA   ]  [  -      ]
[MTP-1               ]  [(DTLS)   ]  [(DTLS)    ]  [(DTLS) ]  [(DTLS)   ]
                        [SCTP     ]  [SCTP      ]  [SCTP   ]  [SCTP     ]
                        [(IPSec)  ]  [(IPSec)   ]  [(IPSec)]  [(IPSec)  ]
                        [IP       ]  [IP        ]  [IP     ]  [IP       ]
SS7                     SUA          M2PA          M2UA       M3UA        ...

Some application protocols:

                          [MAP  ]
                 [ISUP ]  [TCAP ]
[TUP  ] [ISUP ]  [SCCP ]  [SCCP ]
[MTP-3] [MTP-3]  [MTP-3]  [MTP-3]
[MTP-2] [MTP-2]  [MTP-2]  [MTP-2]
[MTP-1] [MTP-1]  [MTP-1]  [MTP-1]
TUP     ISUP     ISUP     MAP
                 /SCCP

Mobile

User Equipment (i.e., the phone) stacks:

                        PDP contexts        PDP contexts            EPS bearers          PDU sessions
                         |   |                 |   |                   |    |               |    |
           [SM      ]    ↓   ↓                 |   |                   |    |               ↓    ↓
           [GMM     ] [IP / PPP]  [CM|SM   ]   ↓   ↓      [LTE NAS ]   ↓    ↓    [5G NAS ] [IP|Eth.]
[CM     ]  [SNDCP   ] [SNDCP   ]  [MM|GMM  ] [IP / PPP ]  [LTE RRC ] [IP / PPP]  [5G RRC ] [SDAP   ]
[MM     ]  [GPRS LLC] [GPRS LLC]  [UMTS RRC] [UMTS PDCP]  [LTE PDCP] [LTE PDCP]  [5G PDCP] [5G PDCP]
[RRM    ]  [GPRS RLC] [GPRS RLC]  [UMTS RLC] [UMTS RLC ]  [LTE RLC ] [LTE RLC ]  [5G RLC ] [5G RLC ]
[LAPDm  ]  [GPRS MAC] [GPRS MAC]  [UMTS MAC] [UMTS MAC ]  [LTE MAC ] [LTE MAC ]  [5G MAC ] [5G MAC ]
[GSM PHY]  [GSM PHY ] [GSM PHY ]  [UMTS PHY] [UMTS PHY ]  [LTE PHY ] [LTE PHY ]  [5G PHY ] [5G PHY ]
   CP         CP         UP          CP          UP          CP         UP          CP        UP
--------   ---------------------  ----------------------  ---------------------  -----------------
GSM (2G)   GPRS (2.5G)            UMTS (3G)               LTE (aka EPS) (4G)     5G NR (5G)

Authentication stacks at the user equipment:

                                                  [...     ]
                                                  [AVP     ]
                                        [mTLS   ] [TLS     ]
                   [EAP-AKA] [EAP-AKA'] [EAP-TLS] [EAP-TTLS]
[EPS-AKA] [5G-AKA] [EAP    ] [EAP     ] [EAP    ] [EAP     ]
[NAS    ] [NAS   ] [NAS    ] [NAS     ] [NAS    ] [NAS     ]
EPS-AKA   5G-AKA   EAP-AKA   EAP-AKA'   EAP-TLS   EAP-TTLS
(4G)      (5G)     (5G)      (5G)       (5G)      (5G)

Notes:

Non-3GPP access

User equipment stacks for untrusted non-3GPP access (5G):

                                              PDU sessions
                                                 |   |
[EAP-AKA]                                        |   |
[EAP    / 5G-AKA]                                ↓   ↓
[NAS            ]  [NAS  ]                     [IP|Eth.]   ← Application IP (IMS, data)
[EAP-5G         ]  [TCP  ]                     [GRE    ]
[EAP            ]  [IP   ]                     [IP     ]   ← Inner IP (connect to the N3IWF)
[IKEv2          ]  [ESP  ]      [IKEv2]        [ESP    ]
[UDP            ]  [(UDP)]      [UDP  ]        [(UDP)  ]
[IP             ]  [IP   ]      [IP   ]        [IP     ]   ←  Non-3GPP Access Network
[L2             ]  [L2   ]      [L2   ]        [L2     ]
[L1             ]  [L1   ]      [L1   ]        [L1     ]
CP                 CP           UP             UP
(before SA)        (after SA)   establishment

Notes:

User equipment stacks for untrusted non-3GPP access with firewall traversal (5G):

                                             PDU sessions
                                                |   |
[EAP-AKA]                                       |   |
[EAP    / 5G-AKA]                               ↓   ↓
[NAS            ] [NAS]                       [IP|Eth.]   ← Application IP (IMS, data)
[EAP-5G         ] [TCP]                       [GRE    ]
[EAP            ] [IP ]                       [IP     ]   ← Inner IP (connect to the N3IWF)
[IKEv2          ] [ESP]       [IKEv2]         [ESP    ]
[TLS            ] [TLS]       [TLS  ]         [TLS    ]
[TCP            ] [TCP]       [TCP  ]         [TCP    ]
[IP             ] [IP ]       [IP   ]         [IP     ]   ←  Non-3GPP Access Network
[L2             ] [L2 ]       [L2   ]         [L2     ]
[L1             ] [L1 ]       [L1   ]         [L1     ]
CP                CP          UP              UP
(before SA)       (after SA)  establishment

IMS

IMS (IP Multimedia Subsystem) is an SIP/IP based-service to transporting voice, SMS, video over 4G (VoLTE), 5G (VoNR) or non-3GPP access (VoWLAN/WoWifi).

User equipment stacks for stacks for IMS:

[SMS]     [SDP|A/V ]
[SIP]     [SIP|RTP |RTCP]
[TCP]     [TCP|UDP / TCP]
[IP ]     [IP           ]
SMS       Audio/Video calls
over IMS      over IMs

Notes:

SMS

User equipment stacks for SMS:

[SM-AL  ]           [SMS   ]
[SM-TL  ]           [SIP   ]
[SM-RP  ]  [SMS]    [TCP   ]
[SM-CP  ]  [NAS]    [IP    ]
[CM     ]  [RRC]    [(SDAP)]
[MM     ]  [RLC]    [PDCP  ]
[RR     ]  [RLC]    [RLC   ]
[LDAPDm ]  [MAC]    [MAC   ]
[GSM PHY]  [PHY]    [PHY   ]
SMS/GSM    SMS/NAS  SMS/IMS
(2G)       (4G/5G)  (4G/5G)

WAP

User equipment stacks for WAP (including MMS):

[WML | WMLScript | MMS]
[WSP                  ]  [XHTML MP|WAP CSS|MMS]
[(WTP )               ]  [(WP-)HTTP           ]
[(WTLS)               ]  [TLS                 ]
[WDP   / UDP          ]  [(WP-)TCP            ]
[SMS   / IP           ]  [IP                  ]
[...   / ...          ]  [...                 ]
WAP 1                    WAP 2.0

Devices

BlueTooth

                   ACL                           SCO
 /--------------------------------------------\ /---\

         [IP ]  [IP |... ]                                              [HID ]
         [PPP|AT|Eth. MAC]                                              [GATT| GAP]
    [SDP |RFCOMM|BNEP    |OBEX|HIDP|AVCTP|AVDTP]         [...      ]    [ATT | SM ]
    [L2CAP                                     |voice]   [L2CAP    ]    [L2CAP    ]   [GAP    ]   ↑ Host
------------------(HCI)-------------------------------   ---(HCI)---    ---(HCI)------------------
[LMP|-                                               ]   [Wifi PAL ]                              ↓Controler
[LCP                                                 ]   [Wifi MAC ]    [LE LL                   ]
[BR / EDR                                            ]   [Wifi PHY ]    [LE PHY (1M / 2M / Coded)]
Bluetooth Classic                                        Bluetooth HS   Bluetooth Low Energy (BLE)
                                                         (High Speed)

BLE:

[HID ]
[GATT| GAP]
[ATT | SM ]
[L2CAP    ]   [GAP    ]
[LE LL    ]   [LE LL  ]
[LE PHY   ]   [LE PHY ]
 BLE          BLE
 (connected)  (no
               connection)

Host/Controller interface (HCI) example (over USB):

[RFCOMM ]<-------------------------------------->[RFCOMM  ]
[L2CAP  ]<-------------------------------------->[L2CAP   ]
[HCI    ]<--->[HCI    |LMP     ]<--------------->[LMP     ]
[USB    ]<--->[USB    |LCP     ]<--------------->[LCP     ]
[USB PHY]     [USB PHY|BR / EDR]<--------------->[BR / EDR]
Host          Bluetooth Controler                Device

Radio link types:

USB

                                [Eth|...|MIDI1   |MIDI1|MIDI2]
[Std. Req.|HID|BOT|UAS|UASP|CCID|CDC    |USB-MIDI|USB-MIDI2  |IPP|...]
[USB Protocol layer                                                  ]
[USB PHysical                                                        ]

Appendix, details

Ethernet

Ethernet sublayers:

Ethernet payloads:

ProtocolEtherTypeDescription
ARP0x0806Address Resolution Protocol. Used for non-point-to-point networks.
801.1Q0x8100VLAN (Q-tag)
802.1ad (Q-in-Q)0x88A8VLAN in VLAN (outer 802.1ad tag is S-tag for service-tag; inner 802.1Q tag is c-tag for customer-tag)
802.1X (EAPOL)0x888EPort Authentication, used for WPA-Enterprise as well
IPv40x0800
IPv60x86DD
LLC(length ≤ 1500)Logical Link Control
SNAP-Subnetwork Access Protocol
PPPoE0x8863 (discovery), 0x8864 (session)PPP over Ethernet

IP protocols

ProtocolProtocol numberDescription
ICMP1
IGMP2Support for multicast
TCP6Connection oriented, stream-based, checksums, connection control.
UDP17Unreliable datagrams. Checksums (can be disabled in IPv4).
UDP-lite136Unreliable datagrams. Allows for partial checksums.
DCCP33Connection oriented, unreliable datagrams, with congestion control.
SCTP132Message-based (fragmentation, reliable, ordered), multiple-streams multiplexing over a single connection. Initially designed for PSTN signaling over IP.
ICMPv60x58
NDP0x58Part of ICMPv6. Replaces ARP in IPv6.
MLD0x58Part of ICMPv6. Replaces IGMP in IPv6.
AH51IPsec. Integrity, data origin authentication, anti-replay (including the outer IP packet).
ESP50IPsec. Integrity, data origin authentication, anti-replay, confidentiality (of the payload).
GRE47(next protocol defined as an EtherType; Optional 32 bit key (tunnel ID); optional 32 bit sequence number)
EtherIP97
L2TP over IP115

Ports

ProtocolPort(s)ALPNDescription
DHCP (Dynamic Host Configuration Protocol)UDP 67 (server)
UDP 68 (client)
DHCPv6UDP 546 (client), UDP 547 (server)Usually NDP is used instead for address allocation, routes, DNS configuration, etc.
SCTP over UDP-Useful for NAT traversal and userspace implementations of SCTP.
SCTP over DTLS-Used by WebRTC for transporting data channels.
QUIC-Protected communications (relies on TLS for the handshake). Multiplexing of multiple streams per QUIC connection. Used by HTTP/3.
DNS over UDP (Do53)UDP 53-General DNS traffic.
DNS over TCP (Do53)TCP 53-Usually used when messages are too long for UDP.
DNS over TLS (DoT)TCP 853"dot"DNS privacy.
DNS over DTLS(UDP 853)-DNS privacy. Not used in practice, deprecated in favor of DoQ.
DNS over HTTPS (DoH)TCP 443"http/1.1", "h2", "h3", etc.DNS privacy. One HTTP request per request/response pair.
DNS over QUIC (DoQ)UDP 853"doq"DNS privacy. One QUIC stream per request/response pair.
Oblivious DNS over HTTPS (ODoH)TCP/UDP 443"http/1.1", "h2", "h3", etc.More DNS privacy.
DNS over CoAP (DoC)TCP/UDP 5684"coap"/"co"
HTTP/1.x without TLSTCP 80--
HTTP/1.x over TLS (HTTPS)TCP 443"http/1.1", "http/1.0"
HTTP/2 without TLSTCP 80"h2c"HTTP/2 without TLS is not widely supported and is deprecated.
HTTP/2 over TLS (HTTPS)TCP 443"h2"-
HTTP/3 over QUIC (HTTPS)UDP 443"h3"-
FTP (File Transfer Protocol)TCP/21 (control)
TCP/20 (data)
FTP over TLSTCP/900 (control)
TCP/989 (data)
WebDAVTCP/80 (HTTP)Extension of HTTP for remote resource (file) operation.
WebDAV SecureTCP/443
UDP/443
WebDAV with HTTPS.
SFTP (SSH File Transfer Protocol)TCP/22 (SSH)File transfer over SSH. Not related to FTP! This is not FTP over TLS!
NFS v4 (Network File System)TCP/2049
SMB over IP (modern)TCP/445Windows file sharing.
SMB over NetBIOS over TCP (SMB/NBT)TCP/139Windows file sharing over legacy Windows network protocols.
SMB over QUICUDP/443
RTSP (Real Time Streaming Protocol)TCP 554Control RTP streams (PLAY/PAUSE, etc.)
RTSPS (Secure RTSP)TCP 322RTSP over TLS
SIP (Session Initiation Protocol)TCP 5060
UDP 5060
SCTP 5060
SIP over TLSTCP 5061
SIP over WebSocketTCP 80
TCP or UDP 443
IKEv2UDP 500
ESP over UDP (and IKDEv2)UDP 4500
OpenVPNUDP 1194, TCP 1194
WireGuardUDP 51820
GRE-in-UDPUDP 4754 (dest.)
GRE-UDP-DTLSUDP 4755 (dest.)
L2TP over UDPUDP 1701 (control)
VXLANUDP 4789 (dest.)(24 bit VNI (VXLAN Network Identifier), always encapsulates Ethernet)
GENEVEUDP 6081 (dest.)(24 bit VNI, can encapsulate different protocols (EtherType))
KerberosUDP or TCP 88
MS-KKDCPTCP or UDP 443 (HTTPS)Kerberos Key Distribution Center Proxy. Kerberos over HTTPS.

CoAP

ProtocolURI schemePortALPNWebSocket protocol
CoAP over UDPcoap:UDP 5683--
CoAP over DTLScoaps:UDP 5684coap-
CoAP over TCPcoap+tcp:TCP 5683--
CoAP over TLScoaps+tcp:TCP 5684coap.
CoAP over WebSocketcoap+ws:(80, HTTPS)-coap
coaps+ws:(443, HTTPS)(http/1.x, …)coap

HTTP Datagram

HTTP datagrams are unreliable datagrams, associated with a HTTP upgrade, transported over an HTTP connection. They can be sent after an upgrade to the Capsule protocol,

HTTP datagrams are currently used for,

HTTP Upgrade

ProtocolUpgrade tokenDefault URI template
Proxy TCP in HTTP (classic) (/1.x, /2, /3)--
Proxy TCP in HTTP (template-based)"connect-tcp"/.well-known/masque/tcp/{target_host}/{tcp_port}/
Proxy UDP in HTTP"connect-udp"/.well-known/masque/udp/{target_host}/{target_port}/
Proxy UDP listen in HTTP"connect-udp-listen"/.well-known/masque/udp/{target_host}/{target_port}/
Proxy IP in HTTP"connect-ip"/.well-known/masque/ip/{target}/{ipproto}/
Proxy Ethernet in HTTP"connect-ethernet"(/.well-known/masque/ethernet/)

WebTransport

Features:

Notes:

RTP

ProtocolDescription
RTPTransport A/V streams
RTCPFlow/congestion control for RTP
SRTP and SRTCP
DTLS-SRTPDTLS handshake (with mutual authentication) for keying SRTP (and SRTCP).
ZRTPDiffie-Hellman key exchange on the same port as SRTP.
S/MIMEMay be used in SIP to provide end-to-end protection of SDP content
Framing for RTPWhen used over TCP, each RTP or RTCP packet is prefixed with a length field (2 bytes).
RTP-MIDISend MIDI 1 data over RTP
RTP-over-QUIC (RoQ)

WebRTC

WebRTC Payload typeSCTP PPIDDescription
SRTP-DTLS-
DCEP (Data Channel Establishment Protocol)50Used to create WebRTC data channels.
WebRTC String51
WebRTC Binary53
WebRTC Empty String56
WebRTC Empty Binary57

TLS

TLS SubprotocolsDescription
Underlying transport layereg. TCP
TLS Record Protocol: Record ProtectionEncryption and message authentication (Cipher+MAC or AEAD).
TLS Record Protocol: CompressionMessage compression, if negotiated. Not available in TLS v1.3.
TLS Record Protocol: FragmentataionSubprotocols multiplexing and framing.
TLS Handshake ProtocolTLS handshake (version/ciphersuite negotiation, authentication, key exchange, etc.).
TLS ChangecipherSpecEnables communication protection for this direction
TLS AlertErrors.
Application Layereg. HTTP, SMTP, etc.

EAP

EAP MethodMethod TypeDescription
EAP-TLS13Mutual TLS authentication
EAP-TTLS21AVPs (attribute value pairs) in the Diameter format over TLS
PEAP25Protected EAP. Inner EAP exchange over a TLS tunnel
EAP-FAST43
TEAP55Tunnel EAP. Inner EAP exchange over a TLS tunnel (standardized version of PEAP)
EAP-SIM18SIM-based authentication
EAP-AKA23SIM-based authentication
EAP-AKA'50SIM-based authentication
EAP-pwd52Authenticated key exchange based on a shared password
EAP-NOOB56Authentication for IoT devices based on an initial out-of-band channel
EAP TransportDescription
802.1XAuthentication of LAN/WLAN such as Ethernet and Wifi (WPA-EAP aka WPA-Entreprise)
PANAProtocol for Carrying Authentication for Network Access.
RADIUSEAP messages encapsulated in the EAP-Message attribute
DiameterEAP messages encapsulated in EAP-Payload AVP

SASL

SASL MechanismSecurity LayerChannel BindingDescription
GSSAPIOptional (negotiated)YesKerberos 5 (not other mechanisms) with GSSAPI
GSS2-*NoNoGSS-API mechanisms (without support for channel binding)
GSS2-*-PLUSNoYesGSS-API mechanisms (with support for channel binding)
OAUTHBEARERNoNoOauth 2.0 Bearer token

RADIUS

ProtocolPortSCTP PPIDDescription
RADIUS (authentication and authorization)UDP 1812, TCP 1812-
RADIUS AccountingUDP 1813, TCP 1813-
RADIUS DynAuthUDP 3799-Disconnect and Change-of-Authorization (CoA) messages
RADIUS over TLS (RadSec)TCP 2083-
DiameterTCP 3868, SCTP 386846
Diameter over TLS/TCPTCP 5658-
Diameter over DTLS/SCTPSCTP 565847

Wifi

Sublayers:

Encryption:

PPP

PPP protocols:

ProtocolPPP ProtocolDescription
PPP (Point-to-Point Protocol)-
LCP (Link Control Protocol)0xc021
PAP (Password Authentication Protocol)0xc023Cleartext login/password
CHAP (Challenge-Handshake Authentication Protocol)0xc223Includes MC-CHAP and MS-CHAPv2 as well.
EAP (Extensible Authentication Protocol)0xc227
IPCP (IP Configuration Protocol)0x0021Configuration of the IPv4 address
IPv40x0021
IPv6CP (IPv6 Configuration Protocol)0x8057
IPv60x0057

PPP transports:

Optical

Phone

ProtocolSCTP PPIDDescription
MTP-1 (Message Transfer Part layer 1)Physical layer
MTP-2 (Message Transfer Part layer 2)Link layer
MTP-3 (Message Transfer Part layer 3)Nework layer
TUP (Telephone User Part)Signaling for classic PSTN, mostly replaced by ISUP
ISUP (ISDN User Part)
SCCP (Signaling Connection Control Part)
TCAP (Transaction Capabilities Application Part)
CAP (CAMEL Application Part)
MAP (Mobile Application Part)Transport layer on top of IP
SCTP (Stream Control Transmission Protocol)-
SUA (SCCP User Adaptation)4Replaces SCCP when used over SCTP/IP
M2UA (MTP2 User Adaptation Layer)2
M2PA (MTP2 User Peer-to-Peer Adaptation Layer)5
M3UA (MTP3 User Adaptation Layer)3

Mobile

Mobile network:

WAP:

Bluetooth

USB

Device ClassesDescription
Standard Requests
HID (Human Interaction Device)Keyboard, Mouse, Baseball and Golf clubs, etc.
MSB (Mass Storage Device)USB stick, etc.
CDC (Communication Device Class)
IPP (Internet Printing Protocol)
MTP (Media Transfer Protocol)
CCID (Chip Card Interface Device)Smartcard, Yubikeys, etc.
DFU (Device Firmware Upgrade)
BOT (Bulk Only Transfer)
UAS (USB Attached SCSI)
UASP (USB Attached SCSI Protocol)Not the same as UAS!

References

General:

Assignments:

DNS:

WebSocket:

WebTransport:

WebRTC:

QUIC:

Tunnels, VPNS:

SSH:

References:

ATM:

Wireless:

CoAP:

USB:

Optical:

Phone:

Mobile:

Non-3GPP access:

IMS:

WAP:

LLMs and agents: