====== YAP and YIP ====== The Yinrih Ansible Protocol (YAP) is the human designation for the link layer protocol used to send information from one ansible to another. Ansibles sharing tailstone wafers from a single monocrystal are assigned unique ansible numbers at the manufacturer. When an ansible goes online, it sends a neighbor solicitation request to any other ansibles on the link. The neighbors respond with neighbor response packets containing their own ansible numbers. Once every ansible on the link is aware of every other ansible, they take turns in a time-division multiple access (TDMA) fashion, with each ansible having a designated time slot to send packets. When it's not sending packets, it passively listens for packets addressed to it (with its ansible number in the receive address portion of the packet.) The packet format is very spartan: a preamble, a receiver address, a sender address, a payload, and a checksum. The lengths of each field are TBD. The length of the address field creates a hard limit on the number of ansibles that can share a link. a six bit address field, for example, allows 64 ansibles (assuming an all zero address is viable, which it likely isn't.) YAP is a best effort protocol, meaning message delivery is not guaranteed. If you want reliable message delivery you have to look to a higher layer protocol like YIP. YIP (Yinrih internetworking protocol, also a human term) is the network layer protocol used when sending messages between ansible links, or between nodes on a more "conventional" non FTL network. YIP can operate in either a reliable (message delivery is guaranteed) or best effort (message delivery is not guaranteed) mode. YIP addresses are SUPPOSED to be globally unique, but the proliferation of network nodes eventually exhausted the smaller address space of the original YIP specification, and a new, non backwards compatible version had to be developed. Adoption was positively glacial, and there are STILL single stack networks using the older version of YIP by the time of First Contact, millennia after the publication of the new version of the protocol. After First Contact, network bridges are developed to translate between human TCP/IP networks and cynoid YIP networks, making the Internet an interstellar, bi-species endeavor. Sending YIP packets over YAP is known as YoY (YIP over YAP) and sending IP packets over YAP is called IoY (IP over YAP). Some humans are disappointed (and others overjoyed) to find that the monkey fox version of the internet is almost exclusively a text-based affair thanks to the very low bandwidth achievable by ansibles. Multimedia content does exist, but isolated to non FTL planetwide networks. If you want to reach an interplanetary audience, you're stuck with what amounts to bulletin board systems or GOPHER. There is also an application layer protocol used to coordinate flows among mass routers called MRP (mass routing protocol). It's a very common misconception that the matter transported over the Underlay is somehow digitized at ingress and rematerialized at egress. This confusion is compounded by the fact that mass flows are segmented and encapsulated in a manner analogous to data while in the Underlay, but it's all still matter, just wrapped in sheaths of realspace. MRP is there to synchronize impulse buffers and route mass flows. **Edit:** YAP should have an upper-layer protocol tag between the source address and the payload. That essentially mirrors the Ethernet frame format, and I wanted YAP to be a little unique in some way. I should see how TDMA works. Perhaps a sender address isn't necessary if everyone knows who's sending based on the time slot. Ethernet and wi-fi use CSMA instead. Ansibles sharing tailstone crystals also share a broadcast/collision domain similar to Wi-fi, or old Ethernet before switches. I have much to think about. {{tag>science_and_tech}}