Lecture Notes for Client-Server Interfaces

9 April 2002 - Multi-protocol servers


  1. what - a single server that responds to more than one protocol

    1. a service defined over more than one transport protocol

    2. internet services - echo, discard, daytime, chargen, time, domain, sunrpc, ldap, ldaps

    3. host-specific services - ntp

    4. unix services - kerberos-adm, kerberos, ufsd, www-ldap-gw, nfsd, lockd

  2. these are multiple transport protocols, not application protocols

  3. why - a more difficult question

    1. client choice - reliability and overhead vs unreliability and speed

      1. tcp vs. udp - nfs performance

      2. http vs. https - web security

    2. client necessity - system types

      1. intermittent vs. continus connectivity

    3. administrator choice - pre-empts client choice

    4. process sharing - one process, many protocols

    5. code sharing - ever hear of libraries

    6. data administration and sharing

    7. hardware sharing

    8. not-yet standard protocols - e-commerce

  4. server architecture

    1. asynchronous io is required - n listener sockets pes() int udp = socket(udp); int tcp = socket(tcp); while true int s = select(udp | tcp); if (s == udp) // do udp socket else // do tcp socket pee()

    2. concurrent, single-threaded servers are multi-protocol ready

    3. single-threaded servers are also ready - asynchrony may be missing

    4. concurrent servers may be missing asynchrony too

  5. comments

    1. gateways are multi-protocol servers

    2. printers are multi-protocol servers (sorta)

    3. multi-protocol issues are important below transport

    4. don't forget multi-protocol clients - particularly at the application level; multimedia


This page last modified on 9 April 2002.