Chapter 3
what is rdt 2.0?
(RDT) 2.0 protocol works on a Reliable Data Transfer over a bit error channel.
How the transport layer converts the application messages into transport-layer segments?
1- Breaking them into smaller chunks 2- Adding a transport-layer header to each chunk. 3- The transport-layer then passes the segment to the network-layer
Why should a developer choose UDP?
1- Faster 2- No connection establishment 3- No connection state 4- Small packet header overhead
list the steps of the routine when multiplexing and demultiplexing (TCP SOCKET)
1- The TCP server application always has a welcoming socket (waiting to for requests from TCP clients on port number X) 2- The TCP client creates a socket and sends a connection establishment request 3- The server OS receives the incoming connection-request segment on port X , it locates the server process that is waiting to accept a connection on port number X , then creates a new TCP socket which will be identified by 4 fields 4- With the TCP connection in place, client and server can now send data to each other
What does transport-layer multiplexing requires to work?
1- that sockets have unique identifiers 2- that each segment have special fields that indicate the socket to which the segment is to be delivered
What are consequences of pipelining?
1-The range of sequence numbers must be increased so each in-transit packet must have a unique sequence number 2-Sender and receiver may have to buffer more than one packet.
What is a port number?
16-bit number ranging from 0 to 65535.
What is the destination port number for ALL the segments sent to a web server?
80 including both the initial connection establishment segments and the segments carrying HTTP request messages
What is port scanning?
A port scanner is an application designed to check a server or host for open ports.
What is pipelining?
A technique where the sender is allowed to send multiple packets without waiting for acknowledgements
What is the difference between Transport and Network Layers?
A transport-layer protocol provides logical communication between processes running on different hosts. Whereas a network-layer protocol provides a logical communication between hosts.
What are ARQ protocols?
Automatic Repeat ReQuest (ARQ) is an error-control protocol that automatically initiates a call to retransmit any data packet or frame after receiving flawed or incorrect data.
in Go Back N approach what happens if a packet is lost? [Sender]
after a certain time a timeout will occur and the sender will retransmit all the packets in the sending window
How is UDP faster?
as soon as the application passes data to UDP, UDP will package the data inside a segment and immediately pass it to the network layer. TCP's congestion control can delay the sending of the segment and will try sending the packet until acknowledgment is received
How long must the sender wait?
at least as long as a round-trip delay between the sender and receiver plus whatever amount of time is needed to process a packet at the receiver
Why is it said that TCP has a 3 way handshake?
because when establishing the connection the client first sends a special TCP segment, the server responds with a second special TCP segment and the client answer again with a third special TCP segment. The first two cannot contain a payload while the third can.
how is a UDP socket fully identified?
by a two-tuple consisting of: destination IP address destination port number.
how does rdt 2.1 solve the fetal in rdt 2.0?
by making the sender add a sequence numbers to identify packets (0 or 1 only) and add a new field to the data packet to store that number
how is a TCP socket fully identified?
by the four-tuple: source IP address source port number destination IP address destination port number
How persistent HTTP works with sockets?
client and server will exchange messages via the same server socket
Where are transport layer protocols implemented?
end systems but not in network routers
new mechanisms in rdt 2.0 beyond rdt 1.0
error detection using checksum feedback : control messages such as positive and negative acknowledgments
Go Back N approach has cumulative acknowledgements, what does that mean?
if sender receives ACK3 he will know that all thepackets from 0 to 3 have been received, even if hasn't received ACK2.
What is the responsibility of reliable data transfer protocol?
implement reliable data service: no transferred data bits are corrupted or lost all are delivered in the order in which they were sent.
What is rdt 2.2?
is a negative acknowledgment free protocol instead it sends acknowledgment for the last correctly received packet
flaw in the RDT 2.0 protocol
it does not account for the possibility that the ACK or NAK packet could be corrupted
Why IP is said to be an unreliable service?
it doesn't guarantee segment delivery it doesn't guarantee orderly delivery of segments it doesn't guarantee the integrity of the data in the segments
Does TCP uses Go-Back-N or Selective Repeat?
it is a hybrid of both Acknowledgments are cumulative (GBN) In fast retransmit only the missing packets are resent (SR)
What is the purpose of the source port number, if UDP sockets don't use it for identification?
it serves as part of a "return address" when B wants to send a segment back to A, the destination port in the B-to-A segment will take its value from the source port value of the A-to-B segment. (The complete return address is A's IP address and the source port number.)
What is the welcoming socket used for?
it waits for connection establishment requests from TCP clients on port number X
What is the most used port scanner?
nmap
What is receiver window size in Go Back N?
one
What is the more efficient alternative to stop and wait protocols?
pipelining
example of stop and wait protocol?
rdt 2.0
What is rdt 3.0?
same as rdt 2.0 but assumes that packets (data or ACK) can be lost not just corrupted
What is rdt 2.1 protocol?
similar to rdt 2.0 but assumes that positive and negative acknowledgment packets can be corrupted
What are the fields in a UDP header?
source port number destination port number checksum length
What will identify the socket that the server creates?
source port number in the segment(cleint) IP address of source host (client) the destination port number in the segment(its own) its own IP address
What is the length field inn UDP header used for?
specifies the number of bytes in the UDP segment (header + data)
How is flow control different from congestion control?
the former preventing overflow at the receiver side and being actuated only by the two end points, the latter preventing congestion of the network.
What determines the MAX amount of data that can be sent in a TCP segment
the maximum segment size (MSS). TCP therefore splits data into smaller chunks and pairs each chunk of client data with a TCP header thereby forming TCP segments which are passed down to the network layer
What is a send window?
the number (N) of packets that the user is currently sending and is waiting for ACK for
in Go Back N approach what happens if a packet is lost? [Receiver]
the receiver discards all the segments with sequence number greater than the sequence number of the dropped packet, and sends ACK with this sequence number of the last in order received packet
What happens in rdt 2.1 when the receiver receives an out of order packet or duplicate packet?
the receiver sends a positive acknowledgment for that packet but it does not use the data sense it already has it
What happens if two arriving TCP segments with different source IP addresses or source port numbers?
the segments will be directed to two different sockets because TCP sockets are identified by the 4 field so all the 4 field are used to direct (demultiplex) the segment to the appropriate socket
What happens in rdt 3.0 if a packet experienced delay but was not lost?
the sender will retransmit the packet even though neither the data packet nor its ACK have been lost and this introduces duplicate data packets in the sender-to-receiver channel
Each segment has special fields that indicate the socket to which the segment is delivered, what are those fields?
the source port number field the destination port number field
What if two UDP segments have different source IP addresses and/or source port numbers, but have the same destination IP address and destination port number what will happen?
the two segments will be directed to the same destination process via the same destination socket
are threaded or non threaded servers more common today?
threaded it is common to use only one process and create a new thread with a new connection socket for each new client connection
In TCP, what triggers retransmission of segments?
timeout events duplicate ACK
What are packets called in the transport layer?
transport-layer segments
What is Connection-Oriented Multiplexing and Demultiplexing?
uses TCP
What is Connectionless Multiplexing and Demultiplexing?
uses UDP
When does TCP receiver sends duplicate ACK?
when an out of order segment arrives and it is sequence number is higher than expected sequence number so receiver sends duplicate ACK indicating the sequence number for the next expected bytewhat
Can a developer have reliable data transfer when using UDP?
yes if reliability is built into the application itself
What is flow control?
Flow control is a speed-matching service, matching the rate at which the sender is sending against the rate at which the receiving application is readingH
How does nmap works?
For TCP it scans port looking for port accepting connections, for UDP looking for UDP ports that respond to transmitted UDP segments. It then returns a list of open, closed or unreachable ports.
What are the 2 basic approaches toward pipelined error recovery?
Go-Back-N (GBN) Selective Repeat.
What is the internet network layer protocol?
IP (Internet Protocol)
What is a stop-and-wait protocol?
In Stop and wait protocol, a sender after sending a frame waits for acknowledgement of the frame and sends the next frame only when acknowledgement of the frame has received.
What is UDP checksum?
It provides error detection, to determine whether the bits in the segment have been altered as it moves from source to destination
What is receiver window size in selective repeat?
N
what is the sender window size in both selective repeat and go back N
N
Does UDP has flow control?
NO
Why does DNS uses UDP?
No connection establishment UDP just send data without any formal preliminaries and without introducing any delay
Is multiplexing and demultiplexing only relevant for Internet transport protocols?
No, it's important to realize that they are concerns whenever a single protocol at one layer (at the transport layer or elsewhere) is used by multiple protocols at the next higher layer
is TCP connection an end-to-end TDM or FDM circuit or is it a virtual circuit?
None, because the connection state resides entirely in the two end systems and not in the intermediate network elements.
What are well known port numbers?
Port numbers ranging from 0 to 1023 are called well-known port numbers and are restricted, reserved for us by well-known application protocols such as HTTP(80) and FTP (21)
What is the difference between Go Back N and selective repeat?
Selective Repeat avoid unnecessary retransmissions by having the sender retransmit only those packets it suspects were received in error at the receiver so it uses individual acknowledgements (opposed to cumulative)
Why do we need flow control in TCP?
So the sender does not overflow the receiver's buffer by sending too much data too quickly
How IP becomes reliable?
TCP converts IP's unreliable service between end systems into a reliable data transport service between processes
What is demultiplexing?
The job of delivering the data in a transport-layer segment to the correct socket is called demultiplexing
What is multiplexing?
The job of gathering data chunks at the source host from different sockets, encapsulating each data chunk with header information (which will be used in demultiplexing) to create segments and passing the segments to the networks layer is called multiplexing.
What happens in rdt 2.2 when a sender receives two ACKs for the same packet (duplicate ACKs)?
The sender knows that the receiver did not correctly receive the packet following the packet that is being ACKed twice.
How does rdt 3.0 deal with lost packets?
The sender waits a reasonable amount of time for an ACK after that time has passed it will retransmit the packet
What is rdt 1.0?
This consists of reliable data transfer over a reliable data channel- no loss of packets, no bit errors
two types of transport-layer protocols available to the application layer
UDP [User Datagram Protocol] which provides an unreliable, connectionless service to the invoking application. TCP [Transmission Control Protocol] which provides a reliable, connection-oriented service to the invoking application.
What does it mean to say that UDP has No connection state?
UDP application doesn't need to keep track of the users or to keep connections alive, it can typically support many more active clients than a TCP application.
What is the Fast Retransmit?
When the TCP sender receives three duplicate ACK for the same data it takes this as an indication that the segment following the segment that has been ACKed three times has been lost. the TCP sender retransmits the missing segment before that segment's timer expires
What does is it mean that TCP is point-to-point?
a connection is always between a single sender and a single receiver, no multicast possible
What kind of data transmission service does TCP provide?
a full-duplex service: meaning a connection between process A and process B, application layer data can flow from A to B and, at the same time, from B to A.
How non- persistent HTTP works with sockets?
a new TCP connection is created and closed for every request/response and hence a new socket is created and closed for every request/response
What is a threaded server?
a threaded server has multiple sockets for one process
How is flow control implemented?
a variable called the receive window(in the TCP segment) used to give the sender an idea of how much free buffer space is available at the receiver.
Why can TCP help IP become reliable?
Because TCP provides reliable data transfer using flow control, sequence numbers, acknowledgements and timers. TCP also provides congestion control
Why does UDP has a small packet header overhead?
Because UDP has 8 bytes of header overhead while TCP has 20 bytes
Why sockets need to have unique identifiers?
Because at any given time there can be more than one socket in the receiving host
Why UDP is said to be connectionless?
Because with UDP there is no handshaking between sending and receiving transport-layer entities before sending a segment
How can port scanning be used?
Can be used both by attackers and system administrator to find vulnerabilities in the target or to know which network applications are running on the hosts in their networks
example of an application layer protocol that typically uses UDP
DNS when a client doesn't receive a reply either it tries sending the query to another name server or it informs the invoking application that it can't get a reply
What does the connection establishment request contains?
Destination port Source port number Special connection establishment bit set in the TCP header
what is doubling the timeout interval?
Each time TCP retransmits, it sets the next timeout interval to twice the previous value.
what is transport-layer multiplexing and demultiplexing?
Extending host-to-host delivery to process-to-process delivery like how UDP and TCP extend IP
