---
name: "atalk"
section: "4"
platform: "linux"
package: "atalkd"
version: "4.2.3~ds-1+deb13u2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/atalk"
---

# atalk(4)

AppleTalk protocol family

## Name

atalk — AppleTalk protocol family

## Synopsis

-

  ```
  #include <sys/types.h>
  #include <netatalk/at.h>
  ```

## Description

The AppleTalk protocol family is a collection of protocols layered above the Datagram Delivery Protocol (DDP), and using AppleTalk address format. The AppleTalk family may provide SOCK\_STREAM (ADSP), SOCK\_DGRAM (DDP), SOCK\_RDM (ATP), and SOCK\_SEQPACKET (ASP). Currently, DDP is implemented in the kernel; ATP and ASP are implemented in Netatalk user level libraries.

## Addressing

AppleTalk addresses are three byte quantities, stored in network byte order. The include file *\<netatalk/at.h\>* defines the AppleTalk address format.

Sockets in the AppleTalk protocol family use the following address structure:

-

  ```
  struct sockaddr_at {
      short sat_family;
      unsigned char sat_port;
      struct at_addr sat_addr;
      char sat_zero[ 8 ];
  };
  ```

The port of a socket may be set with [**bind**(2)](/bind/2.md). The node for *bind* must always be *ATADDR\_ANYNODE*: “this node.” The net may be *ATADDR\_ANYNET* or *ATADDR\_LATENET*. *ATADDR\_ANYNET* corresponds to the machine’s “primary” address (the first configured). *ATADDR\_LATENET* causes the address in outgoing packets to be determined when a packet is sent, i.e. determined late. *ATADDR\_LATENET* is equivalent to opening one socket for each network interface. The port of a socket and either the primary address or *ATADDR\_LATENET* are returned with [**getsockname**(2)](/getsockname/2.md).

## See Also

[bind(2)](/bind/2.md), [getsockname(2)](/getsockname/2.md), [atalkd(8)](/atalkd/8.md)

## Author

Contributors to the Netatalk Project (https://netatalk.io/contributors)
