ตามลำดับโดยเฉพาะอย่างยิ่งอินสแตนซ์เลเยอร์ทางกายภาพที่ได้รับความนิยมสูงสุดสำหรับ 2 ซีพียูในกล่องเดียวกันดูเหมือนจะเป็น:
- daisy-chain SPI (เช่นใช้โดย JTAG)
- SPI เลือกลวดต่อทาส
- "TTL ระดับ RS-232" aka "การสื่อสารแบบอะซิงโครนัสสต็อปเริ่มแบบหยุด" (เชื่อมต่อโดยตรงกับ UART TX พินของ CPU หนึ่งตัวไปยัง UART RX pin ของ CPU ตัวอื่น)
- I2C
- data 8-bit + strobe (เช่นพอร์ตเครื่องพิมพ์ขนาน IEEE 1284)
- shared-memory (หนึ่ง CPU เท่านั้นที่อยู่บัส / ข้อมูล / การควบคุมบัสในเวลา)
อินสแตนซ์เลเยอร์ทางกายภาพเหล่านี้ (รวมถึงอินสแตนซ์เลเยอร์ทางกายภาพอื่น ๆ สำหรับ 2 ซีพียูในกล่องแยกต่างหาก) โดยทั่วไปจะให้กระแสข้อมูลจำนวนไบต์ไปยังซอฟต์แวร์ที่ใช้ระบบการสื่อสารในระดับที่สูงขึ้น
โปรแกรมเมอร์สมาร์ทเขียนซอฟต์แวร์ในลักษณะที่เมื่อคนที่แต่งตัวประหลาดฮาร์ดแวร์ตัดสินใจที่จะทำลายอินสแตนซ์เลเยอร์ทางกายภาพหนึ่งรายการและแทนที่ด้วยอินสแตนซ์ทางกายภาพเลเยอร์ที่แตกต่างกันอย่างสมบูรณ์พวกเขาจำเป็นต้องเขียนฟังก์ชั่นบางอย่าง ไปยังฮาร์ดแวร์และอ่านกระแสข้อมูลจำนวนไบต์จากฮาร์ดแวร์และสิ่งโปรโตคอลระดับสูงทั้งหมดยังคงทำงานไม่เปลี่ยนแปลง
โปรโตคอลที่จะส่งข้อมูลจาก CPU หนึ่งไปยัง CPU อื่นมักจะเกี่ยวข้องกับการตีความกระแสของไบต์เป็นชุดของแพ็คเก็ต:
- คำนำ
- หัวข้อ
- (อาจหนีไปแล้ว) ข้อมูลต่อเนื่อง
- รถพ่วง
บางคนดูเหมือนจะสนุกกับการสร้างโปรโตคอลใหม่ที่กำหนดเองและเข้ากันไม่ได้โดยการผสมและจับคู่ (2) หนึ่งในโครงสร้างส่วนหัวหลายชนิดที่มี (3a) หนึ่งในหลาย ๆ ชนิดของข้อมูลซีเรียลไลซ์ที่มี (3b) หนีข้อมูลที่ต่อเนื่องนั้นด้วย (4) หนึ่งในหลาย ๆ ตัวอย่าง
โพรโทคอลที่ง่ายที่สุดสำหรับการห่อหุ้มข้อมูลลงในแพ็กเก็ตประกอบด้วย
โปรโตคอลที่ซับซ้อนกว่าเล็กน้อยสำหรับการห่อหุ้มข้อมูลลงในแพ็กเก็ตประกอบด้วย:
มีรายการโปรโตคอลจำนวนมากที่
คุณอาจสนุกกับการอ่าน
"Protocol Design Folklore"โดย Radia Perlman ซึ่งอธิบายว่าการออกแบบโปรโตคอลสามารถผิดพลาดได้อย่างไร