Computer Networks with Internet Technology William Stallings Chapter 04 Modern Applications.

Slides:



Advertisements
Similar presentations
Chapter 4: The Internet Business Data Communications, 6e.
Advertisements

Hypertext Transfer PROTOCOL ----HTTP Sen Wang CSE5232 Network Programming.
Voice over IP Fundamentals
Session Initiation Protocol Winelfred G. Pasamba.
Session Initiation Protocol (SIP) By: Zhixin Chen.
Chapter 6: Distributed Applications Business Data Communications, 5e.
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 23 – Internet Applications Internet Directory.
12/05/2000CS590F, Purdue University1 Sip Implementation Protocol Presented By: Sanjay Agrawal Sambhrama Mundkur.
Computer Networks with Internet Technology William Stallings Chapter 04 Modern Applications.
SIP, Session Initiation Protocol Internet Draft, IETF, RFC 2543.
Domain Name System: DNS
Introduction to SIP Speaker: Min-Hua Yang Advisor: Ho-Ting Wu Date:2005/3/29.
Hypertext Transport Protocol CS Dick Steflik.
Domain Name System ( DNS )  DNS is the system that provides name to address mapping for the internet.
Chapter 7: Internet-Based Applications Business Data Communications, 6e.
Rensselaer Polytechnic Institute CSC-432 – Operating Systems David Goldschmidt, Ph.D.
Session Initialization Protocol (SIP)
Chapter Overview TCP/IP Protocols IP Addressing.
Evolved from ARPANET (Advanced Research Projects Agency of the U.S. Department of Defense) Was the first operational packet-switching network Began.
Chapter Eleven An Introduction to TCP/IP. Objectives To compare TCP/IP’s layered structure to OSI To review the structure of an IP address To look at.
Chapter 16 – DNS. DNS Domain Name Service This service allows client machines to resolve computer names (domain names) to IP addresses DNS works at the.
Session Initiation Protocol Team Members: Manjiri Ayyar Pallavi Murudkar Sriusha Kottalanka Vamsi Ambati Girish Satya LeeAnn Tam.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
Networking Basics TCP/IP TRANSPORT and APPLICATION LAYER Version 3.0 Cisco Regional Networking Academy.
Network Protocols. Why Protocols?  Rules and procedures to govern communication Some for transferring data Some for transferring data Some for route.
1 Kommunikatsiooniteenuste arendus IRT0080 Loeng 8 Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
HyperText Transfer Protocol (HTTP).  HTTP is the protocol that supports communication between web browsers and web servers.  A “Web Server” is a HTTP.
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
9/15/2015© 2008 Raymond P. Jefferis IIILect Application Layer.
Chapter 17 Domain Name System
Sistem Jaringan dan Komunikasi Data #9. DNS The Internet Directory Service  the Domain Name Service (DNS) provides mapping between host name & IP address.
1 Kommunikatsiooniteenuste arendus IRT0080 Loeng 4 Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst.
COMT 429 The Internet Protocols COMT 429. History 1969First version of a 4 node store and forward network, the ARPAnet 1972Formal demonstration of ARPAnet.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
Web HTTP Hypertext Transfer Protocol. Web Terminology ◘Message: The basic unit of HTTP communication, consisting of structured sequence of octets matching.
COMT 6251 Network Layers COMT Overview IP and general Internet Operations Address Mapping ATM LANs Other network protocols.
Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 17 This presentation © 2004, MacAvon Media Productions Multimedia and Networks.
Session Initiation Protocol (SIP). What is SIP? An application-layer protocol A control (signaling) protocol.
Presented By Team Netgeeks SIP Session Initiation Protocol.
Web Client-Server Server Client Hypertext link TCP port 80.
1 Kyung Hee University Chapter 18 Domain Name System.
SIP:Session Initiation Protocol Che-Yu Kuo Computer & Information Science Department University of Delaware May 11, 2010 CISC 856: TCP/IP and Upper Layer.
Omar A. Abouabdalla Network Research Group (USM) SIP – Functionality and Structure of the Protocol SIP – Functionality and Structure of the Protocol By.
Multimedia and Networks. Protocols (rules) Rules governing the exchange of data over networks Conceptually organized into stacked layers – Application-oriented.
Session Initiation Protocol (SIP) Chapter 5 speaker : Wenping Zhang data :
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 19 Domain Name System (DNS)
TCP/IP (Transmission Control Protocol / Internet Protocol)
Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 17 This presentation © 2004, MacAvon Media Productions Multimedia and Networks.
Web Services. 2 Internet Collection of physically interconnected computers. Messages decomposed into packets. Packets transmitted from source to destination.
CS 6401 The World Wide Web Outline Background Structure Protocols.
Computer Networks with Internet Technology William Stallings Chapter 04 Modern Applications 4.1 Web Access - HTTP.
TCP/IP Protocol Suite 1 Chapter 17 Upon completion you will be able to: Domain Name System: DNS Understand how the DNS is organized Know the domains in.
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 23 – Internet Applications Internet Directory.
The Session Initiation Protocol - SIP
Data and Computer Communications Tenth Edition by William Stallings Data and Computer Communications, Tenth Edition by William Stallings, (c) Pearson Education.
Ch 2. Application Layer Myungchul Kim
S Postgraduate Course in Radio Communications. Application Layer Mobility in WLAN Antti Keurulainen,
COMPUTER NETWORKS Hwajung Lee. Image Source:
Communication Networks NETW 501 Tutorial 2
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Postech DP&NM Lab Session Initiation Protocol (SIP) Date: Seongcheol Hong DP&NM Lab., Dept. of CSE, POSTECH Date: Seongcheol.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Internet Protocol Version4 (IPv4)
Chapter 04: Modern Applications
Session Initiation Protocol
Data and Computer Communications
Session Initiation Protocol (SIP)
Chapter 6: Distributed Applications
Evolved from ARPANET (Advanced Research Projects Agency of the U.S. Department of Defense) Was the first operational packet-switching network Began.
Multimedia and Networks
William Stallings Data and Computer Communications
Presentation transcript:

Computer Networks with Internet Technology William Stallings Chapter 04 Modern Applications

Hypertext Transfer Protocol HTTP Underlying protocol of the World Wide Web Not a protocol for transferring hypertext —For transmitting information with efficiency necessary for hypertext jumps Can transfer plain text, hypertext, audio, images, and Internet accessible information

HTTP Overview Transaction oriented client/server protocol Usually between Web browser (clinet) and Web server Uses TCP connections Stateless —Each transaction treated independently —Each new TCP connection for each transaction —Terminate connection when transaction complete

Key Terms Cache Client Connection Entity Gateway Message Origin server Proxy Resource Server Tunnel User agent

Table 4.1 Key Terms Related to HTTP

Figure 4.1 Examples of HTTP Operation

Figure 4.2 Intermediate HTTP Systems

HTTP Messages Requests —Client to server Responses —Server to client Request line Response line General header Request header Response header Entity header Entity body

Figure 4.3 HTTP Message Structure

Table 4.2 Augmented BNF Notation Used in URL and HTTP Specification

General Header Fields Cache control Connection Data Forwarded Keep alive MIME version Pragma Upgrade

Table 4.3 HTTP Elements

Request Methods Request-Line = Method Request_URL HTTP-Version Methods: —Options —Get —Head —Post —Put —Patch —Copy —Move —Delete —Link —Unlink —Trace —Wrapped —Extension-method

Request Header Field Accept Accept charset Accept encoding Accept language Authorization From Host If modified since Proxy authentication Range Referrer Unless User agent

Response Messages Status line followed by one or more general, response and entity headers, followed by optional entity body Status-Line = HTTP-Version Status-Code Reason-Phrase

Status Codes Informational Successful Redirection Client error Server error

Table 4.4 HTTP Status Codes (1/2)

Table 4.4 HTTP Status Codes (2/2)

Response Header Fields Location Proxy authentication Public Retry after Server WWW-Authenticate

Entity Header Fields Allow Content encoding Content language Content length Content MD5 Content range Content type Content version Derived from Expires Last modified Link Title Transfer encoding URL header Extension header

Entity Body Arbitrary sequence of octets HTTP transfers any type of data including: —text —binary data —audio —images —video Interpretation of data determined by header fields —Content encoding, content type, transfer encoding

Internet Directory Services DNS Directory lookup service Provides mapping between host name and numerical address Essential to functioning of Internet RFCs 1034 and Four elements —Domain name space Tree-structured —DNS database Each node and leaf in name space tree structure names set of information (e.g., IP address, type of resource) in resource record —Name servers Servers that hold information about portion of tree —Resolvers Programs that extract information from name servers

Domain Names 32-bit IP address uniquely identifies devices Two components —Network number —Host address Problems —Routers devise routes based on network number —Can’t hold table of every network and path —Networks group to simplify routing —32-bit address usually written as four decimal numbers —Effective for computer processing —Not convenient for users Problems are addressed by concept of domain —Group of networks are under control of single entity —Organized hierarchically —Names assigned reflect organization

Domain Name Example edu is college-level U.S. educational institutions mit.edu is M.I.T. lcs.mit.edu is Laboratory for Computer Science at M.I.T. Eventually get to leaf nodes —Identify specific hosts —Hosts assigned Internet (IP) addresses —Internet-wide organization assigns domain names Delegated down the hierarchy mit.edu, has four IP addresses: , , , and Subordinate domain lcs.mit.edu has IP address

Figure 4.4 Portion of Internet Domain Tree

