Network Programming. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University

Size: px
Start display at page:

Download "Network Programming. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University"

Transcription

1 Network Programming Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University 1

2 Objectives (Ideal) You will learn about: Network basics The Internet Network programming in Java and Python How to compose a client How to compose a (multithreaded) server How to serialize and communicate objects 2

3 Agenda (Ideal) Network basics The Internet Network programming Communicating objects 3

4 Objectives You will learn about: Network programming in Java and Python How to compose a client How to compose a (multithreaded) server How to serialize and communicate objects Network basics (as time allows) The Internet (as time allows) 4

5 Agenda Network programming Communicating objects Network basics (as time allows) The Internet (as time allows) 5

6 Key Concept: Network Address Any computer on the Internet has two addresses: Medium Access Control (MAC) address Used by network adapters, bridges, routers Example: 90:1b:0e:6a:32:26 Internet Protocol (IP) address Used by routers (and people) 32 bit integer, usually expressed in dotted-decimal form Example: Example:

7 Key Concept: Network Address Many computers on the Internet have a third address: Domain name Used by people Domain Name System (DNS) converts to IP address Example: courselab01.cs.princeton.edu Example: localhost 7

8 Key Concept: Port Port A software abstraction 16-bit integer Identifies unique process on specified host Client process on host X communicates with a server process on host Y via ports Server uses a known port on server Client uses an ephemeral port 8

9 Key Concept: Socket Socket IP address + port Dominant abstraction in network programming First developed by Unix/C community Beautiful abstraction Adopted by Java, Python, many others 9

10 Aside: Sockets and Unix File descriptor table File table File table is a surrogate for: the terminal (/dev/tty) a file Process Process can use same functions to read from or write to terminal or file Process can use Unix system-level functions (read, write) Process can wrap FILE objects around file tables, and use standard I/O functions (scanf, printf, ) 10

11 Aside: Sockets and Unix File descriptor table File table File table is a surrogate for: the terminal (/dev/tty) a file a pipe Process Process can use same functions to read from or write to terminal or file or another process on same computer We ll study pipes later 11

12 Aside: Sockets and Unix File descriptor table Process File table File table is a surrogate for: the terminal (/dev/tty) a file a pipe a socket Process can use same functions to read from or write to terminal or file or another process on same computer or another process on different computer We ll study sockets now 12

13 Client and Server Sockets courselab01 Client Process listen Known Port courselab02 Server Process Server Socket Server process creates ServerSocket on host courselab02.cs.princeton.edu port ServerSocket listens for connection requests 13

14 Client and Server Sockets courselab01 Client Process Socket Ephemeral Port connection request Known Port courselab02 Server Process Server Socket Client process creates Socket on host courselab01.cs.princeton.edu (port 50830) Client process requests connection to server process at host courselab02.cs.princeton.edu port

15 Client and Server Sockets courselab01 Client Process Socket Ephemeral Port accept Known Port courselab02 Server Process Server Socket Socket Server process accepts request ServerSocket creates Socket on host courselab02.cs.princeton.edu port ServerSocket informs client process of Socket 15

16 Client and Server Sockets courselab01 Client Process Socket Ephemeral Port read/write Known Port courselab02 Server Process Server Socket Socket Client process reads from or writes to socket on host courselab02.cs.princeton.edu port Server processes reads from or writes to socket on host courselab01.cs.princeton.edu at port

17 Network Pgmming in COS 333 The ideal: Teammate1 Local Computer Client Teammate2 Local Computer Client socket socket CourseLab Firewall courselab01/02 Server (Teammate1) Problem: firewall 17

18 Network Pgmming in COS 333 Option 1: Run on CourseLab CourseLab Firewall courselab02 Client (Teammate1) socket courselab01 Server (Teammate1) Client (Teammate2) socket Important: Use ports in range

19 Network Pgmming in COS 333 Option 2: Run on local computers Teammate2 Local Computer Client socket Teammate1 Local Computer Server Client socket Teammate1 issues ifconfig (Mac/Linux) or ipconfig (MS Windows) command to determine IP addr of server host 19

20 Aside: Telnet Telnet program Provides access to a command-line interface on a remote host Similar to ssh But without data encryption Often useful as a client when testing server programs 20

21 DayTime Example Client: Connects to server Server: Accepts connection Writes current day and time to client Disconnects Client: Reads current day and time from server Writes to stdout 21

22 DayTime in Java See DayTimeClient.java and DayTimeServer.java Try: telnet time-a.nist.gov 13 java DayTimeClient time-a.nist.gov 13 Try: java DayTimeServer someport telnet localhost someport Try: java DayTimeServer someport java DayTimeClient localhost someport 22

23 DayTime in Python See daytimeclient.py and daytimeserver.py AF_INET => IP connection SOCK_STREAM => TCP connection [SOCK_DGRAM => UDP (datagram) connection] 23

24 DayTime in Python See daytimeclient.py and daytimeserver.py (cont.) Try: telnet time-a.nist.gov 13 python daytimeclient.py time-a.nist.gov 13 Try: python daytimeserver.py someport telnet localhost someport Try: python daytimeserver.py someport python daytimeclient.py localhost someport 24

25 Echo Example Client: Connects to server, reads line from stdin, writes line to server Server: Reads line from client, writes uppercase line to client Client: Reads echoed line from server, writes echoed line to stdout, repeats until EOF of stdin Note: Sockets are bi-directional 25

26 Echo in Java See EchoServer.java and EchoClient.java Try: java EchoServer someport telnet localhost someport Try: java EchoServer someport java EchoClient localhost someport 26

27 Echo in Java Problem: EchoServer.java can handle only 1 client at a time Try: java EchoServer someport telnet localhost someport telnet localhost someport Try: java EchoServer someport java EchoClient localhost someport java EchoClient localhost someport 27

28 Echo in Java Solution: See EchoServerMult.java Multithreaded server Described more thoroughly later in course Try: java EchoServerMult someport telnet localhost someport telnet localhost someport Try: java EchoServerMult someport java EchoClient localhost someport java EchoClient localhost someport 28

29 Echo in Python See echoserver.py and echoclient.py Try: python echoserver.py someport telnet localhost someport Try: python echoserver.py someport python echoclient.py localhost someport 29

30 Echo in Python Problem: echoserver.py can handle only 1 client at a time Try: python echoserver.py someport telnet localhost someport telnet localhost someport Try: python echoserver.py someport python echoclient.py localhost someport python echoclient.py localhost someport 30

31 Echo in Python Solution: See echoservermult.py Multithreaded server Described more thoroughly later in course Try: python echoservermult.py someport telnet localhost someport telnet localhost someport Try: python echoservermult.py someport python echoclient.py localhost someport python echoclient.py localhost someport 31

32 Echo Conclusion Note: EchoServer.java works with: Telnet EchoClient.java echoclient.py echoserver.py works with: Telnet echoclient.py EchoClient.java 32

