CS 6250 SET ALL ANSWERS AND QUESTIONS SET A+
✔✔What is a bridge, and how does it "learn"? - ✔✔A bridge is a device with multiple
inputs/outputs. A bridge transfers frames from an input to one (or multiple) outputs.
Though it doesn't need to forward all the frames it receives.
A learning bridge learns, populates and maintains a forwarding table. The bridge
consults that table so that it only forwards frames on specific ports, rather than over all
ports. So how does the bridge learn? When the bridge receives any frame this is a
"learning opportunity" to know which hosts are reachable through which ports. This is
because the bridge can view the port over which a frame arrives and the source host.
✔✔What is a distributed algorithm? - ✔✔A distributed algorithm is an algorithm
designed to run on computer hardware constructed from interconnected processors.
Distributed algorithms are used in many varied application areas of distributed
computing, such as telecommunications, scientific computing, distributed information
processing, and real-time process control.
https://en.wikipedia.org/wiki/Distributed_algorithm
✔✔Explain the Spanning Tree Algorithm. - ✔✔The algorithm runs in "rounds" and at
every round each node sends to each neighbor node a configuration message with
three fields: a) the sending node's ID, b) the ID of the roots as perceived by the sending
node, and c) the number of hops between that (perceived) root and the sending node.
At every round, each node keeps track of the best configuration message that it has
received so far, and it compares that against the configuration messages it receives
from neighboring nodes at that round.
At the very first round of the algorithm, every node thinks that it is the root.
✔✔What is the purpose of the Spanning Tree Algorithm? - ✔✔The purpose of the
Spanning Tree Algorithm is to prevent broadcast storm through the network and cause
stalls or heavy congestion.
The spanning tree also prevents loops (cycles) from occurring in a network.
,✔✔What does the transport layer provide? - ✔✔The transport layer is the logical
connection. Transport layer consists of TCP and UDP protocols. The transport layer
provides an end-to-end connection between two applications that are running on
different hosts. Of course the transport layer provides this logical connection regardless
if the hosts are in the same network. User datagram protocol (UDP) and the
Transmission Control Protocol (TCP).
-Some applications that use UDP include video streaming, DNS, and Online Multiplayer
Games.
- Some applications that use TCP include Web, SMTP and FTP
✔✔What is a packet for the transport layer called? - ✔✔WA segment. (If it is a TCP
packet)
Datagram (If it is UDP packet)
✔✔What are the two main protocols within the transport layer? - ✔✔User datagram
protocol (UDP) and the Transmission Control Protocol (TCP).
✔✔What is multiplexing, and why is it necessary? - ✔✔Multiplexing is the ability for a
host to run multiple applications using the network simultaneously. It's necessary to
ensure multi-tasking with the host.
Multiplexing essentially combines multiple signals into one with 1 IP and multiple ports,
where each application binds itself to a port. Allow multiple apps to communite to
different servers with 1 IP address
✔✔Describe the two types of multiplexing/demultiplexing. - ✔✔1. Connectionless
Multiplexing/Demultiplexing: Uses the UDP socket that consists of a two-tuple made up
of a destination IP address and port. Transport layer identifies port from receiverd
datagram that includes the port.
2. Connection Oriented Multiplexing/Demultiplexing: Uses the TCP socket and is a four-
tuple that consists of IP address, source port, destination IP address, destination port.
✔✔What are the differences between UDP and TCP? - ✔✔UDP is A.) an unreliable
protocol as it lacks the mechanism that TCP has in place. B.) a connectionless protocol
that does not require the establishment of a connection (example: three way
handshake) before sending packets. Some benefits to UDP are: A.) no congestion
control or similar mechanisms. B.) No connection management overhead. The UDP
packet structure is a 64 bits header consisting: 1.) Source and destination ports. 2.)
Length of the UDP segment (header and data). 3.) Checksum (an error checking
mechanism). Since there is no guarantee for link-by-link reliability, we need a basis
mechanism in place for error checking. The UDP sender adds the src port, the dest port
and the packet length. Then it takes the sum and performs an 1s complement (all 0s are
turned to 1 and all 1s are turned to 0s). If during the sum there is an overflow, it's
wrapped around. The receiver adds all the four 16-bit words (including the checksum).
The result should be all 1s unless an error has occurred.
To detect errors, the receiver adds the four words (the three original words and the
checksum). If the sum contains a zero, the receiver knows there has been an error.
, While all one-bit errors will be detected, but two-bit errors can be undetected (e.g., if the
last digit of the first word is converted to a 0 and the last digit of the second word is
converted to a 1).
TCP is a protocol consisting of a three-way handshake and a connection teardown:
3-way Handshake:
Step 1: The TCP client sends a special segment, (containing no data) and with SYN bit
set to 1. The Client also generates an initial sequence number (client_isn) and includes
it in this special TCP SYN segment.
Step 2: The Server upon receiving this packet, allocates the required resources for the
connection and sends back the special 'connection-granted' segment which we call
✔✔When would an application layer protocol choose UDP over TCP? - ✔✔When
developers need just a simple mechanism for transmission control. Typically, use UDP
in applications where speed is more critical than reliability. For example, it may be better
to use UDP in an application sending data from a fast acquisition where it is acceptable
to lose some data points. You can also use UDP to broadcast to any machine(s)
listening to the server.
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9ZLSA0#:~:text=T
ypically%2C%20use%20UDP%20in%20applications,s)%20listening%20to%20the%20s
erver.
✔✔Explain the TCP Three-way Handshake. - ✔✔3-way Handshake:
Step 1: The TCP client sends a special segment, (containing no data) and with SYN bit
set to 1. The Client also generates an initial sequence number (client_isn) and includes
it in this special TCP SYN segment.
Step 2: The Server upon receiving this packet, allocates the required resources for the
connection and sends back the special 'connection-granted' segment which we call
SYNACK. This packet has SYN bit set to 1, ack field containing (client_isn+1) value and
a randomly chosen initial sequence number in the sequence number field.
Step 3: When the client receives the SYNACK segment, it also allocates buffer and
resources for the connection and sends an acknowledgment with SYN bit set to 0.
✔✔Explain the TCP connection teardown. - ✔✔Teardown:
Step 1: When client wants to end the connection, it sends a segment with FIN bit set to
1 to the server.
Step 2: Server acknowledges that it has received the connection closing request (FIN-
ACK) and is now working on closing the connection.
Step 3: The Server then sends a segment with FIN bit set to 1, indicating that
connection is closed.
✔✔What is a bridge, and how does it "learn"? - ✔✔A bridge is a device with multiple
inputs/outputs. A bridge transfers frames from an input to one (or multiple) outputs.
Though it doesn't need to forward all the frames it receives.
A learning bridge learns, populates and maintains a forwarding table. The bridge
consults that table so that it only forwards frames on specific ports, rather than over all
ports. So how does the bridge learn? When the bridge receives any frame this is a
"learning opportunity" to know which hosts are reachable through which ports. This is
because the bridge can view the port over which a frame arrives and the source host.
✔✔What is a distributed algorithm? - ✔✔A distributed algorithm is an algorithm
designed to run on computer hardware constructed from interconnected processors.
Distributed algorithms are used in many varied application areas of distributed
computing, such as telecommunications, scientific computing, distributed information
processing, and real-time process control.
https://en.wikipedia.org/wiki/Distributed_algorithm
✔✔Explain the Spanning Tree Algorithm. - ✔✔The algorithm runs in "rounds" and at
every round each node sends to each neighbor node a configuration message with
three fields: a) the sending node's ID, b) the ID of the roots as perceived by the sending
node, and c) the number of hops between that (perceived) root and the sending node.
At every round, each node keeps track of the best configuration message that it has
received so far, and it compares that against the configuration messages it receives
from neighboring nodes at that round.
At the very first round of the algorithm, every node thinks that it is the root.
✔✔What is the purpose of the Spanning Tree Algorithm? - ✔✔The purpose of the
Spanning Tree Algorithm is to prevent broadcast storm through the network and cause
stalls or heavy congestion.
The spanning tree also prevents loops (cycles) from occurring in a network.
,✔✔What does the transport layer provide? - ✔✔The transport layer is the logical
connection. Transport layer consists of TCP and UDP protocols. The transport layer
provides an end-to-end connection between two applications that are running on
different hosts. Of course the transport layer provides this logical connection regardless
if the hosts are in the same network. User datagram protocol (UDP) and the
Transmission Control Protocol (TCP).
-Some applications that use UDP include video streaming, DNS, and Online Multiplayer
Games.
- Some applications that use TCP include Web, SMTP and FTP
✔✔What is a packet for the transport layer called? - ✔✔WA segment. (If it is a TCP
packet)
Datagram (If it is UDP packet)
✔✔What are the two main protocols within the transport layer? - ✔✔User datagram
protocol (UDP) and the Transmission Control Protocol (TCP).
✔✔What is multiplexing, and why is it necessary? - ✔✔Multiplexing is the ability for a
host to run multiple applications using the network simultaneously. It's necessary to
ensure multi-tasking with the host.
Multiplexing essentially combines multiple signals into one with 1 IP and multiple ports,
where each application binds itself to a port. Allow multiple apps to communite to
different servers with 1 IP address
✔✔Describe the two types of multiplexing/demultiplexing. - ✔✔1. Connectionless
Multiplexing/Demultiplexing: Uses the UDP socket that consists of a two-tuple made up
of a destination IP address and port. Transport layer identifies port from receiverd
datagram that includes the port.
2. Connection Oriented Multiplexing/Demultiplexing: Uses the TCP socket and is a four-
tuple that consists of IP address, source port, destination IP address, destination port.
✔✔What are the differences between UDP and TCP? - ✔✔UDP is A.) an unreliable
protocol as it lacks the mechanism that TCP has in place. B.) a connectionless protocol
that does not require the establishment of a connection (example: three way
handshake) before sending packets. Some benefits to UDP are: A.) no congestion
control or similar mechanisms. B.) No connection management overhead. The UDP
packet structure is a 64 bits header consisting: 1.) Source and destination ports. 2.)
Length of the UDP segment (header and data). 3.) Checksum (an error checking
mechanism). Since there is no guarantee for link-by-link reliability, we need a basis
mechanism in place for error checking. The UDP sender adds the src port, the dest port
and the packet length. Then it takes the sum and performs an 1s complement (all 0s are
turned to 1 and all 1s are turned to 0s). If during the sum there is an overflow, it's
wrapped around. The receiver adds all the four 16-bit words (including the checksum).
The result should be all 1s unless an error has occurred.
To detect errors, the receiver adds the four words (the three original words and the
checksum). If the sum contains a zero, the receiver knows there has been an error.
, While all one-bit errors will be detected, but two-bit errors can be undetected (e.g., if the
last digit of the first word is converted to a 0 and the last digit of the second word is
converted to a 1).
TCP is a protocol consisting of a three-way handshake and a connection teardown:
3-way Handshake:
Step 1: The TCP client sends a special segment, (containing no data) and with SYN bit
set to 1. The Client also generates an initial sequence number (client_isn) and includes
it in this special TCP SYN segment.
Step 2: The Server upon receiving this packet, allocates the required resources for the
connection and sends back the special 'connection-granted' segment which we call
✔✔When would an application layer protocol choose UDP over TCP? - ✔✔When
developers need just a simple mechanism for transmission control. Typically, use UDP
in applications where speed is more critical than reliability. For example, it may be better
to use UDP in an application sending data from a fast acquisition where it is acceptable
to lose some data points. You can also use UDP to broadcast to any machine(s)
listening to the server.
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9ZLSA0#:~:text=T
ypically%2C%20use%20UDP%20in%20applications,s)%20listening%20to%20the%20s
erver.
✔✔Explain the TCP Three-way Handshake. - ✔✔3-way Handshake:
Step 1: The TCP client sends a special segment, (containing no data) and with SYN bit
set to 1. The Client also generates an initial sequence number (client_isn) and includes
it in this special TCP SYN segment.
Step 2: The Server upon receiving this packet, allocates the required resources for the
connection and sends back the special 'connection-granted' segment which we call
SYNACK. This packet has SYN bit set to 1, ack field containing (client_isn+1) value and
a randomly chosen initial sequence number in the sequence number field.
Step 3: When the client receives the SYNACK segment, it also allocates buffer and
resources for the connection and sends an acknowledgment with SYN bit set to 0.
✔✔Explain the TCP connection teardown. - ✔✔Teardown:
Step 1: When client wants to end the connection, it sends a segment with FIN bit set to
1 to the server.
Step 2: Server acknowledges that it has received the connection closing request (FIN-
ACK) and is now working on closing the connection.
Step 3: The Server then sends a segment with FIN bit set to 1, indicating that
connection is closed.