/*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} Problem 36 TCP is a very symmetric protocol... [FREE SOLUTION] | 91Ó°ÊÓ

91Ó°ÊÓ

TCP is a very symmetric protocol, but the client/server model is not. Consider an asymmetric TCP-like protocol in which only the server side is assigned a port number visible to the application layers. Client-side sockets would simply be abstractions that can be connected to server ports. (a) Propose header data and connection semantics to support this. What will you use to replace the client port number? (b) What form does TIME_WAIT now take? How would this be seen through the programming interface? Assume that a client socket could now be reconnected arbitrarily many times to a given server port, resources permitting. (c) Look up the \(\mathrm{rsh} / \mathrm{rlogin}\) protocol. How would the above break this?

Short Answer

Expert verified
Use unique client identifiers. TIME_WAIT shifts to server side. rsh/rlogin would break due to port dependence.

Step by step solution

01

Understanding the Asymmetric Protocol

The given exercise requires designing an asymmetric version of the TCP protocol. In this specific version, only the server is assigned a visible port number, while client-side sockets are simply abstractions connected to server ports.
02

Proposing Header Data and Connection Semantics

Instead of using a client port number, utilize a unique identifier for each client. This identifier can be included in the packet headers to ensure that the server can distinguish between different client connections.
03

Redefining TIME_WAIT

Since client sockets may be reconnected arbitrarily many times, TIME_WAIT must be associated solely with the server-side connection. The server must ensure that connection identifiers associated with clients are not reused too quickly to avoid confusion.
04

Detecting TIME_WAIT through Programming Interface

Through the programming interface, TIME_WAIT can appear as a state for the server connection, indicating it is using a particular identifier from a disconnected client. The interface shall handle multiple client reconnections by differentiating identifiers.
05

Examining Consequences for rsh/rlogin Protocol

The rsh/rlogin protocol relies on distinct port numbers for recognition. If these were replaced by unique identifiers, the protocol's design would break due to the reliance on specific client port numbers for security and identification purposes.

Unlock Step-by-Step Solutions & Ace Your Exams!

  • Full Textbook Solutions

    Get detailed explanations and key concepts

  • Unlimited Al creation

    Al flashcards, explanations, exams and more...

  • Ads-free access

    To over 500 millions flashcards

  • Money-back guarantee

    We refund you if you fail your exam.

Over 30 million students worldwide already upgrade their learning with 91Ó°ÊÓ!

Key Concepts

These are the key concepts you need to understand to accurately answer the question.

TCP Connection
A TCP connection is a fundamental feature of the Transmission Control Protocol (TCP), which ensures reliable and ordered communication between two devices on a network. When a TCP connection is established:
  • Both the client and server must perform a handshake to set up the connection.
  • They use port numbers to identify the specific processes running on each device.
In the context of an asymmetric TCP-like protocol, only the server maintains a visible port number, while clients use unique identifiers instead. This modification would still form a connection by allowing multiple clients to connect to a single server port, identified by their unique IDs.
Client/Server Model
The client/server model is a computing architecture that divides tasks between service providers (servers) and service requesters (clients). Here is how it works:
  • The client initiates a request for a service, which the server fulfills.
  • Servers manage resources and provide services to clients across the network.
In an asymmetric TCP-like protocol, this model persists. However, only servers have fixed port numbers. Clients are abstracted away and use unique identifiers, simplifying the client-side connection process while maintaining the robustness of the server-side.
Network Protocols
Network protocols are sets of rules that dictate how data is transmitted and received over networks. TCP is one such protocol that:
  • Ensures data is delivered accurately and in the correct order.
  • Uses mechanisms like checksums and acknowledgments for data integrity.
In the proposed asymmetric TCP-like protocol, network protocols still play a crucial role. They dictate how unique client identifiers replace traditional client ports and how these identifiers manage the flow of information to and from the server.
Port Number
A port number is a numerical identifier in network communications that specifies a particular process or service. Each device has 65535 potential port numbers available:
  • Ports below 1024 are typically reserved for well-known services (like HTTP on port 80).
  • Ports above 1024 are used for custom or user-defined applications.
In an asymmetric TCP-like protocol, the client does not have a visible port number. Instead, the server uses a fixed port number known to the application layer, while each client communicates using a unique identifier. This approach simplifies client connection logistics while keeping the server's port management straightforward.
Connection Semantics
Connection semantics define the rules and mechanisms surrounding the establishment, maintenance, and termination of connections in network protocols. In TCP, these semantics involve steps like:
  • Three-way handshake for establishing a connection.
  • Four-way termination for ending a connection.
For the asymmetric TCP-like protocol, connection semantics must adapt:
  • Client port numbers are replaced with unique client identifiers in the header data.
  • TIME_WAIT state management shifts to the server, ensuring old identifiers are not reused too quickly.
These changes ensure that the communication process remains reliable even with the asymmetric design.

One App. One Place for Learning.

All the tools & learning materials you need for study success - in one app.

Get started for free

Most popular questions from this chapter

Explain why TIME_WAIT is a somewhat more serious problem if the server initiates the close than if the client does. Describe a situation in which this might reasonably happen.

You are hired to design a reliable byte-stream protocol that uses a sliding window (like TCP). This protocol will run over a 100-Mbps network. The RTT of the network is \(100 \mathrm{~ms}\), and the maximum segment lifetime is 60 seconds. (a) How many bits would you include in the AdvertisedWindow and SequenceNum fields of your protocol header? (b) How would you determine the numbers given above, and which values might be less certain?

Suppose an idle TCP connection exists between sockets A and B. A third party has eavesdropped and knows the current sequence number at both ends. (a) Suppose the third party sends A a forged packet ostensibly from B and with 100 bytes of new data. What happens? Hint: Look up in Request for Comments 793 what TCP does when it receives an ACK that is not an "acceptable ACK." (b) Suppose the third party sends each end such a forged 100-byte data packet ostensibly from the other end. What happens now? What would happen if \(\mathrm{A}\) later sent 200 bytes of data to B?

The Nagle algorithm, built into most TCP implementations, requires the sender to hold a partial segment's worth of data (even if PUSHed) until either a full segment accumulates or the most recent outstanding ACK arrives. (a) Suppose the letters abcdefghi are sent, one per second, over a TCP connection with an RTT of \(4.1\) seconds. Draw a timeline indicating when each packet is sent and what it contains. (b) If the above were typed over a full-duplex Telnet connection, what would the user see? (c) Suppose that mouse position changes are being sent over the connection. Assuming that multiple position changes are sent each RTT, how would a user perceive the mouse motion with and without the Nagle algorithm?

One of the purposes of TIME_WAIT is to handle the case of a data packet from a first incarnation of a connection arriving very late and being accepted as data for the second incarnation. (a) Explain why, for this to happen (in the absence of TIME_WAIT), the hosts involved would have to exchange several packets in sequence after the delayed packet was sent but before it was delivered. (b) Propose a network scenario that might account for such a late delivery.

See all solutions

Recommended explanations on Computer Science Textbooks

View all explanations

What do you think about this solution?

We value your feedback to improve our textbook solutions.

Study anywhere. Anytime. Across all devices.