Programming Assignment #1

Slides:



Advertisements
Similar presentations
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Advertisements

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved L23 (Chapter 25) Networking.
Multiple Tiers in Action
TCP/IP Protocol Suite 1 Chapter 11 Upon completion you will be able to: User Datagram Protocol Be able to explain process-to-process communication Know.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
DNS. Outline r Domain Name System r DNS Hierarchy r Resolution.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
FTP (File Transfer Protocol) & Telnet
An program As a simple example of socket programming we can implement a program that sends to a remote site As a simple example of socket.
ITIS 1210 Introduction to Web-Based Information Systems Chapter 23 How Web Host Servers Work.
CSCI 6962: Server-side Design and Programming Web Services.
Hour 7 The Application Layer 1. What Is the Application Layer? The Application layer is the top layer in TCP/IP's protocol suite Some of the components.
1 Chapter 28 Networking. 2 Objectives F To comprehend socket-based communication in Java (§28.2). F To understand client/server computing (§28.2). F To.
Dynamic web content HTTP and HTML: Berners-Lee’s Basics.
Server-side Programming The combination of –HTML –JavaScript –DOM is sometimes referred to as Dynamic HTML (DHTML) Web pages that include scripting are.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
Fall 2000C.Watters1 World Wide Web and E-Commerce Servers & Server Side Processing.
27.1 Chapter 27 WWW and HTTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
LECTURE 10 Networking. NETWORKING IN PYTHON Many Python applications include networking – the ability to communicate between multiple machines. We are.
COMP2322 Lab 4 Socket Programming Toby Lam March 2, 2016.
Java Networking I IS Outline  Quiz #3  Network architecture  Protocols  Sockets  Server Sockets  Multi-threaded Servers.
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.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 33 Networking.
4.01 How Web Pages Work.
4.01 How Web Pages Work.
COMP2322 Lab 4 Socket Programming
Understand Names Resolution
Internet Socket Programing
4.01 How Web Pages Work.
Managing State Chapter 13.
CS 372 COMPUTER COMMUNICATION AND NETWORKS
HTTP and Abstraction on the Internet
Chapter 25 Domain Name System.
CISC103 Web Development Basics: Web site:
Web Development Web Servers.
Domain Name System (DNS)
IMPLEMENTING NAME RESOLUTION USING DNS
Vocabulary Prototype: A preliminary sketch of an idea or model for something new. It’s the original drawing from which something real might be built or.
Unit 5: Providing Network Services
Beyond HTTP Up to this point we have been dealing with software tools that run on browsers and communicate to a server that generates files that can be.
Vocabulary Prototype: A preliminary sketch of an idea or model for something new. It’s the original drawing from which something real might be built or.
Working at a Small-to-Medium Business or ISP – Chapter 7
Programming Assignment #3
PHP / MySQL Introduction
Client Client 4) Hello , please give me the website
Net 323 D: Networks Protocols
Subject Name: Computer Communication Networks Subject Code: 10EC71
Working at a Small-to-Medium Business or ISP – Chapter 7
Intro to PHP at Winthrop
Computer Communication & Networks
Application layer Lecture 7.
Working at a Small-to-Medium Business or ISP – Chapter 7
Distributed Computing Systems
Starting TCP Connection – A High Level View
JavaScript Form Validation
Issues in Client/Server Programming
HTTP and Abstraction on the Internet / The Need for DNS
CSCD 330 Network Programming
World Wide Web Uniform Resource Locator hostname [:port]/path
Domain Name System Refs: Chapter 9 RFC 1034 RFC 1035.
Internet Applications & Programming
COMPUTER NETWORKS PRESENTATION
Programming Assignment #1
Windows Name Resolution
INFORMATION FLOW ACROSS THE INTERNET
4.01 How Web Pages Work.
4.01 How Web Pages Work.
Q/ Compare between HTTP & HTTPS? HTTP HTTPS
Programming Assignment #2
Message Passing Systems
Presentation transcript:

Programming Assignment #1 Simulate a DNS server using TCP By utilizing Sockets! Due Date: Sunday October 15, 11:55 p.m. through Moodle website Find project description and files you will need at Programming Projects Hello everyone. Now I’m gonna introduce something about socket programming. First we will try to get a general idea about what socket is. Then we will introduce socket programming with Java and socket programming with Python. The corresponding reading material is the Section 2.7 in Chapter 2, and the project 1 description. Readings: Chapter 2: Sections 2.7 Project I Description CSci4211: Programming Assignment #1

CSci4211: Programming Assignment #1 What should we do? Implement a typical Client/Server model. Client gets input from user, and sends it to server. The source codes of clients have been provided. Server gets input from clients, and send DNS results back to clients. This is what you need to code! They communicate through sockets. CSci4211: Programming Assignment #1

CSci4211: Programming Assignment #1 How do servers work? Get DNS queries from clients. Check if the query has been locally cached. If so, fetch the IP address from cache. Otherwise, go to the root DNS server to look up (here we use the local machine DNS lookup) One server can handle multiple clients. Refer to the “Concurrent Server” in the slides “Socket Programming”. CSci4211: Programming Assignment #1

How does DNS server work? Initially, the DNS data should be empty. If client’s query is not in the DNS server… Look it up in root DNS Send the result back client. Add an entry in DNS_mapping.txt file (cache data). If client’s query is already in the cache… Just return it! CSci4211: Programming Assignment #1

Things you may need to work on… Socket Programming File Operation String Operation CSci4211: Programming Assignment #1

CSci4211: Programming Assignment #1 Scenario 1 1 2 4 3 2, 3 Step 1: Client Contact’s the local DNS server. Step 2: As the local DNS data is empty, contact the root server for the web page. (Here we use local machine DNS lookup) Step 3: Root server to return the html page. Cache this on your local server. (Here we get the result of local machine DNS lookup) Step 4: Return the query result to the client. CSci4211: Programming Assignment #1

CSci4211: Programming Assignment #1 Scenario 2 1 2 Step 1: Client Contact’s the local server. Step 2: The requested host IP resolution is cached on the local server, just return it to the client! CSci4211: Programming Assignment #1

Things you may need to notice… Python 2 vs Python 3 Details about the cache. Please read the project description carefully. Start early! Let me know if you have any questions anytime. Make your code east to read. Pease add suitable comments, makes life more easy for all of us! CSci4211: Programming Assignment #1

CSci4211: Programming Assignment #1 Q&A CSci4211: Programming Assignment #1