How the client cl knows that it should contact the

Info icon This preview shows pages 6–7. Sign up to view the full content.

View Full Document Right Arrow Icon
How the client CL knows that it should contact the client FA (step 1) and how the client FA knows that it must contact the server FA (step 2) need explanation. In the current implementation of CODO, each node has a manually configured table. Given an IP, the table tells if the node can directly connect to the IP. It also tells what FA must be contacted if a direct connection is impossible. This approach is not scalable and a better solution is under investigation. However, the table should not be very big because multiple IPs can be aggregated with a mask. If all IPs within a network can be aggregated with a mask as is true for most private networks, only a single entry is needed for the network. Furthermore, when we add a new network, we only need to change the tables at public nodes (including FAs). Nodes behind a firewall only need know about local nodes. For all the other nodes, they just need ask their local FA for connection arrangement. Connection establishment within a private network also needs help from CODO. A client in the same private network as a server cannot make a direct connection with the server’s official address. In this case, the client CL asks the server FA 2 for the server’s local address and then makes a direct connection to it. No NAT bindings are made for intra-network connections. 4.3 UDP connections Although there is no connection setup in UDP communications, we can loosely define a UDP session as a set of UDP messages that are allowed or rejected as a whole by stateful firewalls. More precisely, it is a series of UDP messages from a client to a server such that each message passes a firewall before a predefined timeout from the previous one. In order to support UDP sessions over firewalls, a CL maintains a mapping table. Each entry (X, Y) in the table maps the official address X of a peer to the peer’s address Y , meaning that UDP messages addressed to X by the application must be sent to Y . When the application calls sendto with the receiver’s address X , the CL searches the mapping table for the address. If the entry (X, Y) is found, then it refreshes the timeout value of the entry and sends the packet to Y . Otherwise, a procedure similar to the TCP cases explained in §4.2 is performed. If the procedure succeeds, then the sender’s CL creates a new entry with the address that the receiver’s FA has returned and then sends the UDP message using the entry. Entries not referred to for a while are deleted. 5. Fault tolerance Successful connection depends on the reliability of FAs. Nevertheless, applications should continue to work with a limited ability in the event of FA failure. During FA downtime, CLs operate as if the FAs did not exist. For example, if a server CL cannot contact its FA —the server FA at binding time, it downgrades the socket to a regular Berkeley socket, which bypasses all CODO mechanisms. In this case, the server can accept connections only from clients that do not need help from the server FA. If a client CL cannot contact a server FA, it attempts a direct connection to the server.
Image of page 6

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 7
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern