Administrative fun thing make sure to schedule some time with me to do a bit of project brainstorming do the IRB training  bring me a copy of the certificate.

Slides:



Advertisements
Similar presentations
TCP-IP Primer David Cozens. Targets Have a basic understanding of Ethernet network technology Be aware of how this technology is applied on the 5000 series.
Advertisements

Firewall Simulation Teaching Information Security Using: Visualization Tools, Case Studies, and Hands-on Exercises May 23, 2012.
CCNA – Network Fundamentals
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Socket Programming 0.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
How do Networks work – Really The purposes of set of slides is to show networks really work. Most people (including technical people) don’t know Many people.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
Network Terminology … Remember: Knowledge is Power!
Lesson 18-Internet Architecture. Overview Internet services. Develop a communications architecture. Design a demilitarized zone. Understand network address.
1 Java Networking – Part I CS , Spring 2008/9.
Chapter Extension 7 How the Internet Works © 2008 Prentice Hall, Experiencing MIS, David Kroenke.
Network Programming. The biggest difficult part in networking programming lies in understanding networking not in using java networking package. Since.
CCNA Guide to Cisco Networking Fundamentals Fourth Edition Chapter 9 Network Services.
Computer Networks IGCSE ICT Section 4.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Application Layer Functionality and Protocols Network Fundamentals – Chapter.
Basic Network Training. Cable/DSL Modem The modem is the first link in the chain It is usually provided by the ISP and often has a coax cable connector.
Support Protocols and Technologies. Topics Filling in the gaps we need to make for IP forwarding work in practice – Getting IP addresses (DHCP) – Mapping.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Network Addressing Networking for Home and Small Businesses – Chapter.
Day15 IP Space/Setup. IP Suite of protocols –TCP –UDP –ICMP –GRE… Gives us many benefits –Routing of packets over internet –Fragmentation/Reassembly of.
Network Address Translation (NAT)
TCP/IP protocols Communication over Internet is mostly TCP/IP (Transmission Control Protocol over Internet Protocol) TCP/IP "stack" is software which allows.
Internet Addressing. When your computer is on the Internet, anything you do requires data to be transmitted and received. For example, when you visit.
9/11/2015Home Networking1 Bob.test Have Road Runner Unhappy about reports of constant probes of machines Policy decision –I want to prevent unauthorized.
Throughput: Internet scenario
Chapter Two Application Layer Prepared by: Dr. Bahjat Qazzaz CS Dept. Sept
Chapter 10 Intro to Routing & Switching.  Upon completion of this chapter, you should be able to:  Explain how the functions of the application layer,
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Application Layer Functionality and Protocols.
What makes a network good? Ch 2.1: Principles of Network Apps 2: Application Layer1.
Network Services Networking for Home & Small Business.
Introduction to Internet terms. Topics to Study What is Internet HTTP URL SMS MMS Wi-Fi Video Conferencing Social Webisites.
HOW WEB SERVER WORKS? By- PUSHPENDU MONDAL RAJAT CHAUHAN RAHUL YADAV RANJIT MEENA RAHUL TYAGI.
Component 9 – Networking and Health Information Exchange Unit 1-1 ISO Open Systems Interconnection (OSI) This material was developed by Duke University,
Scalability Don McGregor Research Associate MOVES Institute
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
Discussion 2 Sockets Programming Applets TCP UDP HTTP Delay Estimation
Data Streams David Meredith Source Chapter 19 of – Shiffman, D. (2008). Learning Processing. Morgan Kaufmann, Burlington, MA. ISBN:
Introduction to Network Programming with Sockets Network Programming Kansas State University at Salina.
CS1Q Computer Systems Lecture 17 Simon Gay. Lecture 17CS1Q Computer Systems - Simon Gay2 The Layered Model of Networks It is useful to think of networks.
Addressing IP v4 W.Lilakiatsakun. Anatomy of IPv4 (1) Dotted Decimal Address Network Address Host Address.
Application Layer Khondaker Abdullah-Al-Mamun Lecturer, CSE Instructor, CNAP AUST.
NETWORK HARDWARE AND SOFTWARE MR ROSS UNIT 3 IT APPLICATIONS.
Networking Terminology: ISP (Internet service provider) – dialup, dsl, cable LAN (local area network) IP (internet protocol) address, eg
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
TCP/IP (Transmission Control Protocol / Internet Protocol)
Socket Programming.
Unit 2 - Hardware Networking. What is a network? A computer network is essentially a connection between two or more computers. This connection can be.
CSI 3125, Preliminaries, page 1 Networking. CSI 3125, Preliminaries, page 2 Networking A network represents interconnection of computers that is capable.
Review: – Why layer architecture? – peer entities – Protocol and service interface – Connection-oriented/connectionless service – Reliable/unreliable service.
A PC Wakes Up A STORY BY VICTOR NORMAN. Once upon a time…  a PC (we’ll call him “H”) is connected to a network and turned on. Aside: The network looks.
“ is not to be used to pass on information or data. It should used only for company business!” – Memo from IBM Executive The Languages, Methods &
The Internet What is the Internet? The Internet is a lot of computers over the whole world connected together so that they can share information. It.
Basics of the Domain Name System (DNS) By : AMMY- DRISS Mohamed Amine KADDARI Zakaria MAHMOUDI Soufiane Oujda Med I University National College of Applied.
Java’s networking capabilities are declared by the classes and interfaces of package java.net, through which Java offers stream-based communications that.
1 Network Communications A Brief Introduction. 2 Network Communications.
Ch. 23, 25 Q and A (NAT and UDP) Victor Norman IS333 Spring 2015.
NT1210 Introduction to Networking
Network Programming. These days almost all devices.
IST 201 Chapter 11 Lecture 2. Ports Used by TCP & UDP Keep track of different types of transmissions crossing the network simultaneously. Combination.
Game Networking CS381 Spring Internet ● An information superhighway ● A collection of pipes ● Arpanet – Robust communication in the face of infrastructure.
Socket Programming Cal Poly Pomona Young CS380.
Lecture 6: TCP/IP Networking By: Adal Alashban
Working at a Small-to-Medium Business or ISP – Chapter 7
Working at a Small-to-Medium Business or ISP – Chapter 7
Topic 5: Communication and the Internet
Modelling the internet
Working at a Small-to-Medium Business or ISP – Chapter 7
Modelling the internet
Starting TCP Connection – A High Level View
AbbottLink™ - IP Address Overview
Exceptions and networking
Presentation transcript:

administrative fun thing make sure to schedule some time with me to do a bit of project brainstorming do the IRB training  bring me a copy of the certificate

a lil’ bit ‘o’ networking anthony tang

build a distributed whiteboard goal: build a simple distributed application assignment #1

build a distributed whiteboard goal: build a simple distributed application assignment #1

without taking away all of the fun… establish a data connection (topology?) get input from user (ui?) send data (granularity? formatting?) receive data (ui presentation?) break the data connection assignment #1

constraints language: whatever you like; suggestion: C#, Java, or Python* use either: raw sockets OR udp the point is to do some raw network programming  no networking toolkits assignment #1 * if you’re not sure, ask me early

fun bits 2.5% each! see the assignment page some examples: support telepointers support the late joiner support >2 clients assignment #1

on deck *distributed application terminology topologies *networking 101 *network programming: sockets and udp messaging *based on:

assumptions you have seen some of this before you kind of have a feel for most of this stuff this is mostly refresher * but I could be wrong; ask for clarification when needed

protocol rules that facilitate information exchange “picard to riker” “riker here” … “picard out” (* or another radio protocol) network applications communicate in very specific ways (certain messages, known formats) terminology

server process that waits for incoming connections, and provides a service restaurant waiter, for example web server, Apple app store, video game server instant messaging servers, file servers terminology

client process that connects to servers, and uses the provided service *tink tink* “apple juice, please!” web browsers get web pages, and render them clients (outlook/thunderbird) connect to mail servers to get and send IM clients connect to servers to exchange messages and find out who’s online terminology

host (n) a device connected to the network (n) a device running the server (v) run the server; usage: I will host the server terminology

serialization converting an object into a format that can be stored and resurrected later make into a stream pictures, MS Word documents data structures/data objects terminology ….

topologies arrangement or distribution of application and communication logic general questions this lays out: which parts talk to each other how you know who’s around

