221 votes
Accepted

Why do we need a 3-way handshake? Why not just 2-way?

Break down the handshake into what it is really doing. In TCP, the two parties keep track of what they have sent by using a Sequence number. Effectively it ends up being a running byte count of ...
user avatar
  • 13.9k
61 votes
Accepted

Does UDP do anything at all?

Interesting perspective and question! Yes, most of what UDP does is supply a standard means for multiple applications to co-exist using the same IP address, by defining the concept of UDP ports. The ...
user avatar
  • 5,182
54 votes
Accepted

Why does the IPv6 header not include a checksum?

One of the ideas around IPv6 was to speed up packet forwarding. To that end, several decisions were made. For example, the IPv6 header was greatly simplified and is a fixed length, unlike the variable ...
user avatar
  • 93.5k
47 votes

Does UDP do anything at all?

UDP is a transport protocol, like TCP. That means it provides a protocol for an application to use IP. Like TCP, UDP has addressing (ports) to which applications bind so that datagrams destined to ...
user avatar
  • 93.5k
31 votes
Accepted

Why does Ethernet use EtherType field to determine what type of packet is in a frame instead of just looking at the packet header?

The receiver has to look at the Ethernet frame to decide its contents, which might be DECnet, Appletalk or many other things -- Internet Protocol is only one of many protocols running on top of ...
user avatar
  • 15.9k
29 votes
Accepted

Is a TCP server limited to 65535 clients?

The short answer is no, that's not the limit. A TCP Port field is 2x bytes and holds a quantity of 65536. This number limits the amount of addresses a server can have. But this doesn't limit the ...
user avatar
27 votes

Is a TCP three-way handshake required for an HTTP POST?

If you are asking in a general sense, then the answer is most definitely "yes", any HTTP method (like POST) requires a TCP connection, and the only way to initiate a TCP connection is to use ...
user avatar
  • 13.9k
27 votes

Why do we need a 3-way handshake? Why not just 2-way?

The three-way handshake is necessary because both parties need to synchronize their segment sequence numbers used during their transmission. For this, each of them sends (in turn) a SYN segment with ...
user avatar
  • 1,289
26 votes
Accepted

How can a TCP window size be allowed to be larger than the maximum size of an ethernet packet?

The TCP window size is generally independent of the maximum segment size which depends on the maximum transfer unit which in turn depends on the maximum frame size. Let's start low. The maximum frame ...
user avatar
  • 70.5k
25 votes
Accepted

acknowledgment by TCP does not guarantee that the data has been delivered

This part of the RFC is about passing responsibility over to the operating system or whatever is the next stage of the process. It's fundamentally concerned with the separation of layers. An ...
user avatar
  • 15.9k
25 votes

Why does the IPv6 header not include a checksum?

Because it's redundant. All the common link-layer protocols, like Ethernet or WiFi, have their own error checking and error correction mechanisms, so physical transmission errors are already unlikely....
user avatar
  • 350
24 votes

Why do we need a 3-way handshake? Why not just 2-way?

In order for the connection to work, each side needs to verify that it can send packets to the other side. The only way to be sure that you got a packet to the other side is by getting a packet from ...
user avatar
23 votes
Accepted

Why are IPv4 addresses 32-bit?

Here's a link to a Hangout with Vint Cerf (Apr. 2014) where he explains how he thought that this internet was supposed to be an experiment only: As we were thinking about the Internet (thinking ...
user avatar
  • 368
23 votes
Accepted

Where is Ping's "round-trip time" stored in the IP header?

The round trip time is not actually stored anywhere. The sending host remembers the time it sends each ICMP Echo Request message, using ICMP's 16-bit identifier and sequence fields. When it gets the ...
user avatar
  • 15.9k
22 votes
Accepted

Does TCP open a new connection for every packet that is sent?

