Application layer,
P2P NETWORK
2 OR MORE COMPUTERS OR DEVICES ARE CONNECTED VIA NETWORK AND CAN SHARE RESOURCES WITHOUT HAVING A DEDICATED SERVER EVERY CONNECTED DEVICE CAN ASSUME OF THE ROLE CLIENT OR SERVER DEPENDING ON THE REQUEST
PROTOCOL SERVER FILE NAME FILE TYPE
3 PARTS OF URL
Sockets
A process sends/Receives messages to/from this
Stream
A sequence of characters that flow into or out of a process
HTTP Status 400
Bad Request -- message not understood by the server
UPLOAD
CLIENT TO SERVER
Socket Programming with TCP
Client must contact server Client Contacts Server by: creating TCP socket, specifying IP address, port number of server process Server TCP creates new socket from server process to communicate with that particular client (allows server to talk with multiple clients)
Application Architectures
Client-Server Peer-to-Peer
What are some email protocol ports?
- 25 - 110 - 143
What is a Socket?
- A process is a program running on a host - Processes on the same host - Processes on different hosts
What is Tera Term
- A terminal emulator application
What does Iterative queries do?
- Ask server who to ask next - The complete answer may be returned or a referral provided to another DNS server - All DNS servers must support that kind of query
What does Processes on the same host mean?
- Communicate directly using Process IDs
How does a virtual connection work?
- Emulates a real terminal connected directly to the remote device - Multiple simultaneous sessions to one device are possible
What does Tera Term do?
- Emulates old simple devices called Terminals - Terminals can only be connected over direct serial lines
What are the HTTP request messages?
- Get - Post
What is HTTP
- Hypertext Transfer Protocol
Cookie Components
Cookie header Line of HTTP Response Message Cookie Header Line in the next HTTP Request Message Cookie file kept on user's host, managed by user's browser Back-end Database at website
POP3 download and keep
Copies the message on different clients
P2P NETWORK MODEL
DATA IS ACCESSED FROM A PEER DEVICE WITHOUT THE USE OF DEDICATED SERVER
CLIENT
DEVICE REQUESTING FOR INFORMATION
DELETE
Deletes file specified in the URL field
Why is the Recursive DNS name resolution not scale?
- It will put too much load on Root and TLD servers
What does the A record do?
- Name = Hostname - Value = IPV4 address
What is BIND?
- Open-source DNS server software - The most widely used name server software
What is port 110?
- POP3
What is port 25?
- SMTP
What Protocols does Delivery have?
- SMTP (Simple Mail Transfer Protocol) - HTTP
What does Post do in HTTP request?
- Send data to the server
How do you communicate using sockets?
- Socket = IP Address + Port number
What is part of the DNS security?
- you first get your DHCP address - Second while on the internet a man in the middle attack
STATIC ADDRESSING
NET ADMIN MANUALLY ENTERS IP ADDRESS INFORMATION ON HOSTS
PUT
uploads files in entity body path specified in URL field
Cookies (5)
• As HTTP is stateless, there needs to be a mechanism to store state • Cookies allow state storage on a client • Server sends *Set-cookies: header* - stored locally • When the page is requested again the browser appends a *Cookie:header* • Allow sites to keep track of user (can be used to identify a user)
Difference between SMTP and Mail Access Protocol?
• SMTP: delivery/storage to receiver's server • Mail access protocol: retrieval from server
HTTP (3)
• Web's application layer protocol • Two programs run on different end systems, talk to each other by exchanging HTTP message. • HTTP is "stateless"
How many root servers are out there?
- 13 worldwide
What are the HTTP Response Status code?
- 200 OK - 301 Moved Permanently - 400 Bad Request - 404 Not Found - 505 HTTP Version Not Supported
What is an example of a socket pair?
- 72.163.4.161:80 = Socket for Cisco web server - 143.110.255.120:25 = socket for SAIT mail server
What are the type of DNS records?
- A - AAAA - CNAME - NS - MX
What does Get do in HTTP request?
- Retrieve information from the server
What do Servers have that's permanent?
- Servers are always on - Permanent IP addresses - Respond to requests from clients
What Protocol does FTP use?
- TCP
What is the Port for HTTP?
- TCP port 80
What can Tera Term connect to?
- Telnet on TCP port 23 - SSH on TCP Port 22
What does Telnet mean?
- Terminal Network
How big can the total name be for the DNS to read?
- The total name can be a max 255 characters
What do general purpose virtual terminal emulator do?
- They allow virtual connections to remote devices
How do you connect using a virtual connector?
- They connect using a TCP/IP session
Where is the top level domain in ict.sait.ca?
- Top Level Domain is (ca)
What is TFTP?
- Trivial File Transfer Protocol
What Protocol does TFTP use?
- Uses UDP port 69 for control and data
What does VTY stand for?
- Virtual Connections
Can you have multiple simultaneous sessions to one device are possible?
- Yes
Is TFTP much simpler then FTP?
- Yes
Is HTTP stateless?
- Yes, it maintains no information about past clients requests
What is unique about vlab2.ict.sait.ca?
- it is a FQDN - It is unique in the world
What are the subdomains in ict.sait.ca?
- sait is a subdomain of the ca doamin - ict is a subdomain of the sait.ca domain
What is the Hierarchical Namespace?
.com -> google.com -> mail.google.com
Example: Alice sends e-mail to Bob (6)
1. Alice uses UA to compose message and "to" [email protected] 2. Alice's UA sends message to her mail server; message placed in message queue 3. Client side of SMTP opens TCP connection with Bob's mail server 4. SMTP client sends Alice's message over the TCP connection 5. Bob's mail server places the message in Bob's mailbox 6. Bob invokes his user agent to read message
Examples of Requirements of these network applications: 1. E-mail 2. Web Documents 3. Real-time audio/video 4. Interactive games
1. E-mail. *Data Loss* = No loss; *Bandwidth* = Elastic; *Time-Sensitive* = No 2. Web Documents. *Data Loss* = No loss; *Bandwidth* = Elastic (few kbps); *Time-Sensitive* = No 3. Real-time audio/video. *Data Loss* = Loss-Tolerant; *Bandwidth* = Audio: Few kbps - 1 Mbps, Video: 10 kbps - 5 Mbps; *Time-Sensitive* = Yes: 100s of msec. 4. Interactive game. *Data Loss* = Loss-Tolerant; *Bandwidth* = Few kbps - 10 kbps; *Time-Sensitive* = Yes: 100s of msec.
.COM
A BUSINESS OR INDUSTRY
GET
A CLIENT REQUEST FOR DATA
.ORG
A NON PROFIT ORGANIZATION
DIFFERENT TYPES OF RESOURCE RECORD
A NS AAAA MX
Ecoplexing
A further potential problem with Telnet that makes it very inefficient over WANs is that it was designed for use over asynchronous modem links. The standard method of remotely accessing a host at the time was for a character to be sent to the host and the host to echo it back to the terminal before it was displayed. This method of operation is known as echoplexing.
Client-Server Architecture: Server
Always-on host Permanent IP Address Data centers for scaling
Internet Mail Access Protocol (IMAP)
An alternative protocol for retrieving messages from mail servers is Internet Mail Access Protocol (IMAP) which offers very similar functions to POP3, but also allows users to view message headers and select which messages to download. This is very useful for a dial-up connection where bandwidth is expensive and should not be wasted by downloading spam or other unwanted messages. IMAP also allows messages to be stored in folders on the server, which is particularly important if the user often accesses his email from different machines.
Data encoding
An important function of the application layer is to determine how data is to be encoded for transmission. This may involve the choice of character codes,6 the use of tags to define how data is displayed7 or to define data syntax or semantics.8 Abstract Syntax Notation 1 (ASN.1) has become an important standard for specifying PDU formats at all layers. It is an ISO standard, but it has also been used extensively by the IETF in specifying new Internet based protocols. It can be thought of as a type definition language where data is defined as belonging to either primitive types such as Boolean, Integer or Bitstring, or more complex user-defined types. It is similar to data type declarations in programming languages. ASN.1 is not only used for specifying protocols
SSH
Another way to improve security for remote login type applications is to use Secure Shell (SSH). The functionality of SSH is very similar to Telnet, but user names and passwords are encrypted for transmission from SSH clients to SSH servers.
Hyper-Text Transfer Protocol (HTTP)
Another, and increasingly popular method for sending and receiving email messages is to use the world wide web to access mail services such as Hotmail, making use of the web's Hyper-Text Transfer Protocol (HTTP) rather than using mail protocols. As with IMAP, messages can be organised in folders on the server. Web-based email has the advantage of allowing users to access their email from any machine that supports a web browser, such as a PC in an Internet Café.
Non-Persistent HTTP
At most one object sent over TCP connection and the connection is then closed downloading multiple objects require multiple connections
Multipurpose Internet Mail Extensions (MIME)
Because SMTP was designed only to carry ASCII 7-bit characters, it cannot on its own be used to transfer 8-bit binary data which would be required if an executable file or a formatted text file (such as a Word document) were to be transmitted. When the designers of SMTP realised that users wanted to the ability to send data other than ASCII text, they were faced with two possible solutions. Either they could change the SMTP protocol and update all the clients and servers at the same time, or they could just create a new protocol to allow 8-bit data to be encoded as 7-bit ASCII characters. They chose the latter option, as it only involved upgrading the clients, and they designed a new protocol called Multipurpose Internet Mail Extensions (MIME) which allowed 8-bit data files to be attached to SMTP messages and be transmitted as 7-bit ASCII characters.
HTTP Request Message
Begins with Request line (GET, POST, HEAD commands, then URL, the version) Then has the header lines (header field name and value) Ends with the carriage return to signal the end of the header lines Entity Body then begins
SMB
CLIENT SERVER FILE SHARING PROTOCOL THAT DESCRIBES THE STRUCTURE OF SHARED NETWORK RESOURCES SUCH AS DIRECTORIES, FILES, PRINTERS AND SERIAL PORTS
SWARM
CLIENTS ASK FOR PIECES FROM MULTIPLE USERS AT THE SAME TIME
.CO
COLOMBIA
IPCONFIG DISPLAYDNS
COMMAND THAT DISPLAYS ALL OF THE CAHED DNS ENTRIES
PRESENTATION LAYER FUNCTION
COMPRESSING DATA IN A WAY THAT CAN BE DECOMPRESSED BY THE DESTINATION DEVICE
SESSION LAYER
CREATE AND MINTAINS DIALOGS BETWEEN SOURCE AND DESTINATION APPLICATIONS
Client-Server Architecture: Clients
Communicated with server May be intermittently connected May have dynamic IP Address Do not communicate directly with each other
FTP
DEVELOPED TO ALLOW FOR DATA TRANSFERS BETWEEN A CLIENT AND A SERVER USED TO PUSH AND PULL DATA FRO FTP SERVER
SERVER
DEVICE RESPONDING TO A REQUEST
DNS
DEVICES ARE LABELED WITH IP ADDRESS TO SEND AND RECIEVE DATA OVER NETWORKS DNS WERE CREATED TO CONVERT NUMERIC ADDRESS TO SIMPLE RECOGNIZABLE NAME DEFINES AN AUTOMATED SERVICE THAT MATCHES RESOURCE NAMES WITH THE REQUIRED NUMERIC NETWORK ADDRESS
DHCP MESSAGE FORMAT IPV4
DHCPDISCOVER DHCPOFFER DHCPREQUEST DHCPACK
MESSAGE
DNS PROTOCOL COMMUNICATIONS USES A SINGLE FORMAT CALLED A
What Transport Service does an app need?
Data Integrity Timing (low delay) Throughput (min amount) Security (encryption, data integrity)
Data compression
Data compression is often required because bandwidth in wide area networks is a scarce (and hence expensive) resource, and some types of data (such as voice and video) require a large amount of bandwidth, although they use that bandwidth quite inefficiently. Typically voice and video signals (and to some extent also text) contain a large amount of redundant information and can be coded much more efficiently using data compression algorithms. These algorithms can either be lossy,9 where information cannot faithfully be reproduced at the receiver, or they can be lossless,10 where the quality of the information after decompression at the receiver is just as good as it was before it was compressed at the transmitter.
1 File Transfer Protocol (FTP)
File Transfer Protocol (FTP) was also one of the original Internet application protocols. It allows three different types of file (unstructured, structured and random) to be transferred over a network between one host and another using a set of simple commands. File transfers are now quite often carried out using HTTP rather than FTP, but FTP is still used not least when web pages are published to a web server. Most web publishing software uses FTP, although the details of it are hidden from the users and few web designers will be aware that they regularly use FTP.
The fundamental decision that designers of applications must take is which transport service to use. It is the transport service that supports the differing levels of service that might be required.
For internet applications, there is a choice between a reliable service using the Transmission Control Protocol (TCP) or an unreliable or best efforts service using the User Datagram Protocol (UDP). The reliable service uses a complex connection oriented transport protocol, and the unreliable service uses a simple connectionless transport service. The choice of what sort of transport service to use will have a huge effect on what functions are required in the application layer. It may seem strange at first to think that some application developers would prefer to use an unreliable transport service, but there are several reasons why this might be the best choice.
HTTP/1.0 Method Types
GET POST HEAD
HTTP/1.1 Method Types
GET POST HEAD PUT DELETE
HTTP MESSAGE TYPE
GET POST PUT
COMMON GNUTELLA APPLICATION
GTK GNUTELLA WIRESHARE SHAREAZA BEARSHARE
Web Caches (proxy server)
Goal is to satisfy client request without involving origin server Cache acts as both client and server Typically installed by ISP
SESSION LAYER
HANDLES THE EXCHANGE OF INFORMATION TO INITIATE DIALOGS KEEP THEM ACTIVE AND TO RESTART SESSIONS THAT ARE DISRUPTED OR IDLE FOR A LONG PERIOD OF TIME
DNS MESSAGE FORMAT
HEADER QUESTION ANSWER AUTHORITY ADDITONAL
COMMON APPLICATION LAYER PROTOCOL
HTTP FTP TFTP IMAP DNS
HTTP Status 505
HTTP Version Not Supported
Characters of http
HTTP and HTML were studied in a Level 1 unit. You are strongly advised to revise this material, as the remainder of this section on web protocols will assume this knowledge and build upon it. HTTP assumes a client server model for communications. The web browser acts as the client and requests web pages from the web server. The page is referenced by a Uniform Resource Locator (URL) which can be thought of as an application layer address. It defines the protocol to be used, the location of the server and the file to be transferred as well as the transport layer address to be used. A URL has the following structure: protocol://hostname/filename:port number13
Http and security
HTTP has a simple security mechanism that developers can implement to help prevent unauthorised access to web pages. A web page can be set up so that authorisation is required. In this case the web server prompts the client for a user name and password. The server requests a user name and password with a 405 Authorization Required Response and the browser prompts the user for this information. Once the browser has obtained a user name and password it resends the request but this time includes the user name and password in the request header. The server will then check this and if satisfied, will download the page. The browser will cache the user name and password and will automatically include them in any further requests to the server during that browser session.
Socket Programming with UDP
No "connection" between client and server Transmitted data may be lost or received out-of-order
HTTP Response Time
One RTT to initiate TCP connection One RTT for HTTP request and first few bytes of HTTP response to return File Transmission time Non-Persistent HTTP response Time: 2RTT + file transmission time
List 6 Popular Internet Applications with their Application Layer Protocol and Underlying Transport Protocol.
1. *E-Mail* - SMTP - TCP 2. *Remote Terminal Access* - Telnet - TCP 3. *Web* - HTTP - TCP 4. *File Transfer* - FTP - TCP 5. *Streaming Multimedia* - HTTP (e.g. YouTube), RTP - TCP or UDP 6. *Internet Telephony* - SIP, RTP, Proprietary (e.g. Skype) - typically UDP
Addressing
Addressing is often thought of as a function of lower layer protocols, but many application protocols do require their own addressing function as well as having to pass down addresses to be used by lower layer protocols.
The client server model is well suited to using a connectionless transport service. If clients make occasional request to servers, then using a reliable connection-oriented service, such as that provided by TCP, can be very inefficient.
will be necessary to set up a connection and close it down afterwards. This will require a minimum of five packets and the server will have to hold state information in its memory about all the transport connections that are currently active. Communications operate much more efficiently, as do applications, if a connectionless transport service is used. There will only be a need for two packets to be exchanged and the server can minimise memory usage as it does not need to hold any state information about connections. If packets are lost or corrupted the application client simply retransmits its request.
HTTP Connections (2)
• *Non-persistent HTTP* - At most one object is sent over a TCP connection (HTTP/1.0) • *Persistent HTTP* - Multiple objects can be sent over single TCP connection between client and server. (HTTP/1.1)
What services does an application need? (4)
• *Reliable data transfer* = No data loss apps; Loss-tolerant apps • *Bandwidth* (transmission at certain rate) = Bandwidth sensitive, Elastic apps • *Timing* = some apps are time sensitive • *Security* = encryption, data integrity
Two types of HTTP messages
• *Request* = ASCII (human-readable format); request line (GET, POST, HEAD commands); header lines; carriage returns, line feed indicates end of message. • *Response* = status line; header lines; data e.g. requested HTML file
4 components of Cookies
• A cookie header line in the HTTP response message • A cookie header line in the HTTP request message • A cookie file kept on the user's end system and managed by the user's browser - to remember history (as HTTP is stateless) • A back-end database at the web site - to track user and how many times they visit
Port Number (6)
• A numeric value used as an identifier to applications and services on TCP/IP systems. • Can identify receiving process running in the host - One per process on host • 16 bit value • Server port is fixed (well-known) • Client port must be different for each flow • When a developer creates a new network application, the application must be assigned a new port number.
What is a well-known port (2) and 3 examples?
• A port which is known to be used primarily by a single application • Has been assigned by the Internet authorities to that application. • e.g. HTTP: 80; FTP: 21; SMTP: 25
Socket (API) (4)
• Application Programming Interface (API) • Interface between the application layer and the transport layer within a host • Each socket has an: Address; Port • Process sends/receives messages to/from its socket
What happens when a user requests a webpage (clicks on a hyperlink)? (5)
• Browser sends HTTP request messages for the objects in the page to the server • Client initiates TCP connection (creates socket) to server, port 80 • Server receives the requests -Server accepts TCP connection from client • HTTP messages that contain the objects are exchanged between browser (HTTP client) and Web server (HTTP server) • TCP connection closed
Client (5)
• Client sends a request • Uses the services of a server • May be intermittently connected • May have dynamic IP addresses • Do not communicate directly with each other
Transmission Control Protocol (TCP) (3)
• Connection-oriented: setup required between client and server processes • Email (SMTP), web (HTTP), file-transfer (FTP), remote terminal access (Telnet) • No guarantee minimum transmission rate and delay
User Datagram Protocol (UDP) (2)
• Connectionless • Tolerate some loss, but require a minimum rate = Real-time applications e.g., Internet telephony / Video conferencing
User Agent (4)
• Defines the program used by a user to interact with an network application. • Provides the interface between the application-layer protocol and the user. • Web: Web browser (e.g., IE) • Email: mail reader (e.g., outlook)
How to identify a HTTP Address? (3)
• Each connection is uniquely identified using the combination of the client socket and server socket, containing four elements: • Client IP address and port • + server IP address and port
Email over HTTP (4)
• Gmail, yahoo mail etc • Access to email from anywhere • Simply through a web browser • Slow, limited display capabilities
Web Caches (Proxy Server) (4)
• Goal: satisfy client request without involving origin server • Browser sends all HTTP requests to cache • Cache returns object or cache requests object from origin server, then returns object to client • Cache acts as both client and server
What reasons has web caching been deployed in the Internet? (4)
• Improve performance to end users • Reduce load on servers • Reduce bandwidth requirements • Reduce cost
IMAP (2)
• Internet Mail Access Protocol - IMAP4 • Stores email messages on a mail server, but allows the end user to view and manipulate the messages as though they were stored locally on the end user's computing device
Mail Access Protocols (3)
• POP: Post Office Protocol • IMAP: Internet Mail Access Protocol • HTTP
POP (3)
• Post Office Protocol - POP3 • POP3 is a client/server protocol in which e-mail is received and held for you by your Internet server. • Users can check your mail-box on the server and download any mail onto the end user's device when opened
What is meant by 'Stateless' (2)
• Server maintains no information about past client requests • Ask same object twice, resend as don't remember request
In order for a process on one host to send a message to a process on another host, the sending process must identify the receiving process. What kind of information needs to be specified? (2)
• The name or address of the host (*IP Address*) • An identifier that specifies the receiving process in the destination host. (*Port Number*)
E-Mail: SMTP (4)
• Uses TCP to reliably transfer email message from client to server, port 25 • Direct transfer: sending server to receiving server • Three phases of transfer: handshaking (greeting); transfer of messages; closure • Messages must be in 7-bit ASCII
Distinguish Application (4) and Application-Layer Protocol by giving examples (*WEB*)
• Web - allows users to obtain documents from web server on demand *Application* • HTML (Standard documents format) • Web Browsers • Web Servers • Web application-layer protocol *Application-layer protocol* • HTTP (HyperText Transfer Protocol)
Objects (4)
• Web page consists of Objects • Objects can be HTML file, JPEG image, audio file etc • If a page has some text and 3 images, then there are four objects. • Each object is addressable by a URL (Uniform Resource Locator)
Network Management Protocols (SNMP28 and CMIP)
Network management protocols is another area where there was a battle between Internet and ISO standards which was conclusively won by the Internet standards. Yet again the Internet developers chose to launch a simple but effective network management protocol which could be implemented quickly, while the ISO developers created a technically complex protocol that had many more functions and would take a long time to implement and debug.
Self-Scability
New peers bring new service capacity, as well as new service demands
Peer-to-Peer Architecture
No always-on server Arbitrary end systems directly communicate Peers request service from other peers, provide service in return to other peers Peers are intermittently connected and change IP Addresses
HTTP Status 200
OK - request suceeded
Post Office Protocol 3 (POP3)
One protocol that does this is Post Office Protocol 3 (POP3). The protocol has three phases. It has an authentication phase where the user is authenticated by a user name and password; a transaction phase where messages are downloaded from the mail server; and an update phase where the messages on the server will be deleted (if required) after they have been successfully downloaded to the client.
Ordered delivery
Ordered delivery is a function of a reliable transport or network service, but where an application is using an unreliable transport service, PDUs can be received in the wrong order as they can take different routes through the network. Where this happens, the application layer protocol must contain a sequence number field so that the application layer can determine if PDUs arrive out of order. The sequence numbers can also be used to request that lost PDUs are retransmitted, and to reorder them if necessary so that they can be handed in order to the appropriate application process or user agent. To do this the application layer needs to buffer the PDUs received, and therefore a certain amount of memory must be allocated for storing incoming PDUs while earlier PDUs are awaited.
Client Process
Process that initiates communication
Server Process
Process that waits to be contacted
CLIENT SERVER MODEL
THE CLIENT BEGINS THE EXCHANGE BY REQUESTING DATA FROM SERVER WHICH RESPONDS BY SENDING ONE OR MORE STREAMS OF DATA TO TEH CLIENT
APPLICATION
THE UPPER 3 LAYERS OF OSI MODEL DEFINE FUNCTIONS OF THE SINGLE TCP/IP APP LAYER
Inband signaling
Telnet command codes can be embedded in the data stream. To achieve this, a special escape character (FF in Hexadecimal) is required so that the receiver knows to interpret the next character(s) as a command code. Embedding control information like this within data is known as in-band signalling
Telnet not used
Telnet is not commonly used today because of security concerns, but it is still often used by network managers to remotely manage and configure routers. Network managers can make Telnet much more secure by configuring the routers to only accept Telnet sessions from known IP addresses, corresponding to the network management workstations.
Telnet relays
Telnet just relays any characters typed by a user to the remote host, and allows commands to be entered at the remote host as if they came from a local terminal. It then relays any characters sent in response back to the user. These characters will include any user name and password requests, but it should be noted that passwords will be transmitted as plaintext and the protocol therefore is not secure.
Telnet messags consist of
Telnet messages do not have application layer headers. They consist of the characters being typed by the user or sent by the server together with occasional command codes generated by the Telnet client or server.
Telnet
Telnet was one of the original Internet application protocols. It is an example of a virtual terminal protocol that allows users on a character-mode terminal (or more commonly these days on a PC running a terminal emulator) to log into and execute commands on a remote host using a command line interface. It uses a reliable TCP connection.
Application layer and reliable communication
The application layer will often provide reliable communications to the application processes, especially when the application layer makes use of an unreliable transport service. The application layer is the layer of last resort which must correct all the problems that have not been dealt with by the lower layers. The application layer must therefore, unless it is using a reliable transport service, be able to detect the loss, corruption and duplication of messages and be able to recover from these problems. It must also be able to control the flow of data if the receiver or the network cannot handle the rate of data being transmitted.
Connection control
The connection control function is required in all application protocols that make use of a connection-oriented transport service. The application layer must be able to establish connections prior to transmitting data and to close them when there is no more data to be transmitted. The application layer must identify and determine the availability of the application processes which wish to communicate and establish their authority to do so. It must also determine the mode of communication (simplex, half duplex or full duplex). A facility is also required so that connections can be reset or reinitialised to a known state should serious problems be encountered.
Protocol that used by FTP
The protocol actually makes use of two TCP connections: one for control commands and responses, and the other for actual file transfer. The control connection is left open for a whole FTP session, while the data connection is established to transfer a file and closed as soon as the file has been successfully received. This method of control using one connection for control and another for data is called out-of-band signalling as opposed to other protocols such as Telnet and HTTP which use in-band signalling. Because all control information in FTP is passed via the control connection, the data connection does not require any application layer headers and is a simple TCP connection.
Trivial File Transfer Protocol
There are some situations where a complex file transfer protocol is inappropriate. Some network devices, such as low-cost routers, do not have sufficient memory and processing capability to justify the implementation ofsuch a protocol, if it has to sit on top of a complex connection-oriented transport protocol. Also, between two hosts on the same LAN the probability of errors is quite remote and it may be preferable to use a lighter weight file transfer protocol
RTT
Time for a small packet to travel from client and server and back
Addressing Processes
To receive messages, processes must have an identifier which includes both and IP Address and Port Numbers associated with process on host
Connection used for commands
The connection used for commands actually uses the Telnet protocol to transfer commands and responses to the remote host. For security purposes, hosts normally require a user name and password to be entered for all Telnet sessions. But this would hinder general public FTP access to a site, as users would have to pre-register. A convention that developed for public FTP access was for public FTP servers to accept the user name 'anonymous', but not to perform a password check. Instead, anonymous users are expected to enter their email address as the password, so that the host can, if it wants, collect some details on the users of its public FTP service.
application client simply retransmits its request. • If applications are very security conscious, they will not trust the transport service or anything else that was developed or is managed by other partie
The designers of such applications will want to detect and recover from errors within the application itself. In this case, it would be pointless to replicate this functionality in the transport layer and it would be much more efficient to use an unreliable transport protocol.
Authentication (4)
• HTTP has some simple built in authentication • Request as normal - response is 401 (Authorisation required) • Client asks for username and password • Very weak.
Folders (2)
• Most Mail User Agents (MUAs) support folders - Where a folder contains a number of messages • Folders are stored on a Personal Machine/Local machine
Addressing Process (3)
• Sending process must identify the receiving process - use of IP address (32-bit quantity, uniquely identifies the host) • However, many processes can be running on the same host • Identifier includes both IP address and port numbers associated with process on host.
Electronic Mail Major Components (3)
• User agents • Mail servers • Simple mail transfer protocol: SMTP
Distinguish Application (3) and Application-Layer Protocol by giving examples (*EMAIL*)
*Application* • Mail servers • Mail Readers • E-mail application-layer protocol *Application-layer protocol* • SMTP (Simple Mail Transfer Protocol)
Application-Layer Protocol
Defines how an application's processes, running on different end systems, pass messages to each other
Telnet snd terminals
Telnet can support many different terminal types and translate between different character codes, if necessary. It does this by translating to a standard format, known as Network Virtual Terminal (NVT) for transmission acros the nereotks
VT
Virtual Terminal (VT) is the ISO equivalent protocol that offers similar functionality to Telnet, but like many other ISO protocols, it has found it difficult to compete with the protocols designed for use on the Internet.
Network Architecture (3)
• Design of a communications network • Refers to the organisation of the communication process into layers e.g. the five-layer Internet architecture. • How any network of any LAN or WAN is built
Application Architecture (2)
• Designed by an application developer and dictates broad structure of the application • How any application is built e.g. client-server or P2P
Server (5)
• *Server process:* process that waits to be contacted • Server sends a response • Provide a service for others to use • Always-on host • Permanent IP address
Flow control
Applications which do not make use of a reliable transport service will also require an end-to-end flow control mechanism so that the receiver can regulate the flow of data from the transmitter. To do this the application protocol header will require a sequence number and an acknowledgement f ield so that the receiver can acknowledge each PDU transmitted. It can then slow the rate of transmission by not acknowledging PDUs until it is ready to receive some more.
Encapsulation
Data from end users or other applications is encapsulated in an application layer PDU by prefixing the data with an application layer header specific to the application protocol.4
Data encryption
Data is often encrypted between application layer entities to ensure that it cannot be viewed or altered by third parties as it is transmitted across networks.
Interfaces in app layer
For user agents, the interface to the application layer is today likely to be a Graphical User Interface (GUI), such as that provided by the Windows operating system. It could also be a command line interface, as provided by DOS or Unix. Application layers may also provide services to other applications by means of an Application Programming Interface (API), which will provide a set of library functions that can be called from application programs.
User agent
If an application layer entity is providing a service direct to an end user, then the software that provides the interface between the end user and the networked application is described as a user agent.
eal time applications are more tolerant to packet loss than they are to delay. Losses of occasiona
Losses of occasional packets will not make much difference to audio or video transmissions, as losses are relatively infrequent and the applications can interpolate missing data, so that losses can be hidden from users. Delays, however, and particularly variable delays, do cause problems that can be observed by users. They can result in a jerky effect which is quite disconcerting. Using TCP, as we will discover later, does give rise to extremely variable delays, while delays with UDP are less severe and are more consistent.
Network application and client server model
Network applications are often implemented as client server systems. Under the client server model, the client only runs when it is required and initiates a request to the server and the server replies with a response.2 The server will typically handle requests from many clients and will run continuously. Both the user agent (client) and the server run application processes that work together via a network to deliver the application service to the end user.
Security
Security is often an important function of the application layer, as many applications will assume that all networks are insecure, and application layers sometimes prefer to implement security at this level, rather than make use of security functions within the transport and network layers. Schemes are required to authenticate the parties involved in the communication and to prevent any other parties from being able to read or alter the data being transmitted.
Service app layer nature
The precise service offered by the application layer will vary from application to application, but will often involve identification of the communicating partners and the agreement of the responsibility for error recovery, security aspects and data encoding. The application layer is also responsible for negotiating and meeting certain quality of service requirements for reliable data transfer, throughput or for delays. Some applications are loss tolerant while others are loss sensitive. Some applications are bandwidth sensitive
Web protocols (HTTP12 and HTML)
The world wide web, Hypertext Mark-up Language (HTML) and the Hyper-Text Transfer Protocol (HTTP) were all invented by Tim Berners-Lee at CERN in 1989. The world wide web is now the most important and widely used Internet application.
What does DNS Record Types do?
- DNS is a distributed database of Resource Records (RR)
How big can each label have for the DNS to read?
- Each label can be a max of 63 characters
What does Email mean?
- Electronic Mail
What is FTP?
- File Transfer Protocol
What does FTP do?
- Files can be sent-to or copied-from server
What does TFTP do?
- Files can be sent-to or copied-from server
What does Telnet and SSH do?
- General purpose virtual terminal emulator
What are the Top-Level domain (TDL) Servers?
- Generic domains: .com, .org, .net, .etc - Country domains: .ca, .uk, .fr, .etc - Special domains: .arpa
What do HTTP messages do?
- HTTP messages exchange between browser (client) and Web server
What are Authoritative DNS servers?
- Hostname to IP mapping for organizations named hosts - Can be maintained by organization or service provider
What is port 143?
- IMAP
What is the purpose for having DNS?
- IP addresses - Names (www.sait.ca) - DNS maps IP address to names - Distributed Database = No Centralization - Client/Server architecture
What are messages URIs use?
- Identifies Objects such as page, image, text file, sound clip, etc.
What do Clients have that's permanent?
- Initiate communications with server - Dynamic IP addresses - Intermittently connected - Does not communicate (directly) with each other
What does the Local DNS server do?
- Is a recursive server - Does not belong to hierarchy - Cashes any results of interest
What are Major components for Email?
- MUA (Outlook, Thunderbird, Firefox) - Mail servers - Delivery Protocol - Access Protocol
What does the CNAME do?
- Name = Alias name for some "canonical" name - Value = Canonical name
What does the MX do?
- Name = DNS domain name - Value = Name of mail for this domain
What does the NS do?
- Name = Domain (e.g. foo.com) - Value = Hostname of authoritative name server for this domain
What does the AAAA record do?
- Name = Hostname - Value = IPV6 address
What does Scalable mean in a Peer-to-Peer architecture?
- New peers bring new services capacity, as well as new service demands
What does Peer-to-Peer architecture have?
- No always-on server - Scalable - More complex management then Client-Server
What Protocols does Access have?
- POP(Post Office Protocol) - IMAP(Internet Mail Access Protocol) - HTTP (Gmail, Hotmail, Outlook, etc)
What are the different types of DNS queries?
- Recursive - Iterative
What are the two types of HTTP messages
- Request - Response
Output Stream
Is attached to an output source (monitor or socket)
Input Stream
Is attached to some input source for the process (keyboard or socket)
Ecoplexing requirement
It required a full-duplex link, but had the advantage of showing users when noise on the line was corrupting data. It is not well suited to modern packetswitched networks because there is a delay between typing a character and seeing it appear on the screen, and each character will be transmitted to and from the host in a single packet, incurring large protocol overheads. Also, with modern WAN links, the probability of characters being corrupted is quite low. Because of this, it is advisable to turn off the echo function at the remote server and enable a local echo at the client.
IMAP
Keeps all messages in one place: At the server Allows user to organize messages into folders Keeps user state across sessions
APPLICATION LAYER
LAYER CLOSEST TO END USER
MX
MAIL EXCHANGE RECORD
Mime
MIME defines a number of standard data types and sub-types.19 These MIME data types have become a standard in many Internet and other applications. SMTP assumes that mail servers operate continuously and are always available. If they are not available, the messages will be stored and forwarded when the mail server becomes available. Clients, however, are frequently not available, as users do not keep their mail clients running all day and often do not have a permanent connection to the Internet. For this reason SMTP is not well suited for delivering messages to clients. Instead, other protocols were designed to allow clients to connect to servers and request that messages are downloaded. Because these protocols were designed to work over dial-up networks, they also require security mechanisms to ensure that mail is being downloaded by valid users.
User Agent
Mail Reader Composing, editing, reading mail Messages Outlook, Thunderbird, iPhone mail client Outgoing and incoming messages are stored on the server
Mail Servers
Mailbox contains incoming messages Message Queue of outgoing mail messages (to be sent) SMTP Protocol between mail servers to send email messages
Message-Oriented Text Interchange Standard (MOTIS)
Message-Oriented Text Interchange Standard (MOTIS) is an ISO messaging standard. It is based on the ITU-T X.400 Message Handling Service (MHS) standard. This standard, unlike SMTP, is very complex and sophisticated and does many things that SMTP does not do. It has not been very successful and virtually all email today still uses SMTP. MOTIS/X.400 is perhaps too complex and users prefer the simplicity of SMTP, particularly with regard to email addresses. X.400 addresses consist of a set of keywords and values which are much harder to remember and more cumbersome to use than SMTP addresses.20
HTTP Status 301
Moved Permanently
Persistent HTTP
Multiple objects can be sent over a single TCP connection between client and server Server leaves connection open after sending response Takes as little as one RTT for all of the referenced objects
URL
NAMES MOST PEOPLE ASSOCIATE WITH WEB ADDRESSES
How many VTY connections can you have?
- Default is 5 simulations connections designated from 0 - 4 - More can be configured
What is DNS?
- Domain Name System
What does each peer have in Peer-to-Peer?
- Communicates directly with other peers - Requests service from other peers - Provides service to other peers - Intermittently IP addresses - Dynamic IP addresses
How does the Recursive DNS name resolution work?
- Contacted servers become clients and query the next server - Servers must be configured as recursive servers
What does Control is "in-Band" mean?
- Control info is "mixed in" with data
What is "Out-of-Band"?
- Control info separate from data - Client sends commands on TCP port 21 - Data is sent on TCP port 20
What does the Root and TLD Servers do?
- Are in the hierarchy - Are generally not recursive - Reply with referral
What does Recursive queries do?
- Ask server to get the answer for you - The complete answer to the query is returned - DNS servers are not required to support that kind of query
What are Cisco VTY Sessions
- Cisco devices call remote terminal connections "VTY" connections
What does the client the client server architecture have?
- Client - Server
How does Telnet work?
- Commands and data sent as plain text - Lack of security means it is primarily used for testing
How does SSH work?
- Commands and data sent encrypted - Device management sessions use SSH
What does Processes on different hosts mean?
- Communicate using sockets
P2P APPLICATION
ALLOWS DEVICE TO ACT AS BOTH CLIENT AN SERVER WITHIN THE SAME COMMUNICATION. THIS REQUIRE EACH DEVICE TO PROVIDE A USER INTERFACE AND RUN A BACKGROUND SERVICE
NSLOOKUP
ALLOWS USERS TO MANUALLY QUERY THE NAME SERVERS TO RESOLVE A GIVEN HOST NAME
NS
AN AUTHORITATIVE NAME SERVER
A
AN END DEVICE IPV4 ADDRESS
AAAA
AN END DEVICE IPV6 ADDRESS
.AU
AUSTRALIA
DYNAMIC ADDRESSING
AUTOMATES ADDRESSING
DHCP
AUTOMATES THE ASSIGNMEMT OF IPV4 ADDRESSES SUBNET GATEWAYS AND OTHER IPV4 NETWORKING PARAMETERS
Domain Name System (DNS)
Access to directories is required by a number of network functions, as well as by other applications. A directory service called the Domain Name System (DNS) was developed for the Internet to allow applications to use host names, and then for these host names to be translated (or resolved) into network layer addresses. In the early days of the Internet, the mapping between flat host names and network layer addresses was done via a text file that was centrally managed and then distributed to all the hosts on the Internet. This method soon became too unwieldy as the Internet grew in size, and an alternative method using a hierarchical, fully distributed system was devised called the Domain Name System.
GNUTELLA
EACH USER SHARES WHOLE FILES WITH OTHER USERS
COMMON P2P NETWORK APPLICATION
EDONKEY G2 BITTORRENT BITCOIN
PRESENTATION LAYER FUNCTION
ENCRYPTING DATA FOR TRANSMISSION AND DECRYPTING DATA UPON RECIEPT
Mail protocols (SMTP15, MIME16, POP317, IMAP18 and MOTIS
Electronic Mail was also one of the earliest Internet application protocols to be designed. It is a store and forward text messaging protocol supporting mail clients (user agents that send and receive messages) and mail servers that relay messages to each other and to and from mail clients. Email clients have five basic functions: • composition, which allows users to create messages • transfer, which allows users to transfer messages to and from the mail server • reporting, which allows the mail server to indicate such things as a message not having been delivered • displaying, which allows the mail client to display the headers of messages and their contents • disposition, which allows the user to delete messages or store them in folders. Email clients use two different protocols. One for sending messages to the mail server and one for retrieving messages from the mail server.
PRESENTATION LAYER FUNCTION
FORMATTING OR PRESENTING DATA AT THE SOURCE DEVICE INTO A COMPATIBLE FORM FOR RECIEPT BY THE DESTINATION DEVICE
Ftp use
FTP can convert between different character codes. It converts data to the same Network Virtual Terminal (NVT) codes as Telnet for transmission. Unlike HTTP, FTP cannot be a stateless protocol. The FTP server has to remember which connections belong to which FTP users, and also which current working directories each FTP user is using.
HTTP
Hypertext Transfer Protocol Web Application Layer Protocol Client/Server Model Uses TCP Is Stateless
POOL
IN DHCP ADDRESS FROM A CONFIGURED RANGE OF ADDRESSES CALLED _____
SECURE SOCKET LAYER
IN HTTPS DATA STREAM IS ENCRYPTED WITH _____
IS A STORE FORWARD METHOD OF SENDING STORING AND RETRIEVING ELECTRONIC MESSAGES ACROSS NETWORK
APPLICATION LAYER
IT IS THE LAYER THAT PROVIDES THE INTERFACE BETWEEN THE APPLICATIONS USED TO COMMUNICATE AND THE UNDERLYING NETWORK OVER WHICH MESSAGES ARE TRANSMITTED
APPLICATION LAYER PROTOCOL
IT IS USED TO EXCHANGE DATA BETWEEN PROGRAMS RUNNING ON THE SOURCE AND DESTINATION HOSTS
Process
Program running within a host Within the same host, two processes communicate using inter-process communication Processes in different hosts communicate by exchanging messages
QUESTION
QUESTION FOR NAME SERVER
COMMON PRESENTATION LAYER FILE FORMAT
QUICKTIME MPEG GIF JPEG PNG1
AUTHORITY
RECORDS RESOURCE POINTING TOWARD AN AUTHORITY
SMTP
REQUIRES A MESSAGE HEADER AND A MESSAGE BODY. CONNECTS TO PORT 25 TO SEND EMAIL. WHEN SERVER RECIEVES MSG EITHER PLACE MSG IN A LOCAL ACCOUNT OR FRORWARDS MSG TO ANOTHER MAIL SERVER. IF DESTINATION NOT AVAIL, SMTP SPOOLS MSGS AND ATTEMPTS TO SEND IT AGAIN, IF STILL NOT DELIVERED IN A PERIOD OF TIME IT IS RETURNED TO SENDER AS UNDELIVERABLE
ADDITIONAL
RESOURCE RCORDS HOLDING ADDITIONSL INFORMATION
ANSWER
RESOURCE RECORDS ANSWERING THE QUESTION
P2P HYBRID SYSTEM
RESOURCES SHARING IS DECENTRALIZED BUT THE INDEXES THAT POINT TO RESOURCE LOCATIONS ARE STORED IN A CENTRALIZED DIRECTORY
Why Web Caching
Reduces response time for client requests Reduces traffic on an institutions access link Internet is dense with caches
TCP Service
Reliable transport Flow Control Congestion Control Connection-Oriented setup required Does not provide: timing, min throughput, security
DOWNLOAD
SERVER TO CLIENT
DHCP MESSAGE FORMAT IPV6
SOLICIT ADVERTISE INFORMATION REQUEST REPLY
SMB MESSAGES CAN
START AUTHENTICATE AND TERMIANRE SESSIONS CONTROL FILE AND PRINTER ACCESS ALLOW AN APPLICATION TO SEND OR RECIVEVE MASSAGES TO AND FROM ANOTHER DEVICE
Stateless
Server maintains no information about past client requests
Socket Programming Basics
Server must be running before client can send anything Server must have a socket (door) through which it receives and sends segments Socket is locally identified with a port number Client needs to know server IP and socket port number
Services of application layer
Services The application layer is the layer that provides communications functions for a network application to serve an end user or another application program
Simple Mail Transfer Protocol (SMTP)
Simple Mail Transfer Protocol (SMTP) is used to transfer messages from a mail client (user agent) to a mail server (mail transfer agent) and is also used to transfer messages between mail servers. It is a very simple text based protocol. Messages comprise a set of headers and a body. There are two envelope headers which start with MAIL FROM:, used to identify the message originator and RCPT TO:, used to indicate the recipient(s) of the message. Unlike many more modern protocols, each envelope header is transmitted and acknowledged separately, rather than encapsulating the body. The message itself is prefixed by the keyword DATA followed by the text to be transmitted, but this also has its own headers such as FROM:, TO:, SUBJECT: and DATE: from which the envelope addresses are obtained. These headers are followed by a blank line and then the actual text of the message. The body is terminated by a new line with just a full stop on it andthen another new line. All bodies and headers are coded in 7-bit ASCII text. SMTP is not a real-time protocol. Messages are stored at clients and servers and forwarded at regular intervals using reliable TCP connections. SMTP PDUs do not really have application layer headers as normally understood. They consist of keywords followed by some data. SMTP does not offer any guarantees about delivery of messages, although it is quite robust and considered to be reliable.
Network File System (NFS)
Sometimes it will be more efficient to access files remotely rather than to transfer them in their entirety. A popular means of doing this is to use the Network File System (NFS), originally developed by Sun Microsystems for the Unix environment, but which has since been ported to most other commonly used environments. NFS allows physically remote directories to be mounted on local systems, so that the directories and their files appear to be local to the users. All the standard operations that are carried out by the Operating Systems on local directories and files are supported transparently on the remote directories and files. NFS is implemented using an application mechanism called Remote Procedure Calls (RPCs), also developed by Sun, where software that normally calls procedures on the local system can call equivalent procedures on the remote system. RPCs are implemented using a very simple protocol that packs the name of the procedure and any parameters required into a message using a coding system called External Data Representation (XDR). This is sent as a request to the remote system which unpacks it and calls the procedure. It then packs the return value and any other output parameters into a response message to be sent back to the calling system, which then returns these to the original calling process. NFS can use either TCP or UDP for its transport service but, because it is a simple client server application, it is best implemented on top of UDP. NFS is not very secure, but authentication services have been developed that offer improvements in this area. File Transfer Access and Management (FTAM) is the equivalent ISO protocol to FTP. It is not in common use today.
Functions of app layer
The main function of the application layer is to organise the necessary resources to allow an application process on one system to communicate with an application process on another system via a network. The application layer may also synchronise the application processes at both ends so that they can communicate successfully.
Original FTP
The original FTP implementations were command line interfaces for use on Unix hosts, and allowed users to view directories on remote hosts and the f iles they contained, change directories when necessary using Unix commands and then download or upload files between two hosts.24 FTP converts these user commands to standard FTP commands (three or four letter codes) which are sent via the control connection and elicit responses containing a three digit status code followed by some text from the server. Modern FTP implementation uses a graphical user interface where the local and remote directories can be viewed together and files to be transferred can be highlighted and then transferred by clicking an arrow button that indicates the direction of the transfer.
Compression
There are many different complex data compression algorithms used for coding data prior to transmission to conserve network capacity. All of them apart from Huffman Coding are beyond the scope of this syllabus. Huffman Codes use variable length codes for different symbols depending on how frequently they are used. The ASCII character set uses 8-bit codes (including a parity bit) to define all the characters of the alphabet and other characters. But some characters occur much more frequently than others. Huffman Codes allow more frequently used characters to be represented by fewer bits, and less frequently used characters to be represented by more bits. By doing this a significant reduction can be achieved in transmitting a large amount of text. But, if characters are represented by variable length codes there must be a clear method for determining the start and end of the code for each character. Huffman Codes do this in a clever way by coding each character as the path from the root to a leaf of a binary tree called a Huffman Tree. Thus messages can be encoded in an unambiguous way, so that the receiver can always decode the message and knows that when it reaches a leaf node, a character has been received.
Huffman tree
There are many different complex data compression algorithms used for coding data prior to transmission to conserve network capacity. All of them apart from Huffman Coding are beyond the scope of this syllabus. Huffman Codes use variable length codes for different symbols depending on how frequently they are used. The ASCII character set uses 8-bit codes (including a parity bit) to define all the characters of the alphabet and other characters. But some characters occur much more frequently than others. Huffman Codes allow more frequently used characters to be represented by fewer bits, and less frequently used characters to be represented by more bits. By doing this a significant reduction can be achieved in transmitting a large amount of text. But, if characters are represented by variable length codes there must be a clear method for determining the start and end of the code for each character. Huffman Codes do this in a clever way by coding each character as the path from the root to a leaf of a binary tree called a Huffman Tree. Thus messages can be encoded in an unambiguous way, so that the receiver can always decode the message and knows that when it reaches a leaf node, a character has been received.
App-Layer Protocol Defines
Types of Messages Exchanged Message Syntax Message Semantics Rules from when and how Processes send and respond to messages
HTTPS
UESD FOR SECURE COMMUNICATIONS ACROSS THE INTERNET
POST
UPLOADS DATA FILES TO THE WEB SERVER SUCH AS FORM DATA
PUT
UPLOADS RESOURCES OR CONTENT TO THE WEB SERVER SUCH AS AN IMAGE
APPLICATION PRESENTATION SESSION
UPPER 3 LAYERS OF OSI MODEL
TORRENT FILE
USED BY CLIENTS TO LOCATE OTHER USERS WHO HAVE PIECES THEY NEED
IMAP
USED TO RETIRIEVE EMAIL MESSAGES THE MESSAGES ARE MANUALLY KEPT IN THE SERVER UNTIL MANUALLY DELETED
POP
USED TO RETRIEVE MAIL FORM A MAIL SERVER. WITH POP MAIL IS DOWNLOADED FROM SERVER TO THE CLIENT AND THEN DELETED ON THE SERVER. THE SERVER STARTS THE POP SERVICE BY LISTENING TO TCP PORT 110 FOR CLIENT REQUEST WHEN A CLIENT WANT A SERVICE IT SENDS A REQUEST TO ESTABLISH TCP CONNECTION WITH SERVER WHEN CONNECTION IS ESTABLISHED POP SENDS A GREETING THE CLIENT AND THE SERVER NOW EXCHANGE REQUESTS UNTIL CONNECTION IS ABORTED
UDP Service
Unreliable data transfer Does not provide: reliability, flow control, congestion control, timing, throughput, security or connection setup
Electronic Mail Components
User Agents Mail Servers Simple Mail Transfer Protocol: SMTP
POP3 Download and delete
User cannot re-read email if they change the clinet
POP3 Protocol
Uses Authorization Phase and Transaction Phase Is stateless
URL Method
Uses GET Method Input is uploaded in the URL field of Request Line
Electronic Mail: SMTP
Uses TCP to reliably transfer email messages on port 25 Direct Transfer Command/Response Interaction Messages must be in 7-bit ASCI
VTP
Virtual terminal protocols (Telnet,11 SSH and VT)
HTTP
WHEN A URL IS TYPED, THE WEB BROWSER ESTABLISHED A CONNECTION TO A WEB SERVER RUNNING ON THE SERVER USING THESE PROTOCOLS
POST Method
Web page often includes form input input is uploaded to server in the entity body
Error control
Where an application is using an unreliable transport service (or where the application does not trust a reliable transport service), the application must perform its own error detection and recovery. This will require a redundant error checking field in the application protocol header as well as sequence number and acknowledgement fields, so that the application layer can check that all the PDUs have been received and so that retransmission can be requested and PDUs re-ordered if necessary.
Creating a Network App
Write Programs that: Run on different end systems Communicate over the Network No need to write software for network-core devices
Trivial file
disc-less work station, which has to download all its software from a server over a LAN, is a good example of a situation where only a light-weight file transfer protocol is desirable. Trivial File Transfer Protocol (TFTP) is such a protocol. As its name implies, it is extremely simple. It uses UDP as its transport service and provides quite a thin application layer. Each application layer message has to be explicitly acknowledged before another message can be sent. Each TFTP message carrying data contains an application header that includes a sequential block number. The receiver will then acknowledge the receipt of the message with an acknowledgement message that contains the block number. The transmitter will re-transmit a message if an acknowledgement is not received before a timeout expires. Unlike FTP, TFTP only supports file transfer. It does not support any interaction to locate files in directories. The files and the direction of transfer are specified in the command line that is used to call TFTP. TFTP also has no facility for authenticating users. For security purposes, network managers should therefore only allow TFTP traffic to and from known IP addresses. TFTP is often used by network managers to download or upload router configurations and software.