Data and Computer Communications. Tenth Edition by William Stallings

Similar documents
BLM6196 COMPUTER NETWORKS AND COMMUNICATION PROTOCOLS

Need For Protocol Architecture

Need For Protocol Architecture

APPENDIX F THE TCP/IP PROTOCOL ARCHITECTURE

Processes communicating. Network Communication. Sockets. Addressing processes 4/15/2013

Embedded System Design

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

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

Sockets. Dong-kun Shin Embedded Software Laboratory Sungkyunkwan University Embedded Software Lab.

Data & Computer Communication

Computer Networks with Internet Technology William Stallings. Chapter 2 Protocols and the TCP/IP Protocol Suite

Applications and Layered Architectures. Chapter 2 Communication Networks Leon-Garcia, Widjaja

Review of Important Networking Concepts

Sockets. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Data and Computer Communications

Hyo-bong Son Computer Systems Laboratory Sungkyunkwan University

Network Communication

Java Basics 5 - Sockets. Manuel Oriol - May 4th, 2006

Introduction to Client-Server Model

Piotr Mielecki Ph. D.

EE 610 Part 2: Encapsulation and network utilities

PA #2 Reviews. set_name, get_name, del_name. Questions? Will be modified after PA #4 ~

ECE4110 Internetwork Programming. Introduction and Overview

Introduction to computer networking

Computer Networks (Introduction to TCP/IP Protocols)

CS321: Computer Networks Introduction to Application Layer

The TCP Protocol Stack

Chapter 6. The Transport Layer. Transport Layer 3-1

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

Elementary TCP Sockets

Internet. 1) Internet basic technology (overview) 3) Quality of Service (QoS) aspects

CS307 Operating Systems Processes

Processes. Process Concept. The Process. The Process (Cont.) Process Control Block (PCB) Process State

Introduction to Socket Programming

NETWORK PROGRAMMING. Instructor: Junaid Tariq, Lecturer, Department of Computer Science

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

Programming with TCP/IP. Ram Dantu

ETSF05/ETSF10 Internet Protocols Network Layer Protocols

The BSD UNIX Socket Interface (CS 640 Lecture) Assignment 1. Interprocess Communication (IPC) Work Individually (no groups)

Hybrid of client-server and P2P. Pure P2P Architecture. App-layer Protocols. Communicating Processes. Transport Service Requirements

EEC-484/584 Computer Networks

Part I: Network protocols: HTTP and beyond

Introduction to TCP/IP networking

Oral. Total. Dated Sign (2) (5) (3) (2)

Protocol Layers & Wireshark TDTS11:COMPUTER NETWORKS AND INTERNET PROTOCOLS

UNIX Network Programming. Overview of Socket API Network Programming Basics

Data Communication & Computer Networks MCQ S

TCP /IP Fundamentals Mr. Cantu

IP - The Internet Protocol. Based on the slides of Dr. Jorg Liebeherr, University of Virginia

OSI Network Layer. Network Fundamentals Chapter 5. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Goals and topics. Verkkomedian perusteet Fundamentals of Network Media T Circuit switching networks. Topics. Packet-switching networks

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

TCP/IP Networking Basics

OSI Layer OSI Name Units Implementation Description 7 Application Data PCs Network services such as file, print,

Network Programming. Introduction to Sockets. Dr. Thaier Hayajneh. Process Layer. Network Layer. Berkeley API

Review. Preview. Closing a TCP Connection. Closing a TCP Connection. Port Numbers 11/27/2017. Packet Exchange for TCP Connection

Network Layer (1) Networked Systems 3 Lecture 8

Chapter 2 Applications and

TCP/IP THE TCP/IP ARCHITECTURE

Lecture 3 Protocol Stacks and Layering

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

On Distributed Communications, Rand Report RM-3420-PR, Paul Baran, August

Context. Distributed Systems: Sockets Programming. Alberto Bosio, Associate Professor UM Microelectronic Departement

ECE 650 Systems Programming & Engineering. Spring 2018

SEN366 (SEN374) (Introduction to) Computer Networks

CHAPTER 18 INTERNET PROTOCOLS ANSWERS TO QUESTIONS