peer-to-peer everyone tries to talk to one another topologies

peer-to-peer topologies (0,0) = black what happens when there are a lot of peers? how to synchronize? delegation leads to “weak link” scenarios peer discovery?

centralized server responsible for communication between clients topologies client server

centralized server responsible for communication between clients topologies 1.client sends message 2.server relays this, or another message to other clients

all sorts of interesting hybrids bittorrent, skype, gnutella … mainly, the hybrids are in place to: boostrapping (getting going) overcome performance bottlenecks or, structurally, they just make sense (different parts use different models—like skype) topologies

networking 101 every host has an address addresses are written in dotted quad notation e.g , one special address refers to the “local” machine: localhost

addressing only a limited number of IP addresses DHCP (dynamic host configuration protocol) is used to assign IP addresses from a shared pool (LAWN at GeorgiaTech) IPs from DHCP expire when debugging, you can use “localhost” to refer to the client and server on the same machine networking 101

private and public addresses ** not all IP addresses can be reached from a given machine ** because there are more devices than IPs, “local network adminstrators” use private or “non-routable” IP addresses – – – (your home network is likely doing this) networking 101

network address translation most home routers do this Comcast gives me: my router gives: desktop: Xbox: laptop: router performs Network Address Translation (NAT) so that when my desktop tries to connect to a website, it looks like it is coming from networking 101

why is this important? servers running with private IP addresses cannot be reached from machines not on that network  generally, you will be unable to run a server at GT, and connect to it from a client at home networking 101

naming when you go to a web browser, you don’t type in , you type in DNS (domain name service) makes this happen a big distributed database of all the machines on the Internet each organization manages its own little portion of it maps from host names to IP addresses internet runs on IP addresses; names are for people* when you type the browser resolves that name to an IP address by talking to a DNS server if name resolution can’t be done (DNS is down; you’re not connected to the network), then browsing will fail networking 101 * “usability” ;-) … boxes were supposed to be numbered

ports ports let your machine run multiple servers at the same time analogy: IP address=street address; ports=apartments a port is a number [0-65,535] used to specify a certain mailbox in the apartment networking 101

ports (2) most internet services run on well-known ports e.g. web servers run on port 80, so when I type it resolves: ; when you type it into a web browser, the browser connects to: , port 80 ports are “special” and reserved networking 101

why do you need to know this? when you are writing an application, choose a high port number (e.g. 5000) only one program gets to use a port at a time firewalls often block ports (e.g. to prevent you from connecting to instant messenger) debugging: “port already bound”: another process is already using that port “can’t connect”: you may have specified the wrong IP or port networking 101

network programming for our purposes, there are two ways of communicating between machines: socket/stream-based, or UDP messaging

UDP messaging UDP messaging is akin to sending postcards: if you send a bunch, they will likely get there quickly, but they might also get lost client: create a message, address it (address:port), send it on the internet server: BIND to a port on your machine, and wait for messages network programming * note: no true notion of a “connection” *

sockets: stream-based socket: endpoint for communication (think of a power socket) you can read/write to a socket with a stream—like a file you will know if the message gets there/if no one listening on the other side network programming

from a client’s perspective create a socket bind it to the address on the client machine (you’ll get an IP and a port)* connect to the server, specifying its address and port read/write from/to the socket for data close the socket networking programming: sockets * in many languages, this happens implicitly

from a server’s perspective create a socket bind it to an address and port accept incoming connections (this will wait until it gets a new client) this produces a new socket that is paired w/ the client meanwhile, you can go back to accepting new clients close listening socket when you’re done networking programming: sockets

client example import socket client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect(("localhost", 5000)) while 1: data = client_socket.recv(512) print "RECIEVED:", data data = raw_input ( "SEND:" ) if (data <> 'Q' and data <> 'q'): client_socket.send(data) else: client_socket.send(data) client_socket.close() break networking programming * from:

server example import socket server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind((“localhost", 5000)) server_socket.listen() print “Server Waiting for client on port 5000" while 1: client_socket, address = server_socket.accept() print "I got a connection from ", address while 1: data = raw_input ( “SEND:" ) client_socket.send(data) data = client_socket.recv(512) print "RECIEVED:", data networking programming * from: