260 likes | 451 Views
E-mail over low bandwidth networks. Indika Wasala Sasanka Usgoda Arachchi Dr. Gihan Dias. Contents. Objective Research Problem Previous Work at UoM Other Related work Current Project Future Work References. Objective. To optimize email communication over Low Bandwidth networks.
E N D
E-mail over low bandwidth networks Indika Wasala Sasanka Usgoda Arachchi Dr. Gihan Dias
Contents • Objective • Research Problem • Previous Work at UoM • Other Related work • Current Project • Future Work • References
Objective • To optimize email communication over Low Bandwidth networks.
Problem • Dialup internet connections in rural areas. • ADSL connections with shared bandwidth. • Expensive Leased Lines. • CDMA/GPRS connections. • Download delays • Large attachments
Previous work at UoM • On-the-fly Inter-proxy Data Compression for Web Access - Pradeepa Gurusinghe, Gihan Dias, Vishaka Nanayakkara • A Market-Based Approach to Control Web Bandwidth Usage - Chamara Dissanayake, Gihan Dias • Dynamic Bandwidth Negotiation among Web Proxies - Sumith Gamage, Gihan Dias
Other Related Work • draft-ietf-lemonade-compress-04 • COMPRESS extension • IMAP Connection is compressed effectively and efficiently. • to reduce the bandwidth usage of IMAP • Commands • CAPABILITY • Response COMPRESS=DEFLATE • COMPRESS DEFLATE • Response OK DEFLATE active
Current Project E-mail over low bandwidth networks
Solution • IMAP proxy server and proxy client to optimize email communication over low bandwidth connection. email server email client IMAP Proxy client Legacy email client IMAP Server IMAP Proxy server Low bandwidth network
Scope email client • IMAP Proxy client functions • Defining filter rule set • Assignment of priorities to emails. • Compression of IMAP requests • Decompression of IMAP responses • Sending decompressed responses to client • Sending compressed requests to server IMAP Proxy client Legacy email client
Scope cont.. email server • IMAP Proxy Server functions • Email filtering • Selecting a pre-fetch model • Compression of IMAP responses • Different compressors for different content-types • Decompression of IMAP requests and sending to IMAP server. • Spam filtering IMAP Server IMAP Proxy server
Solution Components • Mail server : qmail (www.qmail.org) • IMAP Server : binc imap (www.bincimap.org) • IMAP proxy : imapproxy (www.imapproxy.org) • All are open source components.
Proxy Client Configuration • Filtering Rules • Configured in proxy client • Using a simple UI • Using config file • <header field:”matching string”> <priority> <image compression on/off> • from:”x@xyz.com” 1 0
Proxy Client Configuration contd.. • Priorities and Pre-fetching • Priority 1 : Pre-fetch whole message • Priority 2 : Pre-fetch first 1 KB of the message • Priority 3 : Pre-fetch only the header information including attachment type if there are any. • Priority 4 : Delete messages
Pre-fetching • Static • Pre-fetch at night or when the link is idle • Dynamic • While previous message / first part of message is being read
Client Connects Process Client Is Link idle ? Requests Get All unseen UIDs and put them into a list IMAP Proxy server Operation NO YES
Download user rule configuration into proxy server For each UID in list get # Format of a rule header and check whether Assign default priority From : x @ xyz . com 1 0 any match is found in rules = 3 config . Check Priority IMAP Proxy server Operation Contd.. NO YES
IMAP Proxy server Operation Contd.. • Priority = 1 • Check for compression bit for images • Compress or leave image in original form • Compress text/html part • Send whole email to proxy client
IMAP Proxy server Operation Contd.. • Priority = 2 • Check for compression bit for images • Compress or leave image in original form • Store attachments • Generate a URLs for attachments • Append URLs to the end of email • Get 1st KB of the email • Append a URL to next KB • Compress and send to proxy client
IMAP Proxy server Operation Contd.. • Priority = 3 • Check for compression bit for images • Compress or leave image in original form • Leave any other attachment in original form • Compress email header • Send header to proxy client
IMAP Proxy server Operation Contd.. • Priority = 4 • Delete email • Remove UID from the list
Client Connects toproxy client uncompreses pre fetched email headers Email box will be populated with the headers of pre - fetched emails Client fetches an email Checks the priority of the requested email IMAP Proxy client operation
IMAP Proxy client operation contd.. • Priority = 1 • Uncompress and Send pre-fetched mail to email client • Check priority of next email • If 3 start fetching next email from server • If priority is 1 or 2 check priority of next email
IMAP Proxy client operation contd.. • Priority = 2 • Uncompress and Send pre-fetched part to email client • Start fetching next part from the server • If end of mail check priority of next email • If 3 start fetching next email from server • If priority is 1 or 2 check priority of next email
IMAP Proxy client operation contd.. • Priority = 3 • If it was pre-fetched, uncompress and send to email client • If not fetch from server, uncompress and send to email client • Check priority of next email • If 3 start fetching next email from server • If priority is 1 or 2 check priority of next email
Future Work • Caching of attachments • For future reuse • Different compression algorithms for different content types
References • RFC 3501 - Internet Message Access Protocol - Version 4rev1 • RFC 2683 - IMAP4 Implementation Recommendations • RFC 3516 - IMAP4 Binary Content Extension • Arnt Gulbrandsen, draft-ietf-lemonade-compress-04 • Bruce Zenel, A general purpose proxy filtering mechanism applied to the mobile environment • Pradeepa Gurusinghe, Vishaka Nanayakkara, Gihan Dias, On-the-fly Inter-proxy Data Compression for Web Access • Chamara Disanayake & Gihan Dias,A Market-Based Approach to Control Web Bandwidth Usage • Qmail manual, www.lifewithqmail.org/lwq.html • Binc IMAP, www.bincimap.org • 8bitMIME - http://en.wikipedia.org/wiki/8BITMIME • MIME - http://en.wikipedia.org/wiki/MIME • Zlib - http://www.zlib.net/manual.html