Application Protocols • • • • • • • • SMTP: Simple Mail Transport Protocol HTTP: Hyper Text Transport Protocol HTTPS: Hyper Text Transport SSL (Secure) SNMP: Simple Network Management Protocol FTP: File Transfer Protocol Telnet: Interactive login SSH: Secure Shell telnet DNS: Domain Name Service IP header • Source and Destination IP addresses • Type of Service – Selects delivery speeds vs. accuracy • Protocol (TCP,ICMP, UDP) • Time to Live (Router hops) • Identification and Fragment offset – Reassembly of a fragmented datagram IP Header Version Leng Type of Svc Total Length Identification Flags Frag Offset Time to Live Protocol Header Checksum Source Address Destination Address TCP Header then your data... TCP fields • • • • Ports (service identifiers) Sequence numbers Acknowledgement numbers Windowing – More retries (less acks) smaller packets – Less retries (more good data) larger packets TCP Header Source Port Destination Port Sequence Number Acknowledgement Number Data Offset Reserved Window Flags Checksum Urgent Pointer Your Data… next 500 octets Services • • • • RFC’s (Requests for Comments) /etc/services or multinet:services.master_server lists service name and port number Common (well known) ports: – – – – – – – FTP 21 TELNET 23 SSH 22 SMTP 25 HTTP 80 NTP 123 Finger 79 TCP Data Flow Listens on port 23 129.123.7.33, 129.123.1.86 Computer 1234 Returning Port 129.123.1.86 Port info:1234, 23 UDP Data Flow 129.123.7.33, 129.123.1.86 Reply 2 Port 123 Computer Reply 1 Port 123 129.123.1.86 Port info:1234, 123 TCP, UDP, ICMP • TCP (Transmission Control Protocol) – – – – Datagrams Connection Oriented End to End error checking Source Port, Destination Port • Sockets, Well Known Ports – HTTP, SMTP, TELNET,FTP UDP (user datagram protocol) • • • • • Connectionless One Way Fast, Simple No guarantee of delivery NFS, DNS, DHCP, NTP, TALK ICMP (Internet control message protocol) • • • • Error Messages Intended for the TCP/IP software itself PING (host unreachable messages) Simple Headers FTP • File Transfer Protocol (TCP) – User authentication – Anonymous • GET/PUT/DEL/CWD • Binary/Ascii FTP Example • requires 2 ports • telnet ftp.remotesite.com 21 – – – – – – 220 ftp.remotesite.com FTP server ready user anonymous 331 password required for anonymous password user@cc.usu.edu 230 user anonymous logged in PORT 1200 FTP Example cont. • • • • • • PORT 129,123,7,55,4,76 200 PORT command successful pwd 257 “/export/guest/bobw” is current directory RETR ./.login 150 ASCII data connection for ./.login(129.123.7.55,1100)(795 bytes) • QUIT HTTP Application • HTTP is a pull protocol, the user pulls information from a remote site. • Protocol consists of GET and POST commands to transfer data. • Persistent vs. Non-Persistent connections Non-Persistent Connections • TCP connections are opened and closed for each request. • Allows for parallel transfer of objects. Persistent Connections • TCP connection left open until requested to disconnect or times out. • Takes advantage of pipelining to improve transfer rates. Proxy Servers • HTTP uses cached files to speed up transfers • Proxy Server is a LAN accessible cache • Proxy allows for reduced load on the internet connection • Proxy Servers allow NAT (Network Address Translation) systems to protect internal networks. MIME Types/Encoding • Multipurpose Internet Mail Extensions • Handles Non-ASCII data in an ASCII transfer medium. • Imbeds the data stream into the email message Simple Mail Transfer Protocol • The protocol is very simple • SMTP is a push protocol, information is pushed to a remote sitre • Uses port 25 • All files are ascii text • Syntax: user@host.domain • Mail relay: user%host1@host2.domain • Mail Exchange (MX) – Allows mail server redirection SMTP Example 1> telnet red.rutgers.edu 25 2> 220 RED.RUTGERS.EDU SMTP Service at 15 Apr 98 10:11:18 EDT 1> HELO pc15.logan.com 2> 250 RED.RUTGERS.EDU - Hello, PC15.LOGAN.COM 1> MAIL From:<student11@pc15.logan.com> 2> 250 MAIL accepted 1> RCPT To:<mailman@red.rutgers.edu> 2> 250 Recipient accepted 1> DATA 2> 354 Start Mail input; end with <CRLF>.<CRLF> 1> Date: Sat, 22 Mar 1998 13:26:31 MST 1> From: student11@pc15.logan.com 1>Subject: Meeting tomorrow SMTP Example cont. 1> The meeting is TOMORROW at 3:00 PM! 1> 1> . 2> 250 OK 1> QUIT 2> 221 RED.RUTGERS.EDU Service closing transmission channel POP3 • • • • Post office protocol Mail access client Uses port 110 Messages are downloaded to client but can be stored on server. • Does not easily allow multiple clients POP3 Example • • • • • • • • • • • • • • • telnet cc.usu.edu 110 +OK POP3D(*) Server PMDFV6.1.2 at Wed, 8 Sep 2004 10:49:30 MdT 01LEMEHLU2FMBOTAK2@grumpy.usu.edu user bobw +OK password please pass areukidding +OK Mailbox open, 335 messages list (List of messages) 1 4355 2 106 3 445567 retr 2 (dumps message, ends with a .) quit +OK bye IMAP • • • • • Internet Mail Access Protocol Improved POP3 Automatically assigns folders Leaves mail on server Only transfers as much as needed per message (headers, subject only on list) DNS • • • • • • • Domain Name Services What’s in a name? Distributed hierarchical architecture Caches and times DNS entries for speed www.internic.net (root server) Top Level Domain Servers Authoritative Local Nameservers – thingy, watzit, doober DNS Configuration File ; ; Hosts file for domain flibble.orac.net.au. ; ;name ttl class type data ; ; Source of authority @ IN SOA solaris.flibble.orac.net.au. root.solaris.flibble.orac.net.au. ( 2000050201 ; Serial 10800 ; Refresh - 3 hours 3600 ; Retry - 1 hour 432000 ; Expire - 1 week 86400) ; Minimum - 1 day IN NS solaris.flibble.orac.net.au. More Config ; ; Machines for the flibble.orac.net.au domain ; ;name ttl class type data localhost IN A 127.0.0.1 solaris IN A 10.5.3.1 win95 IN A 10.5.3.21 linux IN A 10.5.3.22 ; ; Aliases ; mail IN CNAME solaris www IN CNAME solaris More config ; ; Domain mailing addresses ; flibble.orac.net.au. IN MX flibble.orac.net.au. IN A 10 solaris.flibble.orac.net.au. 10.5.3.1 DNS Resolution Want cc.usu.edu homeuser.aol.com Top Level Domain Server (resolve .edu) thingy.usu.edu resolve usu.edu resolve cc.usu.edu USU DNS • Handled by Network and Computing Services • thingy.usu.edu webpage for registrations and lookups