Tom Kelliher, CS 325
Feb. 28, 2011
Collect assignment.
Read 3.4-3.5.
TCP and UDP socket programming.
Reliable transport services and TCP.
Transport level protocols provide the illusion of a direct connection between hosts:
Terminology:
IP: network-level protocol.
Things to note:
USPS analogy -- to your house.
Only needs IP address.
USPS -- To you.
Multiplexing: Taking application data and adding necessary header information to ensure delivery to appropriate process on destination host. Multiple application streams (possibly to same destination host) multiplexed into network-level protocol.
Demultiplexing: Using header information to pass application data to correct process.
Illustration:
Use of port numbers to identify sockets:
multiple TCP sockets (processes) might be using the same socket -- the ``main'' process and forked children.
A single process receives all datagrams sent to a given port.
Multiple processes can receive segments sent to a given port.
Example: Two SSH clients (one for Christine, one for Joe) on kingfisher (10.67.1.43) connecting to the SSH server (port 22) on phoenix (10.32.3.39).
netstat -t -p -e -a
):
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name tcp 0 0 *:printer *:* LISTEN root 328119 16106/xinetd tcp 0 0 *:5252 *:* LISTEN smmsp 328461 16305/milter-greyli tcp 0 0 *:netbios-ssn *:* LISTEN root 328886 16491/smbd tcp 0 0 localhost.localdomain:783 *:* LISTEN root 328561 16348/spamd.pid tcp 0 0 *:sunrpc *:* LISTEN root 327576 15887/portmap tcp 0 0 *:10000 *:* LISTEN root 328048 16085/beremote tcp 0 0 *:auth *:* LISTEN root 328118 16106/xinetd tcp 0 0 phoenix.goucher.edu:domain *:* LISTEN named 328000 16055/named tcp 0 0 localhost.localdomai:domain *:* LISTEN named 327998 16055/named tcp 0 0 *:ipp *:* LISTEN root 644033 25518/cupsd tcp 0 0 *:postgres *:* LISTEN postgres 589356 19320/postmaster tcp 0 0 *:824 *:* LISTEN root 327612 15906/rpc.statd tcp 0 0 *:smtp *:* LISTEN root 328522 16328/sendmail: acc tcp 0 0 localhost.localdomain:rndc *:* LISTEN named 328003 16055/named tcp 0 0 localhost.lo:x11-ssh-offset *:* LISTEN kelliher 433569 32014/0 tcp 0 0 *:xfs *:* LISTEN xfs 328807 16482/xfs tcp 0 0 *:microsoft-ds *:* LISTEN root 328885 16491/smbd tcp 0 0 phoenix.goucher.edu:5252 bluebird.goucher.edu:54880 ESTABLISHED smmsp 419692 16305/milter-greyli tcp 0 0 phoenix.goucher.edu:39161 bluebird.goucher.edu:5252 ESTABLISHED smmsp 433791 16305/milter-greyli tcp 0 0 *:5252 *:* LISTEN smmsp 328460 16305/milter-greyli tcp 0 0 *:http *:* LISTEN root 328689 16417/httpd tcp 0 0 *:ssh *:* LISTEN root 328027 16077/sshd tcp 0 0 *:postgres *:* LISTEN postgres 589355 19320/postmaster tcp 0 0 localhost:x11-ssh-offset *:* LISTEN kelliher 433570 32014/0 tcp 0 0 *:https *:* LISTEN root 328691 16417/httpd tcp 0 0 *:xfs *:* LISTEN xfs 328806 16482/xfs tcp 0 0 phoenix.goucher.edu:http lj511775.crawl.yahoo.:36548 TIME_WAIT root 0 - tcp 0 0 phoenix.goucher.edu:ssh bluebird.goucher.edu:46079 ESTABLISHED root 433527 32012/sshd: kellihe tcp 0 0 phoenix.goucher.edu:http crawl-8.cuill.com:38700 TIME_WAIT root 0 - tcp 0 0 phoenix.goucher.edu:http crawl-8.cuill.com:49221 TIME_WAIT root 0 - tcp 0 0 phoenix.goucher.edu:http ppp-69-218-215-238.dsl:1278 FIN_WAIT2 apache 660717 25594/httpd
Connection-oriented demultiplexing:
UDP datagram format:
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name udp 0 0 *:who *:* root 328156 16132/rwhod udp 0 0 *:syslog *:* root 327536 15859/syslogd udp 0 0 phoenix.gouc:netbios-ns *:* root 328833 16495/nmbd udp 0 0 *:netbios-ns *:* root 328828 16495/nmbd udp 0 0 phoenix.gou:netbios-dgm *:* root 328834 16495/nmbd udp 0 0 *:netbios-dgm *:* root 328829 16495/nmbd udp 0 0 *:xdmcp *:* root 329172 16578/gdm-binary udp 0 0 *:818 *:* root 327602 15906/rpc.statd udp 0 0 phoenix.goucher.edu:domain *:* named 327999 16055/named udp 0 0 localhost.locald:domain *:* named 327997 16055/named udp 0 0 *:821 *:* root 327609 15906/rpc.statd udp 0 0 *:38749 *:* named 328001 16055/named udp 0 0 *:sunrpc *:* root 327575 15887/portmap udp 0 0 localhost.localdomain:44528 localhost.localdomain:44528 ESTABLISHED postgres 589363 19320/postmaster udp 0 0 *:ipp *:* root 644034 25518/cupsd udp 0 0 phoenix.goucher.edu:ntp *:* root 328166 16123/ntpd udp 0 0 localhost.localdomain:ntp *:* root 328165 16123/ntpd udp 0 0 *:ntp *:* root 328163 16123/ntpd udp 0 0 *:38750 *:* named 328002 16055/named udp 0 0 *:ntp *:* root 328164 16123/ntpd