A Client-Server Exchange

EEC-484/584 Computer Networks

CHAPTER-2 IP CONCEPTS

This Lecture. BUS Computer Facilities Network Management. Internetworking. Internetworking

Module 2 Overview of Computer Networks

Module 2 Overview of. Computer Networks

Chapter 3 Protocols and the TCP/IP Suite

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

CSE/EE 461 Lecture 14. Connections. Last Time. This Time. We began on the Transport layer. Focus How do we send information reliably?

Special expressions, phrases, abbreviations and terms of Computer Networks

The Internet. 9.1 Introduction. The Internet is a global network that supports a variety of interpersonal and interactive multimedia applications.

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

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

Lecture-4. TCP/IP-Overview:

Ch 7. Network Interface

CS 428/528 Computer Networks Lecture 01. Yan Wang

Computer Networking. Introduction. Quintin jean-noël Grenoble university

ET4254 Communications and Networking 1

CSCI-GA Operating Systems. Networking. Hubertus Franke

On Distributed Communications, Rand Report RM-3420-PR, Paul Baran, August 1964

Ports under 1024 are often considered special, and usually require special OS privileges to use.

Randall Stewart, Cisco Systems Phill Conrad, University of Delaware

Chapter 09 Network Protocols

Lecture 13: Transportation layer

Defining Networks with the OSI Model. Module 2

User Datagram Protocol

Chapter 5 OSI Network Layer

The Internet Protocol (IP)

Communication Networks

Where we are in the Course

CS 3516: Computer Networks

Lecture 3. The Network Layer (cont d) Network Layer 1-1

CS321: Computer Networks Socket Programming

Introduction to Information Science and Technology 2017 Networking II. Sören Schwertfeger 师泽仁

Transcription:

Data and Computer Communications Tenth Edition by William Stallings Data and Computer Communications, Tenth Edition by William Stallings, (c) Pearson Education - Prentice Hall, 2013

CHAPTER 2 Protocol Architecture, TCP/IP, and Internet-Based Applications

To destroy communication completely, there must be no rules in common between transmitter and receiver neither of alphabet nor of syntax. On Human Communication, Colin Cherry

The Need for a Protocol Architecture 1.) The source must either activate the direct communications path or inform the network of the identity of the desired destination system 2.) The source system must ascertain that the destination system is prepared to receive data To transfer data several tasks must be performed: 3.) The file transfer application on the source system must ascertain that the file management program on the destination system is prepared to accept and store the file for this particular user 4.) A format translation function may need to be performed by one or the other system if the file formats used on the two systems are different

Functions of Protocol Architecture Breaks logic into subtask modules which are implemented separately Modules are arranged in a vertical stack Each layer in the stack performs a subset of functions Relies on next lower layer for primitive functions Provides services to the next higher layer Changes in one layer should not require changes in other layers

Key Features of a Protocol A protocol is a set of rules or conventions that allow peer layers to communicate The key features of a protocol are: Syntax Semantics Timing Format of data blocks Control information for coordination and error handling Speed matching and sequencing

A Simple Protocol Architecture Agents involved: Applications Computers Networks Examples of applications include file transfer and electronic mail These execute on computers that support multiple simultaneous applications

Communication Layers Network access layer Concerned with the exchange of data between a computer and the network to which it is attached Communication tasks are organized into three relatively independent layers: Transport layer Collects mechanisms in a common layer shared by all applications Application layer Contains logic to support applications

Applications 1 2 ( ) ( ) Applications 1 2 ( ) ( ) 3 ( ) 4 ( ) Application protocol Transport protocol Transport Network access Computer A Transport Network access Computer C Network accesss protocol Communications network Port, or Service access point (SAP) Applications 1 2 3 ( ) ( ) ( ) Transport Network address Network access Computer B Figure 2.1 Protocol Architectures and Networks

Entity X Computer A data Application from A to B from 1 to 2 data ( ) from A 1 2 ( ) ( ) "to port 2 on computer B" to B from 1 to 2 data "to computer B" from to data 1 2 Transport Network access Communications Network from A to B from 1 Entity Y Computer B data Application to 2 data 1 2 ( ) ( ) from 1 to 2 data Transport from A "this is to me" ( ) to B from 1 to 2 data Network access Figure 2.2 Protocols in a Simplified Architecture

TCP/IP Protocol Architecture

Application Provides ccess to the TCP/IP environment for users and also provides distributed information services. Transport Transfer of data between end points. May provide error control, flow control, congestion control, reliable delivery. Internet Shield higher layers from details of physical network configuration. Provides routing. May provide QoS, congestion control. Network Access/ Data Link Logical interface to network hardware. May be stream or packet oriented. May provide reliable delivery. Physical Transmission of bit stream; specifies medium, signal encoding technique, data rate, bandwidth, and physical connector. SMTP, FTP, SSH, HTTP TCP, UDP IPv4, IPv6 ICMP, OSPF, RSVP Ethernet, WiFi, ATM, frame relay Twisted pair, optical fiber, satellite, terrestrial microwave ARP Figure 2.3 The TCP/IP Layers and Example Protocols

Physical Layer Covers the physical interface between computer and network Concerned with issues like: Characteristics of transmission medium Nature of the signals Data rates

Network Access/Data Link Layer Covers the exchange of data between an end system and the network that it is attached to Concerned with: Access to and routing data across a network for two end systems attached to the same network

Implemented in end systems and routers Implements procedures needed to allow data to travel across multiple interconnected networks Internet Layer Uses the Internet Protocol (IP) to provide routing function Internet Layer

Host-to-Host (Transport) Layer May provide reliable end-to-end service or merely an end-toend delivery service without reliability mechanisms TCP Most commonly used protocol to provide this functionality Transmission Control Protocol

Application Layer Contains the logic needed to support the various user applications A separate module is needed for each different type of application that is peculiar to that application

Host A Host B App Y App X Port App X App Y 1 2 3 Logical connection 2 4 6 (TCP connection) TCP TCP IP Global internet address IP Network Access Protocol #1 Physical Subnetwork attachment point address Router J Logical connection (e.g., virtual circuit) Network Access Protocol #2 Physical IP NAP 1 NAP 2 Network 1 Network 2 Physical Physical Figure 2.4 TCP/IP Concepts

TCP/IP Address Requirements Two levels of addressing are needed:

User data Application byte stream TCP header TCP segment IP header IP datagram Network header Network-level packet Figure 2.5 Protocol Data Units (PDUs) in the TCP/IP Architecture

Transmission Control Protocol (TCP) TCP is the transport layer protocol for most applications TCP provides a reliable connection for transfer of data between applications A TCP segment is the basic protocol unit TCP tracks segments between entities for duration of each connection

8 octets 20 octets Bit: 0 4 8 16 31 Source Port Destination Port Sequence Number Acknowledgement Number Header length Reserved Flags Window Checksum Urgent Pointer Options + Padding (a) TCP Header Bit: 0 16 31 Source Port Segment Length Destination Port Checksum (b) UDP Header Figure 2.6 TCP and UDP Headers

User Datagram Protocol (UDP) Alternative to TCP Does not guarantee delivery, preservation of sequence, or protection against duplication Enables a procedure to send messages to other procedures with a minimum of protocol mechanism Adds port addressing capability to IP Used with Simple Network Management Protocol (SNMP) Includes a checksum to verify that no error occurs in the data

20 octets Bit: 0 4 8 14 16 19 31 Version IHL DS ECN Total Length Identification Flags Fragment Offset Time to Live Protocol Header Checksum Source Address Destination Address Options + Padding (a) IPv4 Header Bit: 0 4 10 12 16 24 31 Version DS ECN Flow Label Payload Length Next Header Hop Limit

40 octets (a) IPv4 Header Bit: 0 4 10 12 16 24 31 Version DS ECN Flow Label Payload Length Next Header Hop Limit Source Address Destination Address DS = Differentiated services field ECN = Explicit congestion notification field (b) IPv6 Header Note: The 8-bit DS/ECN fields were formerly known as the Type of Service field in the IPv4 header and the Traffic Class field in the IPv6 header. Figure 2.7 IP Headers

MIME BGP FTP HTTP SMTP SSH SNMP TCP UDP ICMP IGMP OSPF RSVP IP BGP = Border Gateway Protocol FTP = File Transfer Protocol HTTP = Hypertext Transfer Protocol ICMP = Internet Control Message Protocol IGMP = Internet Group Management Protocol IP = Internet Protocol MIME = Multipurpose Internet Mail Extension OSPF = Open Shortest Path First RSVP = Resource ReSerVation Protocol SMTP = Simple Mail Transfer Protocol SNMP = Simple Network Management Protocol SSH = Secure Shell TCP = Transmission Control Protocol UDP = User Datagram Protocol Figure 2.8 Some Protocols in the TCP/IP Protocol Suite

Application Layer Service to Layer N+1 (functional description for internal use) Addressing (port or service access point) Layer N Layer N Protocol with peer Layer N (precise syntax and semantics for interoperability) Physical Layer Figure 2.9 A Protocol Architecture as a Framework for Standardization

Service Primitives and Parameters Services between adjacent layers Expressed as: s Specify the function to be performed Used to pass data and control information

Table 2.1 Service Primitive Types

Service user Service provider Service user Service user Service provider Service user Request Request Indication Indication Response Confirm (a) Confirmed Service (b) Nonconfirmed Service Figure 2.10 Time Sequence Diagrams for Service Primitives

Traditional Internet-Based Applications Three common applications that have been standardized to operate on top of TCP are: Simple Mail Transfer Protocol (SMTP) Provides a mechanism for transferring messages among separate hosts File Transfer Protocol (FTP) Used to send files from one system to another under user command Both text and binary files are accommodated Secure Shell (SSH) Provides a secure remote logon capability

Table 2.2 Multimedia Terminology

TECHNOLOGIES Quality of service Protocols Communications/networking Synchronization Compression User interface Database Operating system Computer architecture MM e-mail Text Sound Graphics Motion MEDIA TYPE Collaborative work systems MM conferencing Streaming audio/video VoIP APPLICATION Figure 2.11 A Multimedia Taxonomy

Media Types audio generally encompasses sounds that are produced by the human speech mechanism image supports the communication of individual pictures, charts, or drawings video service carries sequences of pictures in time text is information that can be entered via a keyboard and is directly readable and printable

Table 2.3 Domains of Multimedia Systems and Example Applications Domain Information management Entertainment Telecommunication Information publishing/delivery Example Application Hypermedia, multimedia-capable databases, contentbased retrieval Computer games, digital video, audio (MP3) Videoconferencing, shared workspaces, virtual communities Online training, electronic books, streaming media

Multimedia Applications Information systems Information kiosks, electronic books that include audio and video, and multimedia expert systems Entertainment systems Computer and network games and other forms of audiovisual entertainment Business systems Communication systems Business-oriented multimedia presentations, video brochures, and online shopping Support collaborative work, such as videoconferencing Educational systems Electronic books with a multimedia component, simulation and modeling applets, and other teaching support systems

Multimedia Technologies Some technologies that are relevant to the support of multimedia applications are: Compression Communications/networking Protocols Quality of service (QoS) JPG for still images MPG for video Refers to the transmission and networking technologies that can support highvolume multimedia traffic RTP SIP Can deal with priority, delay constraints, delay variability constraints, and other similar requirements

Sockets Programming Concept was developed in the 1980s in the UNIX environment as the Berkeley Sockets Interface De facto standard application programming interface (API) Basis for Window Sockets (WinSock) Enables communication between a client and server process May be connection oriented or connectionless

The Socket Formed by the concatenation of a port value and an IP address Unique throughout the Internet Used to define an API Generic communication interface for writing programs that use TCP or UDP Stream sockets All blocks of data sent between a pair of sockets are guaranteed for delivery and arrive in the order that they were sent Datagram sockets Delivery is not guaranteed, nor is order necessarily preserved Raw sockets Allow direct access to lower-layer protocols

Format Function Parameters socket( ) Initialize a socket domain Protocol family of the socket to be created (AF_UNIX, AF_INET, AF_INET6) type Type of socket to be opened (stream, datagram, raw) bind( ) listen( ) accept( ) connect( ) send( ) recv( ) read( ) write( ) sendto( ) recvfrom( ) Bind a socket to a port address Listen on a socket for inbound connections Accept an inbound connection Connect outbound to a server Send and receive data on a stream socket (either send/recv or read/write can be used) Send and receive data on a datagram socket protocol Protocol to be used on socket (UDP, TCP, ICMP) sockfd Socket to be bound to the port address localaddress Socket address to which the socket is bound addresslength Length of the socket address structure sockfd Socket on which the application is to listen queuesize Number of inbound requests that can be queued at any time sockfd Socket on which the connection is to be accepted remoteaddress Remote socket address from which the connection was initiated addresslength Length of the socket address structure sockfd Socket on which the connection is to be opened remoteaddress Remote socket address to which the connection is to be opened addresslength Length of the socket address structure sockfd Socket across which the data will be sent or read data Data to be sent, or buffer into which the read data will be placed datalength Length of the data to be written, or amount of data to be read sockfd data Socket across which the data will be sent or read Data to be sent, or buffer into which the read data will be placed datalength Length of the data to be written, or amount of data to be read close( ) Close a socket sockfd Socket which is to be closed Table 2.4 Core Socket Functions (Table can be found on page 54 in textbook)

Server Client socket() Open communication endpoint bind() Register well-known address with system listen() Establish client's connection; request queue size accept() Accept first client connection request on the queue blocks until connection from client socket() Open communication endpoint accept() creates a new socket to serve the new client request connection establishment connect() Set up connection to server receive() data (request) send() Send/receive data process request send() data (reply) receive() Send/receive data close() close() Shutdown Figure 2.12 Socket System Calls for Connection-Oriented Protocol

(Figure 2.13 can be found on page 57 in textbook)

1 #include <stdio.h> 2 #include <sys/types.h> 3 #include <sys/socket.h> 4 #include <netinet/in.h> 5 #include <netdb.h> 6 void error(char *msg) 7 { 8 perror(msg); 9 exit(0); 10 } 11 int main(int argc, char *argv[]) 12 { 13 int sockfd, portno, n; 14 struct sockaddr_in serv_addr; 15 struct hostent *server; 16 char buffer[256]; 17 if (argc < 3) { 18 fprintf(stderr,"usage %s hostname port\n", argv[0]); 19 exit(0); 20 } 21 portno = atoi(argv[2]); 22 sockfd = socket(af_inet, SOCK_STREAM, 0); 23 if (sockfd < 0) 24 error("error opening socket"); 25 server = gethostbyname(argv[1]); 26 if (server == NULL) { 27 fprintf(stderr,"error, no such host\n"); 28 exit(0); 29 } 30 bzero((char *) &serv_addr, sizeof(serv_addr)); 31 serv_addr.sin_family = AF_INET; 32 bcopy((char *)server->h_addr, 33 (char *)&serv_addr.sin_addr.s_addr, 34 server->h_length); 35 serv_addr.sin_port = htons(portno); 36 if (connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr)) < 0) 37 error("error connecting"); 38 printf("please enter the message: "); 39 bzero(buffer,256); 40 fgets(buffer,255,stdin); 41 n = write(sockfd,buffer,strlen(buffer)); 42 if (n < 0) 43 error("error writing to socket"); 44 bzero(buffer,256); 45 n = read(sockfd,buffer,255); 46 if (n < 0) 47 error("error reading from socket"); 48 printf("%s\n",buffer); 49 return 0; 50 } Figure 2.14 Sockets Client (Figure 2.14 can be found on page 58 in textbook)

Summary The need for a protocol architecture Simple protocol architecture TCP/IP protocol architecture TCP/IP layers Operation of TCP and IP TCP and UDP IP and IPv6 Protocol interfaces Standardization within a protocol architecture Standards and protocol layers Service primitives and parameters Traditional internetbased applications Multimedia Media types Multimedia applications Multimedia technologies Sockets programming The socket Sockets interface calls