click below
click below
Normal Size Small Size show me how
3 Transport Layer
CSC311 Computer Networking - Chapter 3: Transport Layer
| Question | Answer |
|---|---|
| What does a transport-layer protocol provide? | provides logical communication between application processes running on different hosts |
| Transport-layer protocols are implemented in end systems. Explain what happens on the sending side and the receiving side respectively. | - sender: breaks application messages into segments, passes to network layer - receiver: reassembles segments into messages, passes to application layer |
| Name the 2 transport layer protocols that are available to internet applications. | - TCP (Transmission Control Protocol) - UDP (User Datagram Protocol) |
| What is the main difference between the transport-layer and the network layer in terms of communication? | - transport layer provides logical communication between PROCESS - network layer provides logical communication between HOSTS |
| Use this analogy to explain the relation between the transport layer and the network layer: - 12 kids in Ann’s house sending letters to 12 kids in Bill’s house: Who/what are the application messages, processes, hosts, transport layer & network layer? | - application messages = letters in envelopes - processes = kids - hosts (also called end systems) = houses - transport-layer protocol = Ann and Bill - network-layer protocol = postal service (including mail carriers) |
| What is the role of the sender in the transport layer action? | Sender: - is passed an application-layer message - determines segment header fields values - creates segment - passes segment to IP |
| What is the role of the receiver in the transport layer action? | Receiver: - receives segment from IP - checks header values - extracts application-layer message - demultiplexes message up to application via socket |
| The two principal Internet transport protocols are TCP and UDP. What do these protocols provide respectively? | TCP: -reliable; delivers info in order -congestion control -flow control -connection setup UDP: -unreliable, unordered delivery -no-frills extension of “best-effort” IP |
| Multiplexing and demultiplexing is a service needed for all computer networks. How do each pf these services work? | multiplexing at sender: - handle data from multiple sockets, add transport header (later used for demultiplexing) demultiplexing at receiver: - use header info to deliver received segments to correct socket |
| How does multiplexing work in a host? | 1 host receives IP datagrams -each datagram has source & destination IP addr. -each datagram carries 1 transport-layer segment -each segment has source, destination port number 2 host uses IP addr. & port numbers to direct segment to correct socket |
| Connectionless Demultiplexing: what must one do when creating a socket? | must specify host-local port #: DatagramSocket mySocket1 = new DatagramSocket(12534); |
| Connectionless Demultiplexing: what must one specify when creating a datagram to send into the UDP socket? | must specify - destination IP address - destination port # |
| Connectionless Demultiplexing: what happens when the receiving host receives UDP segment? | - checks destination port # in segment - directs UDP segment to socket with that port # IP/UDP datagrams with SAME DESTINATION PORT #, but different source IP addresses and/or source port numbers will be directed to SAME SOCKET at receiving host. |
| Connection-Oriented Demultiplexing: What is the 4-tuple that a TCP socket is identified by? | - source IP address - source port number - destination IP address - destination port number |
| What happens when when a TCP segment arrives from the network to a host? | the host uses all four values to direct (demultiplex) the segment to the appropriate socket |
| The server host may support many simultaneous TCP connection sockets. How is this done? | - each socket is identified by its own 4-tuple - each socket is associated with a different connecting client |
| What does demultiplexing use in a UDP connection? | demultiplexing using destination port number (only) |
| What does demultiplexing use in a TCP connection? | demultiplexing using 4-tuple: - source IP address - source port number - destination IP address - destination port number |
| At which layers does multiplexing/demultiplexing take place? | Multiplexing/demultiplexing happens at all layers |
| Why can UDP be referred to as a "no frills" transport protocol? | - segments may be lost, delivered out of order to application - best effort service: “send and hope for the best” |
| Why is UDP said to be connectionless? | - there's no setup/ handshaking needed between UDP sender and receiver (no RTT included) - each UDP segment is handled independently of others |
| Why are some applications better suited for UDP? | 1) no connection establishment (which can add RTT delay) 2) simple: no connection state at sender or receiver 3) small header size 4) no congestion control - UDP can blast away as fast as desired! - can function in the face of congestion |
| Which application-layer protocols use UDP? | - streaming multimedia apps (loss tolerant, rate sensitive) - DNS - SNMP - HTTP/3 |
| What should one do if reliable transfer is needed over UDP (like in the case of HTTP/3)? | - add needed reliability at application layer - add congestion control at application layer |
| What are the UDP sender actions? | - is passed an application-layer message - determines UDP segment header fields values - creates UDP segment - passes segment to IP |
| What are the UDP receiver actions? | - receives segment from IP - checks header values - extracts application-layer message - demultiplexes message up to application via socket |
| What is the goal of the UDP checksum? | detect if errors (i.e., flipped bits) have been introduced into the segment |
| Name 2 services that are not available at the transport layer. | Services not available: -delay guarantees (there's no guarantee of delays) -bandwidth guarantees |
| What happens at the sender side of a UDP checksum? | - treat contents of UDP segment (including UDP header fields and IP addresses) as sequence of 16-bit integers - CHECKSUM: addition (one’s complement sum) of segment content - checksum value put into UDP checksum field |
| What happens at the receiver side of a UDP checksum? | - compute checksum of received segment - check if computed checksum equals checksum field value: --> not equal - error detected --> equal - no error detected |
| Name 3 advantages of UDP. | - no setup/handshaking needed (no RTT incurred) - can function when network service is compromised - helps with reliability (checksum) |
| What is an unreliable channel? | - data loss during transport - data received with errors - corrupted data during transport - unordered data at the reception - duplicated data |
| When is reliable data transfer implemented? | its to the sender and receiver side protocol that IMPLEMENTS reliable data transfer |
| Explain the 2-way communication over an unreliable channel. | Communication over unreliable channel is TWO-way: sender and receiver will exchange messages back and forth to IMPLEMENT one-way reliable data transfer |
| There's a sender and a receiver side in an unreliable channel. What does the amount of work to be done depend on? | How much work they’ll have to do depends on the IMPAIRMENTS introduced by channel – if the channel is perfect – no problem! |
| What does the complexity of reliable data transfer protocol depend on? | will depend (strongly) on characteristics of unreliable channel (lose, corrupt, reorder data?) |
| Does the sender and receiver in reliable service implementation know about the state? | Sender, receiver do not know the “state” of each other, e.g., was a message received? - unless communicated via a message |
| List the interfaces in a data transfer protocol., needed to make an unreliable channel reliable. | - rtd_send() - rdt_rcv() - udt_send() - deliver_data() |
| What does rdt_send() do? | - called from the application layer - passes data that has been received up to the application layer |
| What does udt_send() do? | - called by rdt to transfer packet over the unreliable channel to the receiver - this interface is in charge of sending the data that was received from the application layer into the channel itself |
| What does rdt_rcv() do? | - called when the packet arrives on the receiving side of the channel |
| What does deliver_data() do? | - called by rdt protocol to deliver data to the application layer |
| What is the direction of communication over an unreliable channel? | bidirectional |
| Name 4 problems an unreliable communication channel can experience + solutions for it. | 1Bit transm errors -checksum 2Packets received with errors -ACKs -NACKs -retrans for errored packets 3Packet loss during transm -timeout used to retransmit packet if no ACK receivd 4Packet duplication -seq no. to avoid duplicates after retrans |
| What implications do stop-and-wait models have on performance? | stop-and-wait models lead to performance degradation |
| Explain pipelining in a pipelined protocols operation. | sender allows multiple "in-flight”, yet-to-be-acknowledged packets - range of sequence numbers must be increased - buffering at sender and/or receiver |
| Why do we buffer at the sending side when we deliver a packet n pipelining? | We need to know which packets have been acknowledged and which have not. |
| Why do we buffer at the receiving side when we deliver a packet in pipelining? | We buffer to know which packets have been received and which have not. |
| What are the 2 mechanisms that are implemented in a pipelining operation? | - go-back-n - selective repeat |
| Why is pipelining sometimes better? | - it provides better performance of your channel (utilization) than the stop-and-wait model - TCP uses a pipelining model with go-back-n protocol |
| In the Go-Back-N protocol, what is the sender's constraints on transmitting packets? | the protocol is constrained to have only up to N consecutively transmitted but unacknowledged packets in the pipeline. - k-bit sequence number is maintained in packet header |