33 Agenda Network programming Communicating objects Network basics (as time allows) The Internet (as time allows) 33

34 Courses Example Server: Writes Course objects (referencing Book objects) to client Client: Reads Course objects (referencing Book objects) from server Writes them to stdout 34

35 Courses in Java See Book.java See Course.java For now, ignore Serializable 35

36 Courses in Java See CourseServer1.java Convert int course count to a human-readable byte sequence; write to client Convert Course object to a human-readable byte sequence; write to client; repeat course count times See CourseClient1.java Read a human-readable byte sequence from server; convert to int course count Read a human-readable byte sequence from server; convert to Course object; repeat course count times 36

37 Courses in Java Fine But is there an easier way? 37

38 Serializable Interface Serializable Tagging interface; no methods ObjectOutputStream serializes object Converts primitive datum or Serializable object to byte stream ObjectInputStream deserializes object Converts byte stream to primitive datum or Serializable object Data of type int and type double, and objects of class String are Serializable 38

39 Courses in Java See CourseServer2.java Write int course count to client Write Course object s String objects & double to client, repeat course count times See CourseClient2.java Read int course count from server Read String objects & double from server; create Course object; repeat course count times 39

40 Courses in Java But wait! Book objects and Course objects are objects... Can define the Book and Course classes to implement Serializable 40

41 Courses in Java See CourseServer3.java Write int course count to client Write Course object to client; repeat course count times See CourseClient3.java Read int course count from server Read Course object from server; repeat course count times 41

42 Courses in Java But wait! ArrayList objects also are Serializable... 42

43 Courses in Java See CourseServer4.java Write an ArrayList object to server! See CourseClient4.java Read an ArrayList object from server! No need to write/read course count! 43

44 Courses in Python See book.py See course.py 44

45 Courses in Python See courseserver1.py Convert int course count to a human-readable byte sequence; write to client Convert Course object to a human-readable byte sequence; write to client; repeat course count times See courseclient1.py Read a human-readable byte sequence from server; convert to int course count Read a human-readable byte sequence from server; convert to Course object; repeat course count times 45

46 Courses in Python Fine But is there an easier way? 46

47 The Pickle Module pickle.dump(obj, flo) Serializes obj to byte stream Writes byte stream to flo obj = pickle.load(flo) Reads byte stream from flo Deserializes byte stream to form obj 47

48 Courses in Python See courseserver2.py Write int course count to client Write Course object s str objects & float to client, repeat course count times See courseclient2.py Read int course count from server Read str objects & float from server; create Course object; repeat course count times 48

49 Courses in Python But wait! Book objects and Course objects are objects and so can be pickled... 49

50 Courses in Python See courseserver3.py Write int course count to client Write Course object to client; repeat course count times See courseclient3.py Read int course count from server Read Course object from server; repeat course count times 50

51 Courses in Python But wait! list objects are objects, and so can be pickled 51

52 Courses in Python See courseserver4.py Write a list object to client! See courseclient4.py Read a list object from server! No need to write/read course count! 52

53 Courses Conclusion Note: CourseServer1.java works with: CourseClient1.java courseclient1.py telnet! courseserver1.py works with: courseclient1.py CourseClient1.java telnet! 53

54 Courses Conclusion Note: CourseServer2.java works only with CourseClient2.java courseserver2.py works only with courseclient2.py Same for 3 and 4 Object serialization/pickling is languagespecific 54

55 Comm of Shared Objects Problem: What if multiple objects are composed of the same nested objects... 55

56 Comm of Shared Objects Using the Courses example... In server: Course0 Course1 Course2 Book0 Book1 56

57 Comm of Shared Objects In client (bad): Course0 Course1 Course2 Book0 Book1 Book1 No!!! In client (good): Course0 Course1 Course2 Book0 Book1 57

58 Shared Objects in Java Solution: Handled automatically! ObjectOutputStream maps each unique object address to a serial num Sees same object address again => writes only serial num ObjectInputStream maps serial numbers to unique objects Sees same serial num again => creates ref to existing object 58

59 Shared Objects in Java See CourseServer5.java See CourseClient5.java Change of Book price in client confirms that shared object was written/read properly COS 217 COS 226 COS 333 King Sedgewick Kernighan 59

60 Shared Objects in Python Solution: Handled automatically! pickle.dump() maps each unique object address to a serial num Sees same object address again => writes only serial num pickle.load() maps serial numbers to unique objects Sees same serial num again => creates ref to existing object 60

61 Shared Objects in Python See courseserver5.py See courseclient5.py Change of Book price in client confirms that shared object was written/read properly COS 217 COS 226 COS 333 King Sedgewick Kernighan 61

62 Agenda Network programming Communicating objects Network basics (as time allows) The Internet (as time allows) 62

63 Network Basics: Goals Networking Huge topic Can only scratch the surface Goal Convey workable mental model From programmer s point of view Approach Bottom-up... 63

64 Hosts and Network Adapters Host Computer Network Adapter Network Network adapter: HW that connects host computer to network Each has unique "medium access control (MAC) address" MAC address: xx:xx:xx:yy:yy:yy, where each x and y is a hexadecimal digit xx:xx:xx is unique to vendor yy:yy:yy is unique to device 64

65 Hosts and Network Adapters Try on CourseLab: ifconfig Note ether 65

66 Hubs and Segments Host1 Adapter header payload Host2 Adapter header payload Network Segment frame Hub frame Frame = header + payload Header identifies source and destination addresses Payload contains user data Hub (alias repeater) = HW (no SW) that transmits frames among hosts Receives frame from adapter; doesn t examine header; copies to all others Every adapter sees frame; only destination adapter reads it Network Segment = hosts + hub Scope: one room; one floor of a building 66

67 Bridges and LANs Host1 Host2 Hub1 Bridge1 Host3 Hub3 Bridge2 Hub4 LAN Host4 Host5 Host6 Host7 Bridge (alias switch) = HW+SW that connects hosts, hubs, other bridges Does examine headers Analyzes message sources; learns where hosts are host1 host2: hub1 bridge1 (discard) host1 host7: hub1 bridge1 bridge2 hub4 Local Area Network (LAN) = hosts + hubs + bridges Scope: one building; one campus 67

68 Routers and WANs LAN1 LAN2 Router WAN Router (~alias gateway) = HW that connects multiple (incompatible) LANs Wide Area Network (WAN) = LANs + routers Scope: planet Earth! And beyond! Each host has both a LAN (MAC) address and a WAN address LAN address: not related to network topology WAN address: related to network topology 68

69 WAN Data Transfer Host1 Protocol SW on Host1 payload When Host1 on LAN1 sends a payload to Host2 on LAN2... WAN packet LAN1 Adapter on Host1 LAN1 header (MAC addr of Router) WAN header (WAN addr of Host2) LAN1 frame payload Hub Bridge 69

70 WAN Data Transfer WAN packet LAN1 header (MAC addr of Router) WAN header (WAN addr of Host2) payload Router LAN1 Adapter LAN1 frame Protocol SW on Router WAN packet WAN header (WAN addr of Host2) payload 70

71 WAN Data Transfer WAN packet WAN header (WAN addr of Host2) payload Router LAN2 Adapter Protocol SW on Router WAN packet LAN2 header (MAC addr of Host2) WAN header (WAN addr of Host2) payload LAN2 frame 71

72 WAN Data Transfer Bridge Hub LAN2 Adapter on Host2 Protocol SW on Host2 Host2 LAN2 header (MAC addr of Host2) payload WAN header (WAN addr of Host2) LAN2 frame WAN packet payload 72

73 Protocol Stacks Generic Packet Structure Level 0 header Level 1 header Level 2 header... payload Level 2 packet Level 1 packet Level 0 packet Protocols can be (and typically are) layered/stacked And so packets can be (and typically are) layered/stacked 73

74 Agenda Network programming Communicating objects Network basics (as time allows) The Internet (as time allows) 74

75 The Internet The Internet A WAN that uses a particular protocol stack 75

76 The Internet Protocol Stack Application Layer HTTP, HTTPS, SMTP, POP3, IMAP, FTP, SFTP telnet, SSH, daytime, echo, DNS, Transport Layer TCP UDP Internet Layer IP Typical Internet Packet Structure LAN header IP header TCP header App header... payload 76

77 The Internet Layer Application Layer HTTP, HTTPS, SMTP, POP3, IMAP, FTP, SFTP telnet, SSH, daytime, echo, DNS, Transport Layer Internet Layer TCP UDP IP Dominant protocol: IP (Internet Protocol) 77

78 IP Characteristics IP characteristics Connectionless No persistent connection Packetized Sender splits long message into packets Receiver re-assembles the packets Unreliable Packets can be lost (errors, congestion) Receiver not notified of lost packets 78

79 IP Headers IP Header Source WAN address Destination WAN address 79

80 IP Addresses IP addresses WAN address = IP address Internal form: 32 bits Human-readable form: dotted decimal xxx.xxx.xxx.xxx 80

81 Some IP Addresses IP Address Computer Princeton courselab cluster computers Princeton CS Dept web server host computer Princeton web server host computer A US gov computer The local host 81

82 Exploring IP Try on CourseLab: ifconfig Note inet Note: is IP address of the local host Useful for testing networking apps 82

83 Domain Names Problem: Difficult for humans to remember/use dotted decimal IP addresses Solution: Domain names Domain name: A symbolic name for IP address(es) Example: Example: Example: localhost 83

84 The Domain Name System Problem: How to map domain name to IP address(es)? Solution 1: hosts.txt file at SRI International Downloaded ~weekly Didn t scale Solution 2: Domain Name System 84

85 The Domain Name System The Domain Name System Domain name system (DNS) The phone book of the Internet Maps domain names to their IP addresses Distributed hierarchical database 85

86 The Domain Name System Your Computer What is DNS Resolver What is Root Name Server References Try xxx.xx.xxx.x (Addr of edu name server) 86

87 The Domain Name System Your Computer What is DNS Resolver What is edu Name Server References Try yyy.yy.yyy.y (addr of princeton.edu name server) 87

88 The Domain Name System Your Computer It's DNS Resolver What is princeton.edu Name Server References It's

89 DNS root servers: DNS Root Servers Many hundreds; over 130 physical locations 89

90 DNS Root Servers Q: How can DNS root servers handle the heavy workload? A: Caching at each level of the DNS hierarchy In reality, root servers handle mostly silly requests 90

91 Exploring DNS Try on CourseLab: nslookup courselab.cs.princeton.edu nslookup courselab01.cs.princeton.edu nslookup nslookup nslookup time-a.nist.gov nslookup nonexistingdomainname 91

92 Exploring DNS See IpAddress.java java IpAddress courselab.cs.princeton.edu java IpAddress courselab01.cs.princeton.edu java IpAddress java IpAddress java IpAddress time-a.nist.gov java IpAddress localhost java IpAddress nonexistingdomainname 92

93 Exploring DNS See ipaddress.py python ipaddress.py courselab.cs.princeton.edu python ipaddress.py courselab01.cs.princeton.edu python ipaddress.py python ipaddress.py python ipaddress.py time-a.nist.gov python ipaddress.py localhost python ipaddress.py nonexistingdomainname 93

94 The Transport Layer Application Layer HTTP, HTTPS, SMTP, POP3, IMAP, FTP, SFTP telnet, SSH, daytime, echo, DNS, Transport Layer Internet Layer TCP UDP IP Dominant protocols UDP (User Datagram Protocol) TCP (Transmission Control Protocol) 94

95 UDP UDP characteristics Connections are not persistent Connections are unreliable Adds port number to IP protocol Why UDP? Fast Not all applications need reliable transmission E.g. streaming audio E.g. DNS We will not use UDP in COS

96 TCP TCP characteristics Connections are persistent Virtual circuit Connections are reliable Reassembles packets in proper order Requests resend of missing/corrupted packets Ordered reliable byte stream Recall file descriptors Most Internet apps use TCP We will use TCP in COS

97 TCP Headers Header Source port Destination port 97

98 Ports Port A software abstraction 16-bit integer Identifies unique process on specified host Client and server communicate via ports Known port on server Ephemeral port on client Ports allow comm between specific processes on specific hosts (as opposed to comm between hosts) 98

99 Port Numbers : Well-Known Server Ports Used by common servers (HTTP, FTP, etc.) : Registered Server Ports Registered by software vendors to reduce likelihood of conflicts : Dynamic/Private Ports Available for any purpose 99

100 Well-Known/Registered Ports Some Well-Known Server Ports Port Kind of Process 7 echo 13 daytime 20 FTP-control 21 FTP-data 22 SSH, SFTP 23 telnet 25 SMTP Port Some Registered Server Ports 3306 MySQL Kind of Process 8080 Apache Tomcat 53 DNS 80 HTTP 110 POP2 143 IMAP 443 HTTPS 100

101 The Application Layer Application Layer HTTP, HTTPS, SMTP, POP3, IMAP, FTP, SFTP telnet, SSH, daytime, echo, DNS, Transport Layer Internet Layer TCP UDP IP Many protocols, each with its own header/payload format 101

102 Application Layer Protocols Some application layer protocols: Protocol daytime echo HTTP (Hypertext Transfer Protocol) HTTPS (Hypertext Transfer Protocol Secure) SMTP (Simple Mail Transfer Protocol) POP3 (Post Office Protocol 3) IMAP (Internet Message Address Protocol) FTP (File Transfer Protocol) SFTP (Secure File Transfer Protocol) Telnet SSH (Secure Shell) DNS (Domain Name System) Internet Application Time of Day Echo World Wide Web File Transfer Remote Shell DNS 102

103 Exploring App Layer Protocols Telnet program Remote shell Provides access to a command-line interface on a remote host Similar to ssh, but with no encryption Has its own (vacuous) app layer protocol and default port (23) 103

104 Exploring App Layer Protocols Telnet program Given computer (IP address or domain name) and port Establishes connection with app running on specified computer at specified port Can use to explore other app level protocols 104

105 Exploring the Daytime Protocol Daytime protocol (port 13) Try on CourseLab: telnet time-a.nist.gov

106 Exploring the Echo Protocol Echo protocol (port 7) No publicly available echo server, so I wrote one Access courselab01.cs.princeton.edu, port Try on CourseLab: telnet courselab01.cs.princeton.edu

107 Exploring the FTP Protocol On CourseLab: From ftp-using-raw-commands-and-telnet/ $ telnet ftp.ietf.org 21 Trying Connected to ftp.ietf.org. Escape character is '^]'. 220 FTP server ready USER anonymous 331 Anonymous login ok, send complete address as your password PASS your address 230 Anonymous access granted, restrictions apply CWD ietf/ftpext/ 250 CWD command successful PASV 227 Entering Passive Mode (64,170,98,33,151,31). IP address: Port: 151 * =

108 Exploring the FTP Protocol On CourseLab, in a second window: $ telnet Trying Connected to Escape character is '^]'. 108

109 Exploring the FTP Protocol Back to the first window: $ telnet ftp.ietf.org 21 Trying Connected to ftp.ietf.org. Escape character is '^]'. 220 FTP server ready USER anonymous 331 Anonymous login ok, send complete address as your password PASS your address 230 Anonymous access granted, restrictions apply CWD ietf/ftpext/ 250 CWD command successful PASV 227 Entering Passive Mode (64,170,98,33,151,31). RETR ftpext-charter.txt 150 Opening ASCII mode data connection for ftpext-charter.txt (6060 bytes) 226 Transfer complete QUIT 221 Goodbye. $ Document appears in the second window 109

110 Exploring the HTTP Protocol HTTP protocol (port 80) Try on CourseLab: telnet 80 Type: GET /index.html HTTP/1.1<Enter> Host: <Enter> 110

111 Exploring the HTTP Protocol HTTP protocol (port 80) Try on CourseLab: telnet 80 Type: GET /index.html HTTP/1.1<Enter> Host: <Enter> Yields HTTP redirect to

112 Aside: Other HTTP Clients Try on CourseLab curl wget and, of course firefox 112

113 Exploring the HTTPS Protocol HTTPS protocol (port 443) Too complex for telnet! Try on CourseLab: openssl s_client connect Type (quickly!!!) GET /index.html HTTP/1.1<Enter> Host: <Enter> 113

114 Aside: Other HTTPS Clients Try on CourseLab: curl wget and, of course firefox 114

115 Internet Protocol Summary HTTP SMTP DNS TCP UDP Provide platform for Internet app development LAN Interface 1 IP LAN Interface 2 Provides independence from LAN technologies LAN Interface 3 115

116 Summary We have covered: Network programming in Java and Python How to create a client How to create a (multithreaded) server How to serialize and communicate objects Network basics (as time allows) The Internet (as time allows) 116

117 Appendix 1: Network Programming in C 117

118 Echo in C See echoclient.c and echoserver.c Try: echoserver someport Try: echoclient localhost someport Try: echoclient localhost someport 118

119 Echo in C See echoclient.c Same as before See echoservermult.c Forks multiple processes Try: echoservermult someport Try: echoclient localhost someport Try: echoclient localhost someport 119

Interprocess Communication Mechanisms

Interprocess Communication Mechanisms Interprocess Communication 1 Interprocess Communication Mechanisms shared storage These mechanisms have already been covered. examples: shared virtual memory shared files processes must agree on a name

More information

shared storage These mechanisms have already been covered. examples: shared virtual memory message based signals

shared storage These mechanisms have already been covered. examples: shared virtual memory message based signals Interprocess Communication 1 Interprocess Communication Mechanisms shared storage These mechanisms have already been covered. examples: shared virtual memory shared files processes must agree on a name

More information

A+ Guide to Software: Managing, Maintaining, and Troubleshooting, 5e. Chapter 8 Networking Essentials

A+ Guide to Software: Managing, Maintaining, and Troubleshooting, 5e. Chapter 8 Networking Essentials A+ Guide to Software: Managing, Maintaining, and Troubleshooting, 5e Chapter 8 Networking Essentials Objectives Learn about the protocols and standards Windows uses for networking Learn how to connect

More information

The OSI Model. Open Systems Interconnection (OSI). Developed by the International Organization for Standardization (ISO).

The OSI Model. Open Systems Interconnection (OSI). Developed by the International Organization for Standardization (ISO). Network Models The OSI Model Open Systems Interconnection (OSI). Developed by the International Organization for Standardization (ISO). Model for understanding and developing computer-to-computer communication

More information

Memory-Mapped Files. generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length)

Memory-Mapped Files. generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length) File Systems 38 Memory-Mapped Files generic interface: vaddr mmap(file descriptor,fileoffset,length) munmap(vaddr,length) mmap call returns the virtual address to which the file is mapped munmap call unmaps

More information

Fundamentals of Computer Networking AE6382

Fundamentals of Computer Networking AE6382 Computer networks are an integral part of the modern computing infrastructure The local network (LAN) is usually Ethernet LAN s are inter-connected with other LAN s in a hierarchical fashion eventually

More information

Defining Networks with the OSI Model. Module 2

Defining Networks with the OSI Model. Module 2 Defining Networks with the OSI Model Module 2 Objectives Skills Concepts Objective Domain Description Objective Domain Number Understanding OSI Basics Defining the Communications Subnetwork Defining the

More information

Debian/GNU Linux Networking

Debian/GNU Linux Networking Debian/GNU Linux Networking Basics of the Networking Károly Erdei October 15, 2014 Károly Erdei Debian/GNU Linux Networking 1/41 Agenda 1 Networks 2 Ethernet 3 Internet Protocol 4 TCP 5 DHCP 6 Check Network

More information

Transport layer Internet layer

Transport layer Internet layer Lecture 2-bis. 2 Transport Protocols As seen by the application developer point of view The primary (in principle unique) role of transport protocols!" # $ % "!"& Transport httpd 25 80 3211... My app 131.175.15.1

More information

06/02/ Local & Metropolitan Area Networks 0. INTRODUCTION. 1. History and Future of TCP/IP ACOE322

06/02/ Local & Metropolitan Area Networks 0. INTRODUCTION. 1. History and Future of TCP/IP ACOE322 1 Local & Metropolitan Area Networks ACOE322 Lecture 5 TCP/IP Protocol suite and IP addressing 1 0. INTRODUCTION We shall cover in this topic: 1. The relation of TCP/IP with internet and OSI model 2. Internet

More information

Transport Layer (TCP/UDP)

Transport Layer (TCP/UDP) Transport Layer (TCP/UDP) Where we are in the Course Moving on up to the Transport Layer! Application Transport Network Link Physical CSE 461 University of Washington 2 Recall Transport layer provides

More information

Chapter 2 Network Models 2.1

Chapter 2 Network Models 2.1 Chapter 2 Network Models 2.1 Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Network Models n Network Architecture: n A) Hardware: at the core of any network;

More information

6 Computer Networks 6.1. Foundations of Computer Science Cengage Learning

6 Computer Networks 6.1. Foundations of Computer Science Cengage Learning 6 Computer Networks 6.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: 6.2 Describe network criteria, physical structures and categories

More information

COMS3200/7201 Computer Networks 1 (Version 1.0)

COMS3200/7201 Computer Networks 1 (Version 1.0) COMS3200/7201 Computer Networks 1 (Version 1.0) Assignment 3 Due 8pm Monday 29 th May 2017. V1 draft (hopefully final) Note that the assignment has three parts Part A, B & C, each worth 50 marks. Total

More information

9th Slide Set Computer Networks

9th Slide Set Computer Networks Prof. Dr. Christian Baun 9th Slide Set Computer Networks Frankfurt University of Applied Sciences WS1718 1/49 9th Slide Set Computer Networks Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

More information

CIT 380: Securing Computer Systems. Network Security Concepts

CIT 380: Securing Computer Systems. Network Security Concepts CIT 380: Securing Computer Systems Network Security Concepts Topics 1. Protocols and Layers 2. Layer 2 Network Concepts 3. MAC Spoofing 4. ARP 5. ARP Spoofing 6. Network Sniffing Protocols A protocol defines

More information

A Client-Server Exchange

A Client-Server Exchange Socket programming A Client-Server Exchange A server process and one or more client processes Server manages some resource. Server provides service by manipulating resource for clients. 1. Client sends

More information

Chapter 4: Networking and the Internet. Network Classifications. Network topologies. Network topologies (continued) Connecting Networks.

Chapter 4: Networking and the Internet. Network Classifications. Network topologies. Network topologies (continued) Connecting Networks. Chapter 4: Networking and the 4.1 Network Fundamentals 4.2 The 4.3 The World Wide Web 4.4 Protocols 4.5 Security Network Classifications Scope Local area network (LAN) Metropolitan area (MAN) Wide area

More information

Copyleft 2005, Binnur Kurt. Objectives

Copyleft 2005, Binnur Kurt. Objectives 1 ing Fundamentals Copyleft 2005, Binnur Kurt Objectives Define basic networking terms Describe some commonly used network applications Describe the main purposes and functions of computer networking Describe

More information

Computer Networking. Chapter #1. Dr. Abdulrhaman Alameer

Computer Networking. Chapter #1. Dr. Abdulrhaman Alameer Computer Networking Chapter #1 Dr. Abdulrhaman Alameer What is Computer Network? It is a collection of computers and devices interconnected by communications channels that facilitate communications among

More information

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

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition ELEC / COMP 177 Fall 2014 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Project #1 Starts in one week Is your Linux environment all ready? Bring your laptop Work time after quick

More information

Applied Networks & Security

Applied Networks & Security Applied Networks & Security TCP/IP Networks with Critical Analysis http://condor.depaul.edu/~jkristof/it263/ John Kristoff jtk@depaul.edu IT 263 Spring 2006/2007 John Kristoff - DePaul University 1 Critical

More information

NT1210 Introduction to Networking. Unit 10

NT1210 Introduction to Networking. Unit 10 NT1210 Introduction to Networking Unit 10 Chapter 10, TCP/IP Transport Objectives Identify the major needs and stakeholders for computer networks and network applications. Compare and contrast the OSI

More information

Different Layers Lecture 21

Different Layers Lecture 21 Different Layers Lecture 21 10/17/2003 Jian Ren 1 The Transport Layer 10/17/2003 Jian Ren 2 Transport Services and Protocols Provide logical communication between app processes running on different hosts

More information

Lecture-4. TCP/IP-Overview:

Lecture-4. TCP/IP-Overview: Lecture-4 TCP/IP-Overview: The history goes back to ARPANET a research network sponsored by DoD US Govt. It eventually connected hundreds of universities and govt installations, using leased telephone

More information

B.Sc. (Hons.) Computer Science with Network Security B.Eng. (Hons) Telecommunications B.Sc. (Hons) Business Information Systems

B.Sc. (Hons.) Computer Science with Network Security B.Eng. (Hons) Telecommunications B.Sc. (Hons) Business Information Systems B.Sc. (Hons.) Computer Science with Network Security B.Eng. (Hons) Telecommunications B.Sc. (Hons) Business Information Systems Bridge BTEL/PT BCNS/14/FT BIS/14/FT BTEL/14/FT Examinations for 2014-2015

More information

Computer Communication Networks Socket Programming

Computer Communication Networks Socket Programming Computer Communication Networks Socket Programming ICEN/ICSI 416 Fall 2018 Prof. Aveek Dutta 1 Application Programming Interface Interface exported by the network Since most network protocols are implemented

More information

Network+ Guide to Networks 6 th Edition. Chapter 4 Introduction to TCP/IP Protocols

Network+ Guide to Networks 6 th Edition. Chapter 4 Introduction to TCP/IP Protocols Network+ Guide to Networks 6 th Edition Chapter 4 Introduction to TCP/IP Protocols Objectives Identify and explain the functions of the core TCP/IP protocols Explain the TCP/IP model and how it corresponds

More information

TSIN02 - Internetworking

TSIN02 - Internetworking Lecture 4: Transport Layer Literature: Forouzan: ch 11-12 2004 Image Coding Group, Linköpings Universitet Lecture 4: Outline Transport layer responsibilities UDP TCP 2 Transport layer in OSI model Figure

More information

The Internet. Session 3 INST 301 Introduction to Information Science

The Internet. Session 3 INST 301 Introduction to Information Science The Internet Session 3 INST 301 Introduction to Information Science Outline The creation story What it is Exploring it Using it Outline The creation story What it is Exploring it Using it Source: Wikipedia

More information

Distributed Systems. 02. Networking. Paul Krzyzanowski. Rutgers University. Fall 2017

Distributed Systems. 02. Networking. Paul Krzyzanowski. Rutgers University. Fall 2017 Distributed Systems 02. Networking Paul Krzyzanowski Rutgers University Fall 2017 1 Inter-computer communication Without shared memory, computers need to communicate Direct link Direct links aren't practical

More information

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016 TRANSMISSION CONTROL PROTOCOL ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016 ETI 2506 - TELECOMMUNICATION SYLLABUS Principles of Telecom (IP Telephony and IP TV) - Key Issues to remember 1.

More information

4. The transport layer

4. The transport layer 4.1 The port number One of the most important information contained in the header of a segment are the destination and the source port numbers. The port numbers are necessary to identify the application

More information

CSE 333 Lecture C++ final details, networks

CSE 333 Lecture C++ final details, networks CSE 333 Lecture 19 -- C++ final details, s Steve Gribble Department of Computer Science & Engineering University of Washington Administrivia HW3 is due in 5 days! - we re up to 6 bugs for you to patch

More information

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START Page 1 of 11 MIDTERM EXAMINATION #1 OCT. 13, 2011 COMPUTER NETWORKS : 03-60-367-01 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 Fall 2011-75 minutes This examination

More information

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START MIDTERM EXAMINATION #1 NETWORKING CONCEPTS 03-60-367-01 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 Intersession 2009 Question Paper NOTE: Students may take this

More information

Sockets 15H2. Inshik Song

Sockets 15H2. Inshik Song Sockets 15H2 Inshik Song Internet CAU www server (www.cau.ac.kr) Your web browser (Internet Explorer/Safari) Sockets 2 How do we find the server? Every computer on the Internet has an Internet address.

More information

2. Introduction to Internet Applications

2. Introduction to Internet Applications 2. Introduction to Internet Applications 1. Representation and Transfer 2. Web Protocols 3. Some Other Application Layer Protocols 4. Uniform Resource Identifiers (URIs) 5. Uniform Resource Locators (URLs)

More information

CS1302 / Computer Networks

CS1302 / Computer Networks CS1302 / Computer Networks Year/Sem : III/VI UNIT I- DATA COMMUNICATIONS 1. Define Data communication 2. List out the characteristics of data communication 3. What are the components of data communication?

More information

COMS Introduction to Computers. Networking

COMS Introduction to Computers. Networking COMS 1001 Introduction to Computers Networking What's Ahead Networking layers Network Speeds Protocols, sockets, client/server Routing, DNS, Ethernet, LANs, wireless What is a Network? Loose definition:

More information

JAVA Network API. 2 - Connection-Oriented vs. Connectionless Communication

JAVA Network API. 2 - Connection-Oriented vs. Connectionless Communication JAVA Network API To be discussed 1 - java.net... 1 2 - Connection-Oriented vs. Connectionless Communication... 1 3 - Connectionless:... 1 4 - Networking Protocols... 2 5 - Sockets... 2 6 - Multicast Addressing...

More information

M2-R4: INTERNET TECHNOLOGY AND WEB DESIGN

M2-R4: INTERNET TECHNOLOGY AND WEB DESIGN M2-R4: INTERNET TECHNOLOGY AND WEB DESIGN NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be answered in the

More information

Review of Previous Lecture

Review of Previous Lecture Review of Previous Lecture Network access and physical media Internet structure and ISPs Delay & loss in packet-switched networks Protocol layers, service models Some slides are in courtesy of J. Kurose

More information

Operating Systems CS 571

Operating Systems CS 571 Computer Networks: Overview Operating Systems CS 571 Network types Range Bandwidth (Mbps) Latency (ms) LAN 1-2 kms 10-1000 1-10 WAN worldwide 0.010-600 100-500 MAN 2-50 kms 1-150 10 Wireless LAN 0.15-1.5

More information

The Transmission Control Protocol (TCP)

The Transmission Control Protocol (TCP) The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, e-mail, WWW) Reliable Stream Transport (TCP) Unreliable Transport Service (UDP) Connectionless Packet Delivery Service (IP) Goals

More information

CS 4390 Computer Networks. Transport Services and Protocols

CS 4390 Computer Networks. Transport Services and Protocols CS 4390 Computer Networks UT D data Session 07 Transport Layer Overview and UDP Adapted from Computer Networking a Top-Down Approach 1996-2012 by J.F Kurose and K.W. Ross, All Rights Reserved Transport

More information

(Refer Slide Time: 1:09)

(Refer Slide Time: 1:09) Computer Networks Prof. S. Ghosh Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecturer # 30 UDP and Client Server Good day, today we will start our discussion

More information

Web Mechanisms. Draft: 2/23/13 6:54 PM 2013 Christopher Vickery

Web Mechanisms. Draft: 2/23/13 6:54 PM 2013 Christopher Vickery Web Mechanisms Draft: 2/23/13 6:54 PM 2013 Christopher Vickery Introduction While it is perfectly possible to create web sites that work without knowing any of their underlying mechanisms, web developers

More information

Volume INFOSEC4FUN/UNIX4FUN DOCS. IT Troubleshooting Documentation. Troubleshooting the Stack

Volume INFOSEC4FUN/UNIX4FUN DOCS. IT Troubleshooting Documentation. Troubleshooting the Stack Volume 1 INFOSEC4FUN/UNIX4FUN DOCS IT Troubleshooting Documentation Troubleshooting the Stack D E S I G N C U S T O M I Z A T I O N Chapter 1 OSI Model Troubleshooting should always start with the basics.

More information

ch02 True/False Indicate whether the statement is true or false.

ch02 True/False Indicate whether the statement is true or false. ch02 True/False Indicate whether the statement is true or false. 1. No matter what medium connects computers on a network copper wires, fiber-optic cables, or a wireless setup the same protocol must be

More information

Application Level Protocols

Application Level Protocols Application Level Protocols 2 Application Level Protocols Applications handle different kinds of content e.g.. e-mail, web pages, voice Different types of content require different kinds of protocols Application

More information

Agenda. Before we start: Assignment #1. Routing in a wide area network. Protocols more concepts. Internetworking. Congestion control

Agenda. Before we start: Assignment #1. Routing in a wide area network. Protocols more concepts. Internetworking. Congestion control Agenda Last time (Tues) No class Tuesday Jan 30 (Marty at conference) Will be made up Thurs Feb 8 / Fri Feb 9 This time Continue with Networks (chpt 3) Interprocess Communication (chpt 4) 1 st HW/PA out

More information

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START Page 1 of 20 MIDTERM EXAMINATION #1 - B COMPUTER NETWORKS : 03-60-367-01 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 Fall 2008-75 minutes This examination document

More information

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START Page 1 of 20 MIDTERM EXAMINATION #1 - A COMPUTER NETWORKS : 03-60-367-01 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 Fall 2008-75 minutes This examination document

More information

EITF25 Internet Techniques and Applications L7: Internet. Stefan Höst

EITF25 Internet Techniques and Applications L7: Internet. Stefan Höst EITF25 Internet Techniques and Applications L7: Internet Stefan Höst What is Internet? Internet consists of a number of networks that exchange data according to traffic agreements. All networks in Internet

More information

UNIX Sockets. Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E.

UNIX Sockets. Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E. UNIX Sockets Developed for the Azera Group By: Joseph D. Fournier B.Sc.E.E., M.Sc.E.E. Socket and Process Communication application layer User Process Socket transport layer (TCP/UDP) network layer (IP)

More information

Network Protocols - Revision

Network Protocols - Revision Network Protocols - Revision Luke Anderson luke@lukeanderson.com.au 18 th May 2018 University Of Sydney Overview 1. The Layers 1.1 OSI Model 1.2 Layer 1: Physical 1.3 Layer 2: Data Link MAC Addresses 1.4

More information

Client/Server Computing & Socket Programming

Client/Server Computing & Socket Programming COMP 431 Internet Services & Protocols Client/Server Computing & Socket Programming Jasleen Kaur January 29, 2019 Application-Layer Protocols Overview Application-layer protocols define:» The types of

More information

Practical Session #09 Exceptions & Networking. Tom Mahler

Practical Session #09 Exceptions & Networking. Tom Mahler Practical Session #09 Exceptions & Networking Tom Mahler 1 In This Recitation We ll Cover Exceptions Java Sockets Datagram vs. Stream The Client-Server Model 2 Exceptions 3 Exceptions Java uses exceptions

More information

Application Layer: OSI and TCP/IP Models

Application Layer: OSI and TCP/IP Models Application Layer Application Layer: OSI and TCP/IP Models The communication process between two communicating nodes is actually a communication process between two applications on these devices. Service

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Transport Layer Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) TCP/IP Model 2 Transport Layer Problem solved:

More information

CCNA 1 v3.11 Module 11 TCP/IP Transport and Application Layers

CCNA 1 v3.11 Module 11 TCP/IP Transport and Application Layers CCNA 1 v3.11 Module 11 TCP/IP Transport and Application Layers 2007, Jae-sul Lee. All rights reserved. 1 Agenda 11.1 TCP/IP Transport Layer 11.2 The Application Layer What does the TCP/IP transport layer

More information

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski Operating Systems 16. Networking Paul Krzyzanowski Rutgers University Spring 2015 1 Local Area Network (LAN) LAN = communications network Small area (building, set of buildings) Same, sometimes shared,

More information

The TCP Protocol Stack

The TCP Protocol Stack The TCP Protocol Stack Michael Brockway February 16, 2018 Introduction - Layered archtecture Networking software is desgined in a layered fashion The bottom layer is the services offered by the underlying

More information

Application Layer Introduction; HTTP; FTP

Application Layer Introduction; HTTP; FTP Application Layer Introduction; HTTP; FTP Tom Kelliher, CS 325 Feb. 4, 2011 1 Administrivia Announcements Assignment Read 2.4 2.6. From Last Time Packet-switched network characteristics; protocol layers

More information

Chapter 16 Networking

Chapter 16 Networking Chapter 16 Networking Outline 16.1 Introduction 16.2 Network Topology 16.3 Network Types 16.4 TCP/IP Protocol Stack 16.5 Application Layer 16.5.1 Hypertext Transfer Protocol (HTTP) 16.5.2 File Transfer

More information

Review for Internet Introduction

Review for Internet Introduction Review for Internet Introduction What s the Internet: Two Views View 1: Nuts and Bolts View billions of connected hosts routers and switches protocols control sending, receiving of messages network of

More information

Internet Technology 3/2/2016

Internet Technology 3/2/2016 Question 1 Defend or contradict this statement: for maximum efficiency, at the expense of reliability, an application should bypass TCP or UDP and use IP directly for communication. Internet Technology

More information

Introduction to TCP/IP

Introduction to TCP/IP Introduction to TCP/IP Properties and characteristics of TCP/IP IPv4 IPv6 Public vs private vs APIPA/link local Static vs dynamic Client-side DNS settings Client-side DHCP Subnet mask vs CIDR Gateway TCP/IP

More information

Lecture 18 Overview. Last Lecture. This Lecture. Next Lecture. Internet Protocol (1) Internet Protocol (2)

Lecture 18 Overview. Last Lecture. This Lecture. Next Lecture. Internet Protocol (1) Internet Protocol (2) Last Lecture Internet Protocol (1) This Lecture Internet Protocol (2) Lecture 18 Overview Source: chapters 19.1, 19.2, 22,1 22.2, 26.6 Next Lecture Transport Control Protocol (1) Source: chapters 24.1,

More information

Transport Layer. Chapter 3: Transport Layer

Transport Layer. Chapter 3: Transport Layer Transport Layer EECS 3214 Slides courtesy of J.F Kurose and K.W. Ross, All Rights Reserved 29-Jan-18 1-1 Chapter 3: Transport Layer our goals: understand principles behind layer services: multiplexing,

More information

Significance of TCP/IP Model Divya Shree Assistant Professor (Resource Person), Department of computer science and engineering, UIET, MDU, Rohtak

Significance of TCP/IP Model Divya Shree Assistant Professor (Resource Person), Department of computer science and engineering, UIET, MDU, Rohtak Significance of TCP/IP Model Divya Shree Assistant Professor (Resource Person), Department of computer science and engineering, UIET, MDU, Rohtak Abstract: TCP/IP (Transmission Control Protocol/Internet

More information

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016 Internet Technology 06. Exam 1 Review Paul Krzyzanowski Rutgers University Spring 2016 March 2, 2016 2016 Paul Krzyzanowski 1 Question 1 Defend or contradict this statement: for maximum efficiency, at

More information

TCP/IP THE TCP/IP ARCHITECTURE

TCP/IP THE TCP/IP ARCHITECTURE TCP/IP-1 The Internet Protocol (IP) enables communications across a vast and heterogeneous collection of networks that are based on different technologies. Any host computer that is connected to the Internet

More information

The ACK and NACK of Programming

The ACK and NACK of Programming NFJS Software Symposium Series 2012 The ACK and NACK of Programming Ken Sipe About Speaker http://kensipe.blogspot.com/ http://del.icio.us/kensipe twitter: @kensipe ken.sipe@gmail.com Developer: Embedded,

More information

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START Page 1 of 11 MIDTERM EXAMINATION #1 OCT. 16, 2013 COMPUTER NETWORKS : 03-60-367-01 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 Fall 2013-75 minutes This examination

More information

SCS3004 Networking Technologies Application Layer Protocols

SCS3004 Networking Technologies Application Layer Protocols SCS3004 Networking Technologies Application Layer Protocols Dr. Ajantha Atukorale University of Colombo School of Computing (UCSC) 2 TCP/IP Suit Applications and application-layer layer protocols Application:

More information

6 Computer Networks 6.1. Foundations of Computer Science Cengage Learning

6 Computer Networks 6.1. Foundations of Computer Science Cengage Learning 6 Computer Networks 6.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: 6.2 Describe network criteria, physical structures and categories

More information

Network+ Guide to Networks 5 th Edition. Chapter 4 Introduction to TCP/IP Protocols

Network+ Guide to Networks 5 th Edition. Chapter 4 Introduction to TCP/IP Protocols Network+ Guide to Networks 5 th Edition Chapter 4 Introduction to TCP/IP Protocols Objectives Identify and explain the functions of the core TCP/IP protocols Explain how the TCP/IP protocols correlate

More information

C18: Network Fundamentals and Reliable Sockets

C18: Network Fundamentals and Reliable Sockets CISC 3120 C18: Network Fundamentals and Reliable Sockets Hui Chen Department of Computer & Information Science CUNY Brooklyn College 4/16/2018 CUNY Brooklyn College 1 Outline Networking fundamentals Network

More information

Computer Networks. More on Standards & Protocols Quality of Service. Week 10. College of Information Science and Engineering Ritsumeikan University

Computer Networks. More on Standards & Protocols Quality of Service. Week 10. College of Information Science and Engineering Ritsumeikan University Computer Networks More on Standards & Protocols Quality of Service Week 10 College of Information Science and Engineering Ritsumeikan University Introduction to Protocols l A protocol is a set of rules

More information

LECTURE WK4 NETWORKING

LECTURE WK4 NETWORKING LECTURE WK4 NETWORKING Workbook and Quiz Workbook o Due in WK5 o Must hand in a hard copy to the tutor as well as an online submission Quiz o In the practical class o 30mins to complete the quiz o Short,

More information

CS321: Computer Networks FTP, TELNET, SSH

CS321: Computer Networks FTP, TELNET, SSH CS321: Computer Networks FTP, TELNET, SSH Dr. Manas Khatua Assistant Professor Dept. of CSE IIT Jodhpur E-mail: manaskhatua@iitj.ac.in FTP File Transfer Protocol (FTP) is the standard protocol provided

More information

CMPE 80N: Introduction to Networking and the Internet

CMPE 80N: Introduction to Networking and the Internet CMPE 80N: Introduction to Networking and the Internet Katia Obraczka Computer Engineering UCSC Baskin Engineering Lecture 11 CMPE 80N Fall'10 1 Announcements Forum #2 due on 11.05. CMPE 80N Fall'10 2 Last

More information

TCP /IP Fundamentals Mr. Cantu

TCP /IP Fundamentals Mr. Cantu TCP /IP Fundamentals Mr. Cantu OSI Model and TCP/IP Model Comparison TCP / IP Protocols (Application Layer) The TCP/IP subprotocols listed in this layer are services that support a number of network functions:

More information

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

Concept Questions Demonstrate your knowledge of these concepts by answering the following questions in the space that is provided. 223 Chapter 19 Inter mediate TCP The Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols was developed as part of the research that the Defense Advanced Research Projects Agency

More information

CSE 461: Computer Networks John Zahorjan Justin Chan Rajalakshmi Nandkumar CJ Park

CSE 461: Computer Networks John Zahorjan Justin Chan Rajalakshmi Nandkumar CJ Park CSE 461: Computer Networks John Zahorjan zahorjan@cs Justin Chan jucha@cs Rajalakshmi Nandkumar rajaln@cs CJ Park cjparkuw@cs Course Staff Grading Assignments/Projects/Homeworks: 55% Midterm: 15% Final:

More information

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet Chapter 2 - Part 1 The TCP/IP Protocol: The Language of the Internet Protocols A protocol is a language or set of rules that two or more computers use to communicate 2 Protocol Analogy: Phone Call Parties

More information

We will cover in this order: 2.1, 2.7, 2.5, 2.4, 2.2

We will cover in this order: 2.1, 2.7, 2.5, 2.4, 2.2 CSE 422 Notes, Set 2 These slides contain materials provided with the text: Computer Networking: A Top Down Approach,5 th edition, by Jim Kurose and Keith Ross, Addison-Wesley, April 2009. Additional figures

More information

Network Programming. ò Network Protocols ò Communication Connection ò Naming

Network Programming. ò Network Protocols ò Communication Connection ò Naming Network Programming Network Programming ò Network Protocols ò Communication Connection ò Naming Why are these important? You are developing a multi-player game, you will need to know how to: ò Establish

More information

Position of IP and other network-layer protocols in TCP/IP protocol suite

Position of IP and other network-layer protocols in TCP/IP protocol suite Position of IP and other network-layer protocols in TCP/IP protocol suite IPv4 is an unreliable datagram protocol a best-effort delivery service. The term best-effort means that IPv4 packets can be corrupted,

More information

Lab 1: Packet Sniffing and Wireshark

Lab 1: Packet Sniffing and Wireshark Lab 1: Packet Sniffing and Wireshark Fengwei Zhang Wayne State University Course: Cyber Security Practice 1 Packet Sniffer Packet sniffer is a basic tool for observing network packet exchanges in a computer

More information

Guide to Networking Essentials, 6 th Edition. Chapter 5: Network Protocols

Guide to Networking Essentials, 6 th Edition. Chapter 5: Network Protocols Guide to Networking Essentials, 6 th Edition Chapter 5: Network Protocols Objectives Describe the purpose of a network protocol, the layers in the TCP/IP architecture, and the protocols in each TCP/IP

More information

Computer Networks 1DV201

Computer Networks 1DV201 Computer Networks 1DV201 1 Link to coursepage http://w3.msi.vxu.se/users/ofl/1dv201/index.html 2 Chapter 1-3 Introduction 3 Topic and Scope Computer networks and internets: an overview of concepts, terminology,

More information

Electronic Mail. Three Components: SMTP SMTP. SMTP mail server. 1. User Agents. 2. Mail Servers. 3. SMTP protocol

Electronic Mail. Three Components: SMTP SMTP. SMTP mail server. 1. User Agents. 2. Mail Servers. 3. SMTP protocol SMTP Electronic Mail Three Components: 1. User Agents a.k.a. mail reader e.g., gmail, Outlook, yahoo 2. Mail Servers mailbox contains incoming messages for user message queue of outgoing (to be sent) mail

More information

APPLICATION LAYER APPLICATION LAYER : DNS, HTTP, , SMTP, Telnet, FTP, Security-PGP-SSH.

APPLICATION LAYER APPLICATION LAYER : DNS, HTTP,  , SMTP, Telnet, FTP, Security-PGP-SSH. APPLICATION LAYER : DNS, HTTP, E-mail, SMTP, Telnet, FTP, Security-PGP-SSH. To identify an entity, the Internet used the IP address, which uniquely identifies the connection of a host to the Internet.

More information

Networks, WWW, HTTP. Web Technologies I. Zsolt Tóth. University of Miskolc. Zsolt Tóth (University of Miskolc) Networks, WWW, HTTP / 35

Networks, WWW, HTTP. Web Technologies I. Zsolt Tóth. University of Miskolc. Zsolt Tóth (University of Miskolc) Networks, WWW, HTTP / 35 Networks, WWW, HTTP Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Networks, WWW, HTTP 2018 1 / 35 Table of Contents Networks Internet 1 Networks Internet

More information

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP Chapter 2: outline 2.1 principles of network applications app architectures app requirements 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming

More information

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

ECPE / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition ECPE / COMP 177 Fall 2012 Some slides from Kurose and Ross, Computer Networking, 5 th Edition Application Layer Transport Layer Network Layer Link Layer Physical Layer 2 Application Layer HTTP DNS IMAP

More information

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Transport Layer. Gursharan Singh Tatla.   Upendra Sharma. 1 Transport Layer Gursharan Singh Tatla mailme@gursharansingh.in Upendra Sharma 1 Introduction The transport layer is the fourth layer from the bottom in the OSI reference model. It is responsible for message

More information