# Tag Info

43

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 ...

42

Many protocols, including TCP which is most widely used protocol on the Internet, use something called flow control. Flow control simply means that TCP will ensure that a sender is not overwhelming a receiver by sending packets faster than it can empty its buffer. The idea is that a node receiving data will send some kind of feedback to the node sending the ...

30

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 ...

24

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 ...

14

The following diagram, from a blog post I wrote, is a visual proof that it's impossible: Notice how the packet arrival times on each side stay the same, even as the one-way latencies change (and even become negative!). The first packet always reaches the server at 1.5s on the server's clock, the second always reaches the client at 2s on the client's clock, ...

12

what would happen? The bytes that cannot be written to the HDD in time would be buffered temporarily somewhere; very likely some of them would be buffered in the application that "converts" the network traffic into HDD traffic (i.e., your browser), and in cases of longer congestion, the lower level parts of the stack (i.e., the networking subsystem of your ...

10

Inability to measure asymmetry No, you can't measure the asymmetry. Consider these two communication diagrams, the first with a negative clock offset and equal delays and the second with no clock offset and entirely asymmetric delays (but the same round trip time). The important thing to notice is that, from the perspective of both the PC and the server, ...

9

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

WEP uses the stream cipher $RC4$ for confidentiality and the CRC-32 checksum for integrity. All data frames sent by a router in a WEP protected network are encrypted. When a router sends a packet, the following steps are executed. The router picks a $24$-bit value called the initialization vector $IV$. A new $IV$ is used for every packet. The $IV$ is ...

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

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, ...

6

This is a very wide topic indeed. Basically, there are two ways to measure and control the speed of a connection: physical speed and logical speed. Physical speed is determined by the technology, protocol and sometimes the physical conditions of the line. For example, a Fast Ethernet has a physical speed of about 100 Mbps, meaning that it could in theory ...

6

The e-mail system has no way of manipulating already sent e-mails, no. The only services I've seen which allow you to "unsend" an e-mail simply delay the e-mail being sent for a user-determined amount of time and then allow you to cancel the send before it happens. Alternatively, I've seen some services allow you to "unsend" e-mails if the recipient is ...

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

"new flow arrivals" means "arrivals of new flows". A flow is a TCP connection (roughly); each individual TCP connection is a separate "flow". So, this is talking about new TCP connections, and the rate/time at which the server receives new TCP connections. Contrarily to the statement you quoted, web requests won't necessarily be Poisson. There are many ...

5

You don't. Adding IP addresses makes no sense. It's like asking "How would I add an apple to a kiwi?" (Sounds like a setup for some bad joke, I know.) Not all things can be added. There's no reason why you'd ever need to add two arbitrary IP adresses. Based on the edited question, it appears that you want to design a scheme to assign IP addresses, and ...

5

1-2-3 is correctly sent and acknowledged so the sender's window is now over 4-5-6. 4 is received correctly and so it is acknowledged. This makes the window (currently over 4-5-6) slide to 5-6-7. However, since 5 was lost, 5 will not be acknowledged. Therefore, despite 6 being well received, 6 will not be acknowledged as well. Meanwhile the sender sends 7 ...

5

If the computer starts in the middle of the stream, it has no way to know—it will be completely confused. Fortunately, that's not how the protocol works. The computer and terminal have to sync up before they can communicate. There are a few different ways of doing that, but once they're in sync (which includes agreeing on how long each 1 or 0 should last), ...

5

So, how does the computer find out the MAC address of the server? It doesn't. The MAC address only has validity inside a local area network (LAN), which, as the name says, is local. Unless the destination IP address resides in the same network as your machine, what it does is create a packet destined to the target IP address and forward it to its default ...

4

Your suspicion is correct: under these conditions, there is no way to guarantee a solution. Yours is a consensus problem, and there is a general result that states the impossibility of consensus in an asynchronous network with failures. This result is sometimes known as FLP after its authors (Fischer, Lynch and Paterson) [FLP]. The original consensus states ...

4

I only know very little about this topic. But from the algorithmic point of view there is a very nice review article from Susanne Albers, which is probably a good starting point.

4

This is a simple question on the definition of routing tables. I will add a brief explanation. Let's take the SALES router. It has two interfaces. The interface top (65.21.1.2) is connected to the network 65.21.1.0/24. The interface bottom (65.21.6.1) is connected to the network 65.21.6.0/23. This can be expressed as the following routing table: network ...

4

Modulation: Way to send signals (information) from one place to another. exanmple: you have a carrier wave like a sine wave and your Information signal 10101010 or any analog signal you want to transmit. You simply just change the properties of carrier wave with respect to your signal. Like: AM, FM, ASK, PSK, QAM Encoding: Somthing else than modulation. It ...

4

Encoding is about assigning different binary codes according to a particular algorithm. Modulation is about changing the properties of one signal value according to a certain properties (Amplitude, Phase, or Frequency) of another signal.

4

One very close overlap is of course Computer Architecture. Another close overlap (which incidentally happens to be my speciality) is EDA (CAD for VLSI designers). EDA requires development of fairly sophisticated parallel algorithms for things such as routing, RC extraction, optical proximity correction, etc., as well as understanding of the underlying VLSI ...

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

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 ...

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