Name: Date: IT/CS780 IT/CS780 Laboratory Assignment 3 (Worth 15

Total Page:16

File Type:pdf, Size:1020Kb

Name: Date: IT/CS780 IT/CS780 Laboratory Assignment 3 (Worth 15 Name: Date: IT/CS780 IT/CS780 Laboratory Assignment 3 (worth 15 points) Introduction: This laboratory assignment is designed to introduce students to the application layer of the OSI model and developing networked applications. This laboratory assignment will focus on the Hyper Text Transfer Protocol (HTTP) as defined by RFC 7230 (available from https://tools.ietf.org/html/rfc7230 ). Students are expected to analyze the source code for a given application and trace its origin to standards defined in the appropriate RFC. Additionally, students will be introduced to rudimentary bash scripting, and packet analysis via a protocol analyzer. Software Dependencies: This assignment will leverage the Netcat program to provide access to TCP and UDP sockets. The Netcat program is preinstalled on laboratory machines or is available for download from ( http://netcat.sourceforge.net/ ). Students will also use the Wireshark protocol analyzer to inspect network traffic generated by the network application. Wireshark is preinstalled on laboratory virtual machines but is also available for download from ( https://www.wireshark.org/ ). Instructions: 1. Log into the IT/CS780 Ubuntu virtual machine. Credentials for the virtual machine follow: a. Username: route *(note the display name is 780root, but this is the “nick name” of the account, not the name students will use to authenticate.) b. Password: 1337@^)) *(this is essentially 1337 <hold shift> 2600) 2. Open the folder named “socket_programming_lab”: 3. Right-click on whitespace within the “socket_programming_lab” folder and select “Open in Terminal”. 4. Type “ls -l” to view file properties and verify that the “lab_03_web_server.sh” script has permission to be executed (this is indicated by the “x” characters to the left of the file name, as well as the filename being displayed in green text). 5. Start the webserver program by typing the command “./lab_03_web_server.sh” . Alternatively, you should be able to use “tab completion” by pressing the “tab” key after typing the first letter of the file name e.g. after typing “./l” (note, the period “.” Character is necessary to execute the program unless you type the entire path to the file). 6. Verify a folder named “www” was created within the “socket_programming_lab” folder and that files named “lab3.html” and “www_fifo” were also created in the “www” folder. 7. Click on the “Wireshark” icon to launch the Wireshark protocol analyzer. 8. [1] Click on the “Loopback:lo” interface, then [2] click on the start capture icon. 9. Right-click on the “terminal” icon and select “New Terminal” to open another terminal window (note, one terminal window should be open running the web server. DO NOT attempt to use the webserver window to enter commands.) 10. Within the new terminal window type the command “netstat -antop” . Review the output of the netstat socket table and identify the entry associated with TCP port 8080. Note the state of the connection. 11. Click on the “Firefox Web browser”. 12. Enter the url http://localhost:8080/lab3.html . A website similar to the one below should be generated. If a web page does not generate, then proceed to step 12.b , you may need to restart the webserver. 12.b (Note this is only necessary if the following error generates). If you see this error, proceed to step 12.c 12.c Click on the terminal window that is running the webserver program. [1]Type “ctrl+C” to terminate the current webserver process. [2] Press the “up” arrow key on the key board to automatically retype the last command or manually retype the command to launch the webserver program, press enter to execute the command. 12.d Click on the Firefox web browser window and [1] click on the “reload” button to send a new page request to the server. Verify the page loads properly in accordance with the screen capture below. 13. Click on the Wireshark application to view the current packet capture. [1] Select and right-click one of the packets that has the “HTTP” string listed in the “protocol” column. [2] Hover over the “Follow” option and [3] select the “HTTP Stream” option. 14. A window similar to the following screen capture should appear. This window represents the data passed between the client and server programs. In this scenario the Firefox application is the client and the webserver script is acting as the server. Client data is represented in red text, and server data is represented in blue text. Compare this HTTP message exchange with the standards defined in RFC 7230. 15. Click on the terminal window used to issue the “netstat” command previously. Retype the command “netstat -antop” and review any notable differences from the previous output. 16. Navigate to the “socket_programming_lab” directory and [1] right-click on the “lab_03_web_server.sh” file and [2] select “Open with gedit”. 17. Review the source code of the webserver script to gain insight to its functionality. 18. This concludes the lab. Please complete the check on learning questions. Check on Learning: 1. (3 points) This exercise demonstrated how the Netcat program may be used to construct a rudimentary web server. How else might the netcat program be used? (Hint: leverage online resources to research the answer. Possible sources include: https://linux.die.net/man/1/nc ; https://en.wikipedia.org/wiki/Netcat ). Provide at least 3 uses of the Netcat program. 2. (2 points) Which section(s) of the RFC document are necessary to reference when constructing HTML Messages to implement a simple client server program? (ans: section 2.1 Client/Server Messaging ; Section 3 Message format) 3. (2 point) The default configuration for some webservers is to use the /var/www directory to host webpages. Can this directory be changed? 4. (2 points) The default port used to host webpages is TCP port 80. Can this be changed? How do you know? 5. (2 points) Does the webserver script in this exercise conform to the standards outlined in RFC 7230? If not, where does it differ? 6. (2 points) What evidence exists within the socket table produced by the Netstat command to indicate the webserver program is running? 7. (2 points) Identify something (feature, functionality, capability etc.) defined within RFC 7230 that is not implemented by the sample program provided. Describe what this feature does and how it is useful to webservers or clients. You do not need to code this feature, or modify the existing program. This question is intended to familiarize you with extracting information from RFC documents. .
Recommended publications
  • Mac Keyboard Shortcuts Cut, Copy, Paste, and Other Common Shortcuts
    Mac keyboard shortcuts By pressing a combination of keys, you can do things that normally need a mouse, trackpad, or other input device. To use a keyboard shortcut, hold down one or more modifier keys while pressing the last key of the shortcut. For example, to use the shortcut Command-C (copy), hold down Command, press C, then release both keys. Mac menus and keyboards often use symbols for certain keys, including the modifier keys: Command ⌘ Option ⌥ Caps Lock ⇪ Shift ⇧ Control ⌃ Fn If you're using a keyboard made for Windows PCs, use the Alt key instead of Option, and the Windows logo key instead of Command. Some Mac keyboards and shortcuts use special keys in the top row, which include icons for volume, display brightness, and other functions. Press the icon key to perform that function, or combine it with the Fn key to use it as an F1, F2, F3, or other standard function key. To learn more shortcuts, check the menus of the app you're using. Every app can have its own shortcuts, and shortcuts that work in one app may not work in another. Cut, copy, paste, and other common shortcuts Shortcut Description Command-X Cut: Remove the selected item and copy it to the Clipboard. Command-C Copy the selected item to the Clipboard. This also works for files in the Finder. Command-V Paste the contents of the Clipboard into the current document or app. This also works for files in the Finder. Command-Z Undo the previous command. You can then press Command-Shift-Z to Redo, reversing the undo command.
    [Show full text]
  • This Document Explains How to Copy Ondemand5 Data to Your Hard Drive
    Copying Your Repair DVD Data To Your Hard Drive Introduction This document explains how to copy OnDemand5 Repair data to your hard drive, and how to configure your OnDemand software appropriately. The document is intended for your network professional as a practical guide for implementing Mitchell1’s quarterly updates. The document provides two methods; one using the Xcopy command in a DOS window, and the other using standard Windows Copy and Paste functionality. Preparing your System You will need 8 Gigabytes of free space per DVD to be copied onto a hard drive. Be sure you have the necessary space before beginning this procedure. Turn off screen savers, power down options or any other program that may interfere with this process. IMPORTANT NOTICE – USE AT YOUR OWN RISK: This information is provided as a courtesy to assist those who desire to copy their DVD disks to their hard drive. Minimal technical assistance is available for this procedure. It is not recommended due to the high probability of failure due to DVD drive/disk read problems, over heating, hard drive write errors and memory overrun issues. This procedure is very detailed and should only be performed by users who are very familiar with Windows and/or DOS commands. Novice computers users should not attempt this procedure. Copying Repair data from a DVD is a time-consuming process. Depending on the speed of your processor and/or network, could easily require two or more hours per disk. For this reason, we recommend that you perform the actual copying of data during non-business evening or weekend hours.
    [Show full text]
  • Powerview Command Reference
    PowerView Command Reference TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents ...................................................................................................................... PowerView User Interface ............................................................................................................ PowerView Command Reference .............................................................................................1 History ...................................................................................................................................... 12 ABORT ...................................................................................................................................... 13 ABORT Abort driver program 13 AREA ........................................................................................................................................ 14 AREA Message windows 14 AREA.CLEAR Clear area 15 AREA.CLOSE Close output file 15 AREA.Create Create or modify message area 16 AREA.Delete Delete message area 17 AREA.List Display a detailed list off all message areas 18 AREA.OPEN Open output file 20 AREA.PIPE Redirect area to stdout 21 AREA.RESet Reset areas 21 AREA.SAVE Save AREA window contents to file 21 AREA.Select Select area 22 AREA.STDERR Redirect area to stderr 23 AREA.STDOUT Redirect area to stdout 23 AREA.view Display message area in AREA window 24 AutoSTOre ..............................................................................................................................
    [Show full text]
  • Creating and Formatting Partitions
    Creating and formatting partitions Home Download Docs FAQ Forum Creating and formatting partitions SUNDAY, 14 NOVEMBER 2010 12:27 JAY Creating & formatting partitions in Porteus There are two ways to do things in Porteus. Using a GUI (graphical User Interface) or from a console prompt. If you prefer using a GUI then you can download a module called 'gparted' which takes care of creating and modifying partitions. Double click the module from within Porteus to activate it or place the module in the modules folder if you want it to be available automatically when you boot Porteus. Click here to get gparted. Once activated it should appear in your menu system and you can start it and create your partitions. If it does not exist in the menu then open a console and type: gparted Creating partitions from a console: There is a built in application to modify your partition table in Porteus. It is called cfdisk and gives you a CUI (console user interface) to manage your partition through. Simply open your console and type: cfdisk Another built in function for modifying partitions is called fdisk which also uses a CUI. The benefit of fdisk is that it can be called from a script. You should know the path of your USB device before using this option which you can get from typing: fdisk -l at console. Once you know the path of your USB device you would start fdisk by typing: fdisk /dev/sdb where sdb is the path of your usb. Don't include the number on the end (for example /dev/sdb1) as you will need to modify the entire devices partition table.
    [Show full text]
  • Configuring Your Login Session
    SSCC Pub.# 7-9 Last revised: 5/18/99 Configuring Your Login Session When you log into UNIX, you are running a program called a shell. The shell is the program that provides you with the prompt and that submits to the computer commands that you type on the command line. This shell is highly configurable. It has already been partially configured for you, but it is possible to change the way that the shell runs. Many shells run under UNIX. The shell that SSCC users use by default is called the tcsh, pronounced "Tee-Cee-shell", or more simply, the C shell. The C shell can be configured using three files called .login, .cshrc, and .logout, which reside in your home directory. Also, many other programs can be configured using the C shell's configuration files. Below are sample configuration files for the C shell and explanations of the commands contained within these files. As you find commands that you would like to include in your configuration files, use an editor (such as EMACS or nuTPU) to add the lines to your own configuration files. Since the first character of configuration files is a dot ("."), the files are called "dot files". They are also called "hidden files" because you cannot see them when you type the ls command. They can only be listed when using the -a option with the ls command. Other commands may have their own setup files. These files almost always begin with a dot and often end with the letters "rc", which stands for "run commands".
    [Show full text]
  • System Analysis and Tuning Guide System Analysis and Tuning Guide SUSE Linux Enterprise Server 15 SP1
    SUSE Linux Enterprise Server 15 SP1 System Analysis and Tuning Guide System Analysis and Tuning Guide SUSE Linux Enterprise Server 15 SP1 An administrator's guide for problem detection, resolution and optimization. Find how to inspect and optimize your system by means of monitoring tools and how to eciently manage resources. Also contains an overview of common problems and solutions and of additional help and documentation resources. Publication Date: September 24, 2021 SUSE LLC 1800 South Novell Place Provo, UT 84606 USA https://documentation.suse.com Copyright © 2006– 2021 SUSE LLC and contributors. All rights reserved. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) version 1.3; with the Invariant Section being this copyright notice and license. A copy of the license version 1.2 is included in the section entitled “GNU Free Documentation License”. For SUSE trademarks, see https://www.suse.com/company/legal/ . All other third-party trademarks are the property of their respective owners. Trademark symbols (®, ™ etc.) denote trademarks of SUSE and its aliates. Asterisks (*) denote third-party trademarks. All information found in this book has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither SUSE LLC, its aliates, the authors nor the translators shall be held liable for possible errors or the consequences thereof. Contents About This Guide xii 1 Available Documentation xiii
    [Show full text]
  • Service Information
    Service Information VAS Tester Number: AVT-14-20 Subject: VAS Diagnostic Device Hard Disc Maintenance Date: Sept. 24, 2014 Supersedes AVT-12-12 due to updated information. 1.0 – Introduction If persistent diagnostic software or Windows® 7 operating system error messages are displayed while installing or using the diagnostic software, use the Windows CHKDSK utility to check hard disk integrity and fix logical file system errors. CHKDSK can also handle some physical errors and may be able to recover lost data that is readable. We recommend the CHKDSK utility be run on a regular basis on all VAS diagnostic devices in service. Consult with your dealership Systems Administrator or IT Professional about checking the integrity of the hard disk as described below on a regular basis, as well as regular performance of the Windows DEFRAG utility. 2.0 – Procedure Prerequisites: Device plugged into power adapter and booted to Windows desktop 1. Go to Windows Start > Computer 2. Right click/select Local Disk (C:) and select Properties from the dropdown menu: Continued… 2/ Page 1 of 3 © 2014 Audi of America, Inc. All rights reserved. Information contained in this document is based on the latest information available at the time of printing and is subject to the copyright and other intellectual property rights of Audi of America, Inc., its affiliated companies and its licensors. All rights are reserved to make changes at any time without notice. No part of this document may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, nor may these materials be modified or reposted to other sites, without the prior expressed written permission of the publisher.
    [Show full text]
  • 13 Using the Do-File Editor—Automating Stata
    13 Using the Do-file Editor—automating Stata The Do-file Editor Stata comes with an integrated text editor called the Do-file Editor, which can be used for many tasks. It gets its name from the term do-file, which is a file containing a list of commands for Stata to run (called a batch file or a script in other settings). See [U] 16 Do-files for more information. Although the Do-file Editor has advanced features that can help in writing such files, it can also be used to build up a series of commands that can then be submitted to Stata all at once. This feature can be handy when writing a loop to process multiple variables in a similar fashion or when doing complex, repetitive tasks interactively. To get the most from this chapter, you should work through it at your computer. Start by opening the Do-file Editor, either by clicking on the Do-file Editor button, , or by typing doedit in the Command window and pressing Enter. The Do-file Editor toolbar The Do-file Editor has 15 buttons. Many of the buttons share a similar purpose with their look-alikes in the main Stata toolbar. If you ever forget what a button does, hover the mouse pointer over a button, and a tooltip will appear. New: Open a new do-file in a new tab in the Do-file Editor. Open: Open a do-file from disk in a new tab in the Do-file Editor. Save: Save the current file to disk.
    [Show full text]
  • Tectips: Hidden FDISK(32) Options
    WHITE PAPER TecTips: Hidden FDISK(32) Options Guide Previously Undocumented Options of the FDISK Utility Released Under Microsoft Windows95™ OSR2 or Later Abstract 2 Document Conventions 2 Read This First 3 Best-Case Scenario 3 Windows Startup Disk 3 How to apply these options 3 FDISK(32) Options 4 Informational Options 4 Behavioral Options 5 Functional Options 6 February, 2000 Content ©1999 StorageSoft Corporation, all rights reserved Authored by Doug Hassell, In-house Technical Writer StorageSoft White Paper page 2 FDISK(32) Command Line Options Abstract Anyone that remembers setting-up Windows 3.x or the first Win95 release surely knows of the text-based utility, fdisk.exe. Some of those may even be aware of the few, documented switches, such as /status, /x or even the commonly referenced /mbr. Even fewer would be aware of the large table of undocumented command-line options - including automated creation, reboot behavior, and other modifiers - which we will divulge in this document. Note that all options given here are not fully tested, nor are they guaranteed to work in all scenarios, all commands referenced apply to the contemporary release of Win95 (OSR2 - version “B” - or later, including Win98 and the up-and-coming Millennium™ edition). For our recommendation on how to use these swtiches, please refer to the “Read This First” section. Document Conventions In this document are certain references that deserve special recognition. This is done through special text- formatting conventions, described here… v Words and phrases of particular importance will stand-out. Each occurrence of this style will generally indicate a critical condition or pitfall that deserves specific attention.
    [Show full text]
  • Partition-Rescue
    Partition-Rescue Revision History Revision 1 2008-11-24 09:27:50 Revised by: jdd mainly title change in the wiki Partition-Rescue Table of Contents 1. Revision History..............................................................................................................................................1 2. Beginning.........................................................................................................................................................2 2.1. What's in...........................................................................................................................................2 2.2. What to do right now?.......................................................................................................................2 2.3. Legal stuff.........................................................................................................................................2 2.4. What do I need to know right now?..................................................................................................3 3. Technical info..................................................................................................................................................4 3.1. Disks.................................................................................................................................................4 3.2. Partitions...........................................................................................................................................4 3.3. Why is
    [Show full text]
  • Class-4 Computer L-5 Introduction to Microsoft Word 2016
    CLASS-4 COMPUTER L-5 INTRODUCTION TO MICROSOFT WORD 2016 BOOK EXERCISE A. Tick () the correct options. 1. Which of the following is an extension of Microsoft Word document? a. .dod ( ) b. .docx () c. .dob ( ) 2. A vertical blinking line in a Word document is called a. pointer ( ) b. indicator ( ) c. cursor () 3. Which of the following is pressed to cancel the last action? a. Ctrl + X ( ) b. Ctrl + Z () c. Ctrl + Y ( ) 4. In which ribbon is the FONT group present? a. Insert ( ) b. Home () c. Review ( ) 5. To create a duplicate copy of a text in a Word document, you use Copy and Paste. a. Cut and Paste ( ) b. Copy and Paste () c. Redo and Paste ( ) B. Fill in the blanks. Italic cut word processor cursor’s clipboard 1. Microsoft Word is a word processor. 2. To create a document, you simply start typing text from the cursor’s position. 3. The paste button is present in the clipboard group. 4. The keyboard shortcut Ctrl + X is used to cut the selected text. 5. The italic button gives a tilted effect to the text. CLASS-4 COMPUTER L-5 INTRODUCTION TO MICROSOFT WORD 2016 C. State ‘True’ or ‘False’. 1. Saving a document is required if you want to use it in future. True 2. The Undo command cancels the last action performed. True 3. The Cut and Paste command is used to create copy of the selected text. False 4. The Paste option is always highlighted after Copy or Cut operation. True 5. To open an existing document, click Home>> Open.
    [Show full text]
  • 15-744 Computer Networks — Spring 2017 Homework 2 Due by 3/2/2017, 10:30Am (Please Submit Through E-Mail to [email protected] and [email protected])
    15-744 Computer Networks | Spring 2017 Homework 2 Due by 3/2/2017, 10:30am (please submit through e-mail to [email protected] and [email protected]) Name: A Congestion Control 1. At time t, a TCP connection has a congestion window of 4000 bytes. The maximum segment size used by the connection is 1000 bytes. What is the congestion window after it sends out 4 packets and receives ACKs for all of them. (a) If the connection is in slow-start? Solution: 8000 bytes. In slow start, the sender increases its window for each byte successfully received. (b) If the connection is in congestion avoidance (AIMD mode)? Solution: 5000 bytes. The sender increases its window by one segment each window. 2. In congestion avoidance (CA) mode, a TCP sender increases the size of its congestion window by one maximum segment size (MSS) each RTT. Suppose a TCP implementation does this by increasing its congestion window by ∆ every time it receives an ACK, where MSS ∆ = · MSS current window size Knowing this, how can a greedy TCP receiver get more than its fair share of the link bandwidth? (Hint: Remember that the sequence number acknowledged by an ACK doesn't refer to a packet, but rather to a byte in the data stream.) Solution: The greedy receiver can send more than one ACK per MSS. For example, if the first packet from the sender contains bytes 0 − 999, the receiver might send two ACKs: one for byte 500 and one for byte 1000. Since the sender increases its window by ∆ for every ACK, it increases its window by 2∆ when it should only increase by ∆.
    [Show full text]