1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo,...

30
1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. [email protected] http://www.cpe.ku.ac.th/~cpj Computer Engineering Department Kasetsart University, Bangkok, Thailand Second Semester, 2014 Most materials in this presentation were prepared by Assoc. Prof. Anan Phoenphoem (http://www.cpe.ku.ac.th/~anan)

Transcript of 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo,...

Page 1: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

1

Data Communications and Network Programming:Course Introduction

Asst. Prof. Chaiporn Jaikaeo, [email protected]

http://www.cpe.ku.ac.th/~cpjComputer Engineering Department

Kasetsart University, Bangkok, Thailand

Second Semester, 2014

Most materials in this presentation were prepared by Assoc. Prof. Anan Phoenphoem (http://www.cpe.ku.ac.th/~anan)

Page 2: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

2

Outline Motivation Growth of Computer Networking Data Communication Networks Protocols and Standards Standard Organizations

Page 3: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

3

Motivations Efficient way to share resources

Cost – less expensive Accessibility – easier

Efficient way to exchange information Time – faster Size – bigger Correctness – accurate

Page 4: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

4

Example - A Computer Network

Media Links

Printer

Workstation

Laptop

Scanner

Server

SD

iMac

Page 5: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

5

Data Communication

Hi, how are you?

01010001

Hi, how are you?

UserComputer

you?

how

are

Hi,

you?

how

are

Hi,

01010001

Page 6: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

6

Data Comm. Components

Hi

How are you doing?

5 Protocol

4 Medium

3 Receiver2 Sender

1 Message

Page 7: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

7

Protocols and Standards Protocol

A set of rules governing data communications Syntax: format of data block Semantics: meaning of each section Timing: speed and sequencing

Standards De facto (in practice) standards

not approved but widely adopted De jure (in law) standards

approved by a standard organization, e.g., ISO, IEEE

Page 8: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

8

Protocols and Standards To communicate, two devices must

follow the same set of communication protocols

E.g., they must be connected to the same medium understand each other's messages

In other words, they comply with the same standard

Page 9: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

9

Data Representation Standards

Numbers 8/16/32 bit integers floating point

Text ASCII, Unicode

Images Bit patterns, Graphics formats JPG/GIF/etc

Audio Samples of continuous signal Video Sequence of bitmap images

150

2

255

Page 10: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

10

Connection Standards

Company A

Company D

Network Interface Card (NIC)

Company B

Company C

Page 11: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

11

Internetworking How to allow devices from different

standards to communicate Gateways/routers – devices capable of

communicating in several standards

These become "network of networks"

Page 12: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

12

The Internet The largest internetwork (network of

networks) in the world Devices communicating with TCP/IP protocol

suite at high level

UCLA

Stanford

UC Santa Barbara

U. of Utah

Page 13: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

13

Internet Growth

#computers attached to Internet

Page 14: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

14

Recent and Future Trends

The availability of high-quality teleconferencing systems

Some social networking applications such as Facebook Twitter Google+ Many others

The Internet of Things (IoT)

Page 15: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

15

Future of the Internet

http://www.computerworld.com/s/article/print/9191518/Final_IPv4_addresses_to_be_issued_within_months_NRO_warns

Page 16: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

16

Future of the Internet

http://www.computerworld.com/s/article/9207961/Update_ICANN_assigns_its_last_IPv4_addresses

Page 17: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

17

Future of the Internet

http://www.zdnet.com/blog/networking/its-official-asias-just-run-out-of-ipv4-addresses/948

Page 18: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

Internet of Things

18

http://www.opinno.com/en/content/internet-things-0

Page 19: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

Connected Living

19https://devcentral.f5.com/articles/security-sidebar-defending-the-internet-of-

things

Page 20: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

Connected Living

20http://www.jumpthecurve.net/wp-content/uploads/2014/03/

ericssonthings1.jpg

Page 21: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

21

Future of the Internet

http://www.itworld.com/networking/231929/usenix-google-deploys-ipv6-internal-network

Page 22: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

22

What Will We Learn in this course

Data communication concepts Computer networking devices Internet protocol suite (TCP/IP) Capture and analyze network traffic of

well-known applications Network programming

Standalone socket applications Web-based applications Web services

Page 23: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

23

Languages and Tools Basic network tools

ping, traceroute (tracert on Windows) Network traffic monitor

Wireshark Programming

Java (with Groovy shell)

Page 24: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

24

Ping

Page 25: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

25

Trace Route

Page 26: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

26

Monitoring Network TrafficSample results from Wireshark

Page 27: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

27

Application Program Interface (API)

Set of operation for application programmer

Specify arguments and semantics

Page 28: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

28

Berkeley Socket API API for developing applications that perform inter-

process communication in C/C++ most commonly for communications across a computer

network, especially UNIX Example functions

listen – used by server to wait for contact from client connect – used by client to contact server send – used by either client or server to send data recv – used by either client or server to receive data

Java, .NET, Python, etc. provide convenient wrappers around socket API

Easier to write than C/C++

Page 29: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

29

Web APIs (Web Services) APIs defining set of request and response

messages via web context (i.e., HTTP) usually in Extensible Markup Language (XML) or JavaScript Object Notation (JSON) format

Examples Facebook API Twitter API Various Google APIs

Page 30: 1 Data Communications and Network Programming: Course Introduction Asst. Prof. Chaiporn Jaikaeo, Ph.D. chaiporn.j@ku.ac.th cpj.

30

Summary Motivations of computer networking Data Communication components Network application programming and

APIs