Skip to main content
QUICK REVIEW

[논문 리뷰] Linux Goes Apple Picking: Cross-Platform Ad hoc Communication with Apple Wireless Direct Link

Milan Stute, David Kreitschmann|arXiv (Cornell University)|2018. 10. 15.
Opportunistic and Delay-Tolerant Networks참고 문헌 2인용 수 3
한 줄 요약

이 논문은 AirDrop 및 AirPlay와 같은 기능에 사용되는 애플의 고유한 애드혹 프로토콜인 Apple Wireless Direct Link (AWDL)을 역설계한다. 저자들은 사용자 공간 C 코드, Netlink API, 그리고 pcap를 사용하여 리눅스에서 기능하는 완전한 AWDL 스택을 구현함으로써, 동기화, 마스터 선택, 그리고 아이패드 및 맥북과 같은 애플 기기와의 IPv6 기반 양방향 통신을 입증한다.

ABSTRACT

Apple Wireless Direct Link (AWDL) is a proprietary and undocumented wireless ad hoc protocol that Apple introduced around 2014 and which is the base for applications such as AirDrop and AirPlay. We have reverse engineered the protocol and explain its frame format and operation in our MobiCom '18 paper One Billion Apples' Secret Sauce: Recipe of the Apple Wireless Direct Link Ad hoc Protocol. AWDL builds on the IEEE 802.11 standard and implements election, synchronization, and channel hopping mechanisms on top of it. Furthermore, AWDL features an IPv6-based data path which enables direct communication. To validate our own work, we implement a working prototype of AWDL on Linux-based systems. Our implementation is written in C, runs in userspace, and makes use of Linux's Netlink API for interactions with the system's networking stack and the pcap library for frame injection and reception. In our demonstrator, we show how our Linux system synchronizes to an existing AWDL cluster or takes over the master role itself. Furthermore, it can receive data frames from and send them to a MacBook or iPhone via AWDL. We demonstrate the data exchange via ICMPv6 echo request and replies as well as sending and receiving data over a TCP connection.

연구 동기 및 목표

  • 애플 생태계에서 AirDrop 및 AirPlay와 같은 서비스에 사용되는 고유한 애드혹 프로토콜인 Apple Wireless Direct Link (AWDL)을 역설계하는 것.
  • 리눅스 시스템에 AWDL을 구현하여 애플의 네이티브 환경을 초월한 크로스플랫폼 애드혹 통신을 가능하게 하는 것.
  • 기존 AWDL 클러스터와의 동기화 및 애플 기기와의 양방향 데이터 교환을 지원하는 기능성 프로토타입을 통해 프로토콜의 동작을 검증하는 것.
  • AWDL 데이터 경로 상에서 ICMPv6 및 TCP와 같은 표준 네트워킹 프로토콜을 사용한 엔드 투 엔드 통신을 입증하는 것.

제안 방법

  • IEEE 802.11 기반의 프레임 포맷, 동기화 메커니즘, 채널 이동 행동을 분석하여 AWDL 프로토콜을 역설계했다.
  • 리눅스에서 사용자 공간 C 코드를 사용해 AWDL 스택을 구현하였으며, 커널 네트워킹 스택과의 인터페이스를 위해 Netlink API를 활용했다.
  • 802.11 프레임을 직접 주입하고 수신하기 위해 pcap 라이브러리를 사용하여 무선 통신에 대한 저수준 제어를 가능하게 하였다.
  • 동적 AWDL 네트워크 참여를 가능하게 하기 위해 마스터 선택 및 클러스터 동기화 로직을 설계하고 통합하였다.
  • AWDL 상에서 필요한 네트워크 계층 및 전송 계층 프로토콜을 구현하여 IPv6 기반 데이터 전송을 가능하게 하였다.
  • 실제 애플 기기인 맥북과 아이폰과의 ICMPv6 에코 세션 및 TCP 연결 수립을 통해 프로토타입을 검증하였다.

실험 결과

연구 질문

  • RQ1애플 무선 직접 연결(AWDL)은 특히 프레임 구조, 동기화, 채널 이동 측면에서 프로토콜 수준에서 어떻게 작동하는가?
  • RQ2완전한 기능을 갖춘 AWDL의 구현은 아이패드나 맥북 외의 플랫폼, 예를 들어 리눅스와 같은 비애플 플랫폼으로 이식 가능한가?
  • RQ3AWDL는 애드혹 환경에서 마스터 노드를 선출하고 네트워크 동기화를 유지하기 위해 어떤 메커니즘을 사용하는가?
  • RQ4AWDL를 사용한 크로스플랫폼 통신은 어느 정도 실현 가능하며, 실질적인 제약은 무엇인가?
  • RQ5ICMPv6 및 TCP와 같은 표준 네트워킹 프로토콜은 AWDL 데이터 경로 상에 성공적으로 구현 가능한가?

주요 결과

  • 저자들은 AWDL 프로토콜을 성공적으로 역설계하여, IEEE 802.11 기반의 프레임 포맷, 채널 이동 순서, 그리고 동기화 메커니즘을 규명하였다.
  • 리눅스에서 완전한 기능을 갖춘 AWDL 구현체를 개발하여, 프로토콜이 애플 생태계 외부에서도 네이티브로 지원될 수 있음을 입증하였다.
  • 리눅스 기반 AWDL 스택은 기존 AWDL 클러스터와 정확히 동기화되었으며, 필요에 따라 마스터 역할을 수행할 수 있었다.
  • ICMPv6 에코 요청 및 응답을 통해 애플 기기와의 엔드 투 엔드 통신을 성공적으로 구현하여, IPv6 기반 데이터 경로의 실현 가능성을 확인하였다.
  • 리눅스 시스템과 애플 기기 간에 TCP 연결이 성공적으로 수립되어, AWDL이 신뢰성 있는 전송을 지원함을 입증하였다.
  • 커널 수정 없이도 표준 리눅스 네트워킹 인터페이스(Netlink, pcap)를 활용하여 상호 운용성을 확보하였다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.