CSCD 330 Network Programming

Takehome Midterm - Winter 2016

Due: Wednesday February 17th, 2016   Turn Midterm in Hard Copy in Class !!!



  1. Explore the use of DNS to locate information about an imaginary domain.
    You want to first register (in theory) a domain, world-class-networks.com
    a. How would you go about registering the name? List the steps.
    b. How does the name, world-class-networks.com get seeded into the global dns nameserver database?
    c. Create the dns zone record for this domain. Make up names for the nameservers, mailservers and a canonical name

  2. Some modifications to TCP have been suggested for high speed networks. Name at least two "new" variations to TCP and describe these improvements for high speed networks. Do not include any of the older variations such as Tahoe, Reno and New Reno.

  3. Assuming you have a Stop-and-Wait protocol, look at the following information sent by Host A and answer the questions.
    Host A
    Send: I am Host A
    Wait for: Acknowledgement from Host B
    Send: Acknowledgement of Host B's Acknowledgement
    Wait for: Identity of Host B
    Send: Acknowledgement of Host B's Identity
    Wait for: Data from Host B
    Send: Ack of data from Host B
    (now Host B and Host A "talk" and Host B sends data with Host A sending Acks back
    Wait for: Finish from Host B
    Send: Ack of Finish
    Send: Finish from Host A
    Wait for: Ack of my Finish from Host B
    End of connection.
    Questions
    a. Where in this conversation between Host A and Host B, can Host A get hung up? How can this be fixed?
    b. What does the Host B side of this conversation look like?
    c. Even with fixing the protocol from Question a., this might be a slow process. How can you speed up the protocol?

  4. Say, I wanted to determine a complete network path from my computer at EWU to my friend in S. Africa.
    a. What tool would I use? Name the tool.
    b. How could I use this tool to figure out network delay?
    c. Use the tool to show a path to a real site in S. Africa. Capture the tool output in your answer.

  1. Email was the first "killer app" of the Internet. Explain how we can embed pictures and video and special characters in our email. Name the RFC that allows this modification to email

  2. The following questions can pretty much be found in the class notes. You can search for the answers if needed. If you use an answer from the Internet, please site the source of the answer.
    a. What is an ephemeral port ? What port number range is typically defined for these ports?
    b. Briefly list the differences between TCP and UDP.
    c. Show code to create an input stream to a Java Socket.
    d. Show code to create an output stream to a Java Socket.
    e. What does the following snipet of code do?
    System.out.println(InetAddress.getLocalHost().getHostAddress());

  3. Lets say you got a legitimate looking email from a plausible company. Not a Viagra advertisement. Explain how you could decode the email headers to show the email was legitimate or not

  4. We defined a general Client Server architecture in class. Which one of the following applications is not strictly a Client Server architecture? And Why?
    a. Email
    b. Web Browsing
    c. SQL Database Server
    d. Ping

  5. Explain the difference between stateless and stateful protocols. Which type of protocol is HTTP? Explain your answer.

  6. Go to the Electronic Freedom Foundation (EFF) website. EFF Home Page
    a. You are to read the Press or Take Action pages and choose an issue that interests you. You are to learn about it. Take action if you choose, and write a paragraph (or two) about the issue and your thoughts about it.
    b. Also, answer the questions about the EFF. Who are they, and what do they do? Write a few sentences about the purpose of the EFF.