password lmm qs lmm

Networks

Department of Computer Science

covid-19


Instructor: Bill McDaniel
Office MCS 129
Phone 974-5717
e-Mail wmcdaniel@uco.edu
           

Textbook Information:
Tanenbaum, Andrew      
Computer Networks
Third or Fourth Edition
ISBN 0-13-349945-6
or
ISBN 0-13-066102-3
  
  
  Topics Covered
  
  
  
    The objectives of the course in Networks is to provide an understanding
      of the following concepts:
  
      A.  Multi-Tasking Environments
  
      B.  The Seven Layers of the OSI Model
          1.  The Physical Layer
              a.  access methods
                  1)  token ring ( and token recovery)
                  2)  csma/cd 
                      protocols for collisions
                        binary exponential backoff
                      collision free protocols
                        a bit map protocol
                        binary countdown
              b.  hardware communication
                  Communication using null modems 
                  Communication using RJ45 cables 
                  Parity Bit for error detection (xor)
                  Gray Codes 
                  Manchester Encoding 
  
          2.  The Data Link Layer
              a.  frame composition
              b.  bit or character stuffing
              c.  timeouts & retransmissions - ignoring duplicate frames
              d.  acks & nacks
              e.  error detection and recovery
                    Trimodular redundancy
                    LRC/VRC  Longitudinal and Vertical Redundancy Check
                    Hamming Code
                    Derivation of Hamming Code from Even parity 
                    hadamard codes
                    hadamard codes - example
                    hadamard derivation graphic
                    hadamard derivation to 7 levels
                    Cyclic Redundancy Check 
                    Dynamic Finite State Diagram for 1011 
                    Static Finite State Diagram for 10011 
                    Static Finite State Diagram for 11001 
  
              f.  byte protocols
  
              g.  Socket Programming
                  UDP vs TCP
                  socket() - bind() - listen() - accept() - sendto() -
                  recvfrom() - close()
                  Stop and Wait protocols
                  Protocols 1, 2 and 3 from the text 
                  Petri Nets & Markings 
                  Two state petrinet 
  
  

Clients and Servers in Various Languages & Protocols
talker.c
(a UDP client in C)
listen
(a UDP server in C)
talker.cpp
(a UDP client in C++)
listen.cpp
(a UDP server in C++)
tcptalker.c
(a TCP client in C)
tcplisten.c
(a TCP server in C)
tcptalker.cpp
(a TCP client in C++)
tcplisten.cpp
(a TCP server in C++)
chsender.c
(an AF_UNIX UDP client in C)
chreceiv.c
(an AF_UNIX UDP server in C)
udpClient.java
(a UDP client in java)
udpServer.java
(a UDP Server in java)
sggClient3.java
(a TCP client in java)
sggServer3.java
(a TCP Server in java)
talker.pl
(a UDP Client in perl)
listen.pl
(a UDP Server in perl)
server.rb
(a TCP Server in ruby)
client.pl
(a TCP Client in ruby)
client.php
(a TCP Client in php)
server.php
(a TCP Server in php)
talker
(a TCP client in tcl)
listen
(a TCP server in tcl)
udp-talker
(a UDP client in python)
udp-listen
(a UDP server in python)
udptime.c (a UDP client probing port 1400) tcptimeserver.c (a looping TCP server) tcpslave.c - tcpslav.c - tcpslav1.c talker and listen in a Windows environment 3. The Network Layer Network Layer algorithms a. messages vs packets b. sequencing c. error free routines d. congestion and decongestion e. addressing schemes f. routing - message switching vs circuit switching Output from Floyds Algorithm Warshall's Algorithm g. topologies 4. The Transport layer (end to end) a. multiplexing b. flow control between hosts The Bankers Algorithm c. end to end error detection d. functions e. reliability and quality of service 1) error free, point to point, orders packets 2) datagrams 3) windows f. Talker and Listen 5. The Session layer a. Establishing connections b. Manage Dialogues 6. The Presentation layer The ASCII Character Set a. text compression compression algorithms - Huffman Codes (static and dynamic) - Shannon-Fano codes - example 1 - Shannon-Fano codes - example 2 - Shannon-Fano codes - example 3
b. extended precision arithmetic - Trachtenberg Multiplication in c++ - Russian Peasant Method of Multiplication - Russian Peasant Method in C++ - Multiplication in ruby - Multiplication of 128 bit integers in c++11 - grn in c++ - gcd in c++ - modPow in ruby - modPow in C++ - modPow in C using the gmp package - Extended Euclid's Algorithm in C++ - modInverse in C using the gmp package - modInverse & modPow in Java - modinv in python - bc arithmetic operations in php - bc functions from the php website c. encryption - xor - modulo tables - two locks using modulo arithmetic - Public and Private Keys using Modulo arithmetic - matrix multiplication - linear feedback shift register - formulas to calculate pow(x,n) fast - Diffie-Hellman - test out Diffie-Hellman with random numbers - Find Diffie-Hellman Primitive Roots - Diffie-Hellman with paint - some small primes - 5 digit primes - 6 digit primes - 7 digit primes - 8 digit primes - 9 digit primes to 500,000,000 - some random 9 digit primes - some random 10 digit primes - misc large primes - get large primes using miller-rabin - factoring numbers up to 2^70 (up to 22 digit numbers) - factoring (up to) 38 digit numbers - factoring 60 digit numbers - rsa - Testing Shamir's Three Pass Protocol - test out rsa in C++ (10 digit primes) - test out rsa in C++ (20 digit primes) - test out rsa with prime numbers (select or key in the numbers) - find singles and doubles - rsa in practice - test out double encryption using 2 prime numbers (and a 3 way handshake) - powMod Table using 7 and 11 - multiple decryption keys - double key table using 7 and 11 - multiple key test using 11 and 23 d. ascii to ebcdic conversions e. file format conversions 7. The Application layer Browsers HTML - HTML markup tags for a quiz - The HTTP protocol: Jon Crowcroft - Voting over the internet
C. Terminology D. Network Services that may include (but is not limited to) text searching, word processing, electronic mail, distributed databases, data transfer, and... 1. e-mail 2. the Client/Server model BSD Sockets sockaddr structures a. File Transfer b. Chat programs Assignments: 1. Create an HTML page using a regular text editor. Do NOT use an automatic page maker like Front Page. You must have, at least, 25 different markup commands on your page(s). Copy the file(s) over to a flash drive (or a floppy disk or a cd) and take it to the instructors office. The name of the main page should be index.htm. HTML markup tags Due: February 26, 2021
Click here to get a list of valid tags. Click here to get the HTML code that can be used to count your tags. 2. Key in the socket programming examples onto cs: talker and listen (given below), and get them running. You will have to come to my office and give me a demo to get full credit. Become familiar with the key statements and what they do. A short oral quiz may be part of the demo. This assignment is in 2 parts. Part 1 is the demo and Part 2 is a hard copy listing of talker & listen with comments about the key statements explaining what the statements do. Due Dates: Listing: March 12, 2021 listing of talker.c (a UDP client) listing of listen.c (a UDP server) In ALL of your programming assignments, your program should contain a prologue at the top of the listing. The prologue should appear as comments. Click here to see an example. You will also be required to find a URL that pertains to socket programming (no pdf files), that is NOT in the following list. url's already selected The URL should be in the listing of 'talker.c' on the cs computer. 3. Write a CGI script that will provide 'added value'. The user is to key in a value (or select a value) in an HTML page and then run the CGI program. The program is to return a page containing different and useful information than what was keyed in. When you turn in your listing, be sure to include: The C or C++ source code that will be compiled and executed A prologue at the top of your program that is to have: your name, the class, the due date, a program name and a short description of the program. The pages rendered on your computer The code for the HTML pages rendered. Listing Due: April 2, 2021 A quick blurb on CGI programming in general Notes on the CGI programming assignment A c routine to pick off fields from a form A c++ routine to pick off fields from a form A c routine to pick off 'multiple fields with the same name' from a form
4. Sending an encrypted message across the internet using the Diffie-Hellman Key Agreement Algorithm. -- listing Due: April 28, 2021 This following assignment is for students taking Networks for GRADUATE CREDIT only. Find the program hidden.php - run it - write a 1 page report describing just where the word BOOKMARK came from. Put the report on the internet in your account. Name the file 'report'. Due: on or before April 29, 2020 Other assignments Decryption Program - decrypt quote using xor Change 'tcptalker.c' to connect to 204.154.117.80, port 14000, send a message which has 'wmxxx', and you will get an encrypted phrase. Decrypt the phrase then turn in a page with your name and the phrase. Implement 2 programs that communicate over the Internet. They can be 2 File Transfer programs or 2 Chat programs. The actual data going across the internet must be encrypted.
Exams
Sample Exam Questions

Midterm
Wednesday, March 8, 2017 - 50 minutes

The exam will be multiple choice.
The student is required to bring a scantron to the exam (form 882-E or SC882-E or 25110-RR).




Topics for the Midterm

Midterm Answers


Final
Wednesday, May 4, 2016 - 1:00 PM
Bring a scantron (form 882-E ).


Topics for the Final

final answers



Quizzes
Quiz on HTML
Quiz on Internet Functions


MS Exam
Topics to Study for the MS exam


Other Issues
Academic Dishonesty

get tags