같은 순서로 2 개의 CPU에서 가장 많이 사용되는 물리 계층 인스턴스는 특별한 순서가없는 것 같습니다.
- 데이지 체인 SPI (예 : JTAG에서 사용)
- 슬레이브 당 선택 와이어 SPI
- "비동기식 스타트-스톱 직렬 통신"(일명 CPU의 UART TX 핀을 다른 CPU의 UART RX 핀에 직접 연결) "TTL 수준 RS-232"
- I2C
- 8 비트 데이터 + 스트로브 (예 : IEEE 1284 프린터 포트 병렬 포트)
- 공유 메모리 (한 번에 하나의 CPU 만 주소 / 데이터 / 제어 버스를 구동 함)
이러한 물리적 계층 인스턴스 (별도의 상자에 2 개의 CPU에 대한 다른 물리적 계층 인스턴스)는 일반적으로 높은 수준의 통신 시스템을 구현하는 바이트 스트림을 소프트웨어에 제공합니다.
스마트 프로그래머는 하드웨어 담당자가 하나의 물리적 계층 인스턴스를 제거하고 완전히 다른 물리적 계층 인스턴스로 교체하기로 결정하는 경우 출력 스트림 바이트를 공급하기 위해 몇 가지 기능 만 다시 작성하면됩니다. 하드웨어로 전송하고 하드웨어에서 바이트 스트림을 다시 읽으며 모든 상위 레벨 프로토콜 항목은 계속 변경되지 않습니다.
한 CPU에서 다른 CPU로 정보를 전송하는 프로토콜은 거의 항상 일련의 패킷으로 바이트 스트림을 해석합니다.
- 전문
- 머리글
- 직렬화 된 데이터 (아마도 탈출)
- 트레일러
어떤 사람들은 (2) 많은 종류의 헤더 구조 중 하나와 (3a) 많은 종류의 직렬화 데이터 중 하나와 (3b) 여러 종류 중 하나를 혼합하여 일치시켜 완전히 새로운 맞춤형의 호환되지 않는 프로토콜을 만드는 것을 좋아합니다. (4) 많은 종류의 트레일러 중 하나를 사용하여 직렬화 된 데이터를 탈출합니다.
데이터를 패킷으로 캡슐화하는 가장 간단한 프로토콜 중 일부는 다음과 같습니다.
패킷으로 데이터를 캡슐화하기위한 약간 더 복잡한 프로토콜은 다음과 같습니다.
에 프로토콜의 긴 목록이 있습니다
프로토콜 디자인이 어떻게 잘못 될 수 있는지 설명하는 Radia Perlman의 "Protocol Design Folklore" 를 읽을 수 있습니다
.