41

When the world was younger, and computers weren't all glorified PCs, word sizes varied (a DEC 2020 we had around here had 36 bit words), format of binary data was a contentious issue (big endian vs little endian, and even weirder orders of bits were reasonably common). There was little consensus on character size/encoding (ASCII, EBCDIC were the main ...


29

I disagree with other answers that the communication channel needs to be modelled differently. Malice is irrelevant, simple lost messages with any non-zero probability are sufficient to create the two generals problem. e-mail and IM, for example, have a low but not zero chance of dropping messages. Phone calls can suffer interference, so as with the two ...


25

One advantage that might be overlooked is the ability to experiment. If you're shoving bits down the tube, you're going to need to write some utility that translates EHLO into 0x18 or the like. Instead of doing that, you can simply telnet into a mail server, send EHLO and be on your way. Nothing is preventing you in this day and age from writing code in ...


18

Central (pun intended) to the Two Generals problem is a malicious enemy in between. Although this models an unreliable channel, it models it in a way that we normally don't encounter. In the problem, the messages may pass through enemy hands and there's no time constraints, verification, encryption or anything else I haven't thought of. When we communicate ...


16

The "unsolvability" of the "Two Generals" problem (or called "Coordinated Attack" problem) is restricted to its context, i.e., in a totally asynchronous distributed system with unreliable, untrusted communication channels. In our daily life, people can "tolerate" such bad situations. In the book Reasoning about Knowledge; Section 6.1, the authors comment ...


10

It's not that many internet protocols are text based. In fact, if I were to guess I'd say that text based protocols are in the minority. For almost every text based protocol you see on the internet there are at least two binary protocols that people have invented to send the same or similar data. But it's true that the majority of internet traffic use text ...


8

The bittorrent protocol was designed to transfer large files out-of-order. It divides files in chunks (pieces in bittorrent terminology), and maintains a map of which participant holds which chunks. One of the elementary commands is for one participant to request a chunk from another participant. If a client crashes or disconnects, it can check which chunks ...


7

Suppose that $k \ll n$. In that case, your friend can send you the index of the first door containing a treasure. Of the $k$ numbers you get, you pick the smallest one. If $k$ is small enough compared to $n$, then it is very likely that the smallest of the $k$ numbers is the one that your friend sent you. More concretely, suppose that $k$ is constant. With ...


6

Whether this is more efficient depends on the physical properties of the medium, not on any fundamental principle of computer science. And of course there's no reason to limit yourself to ternary systems; we can consider systems with $k$ levels, where $k$ is any integer with $k \ge 2$ (it doesn't have to be limited to $k=2$ or $k=3$). For instance, Wifi ...


5

This number is reached first by assuming that messages will be produced and sent according to a Poisson process. $$P[(N(t + \tau) - N(t)) = x] = \frac{{e^{ - \lambda\tau } (\lambda\tau) ^x }}{{x!}}$$ This means, that the probability of $x$ messages arriving for the given interval $[t, t+\tau]$ where $\lambda$ messages are expected to arrive, is equal to ...


5

A TCP implementation might send a standalone FIN in the first closing segment. However, it can also send a FIN ACK, instead. The latter is strictly better: the implementation can bundle a "free" ACK with the FIN segment without making it longer. This is because, if you don't ACK, there is still room in the segment for the ACK number, which will be ignored, ...


4

Unlike in the regular ALOHA protocol, where other nodes can send messages that interfere with ours at any time, in the Slotted ALOHA protocol, the only other time a message can be sent to interfere with ours is if it's sent at the exact time ours is sent (since in Slotted ALOHA messages can only be sent at specific intervals, like every 5 seconds for example)...


4

The main benefit is in the size of routing tables. Instead of having to store an entry for every machine on the network, you only need to store an entry for the particular subnet. For example ISP might have X.Y.Z.W/16 and anyone sending a packet from the outside to any machine in this subnet only needs to know the route to their border. Their border router ...


4

A few reasons : CAN was developed by BOSCH, which have a lot of influence in automotive equipment (engine control, braking, body, gearbox control...). BOSCH ensured that CAN killed competitors like the VAN protocol. (CAN was patented, and BOSCH sells CAN controller IPs) CAN is much cheaper than Ethernet. There were no suitable industrial bus at the time, ...


4

