Download presentation
Presentation is loading. Please wait.
Published byChloe Ray Modified over 9 years ago
1
CSP07-08 - Implementing a network 1 Implementing a network Lecturer: Smilen Dimitrov Cross-sensorial processing – MED7
2
CSP07-08 - Implementing a network 2 Introduction The immobot base exercise Work on the network Goal – implement a simple network Now not concerned with rest of system Setup: –2 PCs –Switch or router
3
CSP07-08 - Implementing a network 3 Setup Setup for a PC: 1.Microsoft Visual Studio 2.Max/MSP/Jitter (for testing) This time we only discuss basics of network implementation, so we will mostly work outside of the scope of the base exercise system Needed because we need to send the results from audio and video processing algorithms (in Max/MSP) to an application in Virtools on a third PC Network code will be ported in the context of the base exercise next time
4
CSP07-08 - Implementing a network 4 Goal of the network implementation
5
CSP07-08 - Implementing a network 5 Socket approach - Server/client architecture A network server or client functionality is implemented using sockets –in both cases, the sockets can read and write data –the difference is mostly in the roles in the interaction, during phase of initiation of communication Definitions from: http://en.wikipedia.org/wiki/Internet_sockethttp://en.wikipedia.org/wiki/Internet_socket An Internet socket (or commonly, a socket or network socket), is a communication end-point unique to a machine communicating on an Internet Protocol-based network, such as the Internet. By Cisco definition, "The combination of an IP address and a port number is referred to as a socket."
6
CSP07-08 - Implementing a network 6 Socket approach - Server/client architecture Operating systems combine sockets with a running process or processes (which use the socket to send and receive data over the network), and a transport protocol (i.e. TCP or UDP) with which the process(es) communicate to the remote host. Usually sockets are implemented over TCP but this is not required. The concept of a socket is an entity that implements an API, regardless of the implementation. Two widely used Internet socket types are: –Datagram sockets, which use UDP –Stream Sockets, which use TCP In contrast with the use of TCP connections directly, using sockets makes a distinction between client and server, and it is able to implement a queue of clients over a given server socket. Sockets usually are implemented by a library (such as Berkeley sockets or Winsock)
7
CSP07-08 - Implementing a network 7 Socket approach - Server/client architecture The question is what kind of a network to implement between the three computers, TCP or UDP? We would want to stream data in real time – that means specific data, which in time comes one after another, should also arrive one after another in the network TCP (Transmission Control Protocol) is a reliable protocol that guarantees that packets sent in one order, arrive in the same order - UDP (User Datagram Protocol) is an unreliable protocol – it does not guarantee the order of the packets (although, for a wide bandwidth local network, without traffic to the Internet, in most cases, packets will arrive in order); but it can do multicast. Thus, we will implement a TCP server / client network here.
8
CSP07-08 - Implementing a network 8 Socket approach - Server/client architecture General server / client model TCP – Connection oriented protocol – establishing communication analogue to a phone call The role of the –client socket is to send a request – upon which a communication link is established and data is exchanged (the client is the one that makes a telephone call - “dials a number”) –server socket is to wait for requests (the server “waits by the telephone” and picks up the handle when the client rings).
9
CSP07-08 - Implementing a network 9 Socket approach - Server/client architecture Our 3 PC system would be connected on a local network, using a switch or router On this network, the PCs are assigned local IP network addresses (192.168.*.*) the sockets themselves (running in the PCs) are bound to a port number. How to set up the client/server architecture?
10
CSP07-08 - Implementing a network 10 Socket approach - Server/client architecture Our 3 PC system is easy to conceptualize in terms of network needs: –PC 1 and 2 perform processing on data incoming from sensors, so they need to send data to the third PC –PC 3 needs to receive data from the first two PCs and perform additional processing This however does not determine the client-server roles Good starting point is to see into the already available network objects in Max/MSP – then it is easier to decide on the architecture First we look into the OSI network model
11
CSP07-08 - Implementing a network 11 Layers in OSI model OSI model never got fully implemented still a useful academic metaphor for abstracting different stages in the computer networking process.
12
CSP07-08 - Implementing a network 12 Layers in OSI model Layer 1 - physical layer, which defines all electrical and physical specifications for devices Layer 2 - data link layer, which also operates on a physical level – within the networking card – so it uses hardware networking addresses (MAC or Media Access Control addresses). Ethernet is a layer two protocol. –This is the layer at which bridges and switches operate. Connectivity is provided only among locally attached network nodes. Layer 3 - network layer. Performs network routing, flow control, segmentation/desegmentation, and error control functions. The protocol that operates on this level is called Internet Protocol, or IP. –This is the layer at which router operates – makes Internet possible
13
CSP07-08 - Implementing a network 13 Layers in OSI model Layer 4 - transport layer- provides transparent transfer of data between end users. –This is the layer at which sockets are defined –Sockets can be connection-oriented (stream sockets - TCP) or connectionless (datagram sockets - UDP), and each has their own protocol –Winsock, as a library that we can use to program the socket functionality with Windows, is an interface standard between applications (layers 5 and above) and the transport (layer 4) Layer 5 – session layer - provides the mechanism for managing the dialogue between end-user application processes –establishes checkpointing, adjournment, termination, and restart procedures –is responsible for setting up and tearing down TCP/IP sessions. –(part of specific application code)
14
CSP07-08 - Implementing a network 14 Layers in OSI model Layer 6 – presentation layer - deals with data representation and encryption. –this layer encompasses the job of deciding how the data stream will be formatted - and thus we specify how the data is coded and decoded. Layer 7 - application layer. This layer interfaces directly to and performs common application services for the application processes. –This is the layer at which HTTP (Hyper Text Transfer Protocol) is defined – it represents a layer seven protocol Comparison between TCP stack and OSI model layers:
15
CSP07-08 - Implementing a network 15 Layers in OSI model OSI Layer comparison (from a project with custom network development):
16
CSP07-08 - Implementing a network 16 Networking capabilities of Max/MSP There are no native objects that provide socket connectivity in Max/MSP There are some objects made by Olaf Matthes, which can be downloaded on the web –The first is a pair of objects known as netsend and netreceive –There is another object called flashserver
17
CSP07-08 - Implementing a network 17 Networking capabilities of Max/MSP The pair of objects known as netsend and netreceive –Two boxes are meant for communication between two Max/MSP programs on different PCs on a network –they support both the TCP and UDP mode. –netreceive represents a listening socket (server), whereas –netsend initiates connections - so it is a client.
18
CSP07-08 - Implementing a network 18 Networking capabilities of Max/MSP The object known as flashserver –meant for communication between Max/MSP program and Adobe (Macromedia) Flash –TCP/IP socket connection – listening network socket; a socket server –Maximum number of possible clients is 256 –More suitable? We will try to test these Max/MSP networking objects
19
CSP07-08 - Implementing a network 19 Testing connections between PCs (Windows) Using ipconfig to retrieve the PC addresses Testing with ping Handling the firewall
20
CSP07-08 - Implementing a network 20 Testing the netsend, netreceive and flashserver objects In the previous discussion we determined that –netsend is a client which can only send –netreceive is a server (listening socket) which can only receive –flashserver is a server (listening socket) which can both send and receive Testing –Netsend with netreceive –Netsend with flashserver –telnet (as client) with flashserver –Netsend with flashserver, captured with Ethereal
21
CSP07-08 - Implementing a network 21 Implementing a receiver We could interface with any of the Max/MSP networking objects. Since we need to send from Max, we can use either netsend or flashserver. –If we use netsend, as it is a client, we would correspondingly need to program a server. –If we use flashserver, as it is a server, we would correspondingly need to program a client. Here we will try both approaches as standalone Windows executables – programmed in C/C++, using the Winsock library. –Server receiver – test with netsend –Client receiver – test with flashserver Netsend handles quick data better – so will use that, and server receiver –Two-thread server receiver – test with two netsend clients
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.