GATT & ATT GATT

GATT

<\/script>\n
'; }, get iframeSnippet() { const domain = '{ SITE_DOMAIN }'; const type = '{ embed_type }'; const slug = '{ embed_slug }'; return ''; }, get activeSnippet() { return this.method === 'script' ? this.scriptSnippet : this.iframeSnippet; }, copySnippet() { navigator.clipboard.writeText(this.activeSnippet).then(() => { this.copied = true; setTimeout(() => { this.copied = false; }, 2000); }); } }" @keydown.escape.window="open = false" @click.outside="open = false">

Embed This Widget

Theme


      
    

Widget powered by . Free, no account required.

Generic Attribute Profile -- the framework defining how BLE devices discover and exchange data using services and characteristics.

다른 명칭: Generic Attribute Profile

What Is GATT?

The Generic Attribute Profile (ATT">GATT) is the application-level framework that governs how two BLE devices discover, organize, and exchange data once a connection is established. Every BLE data transaction you encounter -- reading a sensor value, writing a command, or subscribing to notifications -- flows through GATT.

Architecture Overview

GATT sits on top of the Attribute Protocol (ATT) and relies on it for the actual read/write mechanics. The profile defines a strict hierarchy of containers:

  • Profile -- a use-case specification (e.g., Heart Rate Profile) that bundles one or more services.
  • Service -- a collection of logically related data points, identified by a UUID.
  • Characteristic -- an individual data value with defined properties (read, write, notify, indicate).
  • Descriptor -- optional metadata attached to a characteristic, such as the CCCD.

Client-Server Model

GATT uses a client-server architecture that is independent of the GAP central/peripheral roles. The GATT server hosts the attribute database and exposes services. The GATT client discovers and interacts with those services. A peripheral typically acts as the GATT server (e.g., a heart-rate strap), while the central acts as the client (e.g., a smartphone), though the roles can be reversed or even simultaneous.

Service Discovery

Before exchanging application data, the client must discover the server's attribute table. It sends a series of ATT requests -- Discover All Primary Services, Discover Characteristics, and Discover Descriptors -- to enumerate the full hierarchy. Many stacks cache this information after bonding to skip discovery on reconnection, which can save several hundred milliseconds.

Practical Considerations

The GATT database is typically defined at compile time in firmware using an SDK such as Zephyr RTOS or vendor-specific toolchains. Each attribute consumes a handle from a finite 16-bit handle space (0x0001 -- 0xFFFF). Developers should keep the database compact and group related services to simplify client-side discovery. The maximum ATT payload per operation is bounded by the negotiated MTU, so large reads or writes may require segmentation through ATT Long Read or Prepare Write procedures.

Related Terms

자주 묻는 질문

Our glossary covers 90+ BLE technical terms organized by category. Each term includes a definition, related terms, and links to relevant chips and guides.