DNS Database Variable-depth unlimited levels hierarchy for names —Delimited by period (.) Distributed database Distribution controlled by database —Thousands of separately managed zones DNS servers provide name-to-address directory service for network applications

Table 4.5 Top-Level Internet Domains

Resource Record Domain name —Human readable form —Series of labels of alphanumeric characters or hyphens —Each pair separated by period Type —E.g. A = Host address, MX = Mail exchange Class —Usually IN, for Internet Time to live —How long to hold result in local cache —Zero means don’t cache Rdata field length Rdata —Description of resource —For A type, Rdata is 32-bit IP address

Figure 4.5 DNS Resource Record Format

Table 4.6 Resource Record Types

DNS Operation User program requests IP address for domain name Resolver module in local host or local ISP formulates query for local name server —In same domain as resolver Local name server checks for name in local database or cache —If so, returns IP address to requestor —Otherwise, query other available name servers Starting down from root of DNS tree or as high up as possible Local name server caches reply —Depending on Time to live field User program given IP address or error message DNS name servers automatically send out updates to other relevant name servers as conditions warrant

Figure 4.6 DNS Name Resolution

Server Hierarchy Name servers operated by any organization that has domain Each name server holds subset of name space (a zone) —One or more (or all) subdomains within domain —Authoritative This name server maintains accurate data for this portion hierarchy Can extend to any depth 13 root name servers share responsibility for top level zones —Replication prevents root server bottleneck Individual root servers are busy Internet Software Consortium server (F) answers almost 300 million DNS requests daily ( server.html) Typically, single queries carried over UDP Queries for group of names carried over TCP

Table 4.7 Internet Root Servers

Name Resolution Resolver knows name and address of local DNS server If resolver does not have name in cache, it sends DNS query to local server Either returns address or after querying one or more other servers Server (A) forwards request to server (B) —If B has name in cache or database, it can return result —If not, B can —Query another name server and send result back to A Recursive —Tell A address of next server (C) to ask A then asks to C Iterative Server exchanges use can either Name resolvers use recursive

Figure 4.7 DNS Message Format

DNS Message Fields - Header Header always present —Identifier to match queries and responses. —Query Response: is message query or response —Opcode: Standard, inverse query (address to name), or server status request —Authoritative Answer —Truncated: was response truncated Requestor will use TCP to resend query —Recursion Desired —Recursion Available —Response Code: e.g. no error, format error, refused —QDcount: entries in question section (zero or more) —ANcount: RRs in answer section (zero or more) —NScount: RRs in authority section (zero or more) —ARcount: RRs in additional records section (zero or more)

DNS Message Fields – Question and Answer If present, question typically contains only one entry Domain Name —Sequence of labels Length octet followed by that number of octets Terminates with the zero length octet for null label of root Query Type —Values include all values valid for Type field in RR format plus general codes that match more than one type of RR Query Class: typically Internet. Answer section contains RRs that answer question —Authority section contains RRs that point toward an authoritative name server —Additional records section contains RRs that relate to query but not strictly answers

