237 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 ...
Eddie's user avatar
  • 15k
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 ...
Jeff Wheeler's user avatar
  • 5,449
57 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 ...
Ron Maupin's user avatar
  • 98.8k
48 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 ...
Ron Maupin's user avatar
  • 98.8k
34 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 ...
Kind Contributor's user avatar
32 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 ...
jonathanjo's user avatar
  • 16.2k
29 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 ...
Zac67's user avatar
  • 82.7k
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 ...
dr_'s user avatar
  • 1,299
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....
Philipp's user avatar
  • 370
26 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 ...
The Spooniest's user avatar
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 ...
jonathanjo's user avatar
  • 16.2k
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 ...
jonathanjo's user avatar
  • 16.2k
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 ...
Kevin's 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 ...
Ron Maupin's user avatar
  • 98.8k
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 ...
jonathanjo's user avatar
  • 16.2k
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 ...
Ron Maupin's user avatar
  • 98.8k
15 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 ...
Austin Hemmelgarn's 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 ...
Eddie's user avatar
  • 15k
14 votes

Usage of Flow label in IPv6 header?

The above answer isn't really correct. The flow label isn't designed for packet ordering - IP does not care about order, it is an unreliable services whose only goal is delivery on layer3. Better way ...
J M-A's user avatar
  • 141
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 ...
Ron Maupin's user avatar
  • 98.8k
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 ...
Ron Maupin's user avatar
  • 98.8k
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 ...
Steffen Ullrich's user avatar
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 ...
Zac67's user avatar
  • 82.7k
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 ...
kasperd's user avatar
  • 764
13 votes
Accepted

Do these 2 packets belong to the same tcp socket?

First, TCP does not care about single packets. If these are just data packets without any previous connection establishment than they will be simply dropped, no sockets involved. So I'm assuming that ...
Steffen Ullrich's user avatar
12 votes

Why is the ICMP protocol considered to run at layer 3 on the Wikipedia page?

The original RFC for ICMP, RFC777 state that: ICMP, uses the basic support of IP as if it were a higher level protocol, however, ICMP is actually an integral part of IP, and must be implemented by ...
JFL's user avatar
  • 19.5k
12 votes
Accepted

Why do we need FTP when there are layers to transmit data?

The network layers provide a framework to structure the complex functions for sending data over a network - as byte stream, in dialogue, telegram style datagrams, ... On the very top, the application ...
Zac67's user avatar
  • 82.7k
12 votes

Difference between :: and ::1

"::" is the ipv6 "unspecified address" (the equivilent IPv4 address is "0.0.0.0"). When binding a socket* it is used to indicate that the socket will listen on all local ...
Peter Green's user avatar
  • 13.2k
11 votes
Accepted

Can two different applications bind the same port on a host if they use different protocols?

Think of it this way: TCP is one street, UDP is another street, and port numbers are the addresses of the houses (ports) on the streets, just as they are layer-4 addresses. Each street has the same ...
Ron Maupin's user avatar
  • 98.8k
11 votes
Accepted

Port Numbers related doubt

User applications use random ephemeral ports for outgoing connections. TCP port 80 is only the server side's default port for WWW. A TCP socket connection consists of source IP, source port, ...
Zac67's user avatar
  • 82.7k

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