Historical reasons, for the most part. Automotive systems started using CAN because nothing else was good, and now they've all standardised on it. Having said that, CAN has one particular feature which makes it ideal for this class of applications. CAN dates from around the same time as Ethernet (Ethernet was commercialised in 1980, CAN in 1983 IIRC), and ...


4

A memoryless channel is one where the probability of an error at a particular bit is independent of what happened at all prior bit positions. A channel can have memory if errors are correlated across bit positions. For instance, consider the following simple binary channel: if there was no error in the prior position, then there is a probability of 0.1 ...


3

It was probably a rather unfortunate abbreviation of 8-N-1 serial transmission which is what MIDI uses. The 8 bits are sent serially, one at time, still.


3

this is a fairly basic problem in control theory and there are "design patterns" in this area to handle this type of system, and think there is probably an example right out of a control theory book very close to your question. basically the theory involves a concept somewhat like the way a thermostat regulates temperature in a house. if the house is too hot,...


3

There is a clear explanation given in these lecture notes MIT course Digital communication systems (read by H. Balakrishnan and G. Verghese). The specific part that you require is this> If each node sends with probability $p$, then the probability that exactly one node sends in any given slot is $Np(1 − p)^{N−1}$. The reason is that the probability ...


3

Actually, most browsers can resume downloads, provided they are from an FTP-server. The difference between HTTP and FTP downloads is that whereas FTP has the REST(art) command to start a file transfer from a specified point, the HTTP protocol knows no such method. With HTTP, you always get the whole file, starting from the first byte. As for the ...


3

I think what you want is impossible to do without further assumptions on F. Consider the following, rather simple data stream for a target data length of 5: 123441233512245113451255513555 ... Note that not a single block contains 12345 (our original data). In order to find a proper combination of data parts, you would have check all combinations, in ...


3

Because we don't need guaranteed assurance that something will happen when we have sufficient experience that tells us what is likely to happen. For example, let's say that a friend wants to meet up with me. He emails me the time and place, and I respond back with "Sounds great, see you then." I don't need any more information to proceed with meeting him at ...


3

Assume that each player gets a number in $[n]$, and they can compute $h_n(x,y)$. Each player knows $n$, so if $h_n$ is computable with less than $log(n)$ communication, they can compute $h_n(n-x,y)$ in under $log(n)$ bits of communication. Since you have $h_n(n-x,y)=1 \iff x=y$ then you managed to compute $\delta_{x,y}$ in sub logarithmic communication, ...


3

Structured binary also has limitations in expanding it. It my days of working with FidoNet and building a gateway between it and UUCP/USNET, Fidonet's message headers were a structured binary. Expanding it by even just trying to add a byte someplace means breaking everything out there that is trying to work with it. Having a text header or protocol means ...


3

Your question can be interpreted in three ways: Why is numerical data transmitted in textual representation, as if it had been printed with e.g. printf()? Why do the classical application layer protocols — e.g. the ftp control channel, smtp, http — traditionally all use a 7-bit ASCII character set? (7 bit ASCII can be considered "text" because ...


3

CRC is conceived as the remainder of a polynomial division. It is efficient for detecting errors, when the calculated remainder does not match. Depending on the CRC size, it can detect bursts of errors (10 bits zeroed, for example), which is great for checking communications. The "FCS" term is used sometimes for some transformed version of the CRC (Ethernet ...


3

“Base type” is a type that isn't built from other types. Types built from other types include data structures (e.g. lists, arrays, pairs, …), functions, etc. In the context of the pi-calculus, base types exclude channel types. Some typical example of base types in practice are integers, booleans, floating point, etc. From a theoretical point of view, a base ...


3

You may find contradictory answers because there are many kinds of serial communication protocols. Some are LSB first, some are MSB first. For example, for the old RS232 standard and siblings, the LSB is transmitted first, and the parity may be transmitted after MSB. The MSB is usually the 7th bit or the 8th bit. The parity is not part of the source data ...


3

The IP packet has to include the TCP headers in its payload. Hence we find additional 20 bytes, beyond the 3523 bytes of the sent data (the TCP payload). The total 3543 byes then get fragmented as usual.


3

Briefly, communication between two hosts/peers on a network occurs by means of network sockets. Roughly a socket is pair (IP,PORT) of numbers which uniquely identifies a host on a network. So, when a host A sends data to another host B on the network, B listens to a corresponding port for incoming data. Data (payload) comes byte-by-byte and when one byte of ...


Only top voted, non community-wiki answers of a minimum length are eligible