Chapter 04: Modern Applications

Slides:



Advertisements
Similar presentations
HTTP Cookies. CPSC Application Layer 2 User-server state: cookies Many major Web sites use cookies Four components: 1) cookie header line of HTTP.
Advertisements

Domain Name System. DNS is a client/server protocol which provides Name to IP Address Resolution.
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 23 – Internet Applications Internet Directory.
Domain Name System: DNS
CPSC 441: DNS1 Instructor: Anirban Mahanti Office: ICT Class Location: ICT 121 Lectures: MWF 12:00 – 12:50 Notes derived.
Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP  FTP  SMTP / POP3 / IMAP  Focus on client-server.
2/9/2004 Web and HTTP February 9, /9/2004 Assignments Due – Reading and Warmup Work on Message of the Day.
Domain Name System ( DNS )  DNS is the system that provides name to address mapping for the internet.
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.
Application Layer. Domain Name System Domain Name System (DNS) Problem – Want to go to but don’t know the IP addresswww.google.com Solution.
Internet Basics.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
DNS: Domain Name System
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.
2: Application Layer1 CS 4244: Internet Software Development Dr. Eli Tilevich.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 Network Protocols Chapter 25 (Data Communication & Networking Book): Domain Name System (DNS) 1.
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.
Netprog: DNS and name lookups1 Address Conversion Functions and The Domain Name System Refs: Chapter 9 RFC 1034 RFC 1035.
Internet and Intranet Protocols and Applications Lecture 5 Application Protocols: DNS February 20, 2002 Joseph Conron Computer Science Department New York.
1 Kyung Hee University Chapter 18 Domain Name System.
Domain Name System Refs: Chapter 9 RFC 1034 RFC 1035.
Lecture 6: Sun: 8/5/1435 Distributed Applications Lecturer/ Kawther Abas CS- 492 : Distributed system & Parallel Processing.
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)
DNS DNS overview DNS operation DNS zones. DNS Overview Name to IP address lookup service based on Domain Names Some DNS servers hold name and address.
Linux Operations and Administration
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.
Internet Naming Service: DNS* Chapter 5. The Name Space The name space is the structure of the DNS database –An inverted tree with the root node at the.
Domain Name System INTRODUCTION to Eng. Yasser Al-eimad
Week 11: Application Layer 1 Web and HTTP r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,… r Web page consists.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Basics of the Domain Name System (DNS) By : AMMY- DRISS Mohamed Amine KADDARI Zakaria MAHMOUDI Soufiane Oujda Med I University National College of Applied.
Ch 2. Application Layer Myungchul Kim
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Domain Name System: DNS To identify an entity, TCP/IP protocols use the IP address, which uniquely identifies the Connection of a host to the Internet.
Understand Names Resolution
Domain Name System (DNS)
IP: Addressing, ARP, Routing
Networking Applications
CS 372 COMPUTER COMMUNICATION AND NETWORKS
Block 5: An application layer protocol: HTTP
Chapter 9: Domain Name Servers
WWW and HTTP King Fahd University of Petroleum & Minerals
HTTP request message: general format
IMPLEMENTING NAME RESOLUTION USING DNS
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 9
Internet transport protocols services
Data and Computer Communications
DNS.
Chapter 04: Modern Applications
Net 323 D: Networks Protocols
Chapter 19 Domain Name System (DNS)
Traditional Internet Applications
The Internet and HTTP and DNS Examples
Chapter 04: Modern Applications
Domain Name System (DNS)
Application layer Lecture 7.
Multimedia and Networks
Process-to-Process Delivery:
Lecture 6: TCP/IP Networking 1nd semester By: Adal ALashban.
TCP/IP Protocol Suite: Review
William Stallings Data and Computer Communications
DNS: Domain Name System
Domain Name System Refs: Chapter 9 RFC 1034 RFC 1035.
Domain Name System: DNS
Applications Layer Functionality & Protocols
Presentation transcript:

Chapter 04: Modern Applications CS 408 Computer Networks Chapter 04: Modern Applications

Hypertext Transfer Protocol HTTP What does hypertext mean? “a body of written or pictorial material interconnected in such a complex way that it could not conveniently be presented or represented on paper” Ted Nelson, 1965 Underlying protocol of the World Wide Web Can transfer plain text, audio, images, etc. actually you can transfer any type of file using HTTP Most recent version HTTP 1.1 – RFC 2616 176 pages

HTTP Overview Transaction oriented client/server protocol Usually between Web browser (clinet) and Web server Uses TCP connections (on port 80) Stateless Server (normally) does not keep any info about client history Each transaction treated independently New TCP connection for each transaction Terminate connection when transaction complete That does not mean that, say, 20 new connections are needed to download 20 different items in a web page. It is possible to have “persistent” connections that several items are downloaded back-to-back Why stateless? any idea? Hint: it was a design decision due to the nature of transactions

Examples of HTTP Operation end-to-end direct connection intermediate nodes such as proxy use of cache

HTTP Messages Simple request/response mechanism Requests Responses Client to server Responses Server to client

HTTP Message Structure Response Line /

Request Request-Line = Method <SP> Request_URL <SP> HTTP-Version <CRLF> Several Methods - some examples Get Head Delete Put Example GET /index.html HTTP/1.1

General Header Fields Contain information that is not directly related to data to be transferred but mostly directives to intermediate nodes

Request Header Field Additional parameters about requests - some examples Accept charset Accept language Host If modified since Referrer 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 <SP> Status-Code <SP> Reason-Phrase <CRLF> some examples for status-code – reason-phrase pairs 200 OK 404 Not found 405 Method not allowed 400 Bad request

Response Header Fields Additional info about the response Some examples Location: exact location of the requested URL Server: info about server software

Entity Header Information about the entity Some examples similar to MIME format Some examples Content language Content length Content type Last modified etc.

Entity Body Arbitrary sequence of octets that constitutes the transferred entity (actual data) HTTP transfers any type of data including: text binary data audio images video Interpretation of data determined by header fields

Cookies: keeping “state” Many major Web sites use cookies to remember their clients Four components: 1) cookie header line in the HTTP response message 2) cookie header line in HTTP request message 3) cookie file kept on user’s host and managed by user’s browser 4) back-end database at Web site Example: Susan access Internet always from same PC She visits a specific e-commerce site for first time When initial HTTP requests arrives at site, site creates a unique ID and creates an entry in backend database for ID this part is adapted from Kurose&Ross, Computer Networking

Cookies: keeping “state” (cont.) client server Cookie file ebay: 8734 usual http request msg server creates ID 1678 for user usual http response + Set-cookie: 1678 entry in backend database one week later: access usual http request msg cookie: 1678 Cookie file amazon: 1678 ebay: 8734 cookie- spectific action usual http response msg

Cookies (continued) What cookies can bring: Cookies and privacy: authorization shopping carts user session state (server remembers where client stopped last time) Cookies and privacy: cookies permit sites to learn a lot about you and may sell this info advertising companies obtain info across sites about your browsing pattern using banner ads that contain cookies

Internet Directory Services DNS Domain Name System a directory lookup service Provides mapping between host name and IP address A “must” for proper to functioning of Internet RFCs 1034 (concepts) and 1035 (implementation) 1987 total 110 pages

Internet Directory Services DNS Four important elements of DNS Domain name space Tree-structured DNS database (distributed) The info about each node in name space tree structure is contained in a Resource Record (RR). The collection of RRs is organized as a distributed database Name servers Servers that hold and process information about portion of tree and corresponding RRs Name Resolvers Programs that help clients ro extract information from name servers

Domain Names 32-bit IPv4 addresses uniquely identify devices Network number, Host address, later subnet addresses Routers route based on network numbers People tend to memorize names, not numbers a naming mechanism is needed In Arpanet times, hosts.txt file was used managed centrally, downloaded by all hosts daily become insufficient in time In the Internet, naming problem is addressed by concept of domain Group of hosts that are under control of single entity Organized hierarchically Names assigned reflect organization

Portion of Internet Domain Tree Top level domains Component names at most 63 chars, Full name at most 255 chars Case insensitive over 200 TLDs (including newly added ones, e.g. .biz .pro hierarchy helps uniqueness (explain this in CS terms!) Do you know the char length limits? Naming follows organizational boundaries, not physical ones

Domain Name Example edu is college-level educational institutions yale.edu is Domain for Yale University in US should yale.edu have an IP address? not necessary, but it has (130.132.59.127) cs.yale.edu is Computer Science department at Yale has an IP address (128.36.229.30) Eventually get to leaf nodes Identify specific hosts Hosts assigned Internet (IP) addresses

DNS Database Variable-depth unlimited levels hierarchy for names Delimited by period (.) Distributed database Thousands of zones each of these zones are separately managed by different name servers Each TLD and subordinate nodes manage uniqueness of the names assigned Delegated down the hierarchy

Zones Each non-leaf node may or may not manage its childs cs.yale.edu would like to run its own name server, but eng.yale.edu not Next: How can we represent a zone in the database? but before, we have to understand the structure of resource records

Resource Record - 1 Records in a DNS database are called Resource Records (RRs) info about hosts different types Fields of one RR Name TTL Class Type Value Domain name Series of labels of alphanumeric characters or hyphens Each pair separated by period Type of the RR. We will see now

Resource Record - 2 RR Fields (cont’d) Class Time to live (TTL) Potentially DNS can be used for naming in several other systems Usually IN, for Internet Time to live (TTL) How long to hold the result in local cache Zero means don’t cache Value (Rdata) Description of resource For A type, Rdata is 32-bit IP address

Resource Record Types - 1 A Address type. Value of A type RRs is an IP address SOA Start of Authority Parameters (mostly to sync with other servers) and info about this zone MX Mail Exchange name of the receiving SMTP agent for the zone may be more than one MX RRs for one zone priorities are used

Resource Record Types - 2 CNAME Canonical Name used to create aliases value is the canonical host name NS Name Server Value field is the name of the server who knows the IP addresses of the hosts that belongs to the domain given in the Domain_Name field. can be used to specify the names of the name servers in both current domain or in subordinate domains (for delegation purposes) There might be several DNS servers for each domain for fault tolerance

Resource Record Types - 3 PTR Pointer type mostly used for reverse lookups Domain_Name fields is an IP address; Value is the hostname HINFO Host Info. OS and processor type of information about the zone’s server TXT Textual comments etc.

A portion of a possible DNS database for cs.vu.nl.

Addition to previous example How to delegate a subzone ai.cs.vu.nl? Add the following RRs to database for cs.vu.nl ai.cs.vu.nl. 86400 IN NS dns.ai.cs.vu.nl dns.ai.cs.vu.nl. 86400 IN A 130.37.56.350 ;IP address of dns.ai.cs.vu.nl ;this is called as “glue record”

Example for PTR record for Reverse Lookup Useful when you know the IP address and want to know the corresponding host name Suppose you would like to know the host name for IP address 193.140.192.24 you have to query the DNS servers for the PTR entry 24.192.140.193.in-addr.arpa. Be careful! numbers are in reverse order In order to find the host name, the host’s name server should have an entry 24.192.140.193.in-addr.arpa. PTR domain_name for this particular case domain_name is kennedy.cc.boun.edu.tr

Reverse DNS for 193.140.192.24 Generated by www.DNSstuff.com Preparation: The reverse DNS entry for an IP is found by reversing the IP, adding it to "in-addr.arpa", and looking up the PTR record. So, the reverse DNS entry for 193.140.192.24 is found by looking up the PTR record for 24.192.140.193.in-addr.arpa. All DNS requests start by asking the root servers, and they let us know what to do next. How I am searching: Asking b.root-servers.net for 24.192.140.193.in-addr.arpa PTR record: b.root-servers.net says to go to sec3.apnic.net. (zone: 193.in-addr.arpa.) Asking sec3.apnic.net. for 24.192.140.193.in-addr.arpa PTR record: sec3.apnic.net says to go to efe.ulakbim.gov.tr. (zone: 140.193.in-addr.arpa.) Asking efe.ulakbim.gov.tr. for 24.192.140.193.in-addr.arpa PTR record: efe.ulakbim.gov.tr says to go to foca.cc.boun.edu.tr. (zone: 192.140.193.in-addr.arpa.) Asking foca.cc.boun.edu.tr. for 24.192.140.193.in-addr.arpa PTR record: Reports kennedy.cc.boun.edu.tr. Answer: 193.140.192.24 PTR record: kennedy.cc.boun.edu.tr. [TTL 3600s] [A=193.140.192.24]

Typical DNS Operation User program requests IP address for domain name Resolver module in local host 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 Local name server caches reply and maintain it for TTL seconds User program is given IP address or error message

DNS Name Resolution local

Root Name Servers servers for TLDs local server starts with a root server if it does not know anything about the domain to be resolved actually there are a dozen of them worldwide listed in configuration files of the name servers

Authoritative Name Servers A relative concept the authoritative name server of a host is the one that keeps the A RR of that host Actually a local name servers is also authoritative name server for the hosts in that domain In principle, DNS queries aim to reach the authoritative name server for the host to be resolved but generally responses come from the other servers that already cached the requested record that is why the nslookup responses are mostly non-authoritative DNS name servers automatically send out updates to other relevant name servers for quick response mechanisms designed in RFC 2136 and not in the scope of CS408

Iterative vs. Recursive Queries If one name server does not know the queried host, it acts like a DNS client and asks to another name server. Then send the result back Iterative in the name server does not know the host, then returns the address of the next server, but does not ask that server. Examples coming Remark: Queries are sent over UDP Why?

Example - 1 looking for the IP address of gaia.cs.umass.edu Recursive queries Let’s think about cached alternatives

Example - 2 looking for the IP address of gaia.cs.umass.edu Recursive and iterative queries

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, name does not exist QDcount: # of entries in question section (zero or more) ANcount: # of RRs in answer section (zero or more) NScount: # of RRs in authority section (zero or more) ARcount: # of RRs in additional records section (zero or more)

DNS Message Fields – Question and Answers Domain Name Sequence of labels for the domain name to be resolved Query Type what type of RR is requested? Query Class: typically Internet. Answer section contains RRs that answer question Authority section contains RRs that point toward an authoritative name server

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

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

Socket System Calls for Connection-Oriented Protocol