CSC 634: Networks Programming

Similar documents
CSC 447: Parallel Programming for Multi- Core and Cluster Systems. Lectures TTh, 11:00-12:15 from January 16, 2018 until 25, 2018 Prerequisites

An Operating System History of Operating Systems. Operating Systems. Autumn CS4023

COURSE OUTLINE. UNIX Programming 2014 Fall by Euiseong Seo

Welcome to CS 340 Introduction to Computer Networking

Networking and Internetworking 1

Overview of Unix / Linux operating systems

Unix to Linux. CS 3113 Fall 2018 Dr. Christan Grant

Contents. * All rights reserved, Tei-Wei Kuo, National Taiwan University, 2003.

CSCI Computer Networks

Introduction to Linux Overview and Some History

L1: Introduction. Hui Chen, Ph.D. Dept. of Engineering & Computer Science Virginia State University Petersburg, VA 23806

Osi Reference Model And Explain The Various Layers And Its Applications

03 The Internet Model and TCP/IP

Computer Networks. General Course Information. Addressing and Routing. Computer Networks 9/8/2009. Basic Building Blocks for Computer Networks

Introduction to Computer Networking

Announcements. CS 5565 Network Architecture and Protocols. Outline for today. The Internet: nuts and bolts view. The Internet: nuts and bolts view

tech. solutions T2G Page1 ALT_01_Ch1 : Introduction to Linux ideas and history The History of Linux starts with the earlier development of UNIX.

CSCI 2132 Software Development. Lecture 2: Introduction to UNIX and Unix-like Operating Systems

MORGANSTATEUNIVERSITY DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING. EEGR410 Introduction to Networks. Credits: 3 COURSE SYLLABUS

Chapter 2 Network Models 2.1

MORGANSTATEUNIVERSITY DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING. EEGR510 Communications Networks Credits: 3 COURSE SYLLABUS

Chapter 1: Introduction

programming exercises.

COURSE OUTLINE Survey of Operating Systems

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter

系統程式設計 Systems Programming

LINUX System Administration. Perspectives, Practices and Expectations

EEC-484/584 Computer Networks

Lecture 01: welcome and intro what LSD and Unix have in common

CNT 4004: Computer Networks I. Tentative Syllabus

Lecture 1. Course Mechanics. Administrative Items. Grading. Programming Assignments. Homework Assignments

Introduction to Cygwin Operating Environment

Wireless Networks (CSC-7602) Lecture 1 (27 Aug 2007)

Course and Unix Intro

CS 471 Networking and Distributed Operating Systems

Switching Networks (Fall 2010) EE 586 Communication and. August 27, Lecture 2. (modified by Cheung for EE586; based on K&R original) 1-1

Concept Questions Demonstrate your knowledge of these concepts by answering the following questions in the space that is provided.

Class Freeware, Open Source, and Free Software There is a difference, who knew?

Basics of system administration on a Unix system

Outline. TCP/IP Internet

ECE 650 Systems Programming & Engineering. Spring 2018

PLEASE READ CAREFULLY BEFORE YOU START

Operating System Labs. Yuanbin Wu

Data and Computer Communications. Chapter 2 Protocol Architecture, TCP/IP, and Internet-Based Applications

Networking and Internetworking 1

Data Communications and Networks Spring Syllabus and Reading Assignments

Textbook Charles Petzold, Programming Windows, 5th edition, Microsoft Press. References - other textbooks or materials none

CS61C : Machine Structures

Lecture 2 Communication services The Trasport Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Computer Networks. Dr. Abdel Ilah ALshbatat Dept. of Communication and Computer Engineering Faculty of Engineering Tafila Technical University

Data and Computer Communications

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START

b) Diverse forms of physical connection - all sorts of wired connections, wireless connections, fiber optics, etc.

Outline : Computer Networking. Objectives. Who s Who? Administrivia. Layering. L-1 Intro to Computer Networks

Introduction and Layered Network Architecture. EEE 538 Dr. Nail Akar Bilkent University Electrical and Electronics Engineering Department

APPENDIX F THE TCP/IP PROTOCOL ARCHITECTURE

Welcome to: Computer Science 457 Networking and the Internet. Fall 2014 Dr. Joseph Gersch

Network Reference Models

CPS221 Lecture: Layered Network Architecture

SSE3044: Operating Systems

Computer Networks - Xarxes de Computadors

Architectures of Communication Subsystems

Operating Systems CMPSC 473. Introduction January 15, Lecture 1 Instructor: Trent Jaeger

CS-435 spring semester Network Technology & Programming Laboratory. Stefanos Papadakis & Manolis Spanakis

Linux Operating System

CSc 450/550 Computer Networks Introduction. Jianping Pan Summer 2007

15-744: Computer Networking. L-1 Intro to Computer Networks

SWE3004: Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

COS 140: Foundations of Computer Science

Overview of Network Software. CS158a Chris Pollett Jan 31, 2007.

Author(s): August E. Evrard, PhD. 2010

CS 332: Computer Networks Introduction

Lecture: Chapter 1, Introduction to Computer Data

Introduction to the TCP/IP protocol suite

Internetworking Models The OSI Reference Model

UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 3550 Communication Networks

PLEASE READ CAREFULLY BEFORE YOU START

Layering in Networked computing. OSI Model TCP/IP Model Protocols at each layer

ISO OSI 7 Layer model and the TCP/IP protocol stack. Introduction to the TCP/IP protocol suite. Networking Glossary

Course Syllabus - CNT 4703 Design and Implementation of Computer Communication Networks Fall 2011

CSC 4900 Computer Networks: Introduction

Chapter 1 Introduction

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

NetWare Protocols. Background. Technology Basics CHAPTER

Brief Linux Presentation. July 10th, 2006 Elan Borenstein

CSE 489/589 Recitation TCP Socket & Synchronous I/O Multiplexing

CSC 443: Web Programming

IT 341 Fall 2017 Syllabus. Department of Information Sciences and Technology Volgenau School of Engineering George Mason University

Need For Protocol Architecture

Need For Protocol Architecture

Lecture 17 Overview. Last Lecture. Wide Area Networking (2) This Lecture. Internet Protocol (1) Source: chapters 2.2, 2.3,18.4, 19.1, 9.

MIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E

ECPE / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

Introduction to Computer Systems

ISOM 3180 Telecommunications and Computer Network Management. Room: 1009, LSK Building

CS503 Advanced Programming I CS305 Computer Algorithms I

Syllabus Revised 03/05/2015

CS 375 UNIX System Programming Spring 2014 Syllabus

CS3600 SYSTEMS AND NETWORKS

Transcription:

CSC 634: Networks Programming Lecture 01: Course Review and Introduction Instructor: Haidar M. Harmanani Course Introduction Lectures T, 4:30-7:30 from January 16, 2018 until April 26, 2018 Prerequisites o Know how to program o Introductory networks course Networks Programming Spring 2018 2

Grading and Class Policies Grading Midterm: 15% Final: 15% Individual Programming Assignments [4-6]: 40% Course Project: 15% Research Presentations: 15% Exam Details Exams are closed book, closed notes No Late Programs will be accepted All assignments must be your own original work. Cheating/copying/partnering will not be tolerated Networks Programming Spring 2018 3 Late Policy Assignments are due at start of the class time For every day your project or homework is late (even by a day), a 15 points is assessed No credit if more than 3 days late Networks Programming Spring 2018 4

Policy on Assignments and Independent Work With the exception of assignments that explicitly permit you to work in groups, all homework and projects are to be YOUR work and your work ALONE. It is NOT acceptable to copy solutions from other students. It is NOT acceptable to copy (or start your) solutions from the Web from github. PARTNER TEAMS MAY NOT WORK WITH OTHER PARTNER TEAMS You are encouraged to help teach other to debug. Beyond that, we don t want you sharing approaches or ideas or code or whiteboarding with other students, since sometimes the point of the assignment is the algorithm and if you share that, they won t learn what they are supposed to learn. It is NOT acceptable to leave your code anywhere where an unscrupulous student could find and steal it (e.g., public GITHUBs, walking away while leaving yourself logged on, leaving printouts lying around, etc) The first offense is a zero on the assignment while the second is an F on the course Both giver and receiver are equally culpable and suffer equal penalties Networks Programming Spring 2018 5 Architecture of a typical Lecture Full Attention app 10 minutes Administrivia break And in conclusion 10 45 50 100 140 150 Time (minutes) Networks Programming Spring 2018 6

Contact Information Haidar M. Harmanani Office: Block A, 810 Hours: TTh 8:00-9:30 and T 3:00-4:30 or by appointment. Email: haidar@lau.edu.lb Networks Programming Spring 2018 7 Course Materials Networks Programming Spring 2018 8

Administrative Questions? A Bit of History <1960: Data transportation in the form of bits 1960: Transportation of data packets 1965: Bell Labs, General Electrics and MIT develop Multix (Multiplexed Information and Computing Service) 1969: Ken Thompson and Dennis Ritchie in AT&T begin to develop UNICS (UNiplexed Information and Computing Service) 1971-75: First releases of UNIX in AT&T 1976: First UNIX network application UUCP (UNIX-to-UNIX copy program), File transfer and electronic mail 1978: AT&T Version 7 UNIX 1978 : Berkley Version 7 UNIX (Eric Schmidt, Berkley University): File transfer, e-mail, remote printing 1980: DARPA (Defense Advanced Research Projects Agency) ARPANET, TCP/IP protocols development for Berkley Unix 1983: 4.2BSD UNIX system (Berkley Software Distribution) with Socket Interface 1983: Richard Stallman announces the GNU Project, an attempt to create a free operating system Networks Programming Spring 2018 10

More Bits 1984-86: AT&T System V UNIX with Transport Layer Interface (TLI) File transfer, e-mail, remote printing, remote command execution. 1986: NSFNET (National Science Foundation) Remote access to super-computer network. 1988: 4.3 BSD UNIX. Available source code of DARPA TCP/IP, Xerox NS protocols. End 80s: Microsoft Xenix, System V for Intel 8086, 80286, 80386 processors 1988: IEEE (Institute of Electrical & Electronical Engineers) defines POSIX standard operation system interface. 1989: Unix System V Release 4.0 (SVR4). Merger of AT&T System V with SunOS (4.xBSD derivative) Provides ANSI compliant C compiler. 1991: Linus Torvalds (Finland) introduces Linux freeware OS for PC. 1992: Sun introduces Solaris based on SVR4. 1994: Red Hat Linux released. 2000: Sun releases Solaris 8 having big success >2000: Multiple releases and popularity growth of Linux derivatives Networks Programming Spring 2018 11 Basic Terms Computer Network Communication system for connecting end-systems. Enables to share data, programs and resources (distributed systems). There are physical networks and logical networks. Host Single computer, end-system. Could be personal computer, dedicated system (print or file server) or timesharing system. Networks Programming Spring 2018 12

Layering and Protocol Family Layering is decomposition of task into subsystems (pieces), designed as sequence of horizontal layers. As result, each layer: Focuses on providing a particular function is built in terms of one layer below provides means to building various types of upper neighbor layer. Protocol Family (Suite) is set of interfaces between layers or inside layer. Peer-to-Peer Protocol is the protocol used between two entities of the same layer. Knowledge Concepts Speech Voice Transmitter Knowledge Concepts Speech Voice Receiver Sound Waves Networks Programming Spring 2018 1-13 7 Application messages 6 5 4 3 2 Presentation (kinds of compression) Session (dialog management) Transport (inter-process level) Network (inter-host level) Data Link (network topology) messages messages datagrams packets frames 7-Layer OSI Model 1 Physical bits Networks Programming Spring 2018 14

7 Application 6 Presentation (kinds of compression) messages Application (Communication end-point) 4 5 4 3 2 1 Session (dialog management) Transport (inter-process level) Network (inter-host level) Data Link (network topology) Physical datagrams packets frames bits Transport (inter-process level) Network (inter-host level) Data Link (Network topology & physical connection) 3 2 1 4-Layer Simplified Model of TCP/IP Networks Programming Spring 2018 15 Communication Networks can be divided into two basic types by method of data transmission: circuit-switched and packet-switched. Circuit-Switched Data Transmission Packet-Switched Data Transmission circuit Non-shared dedicated communication line is established Information transmitted without division Connection established once, then all data transmitted through this connection. The TCP/IP Internet uses packet-switched data transmission, provided by IP (Network) layer, responsible for forwarding of IP packets. hop hop hop hop hop Shared communication links are used instead of dedicated line Information is divided into pieces packets. Each packet contains the address of destination and separately routed over shared data links. Data Transmission Method Networks Programming Spring 2018 1-16

Multiplexing means to combine many into one. For network this means combining of data accepted from different functionalities of neighbor layer. Demultiplexing is reverse of multiplexing. Multi-homed Multi-user Host Process 1 Process 2 Process 3 Process 4 Process 5 UDP TCP Multiplexing IP TCP/IP Suite XNS Suite Ethernet interface Ethernet cable 1 Ethernet interface Ethernet cable 2 Demultiplexing 1-17 Networks Programming Spring 2018 Course Outline Review of basic networking concepts Review of the Internet Protocol Review of the Transmission Control Protocol and User Data Protocol Basic Network Programming Processes Threading and multi-threading Inter-thread and Inter-process Communication Client/server programming Sockets TCP and UDP sockets Basic client/server programming Multi-threaded Server Application Secure Sockets Programming Networks Programming Spring 2018 18

Course Outline Client-side network programming Web documents Active documents Web Sockets Advanced Client Server Network Programming Blocking Synchronous I/O Multiplexing Asynchronous Servers Serialization RMI and RPC Peer to Peer Communication Torrent Blockchains Caching and messages queues Networks Programming Spring 2018 19 Course Outline Web technology A brief intro to NodeJS Django Web scraping Applications Building and parsing emails Webmail services Networks Programming Spring 2018 20