CS2911 Week 6, Class 1 Today This week, Lab: Quiz at start of lab

Slides:



Advertisements
Similar presentations
CPSC 441: FTP & SMTP1 Application Layer: FTP & Instructor: Carey Williamson Office: ICT Class.
Advertisements

Chapter 30 Electronic Mail Representation & Transfer
Introduction 1 Lecture 7 Application Layer (FTP, ) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science & Engineering.
Introduction 1-1 Chapter 2 FTP & Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 IC322 Fall.
2: Application Layer1 Chapter 2 Application Layer These slides derived from Computer Networking: A Top Down Approach, 6 th edition. Jim Kurose, Keith Ross.
SMTP, POP3, IMAP.
1 Application Layer Lecture 5 Imran Ahmed University of Management & Technology.
IT 424 Networks2 IT 424 Networks2 Ack.: Slides are adapted from the slides of the book: “Computer Networking” – J. Kurose, K. Ross Chapter 2: Application.
Application Layer Protocols Simple Mail Transfer Protocol.
Lecturer: Maxim Podlesny Sep CSE 473 File Transfer and Electronic in Internet.
Sending and Receiving Mails
Chapter 9 How Do Users Share Computer Files?. What is a File Server A (central) computer which stores files which can be accessed by network users.
File Transfer Protocol (FTP)
CS2910 Week 1, Class 2 Today Announce Prof. Michael Vieau’s S-341 6p Thurs Wk 2 Assignment for tomorrow Data Encoding, Part 1 Parsing Data Muddiest Point.
CS2910 Week 1, Class 1 Today Introductions Class/Lab Layout Safety Review - Note about Lab Safety Review Announce Prof. Michael Vieau’s S-341 6p Thurs.
CS 3830 Day 9 Introduction 1-1. Announcements r Quiz #2 this Friday r Demo prog1 and prog2 together starting this Wednesday 2: Application Layer 2.
CS2910 Week 2, Class 1 Today Data Encoding, Part 1 Parsing Data Python Muddiest Point Lab 2 – Bring text In Class, Thursday: Quiz Week 6, Monday: Midterm.
CS2910 Week 5, Class 2 Today DNS Muddy Points More HTTP Headers Review for Midterm Exam This coming Monday: Midterm Exam SE-2811 Slide design: Dr. Mark.
CS2910 Week 2, Class 1 Today Return Lab 1 Muddiest Points Quiz Parsing Data in Python SE-2811 Slide design: Dr. Mark L. Hornick Content: Dr. Hornick Errors:
CS2910 Week 7, Lab Today SMTP lab Tuesday (Either today or yesterday) Extra office hour at 11 am (right after lab) Friday Office hour cancelled SE-2811.
CS440 Computer Networks 1 Neil Tang 12/01/2008.
CS2910 Week 10, Class 1 Today Modular Arithmetic RSA Week 10, Monday Quiz: Potential topics TCP window size & header format Public/private key encryption.
Slides based on Carey Williamson’s: FTP & SMTP1 File Transfer Protocol (FTP) r FTP client contacts FTP server at port 21, specifying TCP as transport protocol.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
CS2910 Week 4, Class 1 Today Encoding in Python – Review Quiz – Encoding in Python Introduction to HTTP SE-2811 Slide design: Dr. Mark L. Hornick Content:
COMP 431 Internet Services & Protocols
CS2910 Week 7, Class 2 Today Quiz on encodings IMAP Encoding "Internet Messages" Tomorrow Office hour cancelled Monday Quiz on IMAP SE-2811 Slide design:
CS2910 Week 4, Class 2 Today Sit by someone you have not yet worked with this quarter. Learn his/her name if unknown. Turn on your laptop and start Wireshark.
CS2910 Week 3, Class 1 Today What is a protocol? Using TCP in Python Defining methods in Python Long procedure design SE-2811 Slide design: Dr. Mark L.
CS2910 Week 8, Class 2 Today Return Quiz Look at Schedule TCP implementation! Week 8, Monday Quiz on SMTP May include some questions requiring you to interpret.
CS2910 Week 7, Class 1 Today Capturing SMTP with Thunderbird Tomorrow Extra office hour at 11 am (right after lab) Friday Office hour cancelled SE-2811.
CS2910 Week 5, Class 1 Today Sit by someone you have not yet worked with Turn on your laptop and start Wireshark. DNS Next week Monday: Midterm Exam SE-2811.
CS2910 Week 6, Lab Today Dictionaries in Python SE-2811 Slide design: Dr. Mark L. Hornick Content: Dr. Hornick Errors: Dr. Yoder 1.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
Spring 2006 CPE : Application Layer_ 1 Special Topics in Computer Engineering Application layer: Some of these Slides are Based on Slides.
درس مهندسی اینترنت – مهدی عمادی مهندسی اینترنت برنامه‌نویسی در اینترنت 1 SMTP, FTP.
CS2911 Week 6, Lab Today Quiz 3 Review Muddiest Point Finish Lab 6 Start Lab 7 Muddiest Point This week, Lab: Quiz at start of lab Week 7, Monday: Half-Exam.
CS2911 Week 6, Class 2 Today Return Quiz 3 Review Muddiest Point Internet Message ( ) format SMTP IMAP Muddiest Point Week 7, Monday: Half-Exam 2 1.
CS2911 Week 3, Class 2 Today Return Lab 3 Afternoon section: Hand out Lab 4 Checklist Review Muddiest Point Questions on Lab 4? What is a protocol? The.
How Do Users Share Computer Files?
SMTP - Simple Mail Transfer Protocol POP - Post Office Protocol
CS2911 Week 4, Class 3 Today Next Class: DNS – Domain Name Service
SMTP: simple mail transfer protocol
Slide design: Dr. Mark L. Hornick
CS2911 Week 6, Class 1 Today Map (dict) objects in Python
Slide design: Dr. Mark L. Hornick
CS2911 Week 8, Class 1 Today Week 8, Lab period Muddiest Point
CS2911 Week 6, Class 1 Today Map (dict) objects in Python
CS2911 Week 4, Class 2 Today Next Thursday:
Slide design: Dr. Mark L. Hornick
Chapter 2: Application layer
CS2911 Week 9, Class 1 Today Discussion on RSA Video Eavesdropping
The Application Layer: SMTP, FTP
CS2911 Week 7, Class 1 Today Map (dict) objects in Python
CS2911 Week 8, Class 1 Today Week 8, Lab period Muddiest Point
CS2911 Week 5, Class 3 Today Week 6, Lab: Quiz at start of lab
SE-1011 Slide design: Dr. Mark L. Hornick Instructor: Dr. Yoder
Slide design: Dr. Mark L. Hornick
Slide design: Dr. Mark L. Hornick
CS2911 Week 6, Class 1 Today Map (dict) objects in Python
CS2911 Week 2, Class 3 Today Return Lab 2 and Quiz 1
CS2911 Week 3, Class 3 (And wk4-c1)
Chapter 7 Network Applications
CS2911 Week 3, Lab Today Thursday Friday Review Muddiest Point Lab 3
Slide design: Dr. Mark L. Hornick
Chapter 2 Application Layer
Slide design: Dr. Mark L. Hornick
CS2911 Week 8, Class 1 Today Week 8, Lab period Muddiest Point
MESSAGE ACCESS AGENT: POP AND IMAP
CS2911 Week 5, Class 3 Today Next Class: DNS – Domain Name Service
Presentation transcript:

