Application Layer

2.7 Socket Programming with TCP

Home
Introduction
2.1 Principles of Network Applications
2.1.1 Network Application Architectures
2.1.2 Processes Communcating
2.1.3 Application-Layer Protocols
2.1.4 What Services Does an Application Need?
2.1.5 Services Provided by the Internet Transport Protocols
2.2 The Web and HTTP
2.2.1Overview of HTTP
2.2.2 Nonpersistent and Persistent Connections
2.2.3 HTTP Message Format
2.2.4 User-Server Ineraction: Cookies
2.2.5 HTTP Content
2.2.6 Web Caching
2.2.7 The Conditional GET
2.3 File Transfer: FTP
2.3.1 FTP Commands and Replies
2.4 Electronic Mail in the Internet
2.4.1 STMP
2.4.2 Comparison with HTTP
2.4.3 Mail Message Formats and MIME
2.4.4 Mail Access Protocols
2.5 DNS--The Internet's Directory Service
2.5.1 Services Provided by DNS
2.5.2 Overview of How DNS Works
2.5.3 DNS Records and Messages
2.6 P2P File Sharing
2.7 Socket Programming with TCP
2.7.1 Socket Programming with TCP
2.7.2 An Example Client/Server Application in Java
2.8 Socket Programming with UDP

2.7.1 Socket Programming with TCP

Processes running on differnet machines communicate with each other by sending messages into sockets.  Each process is analogous to a house and the process's socket is analogous to a door.  The socket is the door between the application process and TCP.  The application developer has control of everything on the application-layer side of the socket; however, it has little control of the transport-layer side.

kurose_320719_c02f26.gif

Before providing client/server application, it is useful to discuss the notion of a stream.  A stream is a sequence of characters that flow into or out of a process.  Each stream is either an input stream for the process or an output stream for the process.

kurose_320719_c02f27.gif