229 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 ...
  • 14.3k
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 ...
  • 5,354
55 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 ...
  • 96.7k
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 ...
  • 96.7k
31 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 ...
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 ...
29 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 ...
  • 14.3k
28 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 ...
  • 1,299
28 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 ...
  • 76.8k
27 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....
  • 370
25 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 ...
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 ...
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 ...
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 ...
  • 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 ...
  • 96.7k
20 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 ...
  • 14.3k
20 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, ...
  • 96.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 ...
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 ...
  • 96.7k
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. ...
  • 27k
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 ...
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 ...
  • 14.3k
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 ...
  • 96.7k
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 ...
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 ...
  • 96.7k
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 ...
13 votes

Is a DHCP offer packet a broadcast or unicast?

The answer is that it can be either broadcast or unicast - and in some cases both unicast and broadcast before it reaches the client when an ip helper-address is used. A client doesn't actually have ...
  • 27k
13 votes
Accepted

Is there a way to ignore client's TCP FIN and keep TCP connection?

Does that make any sense? No. The FIN is send because the sender decided that it wants to close the connection. Even if you would change the recipient that it will ignore the FIN the sender side of ...
13 votes

What does the naming convention for Ethernet standards mean: 1000BASE-T, BASE-TX, BASE-SX, etc.? What is the meaning of the components of the name?

BASE indicates baseband signaling - there is no modulated carrier, the frequency starts near zero and extends to a certain cut-off frequency. BROAD indicates broadband modulation - there is a wide ...
  • 76.8k
13 votes
Accepted

Why do IPv6 unique local addresses have to have a /48 prefix?

The requirement exists to prevent collisions. This is a bit more important than most people recognize. Even if you have systems which currently don't communicate with other systems over the internet ...
  • 764

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