CS2911 Week 6, Class 1 Today This week, Lab: Quiz at start of lab 29 July 2018 CS2911 Week 6, Class 1 Today Sit by someone you don't know again! Return half exam 1 Review Muddiest Point Email & SMTP Muddiest Point This week, Lab: Quiz at start of lab Week 7, Monday: Half-Exam 2 17q1 6-1 1,3,5,6,7,11-16 CS2911 Dr. Yoder Dr. Josiah Yoder

Quiz Outcomes ~ 80%: Write code to interpret a simple custom protocol ~ 20% Outcomes for Half Exam 1 – perhaps difficult outcomes on the exam or outcomes not included in the exam CS2911 Dr. Yoder

CS2911 29 July 2018 Outcomes Describe the roles of the SMTP, IMAP, and POP3 email protocols Describe the operation of the SMTP protocol Explain how SMTP and IMAP are used, and the server configuration used in contemporary email settings Describe the differences between POP3 and IMAP Describe how characters are encoded in the HTTP protocol [duplicate?] Dr. Josiah Yoder

Outcomes Describe the operation of the IMAP protocol at a high level Describe how character sets are encoded in in internet messages (Lab 7) Program an email interface in Python

CS2911 29 July 2018 Muddiest Point 5-2 Has there ever been a push to renumbered characters in the order that they are used?(ie: the most commonly used character would be represented as 0x01) [Beyond scope] Compressing Unicode I've been having trouble finding a way to generate unicode characters in python and java Generating Unicode in Code Your explanation why utf-8 is useful for sending fewer bits over the network cleared it up for me. Thanks. Fewer bits with UTF-8? Dr. Josiah Yoder

CS2911 29 July 2018 Muddiest Point 5-2 what happens if you try to send a unicode character to something reading utf-8? [Mojibake – google it] Mixing encodings Aren't the percent-hex encodings just the the hex representations of the code points in their normal order? [Not yet covered] Percent-hex What is the point of UTF-8 if the unicode characters end up taking more bytes to store? Fewer bits with UTF-8? Dr. Josiah Yoder

Introduction to Python CS2910 7/29/2018 Introduction to Python Python Java ages = dict() OR ages = {} ages["Nancy"] = 5 ages["Bob"] = 10 print "B:",ages["Bob"] for item in ages.items(): print item[0]+": "+str(item[1]) Map<String,Integer> ages = new HashMap<>(); ages.put("Nancy", 5); ages.put("Bob", 10); S.o.pl("B: "+ages.get("Bob")); for(Map.Entry<String,Integer> e: ages.entrySet()) { S.o.pl(e.getKey()+": " +e.getValue()); } SE-2811 Dr. Yoder Dr. Josiah Yoder

Dictionaries A Python Dictionary is like a Map in Java You can use an object as an "index" for an item. The index object is called a "key" and the object stored is called a "value" You can use any object – they don't have to be integers, and they aren't stored sequentially in memory You can iterate through all the entries in a dictionary, or look up an item by its key SE-2811 Dr. Yoder

Some important methods CS2911 29 July 2018 Some important methods items() returns a list of all keys and values, where each item is a tuple holding (key, value) keys() returns a list of all keys values() returns a list of all values k in my_dict returns true if the value is stored in the dictionary my_dict 17q1 – updated 6-3 SE-2811 Dr.Yoder Dr. Josiah Yoder

Questions on Lab 6? Dictionaries? Writing the code? Excellent credit? Persistent connections? Implementing caching? CS2911 Dr. Yoder

Unencrypted SMTP without Authentication CS2910 7/29/2018 Unencrypted SMTP without Authentication S: 220 aol.com Simple Mail Transfer Service Ready C: EHLO msoe.edu S: 250-aol.com greets msoe.edu S: 250-8BITMIME S: 250-SIZE S: 250-DSN S: 250 HELP C: MAIL FROM: <smith@msoe.edu> S: 250 OK SE-2811 Dr.Yoder Dr. Josiah Yoder

Unencrypted SMTP without Authentication (cont.) CS2910 7/29/2018 Unencrypted SMTP without Authentication (cont.) C: RCPT TO: <jones@aol.com> S: 250 OK C: RCPT TO: <frank@aol.com> S: 550 No such user here C: DATA S: 354 Start email input; end with <CRLF>.<CRLF> C: Here's my message C: It's a long one C: Now I'm done. But does the server know it? C: . C: QUIT S: 221 aol.com Service closing transmission channel SE-2811 Dr.Yoder Dr. Josiah Yoder

