Monday, September 28, 2015

CS470A Week-4

Assignment 4: The Application Layer Part 2
Prepare for Quiz (Note: Quiz will include all of Chapters 1 and 2)
Read Textbook for Chapter 2 Section 2-7, and Chapter 3 Section 3-1

Read PowerPoint Slides for Chapter 2 Section 2-7, and Chapter 3 Section 3-1

* Answer Chapter 2 Textbook Review Questions: R21, R22, R26

* Task: In the computer language of your choice and its related libraries (which might have to be called or installed), write a short program/script that will send yourself an email that says:
Hello, I am from <student id> from CS470 Section X, Today's date is: xxxxx, My first name is:
xxxxx, and my last name is: yyyyy. 

Use your real student id in place of <>, your real section in place of X, the real date in place of xxxxx, and your real name in place of YYYYY. Be sure to include in your assignment report a copy of the source, screen captures (including a copy of your compile, and run/execute commands) and a copy of the received email headers.

Note: Some third party online email providers may think your automated email is a spam. Do the best you can do to work around and document the spam issue if it happens to you. You may consider sending yourself a local email using the NPU lab or your virtual machine to get around
third party spam filters.

The learning goal of this task assignment is to help students achieve practical experience in combining application programming with network programming. In this case, applications and server systems often need to automatically email out status updates and error messages to application/system administrators.

<Week 4 Study>

Chapter 2 Application Layer 83 

2.7 Socket Programming: Creating Network Applications 156
2.7.1 Socket Programming with UDP 157
2.7.2 Socket Programming with TCP 163
2.8 Summary 168

Chapter 3 Transport Layer 185 
3.1 Introduction and Transport-Layer Services 186 
3.1.1 Relationship Between Transport and Network Layers 186 
3.1.2 Overview of the Transport Layer in the Internet 189 

Friday, September 18, 2015

CS470A Week-3

Assignment 3: The Application Layer Introduction
Read Textbook Chapter 2 sections 2-3,2-4,2-5,2-6
Read PowerPoint Slides for Chapter 2 Sections 2-3,2-4,2-5,2-6
Preview PowerPoint Slides for Chapter 2 Section 2-7

* Answer Chapter 2 Textbook Review Questions: R11, 13, 15, 17, 18

<Week 3 Study>

Chapter 2 Application Layer 83 
2.3 File Transfer: FTP 116
2.3.1 FTP Commands and Replies 118
2.4 Electronic Mail in the Internet 118
2.4.1 SMTP 121
2.4.2 Comparison with HTTP 124
2.4.3 Mail Message Format 125
2.4.4 Mail Access Protocols 125
2.5 DNS—The Internet’s Directory Service 130
2.5.1 Services Provided by DNS 131
2.5.2 Overview of How DNS Works 133
2.5.3 DNS Records and Messages 139
2.6 Peer-to-Peer Applications 144
2.6.1 P2P File Distribution 145
2.6.2 Distributed Hash Tables (DHTs) 151

CS470A Week-2

Assignment 2: Computer Networks and the Internet
Read Textbook Chapter 1 Sections 1-4,1-5,1-6,1-7 and Chapter 2 Sections 2-1,2-2
Read PowerPoint Slides for Chapter 1 Sections 1-4,1-7 and Chapter 2 Sections 2-1,2-2
Read PowerPoint Slides for Chapter 2 Sections 2-1, 2-2
* Answer Chapter 1 Textbook Review Questions: R14, 16, 18, 19, 25, 27
* Answer Chapter 2 Textbook Review Questions: R2, 4, 6, 9

<Week2 Study>

Chapter 2 Application Layer 83 

2.1.3 Transport Services Available to Applications 91
2.1.4 Transport Services Provided by the Internet 93
2.1.5 Application-Layer Protocols 96
2.1.6 Network Applications Covered in This Book 97
2.2 The Web and HTTP 98
2.2.1 Overview of HTTP 98
2.2.2 Non-Persistent and Persistent Connections 100
2.2.3 HTTP Message Format 103
2.2.4 User-Server Interaction: Cookies 108
2.2.5 Web Caching 110
2.2.6 The Conditional GET 114

