- what - a single server that responds to more than one protocol
- a service defined over more than one transport protocol
- internet services - echo, discard, daytime, chargen, time, domain,
sunrpc, ldap, ldaps
- host-specific services - ntp
- unix services - kerberos-adm, kerberos, ufsd, www-ldap-gw, nfsd, lockd
- these are multiple transport protocols, not application protocols
- why - a more difficult question
- client choice - reliability and overhead vs unreliability and speed
- tcp vs. udp - nfs performance
- http vs. https - web security
- client necessity - system types
- intermittent vs. continus connectivity
- administrator choice - pre-empts client choice
- process sharing - one process, many protocols
- code sharing - ever hear of libraries
- data administration and sharing
- hardware sharing
- not-yet standard protocols - e-commerce
- server architecture
- 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()
- concurrent, single-threaded servers are multi-protocol ready
- single-threaded servers are also ready - asynchrony may be missing
- concurrent servers may be missing asynchrony too
- comments
- gateways are multi-protocol servers
- printers are multi-protocol servers (sorta)
- multi-protocol issues are important below transport
- don't forget multi-protocol clients - particularly at the application
level; multimedia
This page last modified on 9 April 2002.