Looking Forward Cryptography Videos: (From Week 9) CS2910 7/29/2018 Looking Forward Cryptography Videos: (From Week 9) Cryptography in network protocols Public key cryptography Modular arithmetic RSA encryption Encryption: Plaintext -> Ciphertext Decryption: Ciphertext -> Plaintext Both require a "key" SE-2811 Dr.Yoder Dr. Josiah Yoder

SMTP with STARTTLS and AUTH LOGIN (1) CS2910 7/29/2018 SMTP with STARTTLS and AUTH LOGIN (1) S: 220 aol.com ESMTP MAIL Service ready … C: EHLO msoe.edu S: 250-aol.com Hello [10.10.10.10] S: 250-PIPELINING S: 250-DSN S: 250-ENHANCEDSTATUSCODES S: 250-STARTTLS S: 250-8BITMIME S: 250 CHUNKING SE-2811 Dr.Yoder Dr. Josiah Yoder

SMTP with STARTTLS and AUTH LOGIN (2) CS2910 7/29/2018 SMTP with STARTTLS and AUTH LOGIN (2) C: STARTTLS S: 220 2.0.0 SMTP server ready ---- Everything beyond this point is sent encrypted ---- C: EHLO msoe.edu S: 250-aol.com Hello [10.10.10.10] S: 250-PIPELINING S: 250-DSN S: 250-ENHANCEDSTATUSCODES S: 250-AUTH LOGIN S: 250-8BITMIME S: 250 CHUNKING SE-2811 Dr.Yoder Dr. Josiah Yoder

SMTP with STARTTLS with AUTH LOGIN (3) CS2910 7/29/2018 SMTP with STARTTLS with AUTH LOGIN (3) "Username:" C: AUTH LOGIN S: 334 VXN1cm5hbWU6 C: c3R1ZGVudEBtc291LmVkdQ== S: 334 UGFzc3dvcmQ6 C: bW9ua2V5 S: 235 2.7.0 Authentication successful C: MAIL FROM: <student@msoe.edu> … (The rest is the same as unencrypted) "student@msoe.edu" "Password:" "monkey" SE-2811 Dr.Yoder Dr. Josiah Yoder

CS2910 7/29/2018 Base64 encoding https://tools.ietf.org/html/rfc4648#section-4 Use the base64 package, already imported in the lab template. Use RFC 4648 base-64 encoding, as specified in the latest AUTH LOGIN RFC, RFC 4954. This is the same as the base-64 encoding defined in RFC 3548. SE-2811 Dr.Yoder Dr. Josiah Yoder

Sending/Receiving Encrypted Data in Python CS2910 7/29/2018 Sending/Receiving Encrypted Data in Python context = ssl.create_default_context() wrapped_socket = context.wrap_socket(old_socket, server_hostname=SMTP_SERVER) SE-2811 Dr.Yoder Dr. Josiah Yoder

Sending/Receiving Encrypted Data in Python CS2910 7/29/2018 Sending/Receiving Encrypted Data in Python Some errors if you accidentally receive/send raw/encrypted text when you should send the other: ssl.SSLZeroReturnError: TLS/SSL connection has been closed (EOF) (_ssl.c:590) ssl.SSLError: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:590) ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:590) SE-2811 Dr.Yoder Dr. Josiah Yoder

Sending/Receiving Encrypted Data in Python CS2910 7/29/2018 Sending/Receiving Encrypted Data in Python Some errors if you use the wrong protocol (which is hard to do with our sample code) ssl.SSLZeroReturnError: TLS/SSL connection has been closed (EOF) (_ssl.c:590) ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:590) SE-2811 Dr.Yoder Dr. Josiah Yoder

17q1: TODO Need to go over email format headers as well CS2911 Dr. Yoder

CS2911 29 July 2018 https://www.polleverywhere.com/free_text_polls/zIp2tH2IVWjXv4H CS2911 Dr. Yoder Dr. Josiah Yoder

CS2911 29 July 2018 Acknowledgement This course is based on the text Computer Networking: A Top Down Approach 7th edition Jim Kurose, Keith Ross Addison-Wesley Dr. Josiah Yoder