CS470A Week-1


Assignment 1: Computer Networks and the Internet

Read Textbook Chapter 1 Sections 1-1,1-2,1-3
Read PowerPoint Slides for Chapter 1 Sections 1-1,1-3
Preview Chapter 1 Sections 1-4,1-5,1-6,1-7 and Chapter 2 Sections 2-1 and 2-2
* Answer Chapter 1 Textbook Review Questions: R1, 3, 5, 7, 9, 11, 12

<Week1 Study>
Chapter 1 Computer Networks and the Internet 1
1.1 What Is the Internet? 2
1.1.1 A Nuts-and-Bolts Description 2
1.1.2 A Services Description 5
1.1.3 What Is a Protocol? 7
1.2 The Network Edge 9
1.2.1 Access Networks 12
1.2.2 Physical Media 18
1.3 The Network Core 22
1.3.1 Packet Switching 22
1.3.2 Circuit Switching 27
1.3.3 A Network of Networks 32

<Week1 Preview>
1.4 Delay, Loss, and Throughput in Packet-Switched Networks 35
1.4.1 Overview of Delay in Packet-Switched Networks 35
1.4.2 Queuing Delay and Packet Loss 39
1.4.3 End-to-End Delay 42
1.4.4 Throughput in Computer Networks 44
1.5 Protocol Layers and Their Service Models 47
1.5.1 Layered Architecture 47
1.5.2 Encapsulation 53
1.6 Networks Under Attack 55
1.7 History of Computer Networking and the Internet 60
1.7.1 The Development of Packet Switching: 1961–1972 60
1.7.2 Proprietary Networks and Internetworking: 1972–1980 62
1.7.3 A Proliferation of Networks: 1980–1990 63
1.7.4 The Internet Explosion: The 1990s 64
1.7.5 The New Millennium 65

1.8 Summary 66


Chapter 2 Application Layer 83
2.1 Principles of Network Applications 84
2.1.1 Network Application Architectures 86
2.1.2 Processes Communicating 88

Wednesday, September 16, 2015

CS470A Network Engineering and Management -- Week 1 ~8 (Then Midterm)

Assignment 1: Computer Networks and the Internet
Read Textbook Chapter 1 Sections 1-1,1-2,1-3
Read PowerPoint Slides for Chapter 1 Sections 1-1,1-3
Preview Chapter 1 Sections 1-4,1-5,1-6,1-7 and Chapter 2 Sections 2-1 and 2-2

* Answer Chapter 1 Textbook Review Questions: R1, 3, 5, 7, 9, 11, 12

Assignment 2: Computer Networks and the Internet
Read Textbook Chapter 1 Sections 1-4,1-5,1-6,1-7 and Chapter 2 Sections 2-1,2-2
Read PowerPoint Slides for Chapter 1 Sections 1-4,1-7 and Chapter 2 Sections 2-1,2-2
Read PowerPoint Slides for Chapter 2 Sections 2-1, 2-2

* Answer Chapter 1 Textbook Review Questions: R14, 16, 18, 19, 25, 27
* Answer Chapter 2 Textbook Review Questions: R2, 4, 6, 9

Assignment 3: The Application Layer Introduction
Read Textbook Chapter 2 sections 2-3,2-4,2-5,2-6
Read PowerPoint Slides for Chapter 2 Sections 2-3,2-4,2-5,2-6
Preview PowerPoint Slides for Chapter 2 Section 2-7

* Answer Chapter 2 Textbook Review Questions: R11, 13, 15, 17, 18

Assignment 4: The Application Layer Part 2
Prepare for Quiz (Note: Quiz will include all of Chapters 1 and 2)
Read Textbook for Chapter 2 Section 2-7,and Chapter 3 Section 3-1
Read PowerPoint Slides for Chapter 2 Section 2-7, and Chapter 3 Section 3-1
* Answer Chapter 2 Textbook Review Questions: R21, R22, R26

Week4
* Task: In the computer language of your choice and its related libraries (which might have to be called or installed), write a short program/script that will send yourself an email that says:

Hello, I am from <student id> from CS470 Section X, 
Today's date is: xxxxx, 
My first name is:xxxxx, and my last name is: yyyyy.

Use your real student id in place of <>, your real section in place of X, the real date in place of xxxxx, and your real name in place of YYYYY. 

Be sure to include in your assignment report a copy of the source, screen captures (including a copy of your compile, and run/execute commands) and a copy of the received email headers.

Note: Some third party online email providers may think your automated email is a spam. Do the best you can do to work around and document the spam issue if it happens
to you.  You may consider sending yourself a local email using the NPU lab or your virtual machine to get around third party spam filters.

The learning goal of this task assignment is to help students achieve practical
experience in combining application programming with network programming. 

In this case, applications and server systems often need to automatically email out
status updates and error messages to application/system administrators.

Assignment 5: The Application Layer Part 3
Read Textbook Chapter 3 Sections 3-2, 3-3
Read PowerPoint Slides for Chapter 3 Sections 3-2, 3-3
Preview Chapter 3 Sections 3-4 and 3-5

* Task: Design your own protocol for the following Need Statement:

The learning goal of this task assignment is to help students take the concepts of good protocols that
have been studied so far and apply them to creating their own protocol from scratch.

Consider a planet where everyone belongs to a family of seven, every family lives in its own house, each house has a unique address, and each person in a given house has a unique name. Suppose this planet has a mail service the delivers letters from the source house to the destination house. 

The mail service requires that (1) the letter be in an envelope, and that (2) the address of the destination house (and nothing more) be clearly written on the envelope.

Suppose each family has a delegate family member who collects and distributes letters for the other
family members. The letters do not necessarily provide any indication of the recipients of the letters.

(a) Design a technically detailed general protocol including any needed state or transactional diagrams, headers and handshake fields, related supporting infrastructure etc. that delegates can use to deliver letters from a sending planet citizen to a receiving family member at a different location. A (at least one) detailed frame, flowchart, state machine, timing, or other technical diagram is required.

For concept examples, reference textbook diagrams:
Figure 1.2 (page 8), 
Figure 2.30 (page 164), 
Figure 3.7 (page 202), and 
Figure 3.13 (page 212) 

(b) Your design assignment report should include:
Proper introduction
Detailed statement of solution approach and description of the algorithm
Design materials such as protocol frame and headers, fields, etc.
An example walk through. 
Proper closing.


Assignment 6: The Transport Layer
Read Textbook Chapter 3 Sections 34 and 35
Read PowerPoint Slides for Chapter 3 Sections 34 and 35
Preview Chapter 3 Sections 36, 37 and 38
* Answer Chapter 3 Textbook Review Questions: R3, 5, 6, 7, 9, 15

Assignment 7: The Transport Layer Continued
Read Textbook Chapter 3-6,3-7,3-8
Read PowerPoint Slides for Chapter 3-6,3-7,3-8

Preview Chapter 4
* Answer Chapter 3 Textbook Review Questions: R17, 18, 19, and Problem Question P1

* Task: Review Introduction to / planning discussion of the Course's Wireshark Project and prepare any questions you may have for the classroom discussion.

Course Project:
All course related project "PACKET/Wireshark" work is to be done individually and individual reports are to be uploaded into the student portal for grading. 

Note: While the Wireshark work is to be done individually; equipment and equipment configuration may be done collaboratively by students in the same section only.

Within the same CS470 section, students may share hardware and cabling to build their networks. Each student must state in their individual assignment report which hardware (real or virtual) elements they supplied, which they shared and the other students they shared with. 

Students may NOT share Wireshark assignments/work, data, data logs, or screen captures.

First: Create/build a network or get access to a network that has at least two local (host) machines (any OS, machines may be real or virtual) and one switch/router on it. 

The switch/router maybe real or virtual (for example a VirtualBox networking connection). You may use any combination of real/virtual networks and real/virtual equipment that you have access to the packets on. You may use any Operating Systems you desire. 