One of my buddies is saying that TCP will be a problem for this gateway because it is going to establish a new connection for every message it sends (not kafka but the underlying transportation ...
user avatar
  • 336
22 votes

Difference between :: and ::1

:: is the unspecified address (0:0:0:0:0:0:0:0), and it is only used in packets as the source address of a host that does not yet have an address and is trying to get an address assigned. What you see ...
user avatar
  • 93.5k
20 votes
Accepted

Why does WLAN use Collision Avoidance and not Collison detection?

In a wired CSMA/CD Ethernet environment, it is possible to detect a collision because there are separate TX and RX pairs (using the example of 10BaseT). If a half-duplex 10BaseT NIC sends a frame on ...
user avatar
  • 26.7k
20 votes

Worst-case efficiency of PPP escaping mechanism

You might care to read RFC 1547 "Requirements for an Internet Standard Point-to-Point Protocol" which explains how the PPP was chosen. The thing I'd suggest you are missing is that ...
user avatar
  • 15.9k
19 votes

Why does WLAN use Collision Avoidance and not Collison detection?

Avoidance is used for the very simple fact that every radio ("client") is not necessarily in range of each other. Thus, without the AP coordinating who can talk, distant radios may step on each other ...
user avatar
  • 29.6k
19 votes

Why is the U/L bit inversed in EUI64?

RFC 4291 provides instructions on how to create the EUI64 address: Links or Nodes with IEEE 802 48-bit MACs [EUI64] defines a method to create an IEEE EUI-64 identifier from an IEEE 48-bit MAC ...
user avatar
  • 13.9k
19 votes
Accepted

Reason for half-duplex mode in Ethernet?

The reasons for half-duplex ethernet are as you understand them. In fact, there was a movement to not include half-duplex for 1000Base-T, but it still made it into the standard. For 10 Gb ethernet, ...
user avatar
  • 93.5k
17 votes
Accepted

Why the first octet of a MAC address always end with a binary 0?

You may notice that two least-significant bits of the most-significant byte of a 48-bit MAC address are usually set to 0 (as in all your examples). There are two flags in the most-significant byte of ...
user avatar
  • 93.5k
16 votes

How do wifi clients detect SSIDs from APs?

The IEEE 802.11 standards define two methods for a client device to discover wireless networks in the area. Both methods are based on using 802.11 management frames as defined in these standards. ...
user avatar
  • 26.7k
14 votes

Raw IP communication?

[summarizing the question] Can I communicate with raw IP datagrams, without a transport layer? Short answer: Yes, but: It's an exceptionally strange way to build an application (you'd have to tell ...
user avatar
14 votes
Accepted

Why is the protocol field part of an IP header?

Remember, bits arrive on a NIC as a series of 1's and 0's. Something has to exist to dictate how the next series of 1's and 0's should be interpreted. Ethernet2 is the defacto standard for L2, as ...
user avatar
  • 13.9k
14 votes

Could IPv6 make NAT / port numbers redundant?

IPv6 does not have a NAT standard as IPv4 does (NAT breaks the end-to-end premise of IP, and IPv6 was designed to restore that). There is an experimental RFC for IPv6 NAT, but it is a one-to-one NAT ...
user avatar
  • 93.5k
14 votes

Does UDP do anything at all?

I would encourage you to look at how higher level protocols that utilize UDP actually use it. Classic and well documented examples are DNS (in most cases at least, it's possible to do DNS over TCP but ...
user avatar
14 votes

Does the destination port change during TCP three-way handshake?

No, a TCP connection is uniquely identified by both source and destination IP and TCP (port) addresses. Changing any one of those will break the TCP connection (or prevent it from forming in the ...
user avatar
  • 93.5k
13 votes
Accepted

Is a DHCP offer packet a broadcast or unicast?

Be aware of the broadcast flag, see RFC2131 (page 24): A client that cannot receive unicast IP datagrams until its protocol software has been configured with an IP address SHOULD set the ...
user avatar

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