Session Initiation Protocol Overview RFC 3261 Application-level control protocol —Setting up, modifying, and terminating real-time sessions —Enable Internet telephony,(voice over IP, VoIP —Supports single or multimedia session, including teleconferencing Facets of SIP —User location: Users can access application features from remote locations —User availability: Willingness of called party to communicate —User capabilities: Media and parameters to be used —Session setup: Point-to-point and multiparty calls —Session management: Transfer and termination, modifying session parameters, and invoking services

Session Initiation Protocol Features Based on HTTP-like request/response transaction model Client request invokes function on server —At least one response Uses most HTTP header fields, encoding rules, and status codes —Readable format for displaying information Uses concepts similar to recursive and iterative searches of DNS Incorporates Session Description Protocol (SDP) —Defines session content using types similar to MIME

Components and Protocols (1) Client —Sends requests and receives responses —User agent clients and proxies are clients Server —Receives requests and sends back responses —Proxies, user agent servers, redirect servers, and registrars User Agent —In every SIP end station User agent client (UAC): Issues requests User agent server (UAS): Receives requests and reponds Redirect Server —Determines address of called device —Like iterative searches in DNS

Components and Protocols (2) Proxy Server —Server and client —Makes requests for other clients Routing Enforcing policy Like recursive searches in DNS Registrar —Server that accepts REGISTER requests —Places information it receives in requests inlocation service for domain SIP address, associated IP address of device Location Service —Used by redirect or proxy server to obtain information about a callee's possible location(s) —Maintains database of SIP-address/IP-address mappings

Components and Protocols (3) Servers defined (RFC 3261) as logical devices Implemented as separate servers or combined into single application Proxy servers may act as redirect servers —Need to consult location service database May be on proxy server or not Communication between proxy server and location service beyond scope of SIP standard Proxy consults DNS server to find target domain proxy SIP typically runs on UDP for performance —Own reliability mechanisms —May also use TCP —May use Transport Layer Security (TLS) protocol for secure connection

Session Description Protocol SDP RFC 2327 SIP invites participants to session SDP-encoded body of SIP message contains information about what media encodings (e.g., voice, video) parties can and will use Then data transmission begins, using appropriate transport protocol —Real-Time Transport Protocol (RTP) Participants can make changes to session parameters using SIP

Figure 4.8 SIP Components and Protocols

Uniform Resource Identifier URI Identifies SIP resource —User of online service —Appearance on multiline phone —Mailbox on messaging system —Telephone number at gateway service —Group (such as "sales" or "helpdesk") in an organization Format based on address formats May also include password, port number, and related parameters If secure transmission required, use "sips:“ —SIP messages are transported over TLS URI is generic identifier for resource on Internet —URL, for Web addresses is type of URI

Figure 4.9 SIP Call Setup Attempt Scenario

Figure 4.10 SIP Presence Example

Figure 4.11 SIP Registration and Notification Example

Figure 4.12 SIP Successful Call Setup

Table 4.8 SIP Header Fields

SIP Messages Requests and responses Difference between types in first line Request —Method: nature of request —Request-URI: where request should be sent Response has response code All messages include header —Number of lines Beginning with header label Message can also contain body e.g. SDP media description

SIP Messages - Requests Methods —REGISTER: notify SIP network of IP address and URLs for which it would like to receive calls —INVITE: establish session between user agents —ACK: Confirms reliable message exchanges —CANCEL: Terminates pending request, but does not undo completed call —BYE: Terminates session between two users in conference —OPTIONS: Solicits information about callee capabilities

SIP Message Request Example INVITE SIP/2.0 Via: SIP/2.0/UDP :5060 Max-Forwards: 70 To: Bob From: Alice ;tag= Call-ID: CSeq: INVITE Contact: Content-Type: application/sdp Content-Length: 142

SIP Messages - Response Provisional (1xx): Request received and being processed Success (2xx): Action successfully received, understood, and accepted Redirection (3xx): Further action needed Client Error (4xx): Request contains bad syntax or cannot be fulfilled at this server Server Error (5xx): Server failed to fulfill apparently valid request Global Failure (6xx): Request cannot be fulfilled at any server

SIP Response Example SIP/ OK Via: SIP/2.0/UDP server10.biloxi.com Via: SIP/2.0/UDP bigbox3.site3.atlanta.com Via: SIP/2.0/UDP :5060 To: Bob ;tag=a6c85cf From: Alice ;tag= Call-ID: CSeq: INVITE Contact: Content-Type: application/sdp Content-Length: 131

Table 4.9 SIP Response Codes

SDP Information Media streams —Session can include multiple streams of differing content —Currently defines audio, video, data, control, and application Addresses —Destination addresses, —May be multicast Ports —For each stream Payload types —For each media stream type Start and stop times —For broadcast sessions e.g. television or radio program Originator —For broadcast sessions

Sockets 1980s UNIX Berkeley Sockets Interface Socket enables communications between client and server process Connection-oriented or connectionless Endpoint in communication Client socket in one computer uses address to call server socket on another computer Once appropriate sockets engaged, can exchange data Server sockets keep TCP or UDP port open Once connected server switches dialogue to different port

Sockets API (1) Sockets can be constructed from within program in most languages Berkeley Sockets Interface is de facto standard API —Windows Sockets (WinSock) based on Berkeley TCP and UDP header includes source port and destination port fields —Identify respective users (applications) IPv4 and IPv6 header includes source address and destination address fields —Identify host systems Port value with IP address forms socket —Unique throughout Internet When used as API, socket is identified by triple —Protocol, local-address (IP), local-process (port)

Sockets API Sockets API recognizes three types of sockets —Stream sockets for TCP, connection-oriented reliable —Datagram sockets for UDP, connectionless —Raw sockets Direct access to lower layer protocols, e.g. IP and ICMP

Table 4.10 Socket Functions (1/2)

Table 4.10 Socket Functions (2/2)

Socket Interface Calls Gethostname Gethostbyname Setup Connect —Client Listen/accept —Server Send Receive Close

Figure 4.13 Socket System Calls for Connection-Oriented Protocol

Examples (1/6)

Examples (2/6)

Examples (3/6)

Examples (4/6)

Examples (5/6)

Examples (6/6)

Required Reading Stallings chapter 4 RFCs WWW Consortium Loads of books and web sites on sockets E.g. Comer, D.E. and Stevens, D.L. Internetworking with TCP/IP Volume III, Prentice Hall —Comes in three versions: Windows Sockets BSD Sockets AT&T TLI (not sockets)