Your locally created network may be connected to the Internet, but a maximum of only ONE Internet uplink connection is allowed.

In addition to sniffing packets, another learning goal of this task assignment is for students to gain hands-on exposure to creating their own network rather than just attaching to the Internet.

10 Point VM BONUS: 
For having a local virtual machine as one or more of the hosts (with data sender, data receiver, or WireShark analyzer installed on it) in your project network.

A learning goal of the bonus is to encourage students to apply the course concepts in the virtual and cloud computing worlds (including virtual ports, connections, virtual cabling, switches, etc.) in addition to applying to real world equipment.

Second: Install Wireshark (wireshark.org) or equivalent.

Third: Using WireShark (or equivalent) perform 3 tasks from items 0 through 10.

The learning goal of this assignment tasks is to help students move up from Operating System provided terminal tools (such as ping, traceroute and tracecert that confirm basic network connectivity) to more advanced professional level network analysis tools.

0) Using the computer language of your choice, create an email application that sends a simple text
email every few seconds. You can think of your email application as a malicious "spammer." 

Then using WireShark, find and show that the email(s) was sent and discover the IP address of the
spammer. 

Hint: Consider using WireShark to look for Simple Mail Transfer Protocol (SMTP) packets or port
25 or even searching for known text (your NPU student ID) in the email. Note: Some third party
email systems may view your automated email as spam and filter it out. Hence, you might not be able
to see both the transmit and the receive sides.

1) Discover & sniff the contents of a standard website textbox in any non encrypted web site.
Note: If you have a private web server (perhaps by installing a Linux LAMP or WAMP server system) you may use it instead of a public web site.

2) Discover/sniff/hack cookies
Example: Show that a cookie was made.
Note: You can manually delete it before going to the web page. If you wish and if you have your own
web server, you may create your own cookie writer.

3) Create a specific site or IP address or Machine filter within WireShark and show that it is functioning.

4) Create a HTTP, TCP or UDP protocol or port filter and show that it is functioning (before and after)

5) Track a DHCP handshake and show its progress

6) Track an Encryption/SSL handshake setup.
Note: You do not have read (break) the encrypted text, just show that you found it and/or captured a copy
of it.

7) Use WireShark to show traffic in between two machines.

8) Configure FTP between two machines and then use WireShark to watch as a file is transferred or the FTP session is set up.

9) Use Wireshark to trouble shoot a network
Please document the test trouble you created and show how you found it through traffic analysis.
Example 1: You have a 3 machine Y topology network where you caused a link failure by pulling
the plug. 

Example 2: You change a firewall setting to block a specific type of traffic.

10) Custom. You may request permission from the instructor to investigate another capability/feature of Wireshark.

Fourth: Write a proper assignment results report. Your report you must include:
(a) A proper introduction including: 
A logical description and diagram of the network configuration; 
a photograph of the locally created network hardware equipment arrangement is desirable.
Description of equipment, hosts, cabling and ports used
Description of where WireShark was located,
Description of various IP addresses and their functions/applications

(b) Individual sections for each task including: Task description, and written step by step text instructions and screen captures showing how you performed each of the tasks you selected.

(c) Screen capture(s) for each step (screen captures are to include the desktop date and time clock). Every closeup screen capture is to also have a zoom out screen capture that includes the background of the desktop (with several desktop icons showing) and clock showing. Screen captures must be readable. Screen captures are to be embedded in your write up report.

(d) Include a matching copy of your actual WireShark data log file(s) in your assignment report package. If you use a zip file, be sure that each internal file has your student id in its file name.

Assignment 8: The Network Layer

Prepare for MidTerm Exam (which contains all material up to and including Chapter 4 Section 4)
Read Textbook Chapter 4-1, 4-2, 4-3, 4-4
Read PowerPoint Slides for Chapter 4-1, 4-2, 4-3, 4-4
* Answer Chapter 4 Textbook Review Questions: R1, 3, 4, 8, 9, 11

* Advisory note to students: After covering the foundational concepts in the first half of the course (before the MidTerm), the pace of the course content and its complexity accelerates quickly after the MidTerm.