Alarms and events in WS500. Author Peter Adleff

Size: px
Start display at page:

Download "Alarms and events in WS500. Author Peter Adleff"

Transcription

1 Alarms and events in WS500 Author Peter Adleff Master thesis in computer science, 20p June 9, 2005

2 ABSTRACT ABB is a supplier to electrical energy consumers and power distribution companies. ABB Power Technologies AB in Västerås is a part of the Power System division. ABB is currently interested in finding a new technique that can transfer a large amount of alarms and events data in a fast and efficient way from their server to the WS500 (Workstation 500) client systems. Today s solution does not allow the clients to filter and browse the alarms and events with a scroll bar because the information must be transferred from the server. This would give a large server and bandwidth load if there are many clients. It also gives an unwanted delay while browsing so the current solution sends a limited number of alarm and event lists to clients when information is asked for. This gives the impression that the system is turning pages until the wanted information appears in client system. The solution presented in this report is to distribute alarm and event messages from the server to all client nodes in a faster and more efficient way than today s solution. This will be achieved by having a Multicast Alarm and Event Server/Client on each client computer that will replicate the alarms and events from the server. The Multicast Alarm and Event Server/Client will then provide the WS500 system locally on each computer with the cached information. This approach will meet the following requirements: Better performance while browsing and filtering alarm/event lists. Reduce network traffic Reduce server load. 2

3 Contents Preface Introduction Technologies overview TCP/IP Reference Model The Layers Internet addresses Port number TCP UDP Routers/Switches Routers Routing protocols Multicast routers Switches Hubs Unicast Broadcast Multicast Multicast groups Multicast Backbone (MBone) Reliable multicasting OPC (OLE for Process Control) OPC Alarm & Events Specification Component technologies Microsoft ATL/COM Identifiers IUnknown MIDL Microsoft Interface Definition Language ActiveX CORBA IDL Interface Definition Language The ORB SIDL SPIDER IDL Alarm and events in WS SPIDER and WS Current solution System performance Result of thesis Problem description Problem Analysis Data transfer Broadcast vs. Multicast OPC A&E Conclusion Sort/filter and browsing capability Component architecture

4 4.5.1 Multicast A&E server/client A&E viewer SPIDER A&E server Data storage Prototype overview SPIDER A&E server role Multicast A&E server registration The alarm/event lists Downloading missing alarms/events WS500 Multicast A&E server/client WS500 Multicast A&E Server Role Sending multicast packages WS500 Multicast A&E Client Role Receiving multicast packages WS500 A&E Viewer Scrolling alarm/event lists Modifying an alarm/event Analysis Advantages Disadvantages Future development Conclusion...44 A. Duplicating a remote SIDL object...47 B. Creating a multicast socket in C C. Constructed types in SIDL...49 D. Cyclic Redundancy Check (CRC)...50 E1. Unicast transmission example...52 E2. Broadcast transmission example...53 E3. Multicast transmission example

5 List of figures 2.1 TCP/IP model layers Two hosts on a LAN communicating with FTP The five classes of the Internet addresses The three-way handshake Interaction between several OPC Alarm and Event Servers and Clients COM IDL file CORBA IDL example CORBA communications within a single process ORB-to-ORB communications Current communication configurations Overview of the components architecture The prototype topology overview Alarm list with alarms Alarm list with over alarms Alarm cache list points out the latest alarm updates in the Alarm list State-chart for the Multicast A&E server State- chart for the Multicast A&E client Alarms displayed in WS500 A&E Viewer The data flow when acknowledge an alarm

6 Preface This is my thesis for a Master degree in Computer Science; it covers a different approach to transfer alarm and event messages in their WS500 system in a more efficient way. The work was made at ABB Power Technologies in Västerås. To begin with, I would like to thank Stefan Bengtzing and Peter Freyhult for coming up with this idea. I would also send special thanks to Johan Odin and Håkan Bernström at ABB for helping me to get started in their development environment and a big thanks to my supervisor at Mälardalens University Daniel Flemström who has encouraged me and helping me complete this thesis. Examiner at Mälardalens University Ivica Crnkovic ivica.crnkovic@mdh.se Supervisor at Mälardalen University Daniel Flemström daniel.flemstrom@mdh.se Supervisor at ABB Power Technologies AB Peter Freyhult peter.freyhult@se.abb.com 6

7 1. Introduction This Master Thesis describes my exam work at ABB Power Technologies AB in Västerås. It was performed in close cooperation with experienced software developers and designers for their SPIDER operator system. The main goal was to find a new approach for distributing large amount of alarm and event information from the server to all connected clients in a more effective way than with today s solution and also give the clients browsing capability and filtering options. This report is divided into different sections. The first section, called Technologies overview, will explain the basics of technologies I used or came in contact with. This section should be read as a reference for the following sections. The next section, Alarm and events in WS500, describes how the alarm and event information is distributed to the clients in the current solution and some of the limitations. The third section, Result of thesis, gives a problem overview, analysis and the choice of technologies for the prototype. The Future work section describes how the prototype can be further develop and improved. In the last section, Conclusions, you will find my reflections and conclusions on this work. 7

8 2. Technologies overview 2.1 TCP/IP Reference Model The Transmission Control Protocol (TCP) and Internet Protocol (IP) are the two primary protocols used in the current Internet architecture. TCP and IP protocols were developed by Department of Defense (DoD). It was a research project where the major goal was to build a flexible architecture [1]. This new architecture gave the ability to connect multiple networks together seamlessly and to remain the connections intact as long as the source and destination devices were functional. TCP/IP made it possible for any two computers to communicate regardless their physical location in the world [2]. The U.S Department of defense created the TCP/IP model so it would work under any conditions, even under a nuclear war. It was important that the data packets get through from one point to any other point, even if any particular node or network failed for some reason on the Internet [2]. The TCP/IP protocol stack has four layers where each has its own responsibility for different tasks of the communication The Layers Figure 2.1 TCP/IP model layers When an application sends data using TCP, the data is sent down the protocol stack through each layer until it comes to the physically layer where it is sent as a stream of bits across the network through some media, like cable. Every layer adds its own control information to the data from the layer above by adding a header and sometimes a trailer. The receiving host will send the received packet up in its protocol stack reading and removing the headers and the trailers until it reaches the application it was meant for. Here follows a brief description of the 4-layers: The Network access layer sometimes called data-link layer or host-to-network layer. This layer normally includes the device driver in the operating system and the corresponding network interface in the computer [3] and handles all issues that an IPpacket requires to actually being transferred physically through some kind of media from one device to a directly connected one. 8

9 The Internet layer (sometimes called network layer) handles the packet movement from any network to the destination by best path determination. The packets may arrive in different order than they were sent because the packets can travel different ways through the network and it s up to the higher layers to resort them if desired. The Transport layer (also called host-to-host layer) handles issues like reliability, retransmissions and flow control for the application layer above. There are two transport protocols, TCP (Transmission Control Protocol) and UDP (User Datagram Protocol). TCP protocol ensures a reliable connection-oriented flow of data between two hosts without errors. UDP is a simpler protocol and just sends packets called datagrams. It does not guarantee that the datagram reaches its destination without any errors or even reaches the destination. The Application layer contains all the higher-level protocols such as Telnet for remote login, the File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP) and so on. Figure 2.2 shows an example of two hosts communicating on a local are network (LAN) through FTP. It shows the involved the protocols. Figure 2.2 Two hosts on a LAN communicating with FTP [3] 9

10 2.1.2 Internet addresses Figure 2.3 The five classes of the Internet addresses. [1] Every host and router on the Internet has a unique Internet address (IP address), which encodes a network and a host number. No two devices can have the same IP address. IP addresses are 32-bit numbers (4 bytes). These numbers is usually written as four decimal numbers separated with a dot, therefore called the dotted decimal notation. Each of the four decimals has a range from 0 to 255. The lowest IP address is and the highest is IP addresses are used in the source address and the destination address fields in every IP packet. Figure 2.3 shows the five different classes. The first decimal number in the dotted decimal notation for an Internet address shows what class it belongs to. There are three different IP addresses. The IP address for a single host is called unicast address (see section 2.3) and for all hosts on a specific network it s called broadcast address (see section 2.4). The third IP address is the multicast address (see section 2.5), which addresses a set of hosts that belongs to a multicast group Port Number A TCP connection is created having both the sender and the receiver to create their own end points, called sockets. Each socket has a socket number consisting of the hosts IP address and a 16-bits port number. A client usually does not care about what port number it uses on the server as long as it will remain unique on its host. The client port number are short lived, it lives only until the user running the client needs its service, while a server port number lives as long as the host is operational and running. Most application implementations use a port number between 1024 and 5000 unless the application uses services that have reserved port numbers. The Internet Assigned Numbers Authority (IANA) manages these reserved or well-known port numbers [3]. These port numbers has a range from 1 to For example a File Transfer Protocol (FTP) server application should use the port

11 2.1.4 TCP TCP is a connection-oriented end-to-end protocol where the source and destination has a conversation. It is a transport layer protocol that sends data as a stream of bytes [4]. The protocol ensures a reliable connection with error free data exchange by using sequence numbers, acknowledgement messages and retransmissions if data has been lost. It also handles flow control so a fast sender cannot send faster than the slower receiver can handle. Figure 2.4 The three-way handshake [2] The connection-oriented service has three phases [2]: connection establishment phase, data transfer phase, and connection termination phase. In the connection establishment phase a connection or session is created between the sender and receiver by using a three-way handshake where they synchronize the initial starting sequence numbers. Figure 2.4 shows the procedure. Host A begins sending a packet with its initial sequence (SEQ) number of x with a certain bit set in the header indicating a connection request. Host B then receives the packet, records the sequence number and replies with a packet with an acknowledgement (ACK) of x+1 and includes its own initial sequence number of y. The acknowledgement of x+1 means that x has been received and is expecting x+1 in the next packet. This synchronization ensures the detection of missing sequence numbers during transmission. In data transfer phase, data is sent sequentially over the established path, arriving in the same order it was sent. The last phase is the connection termination phase, the connection between the source and destination host will be terminated when it no longer is needed UDP UDP works at the transport layer protocol just like TCP but it is a simpler protocol. The UDP protocol sends its data in a UDP datagram to the Internet layer where it is embedded into an IP datagram. It gives no guarantees that the data ever reaches its destination. Error processing and retransmission must be handled by other protocols. The order the packets been received can also differ from the order they were sent. 11

12 2.2 Routers/switches Routers A router is a device used to forward unicasted data packets between networks. Routers can also be programmed to handle multicast packets (see 2.4.3). A router is connected to at least two networks, commonly two LANs. Routers examine all incoming packets, read the header information and uses forwarding tables to determine the best path for the packet and then switch it to the proper outgoing port. Because of their ability to route packets between networks the routers have become the backbone of the Internet, running the IP protocol [2] Routing protocols Routing protocols is a protocol that provides a mechanism for sharing routing information. Routers use these protocols to communicate with other connected routers and to update and maintain their routing tables with their own knowledge of the routes between routers in the network or on the Internet. This gives them a map and allows routing to occur. If one router fails by some reason the nearby routers will know about in a short time and they will try to route the packets around it to reach the final destination. There are a lot of routing protocols and to describe them is out of this reports scope but they all calculate some kind of metric value to determine the best path to the destination. For example the Routing Information Protocol (RIP) are the most common routing protocol within a domain. RIP allows routers to decide the best path to use by using the concept known as distance-vector routing. Whenever data passes a router this equals to one hop. A path that has hop counts of 4 means that data going that path must pass through 4 routers to reach its destination. If there are multiple paths to that destination the router will choose the one with least number of hops [2] Multicast routers Multicast router or an mrouter is a router that is programmed to forward multicast messages between unicast routers like the ones that build up the Internet network topology. To forward the multicasted packet the mrouter disguise it to a unicast packet and sets the destination mrouters IP address in the header. This process is called IP tunneling and makes it possible for the multicast sending host to reach more multicast group members outside its own LAN. The mrouters that supports it on the Internet make up the Multicast Backbone, also called the MBone Switches A switch makes decisions on LANs and not like routers between LANs. It has multiple connection ports that allow many devices to be connected to a single point. A switch only sends the packet out the correct port where the destined host is connected. Switches store the connected hosts MAC address. A MAC address is a unique number of the hosts NIC (Network interface card). Switching is done by examine the destination IP address in the packet and map it to MAC address through the switches look up table and then chooses the proper outgoing port. 12

13 2.2.5 Hubs Hubs have multiple ports just like switches but they are simpler. They cannot filter network traffic and they forward every incoming packet to all ports because they have no knowledge about the connected hosts. 2.3 Unicast Unicast is the term for a data exchange between two nodes, one sender and one receiver. TCP and UDP support unicast transmissions. Class A, B and C addresses are unicast addresses and are supported by all LAN s (Local area network). Web browsers, FTP- and applications are common unicast applications. See appendix E1 for an example. 2.4 Broadcast Broadcasting means that UDP data is sent from one node to all other connected nodes on the LAN. The problem with broadcasting is that it produces unnecessary network- and host load on the hosts that are not interested in the broadcasts. Every time a host receives a broadcast it processes the message and checks the destination port number. If no process or application uses the port number for incoming broadcasts the message will be discarded. See appendix E2 for an example. 2.5 Multicast The purpose with multicasting is to send a single IP datagram from one node to many connected nodes. The biggest advantages with multicast transmission is that more clients does not mean more bandwidth load since only one packet is send and then spread to all other through switches and mrouters. The main difference to broadcasting is that only the interested host will get the datagrams. To actually be able to receive multicast datagrams the host needs to join a certain multicast group. Multicast traffic is usually handled at the transport layer with UDP datagram, as TCP only provides point-to-point connections [6] so there are no guarantees on delivery or error processing and retransmissions. But there are a lot of protocols that supports reliable multicasting we will go through a couple of them in detail later. Unlike the broadcast domain that is inside the sending hosts own LAN, the multicast domain can extend over several networks if the routers between them has the proper software to handle multicast packets, like the MBone. The multicasts addresses are class D with the range of to Every IP datagram whose destination address starts with 1110 is an IP Multicast datagram, see fig 2.3. The remaining 28 bits identify the multicast group the datagram is sent to. See appendix E3 for an example. 13

14 2.5.1 Multicast groups Every client who wishes to accept multicast messages from a sender needs to join a multicast group. To join a group the clients need to send an IGMP (Internet Group Management Protocol) packet to a router or a switch or a similar device. The IGMP packet tells what multicast packets it s interested in by leaving the multicast IP address and port number for the group. The router/switch knows then exactly which clients to send to if a multicast packet with exactly that IP address and port number arrives. When a client does not want any more packets it will send a new IGMP messages which tells the router/switch to delete it from the group list Multicast Backbone (MBone) Since most routers only support unicast traffic on the Internet a virtual network was created by IETF (Internet Engineering Task Force) in 1992 [7]. This virtual network runs on top on the Internet and it s called the MBone (Multicast Backbone). The MBone allows multicast packets to travel through unicast routers by programming them so the multicast packets will be embedded into regular unicast packets so that unicast routers can handle them. This router who uses this software is called mrouters. The technique to hide multicast packets in unicast ones is called tunneling. The MBone size is relatively small compared to the Internet. In 1995 there was about 1700 networks in 20 countries on the MBone (3,5 percent of the Internets networks) [7] Reliable multicasting Reliable multicast often means that it gives the same guarantees as with TCP and unicast transmission. The criteria s usually are delivery guarantees on each packet, flow control and also that all packets are received in the same order they was sent. 14

15 2.6 OPC (OLE for Process Control) OPC is a series of standard specifications developed by OPC Foundation in The first standard was the Data Access Specification and it resulted in that many leading worldwide automation suppliers was collaborating and cooperating with Microsoft. The specification defined a standard of interfaces for use in process control and manufacturing automation applications. It is a server/client architecture based on Microsoft s OLE COM (component object model) and DCOM (distributed component object model) technologies. Today there is hundreds of OPC Data Access Servers and Clients. There are also other data types then the original Data Access. Now there are communication standards for Alarm & Events, Historical Data, Batch Data, and many more [10] OPC Alarm & Events Specification OPC Alarm & Events (A&E) is a standard set of interfaces for managing alarm and event notifications. It allows OPC A&E Clients to subscribe on the alarms and events it needs by filtering. The OPC standard defines different types of Alarm and Event servers. Components that can detect alarms and/or events and report them to one or more clients. Components that can collect alarm and event information from multiple sources, whether by subscribing to other OPC alarm and event servers or by detecting alarms and events on it s own, and report such information to one or more clients. 15

16 The figure below illustrates the interaction in an OPC client-server system. Figure 2.5 Interaction between several OPC Alarm and Event Servers and Clients [21]. The figure shows several types of OPC Alarm and Event (A&E) clients and servers including a Device, Module, Operator Stations, Event Logger, and an OPC Alarm/Event Management server. The Alarm/Event Management server is also a client to more than one OPC Alarm and Event server. In this system, the Alarm/Event Management server is acting as kind of a collector or data concentrator, providing its clients with possibly more organized information or a more advanced interface. The Device and Modules could possibly implement a simpler Alarm/Event server interface. 16

17 2.7 Component technologies The applications that use components consist of individual objects that encapsulate functionality and data. In object oriented programming, objects often represent something in the real world, and this type of thinking is very suitable when for example creating a web store. A customer would need his very own shopping cart, and these would in turn be instances of a shopping cart object. The more customers there are the more instances will be created of the same object. Component programming is split into a server part and a client part. The server object requires an Interface Definition Language (IDL), which specifies the services that the object has to offer. The only way for a client to communicate with a server object is through interfaces. For clients and server objects to understand each other on any platform, operating system, programming language and so on, the interfaces need to be defined for both the client and server objects. An interface definition must specify the operation to be performed and all of the input and output parameters with their types, allowing client and server to encode and decode values for their travel over the network. 2.8 Microsoft ATL/COM ATL (Active Template Library) is a set of template-based C++ classes which was developed by Microsoft to let the programmer more easily build COM objects. COM (Component Object Model) is a model developed by Microsoft in the early 90 to make it easy to develop component based object oriented applications. Every COM object has its unique identity with a set of exposed interface that allows other applications and/or other components to access its features. They are binary components written in any language It will work with new programming languages years from now. It is the compiled code that matters, not the source code. [11]. COM is not the first and only way of reusing compiled code. C-style DLLs, for example has been used for Windows programming for a long time. DLLs advantages and disadvantages are: Advantages: Parts of an application can be swapped or changed without the need for recompilation of the whole system. Code can be loaded on a just-in-time basis, so it does not allocate any system memory if it s not needed. Code can be shared between processes, which can be more memory-efficient than statically linking it (Compiling it into the application). Disadvantages: Callable from most languages but there are relatively few that allow you to create them. Not object-oriented. Traditionally, DLLs have been loaded by filename, which means if the name or location of the DLL is changed, the application cannot load it. 17

18 It is difficult to provide different versions of a DLL on the same system, because it can cause conflicts between different vendors products. Because of the benefits of a DLL a COM component can be packaged as one too. But they have overcome many of the disadvantages of an ordinary DLL. A coclass is named from component object class and is a piece of binary code that implements some kind of functionality. Coclasses can be distributed in DLL (Dynamic linked library) or in EXE (executable) files. The COM object is an instance of a coclass that gets loaded into the system memory. COM interfaces are the connection by which other component or applications get access to the functionality of the COM component Identifiers COM associates the name of everything you define with strings of numbers that get called different thing depending on how they are used. Some of the identifiers used by COM: CLSID - Class identifier IID - Interface Identifier AppID - Application identifier These identifiers all have the same format. They are all globally unique identifiers (GUIDs) also known as universally unique identifier (UUID). GUIDs are a very large statistically unique number. It is a 128-bit number generated from the address of the Ethernet card in the current computer together with the current time in 100- nanoseconds interval since 1582 and some other things. The generation algorithm are capable of coming up with 10 million unique numbers every second. These GUIDs are very useful because they ensure that there will be no two different components with the same CLSID IUnknown The only way to communicate with a component is trough its interfaces. To get a pointer to different interfaces the client needs to call a method named QueryInterface (). This method can return pointers to all other interfaces on the same object. The QueryInterface () is one of three IUnknown methods. IUnknown is an interface that every COM components need to implement otherwise it is not a COM component. The other two IUnknown methods are Addref () and Release (). The Addref () and Release () methods increases and decreases an objects reference counter. If QueryInterface () successfully returns a pointer to an interface it calls the Addref () to increase the reference counter and the returning pointer can be used to call the objects methods thru the interface. Before destroying the pointer the Release () method must be called to decrease the reference counter. 18

19 2.8.3 MIDL Microsoft Interface Definition Language The definition of an interface does not include an implementation of its methods, the implementations is done in the component that is going to implement the interface. Here follows a simple example of an IDL file: Import oaidl.idl ; [ object, uuid(f c99b-4bcc-b cce7afbac) ] Interface IHello : IUnknown { HRESULT SayHello (); }; Figure 2.6 COM IDL file The IUnknown interface that all components must implement The IID The import statement at the top of this example brings in the standard types by the oaidl.idl file, which include many of the standard COM interfaces. The import statement is similar to C++ s #include. Then we have one interface, IHello, with a single method, called SayHello () besides the three IUnknown methods (see 2.8.2). 19

20 2.9 ActiveX ActiveX is a set of two other Microsoft technologies called OLE (Object Linking and Embedding) and COM. An ActiveX control is self-registering and can for example automatically be downloaded and executed in a Web browser. ActiveX is not a programming language, but rather a set of rules for how applications should share information. They can be programmed in a numerous of languages including C, C++, Visual Basic. [15] Java applets and ActiveX are similar in some sense but an ActiveX unlike the applet has full access to Windows operating system. This gives the ActiveX control more functionality but with it comes a risk that an ActiveX can be programmed to harm the computer. Microsoft has developed a registration system so the browser can identify and authenticate the ActiveX control before downloading it. Another difference between Java applet and an ActiveX is that an ActiveX only runs on Window platforms. 20

21 2.10 CORBA CORBA is the acronym for Common Object Request Broker Architecture, an architecture and infrastructure that computer applications of various kinds can use to interact over networks. It was developed by OMG (Object Management Group), a consortium founded in 1989 [12]. The essence of this technology is the ability to integrate units with little or no similarities. CORBA-based applications that are written for different vendors, on different operating systems and in different programming languages can interoperate through the middleware that is CORBA. A middleware is simply put a type of program that enables other applications to communicate, taking care of the complexity that lies in the connection. This is a big help to the programmer who can concentrate on developing the application rather than for example worrying about how to retrieve data from a remote server object. CORBA is often used in high rate servers that must handle many clients and has high reliability IDL Interface Definition Language A CORBA application can have a numerous of individual objects that encapsulate the data and its functionality. The objects often represent something from the real world, for example a shopping cart at a web store. There can be many instances created of the shopping cart object, typically one for each customer. The instances would be identical in functionality but differ in contained data depending on what each customer put in their shopping cart. Every CORBA object requires an interface written in Interface Definition Language (IDL), which specifies what the object has to offer to the clients that invoke it. When a client calls the server side object, it must use the interface to specify the operation it wants to perform. For successful communication, both client and server objects, regardless of their platform, operating system and programming language, need to understand the IDL. An interface definition specifies the operations available, and all of the input and output parameters including their types, so that both client and server side objects can encode and decode the values as they are being passed over the network. Each CORBA object must have a type name, which is the same as the interface name assigned in its IDL declaration. This name creates a new CORBA type that contains the operations that are declared inside the interface in the specific IDL. The variable types that are accepted as in- and out parameters are called IDL variables, these types can be found in a official list. The list includes base types like integers, floating-points, standard and wide characters, strings and Booleans. It also includes constructed types such as struct, union and enum. Finally it offers an any type that can be applied to any IDL type under runtime. 21

22 Here is a very simple example of an IDL definition: Module Alarm_Event { struct Alarm { short status; short acknowledged; short persistant; long sequencenr; long index; long alarmid; long versionnr; wstring msg; }; }; interface IAlarmEventServer { bool UpdateAlarm( in Alarm alarmdata); }; Figure 2.7 CORBA IDL example At the top of this example we see a declaration of a Module named Alarm_Event. This module is delimited with curly braces {}. All types declared inside the module are valid types inside it, like the constructed struct type named Alarm. Then we have declared an interface called IAlarmEventServer which will be translated into a class declaration when compiled. The IAlarmEventServer is also delimited with curly braces. An interface can hold many operations but in this example it only has one, called UpdateAlarm with one input parameter of the constructed type Alarm and also a return value of the type Boolean. The example shows how to define a simple IDL. But an IDL is just for defining interfaces and is not a programming language so it has to be mapped to a programming language which is supported. Note that the IDL does not have any GUID (see 2.8.1) like the COM IDL. CORBA objects are identified with names instead. OMG has defined mappings from IDL to several major programming languages. It supports standard mappings to C, C++, Java, Smalltalk, COBOL, Ada, Lisp, and Python. There are also implementations available for mapping to other languages. The mapping assigns a language variable type to each IDL variable type and translates the IDL s operations format to the languages member function or other operation formats. When mapping to an object orientated programming language it might also assign names for the base classes and specifies how 22

23 the classes should derive from IDL generated classes. Mapping also specifies memory usage for the client and server sides. Mapping is done by running the IDL interface file through an IDL Compiler that came with the ORB. Every ORB comes with one or more IDL Compilers, one for each programming language that is supports. The compiler will produce the language code [13][17] The ORB The ORB (Object Request Broker) is the service that handles the requests to remote objects. A client contacts the local ORB and demands to execute something and the ORB will take care of the rest. It locates the remote object on the network, communicates the request to the object, waits for the results and then sends those results back to the client. The ORB is location transparent, which means that the same request mechanism is used regardless of where the object that is providing the services is located. It could be located on the same computer as the client or far away, no difference would be made in the execution steps. The figure below shows how the communication works within a single process. The IDL is compiled into client stubs and object skeletons, and the client and object is implemented in the language that the programmer(s) prefers. The stubs and the skeletons will act as proxies for clients and servers. The stub on the client side will fit perfectly with the skeleton on the server side, even if the two applications are compiled into different programming languages and running on different ORB s. Figure 2.8 A request passing from client to object implementation Every object in CORBA is unique. An identifying electronic token is used as a reference to the object when the client wants to invoke it. It might seem as if the client directly invokes the remote object instance, but in reality it invokes the stub that was created when the IDL was compiled. The invocation then continues through the local ORB and the skeleton on the server object side, to get to the object where it is executed. The picture below displays a communication over network. 23

24 Figure 2.9 ORB-to-ORB communications To be able to communicate with remote objects, the ORB s must agree on a common protocol. The protocol in use is called IIOP (Internet Inter-ORB Protocol) and it was defined by OMG as a standard protocol. Other protocols also exist for different reasons, but virtually all ORB s speak the standard IIOP. 24

25 2.11 SIDL SPIDER IDL SPIDER IDL (SIDL) is a framework developed by ABB. The SPIDER IDL Framework follows a true subset of the OMG IDL v2.3 specification according to the CORBA C++ language mapping specification. SIDL is designed to be high performance, have high availability and easy to use. SIDL does not implement all of the CORBA ORB specification but it still implements enough to be a highly performable ORB for use in industrial systems. The main differences are in how objects are created, looked up and distributed. It does not support CORBA ORB interfaces like BOA, [18] POA and IR but have similar features (to read more about these interfaces see OMG home page [12]). 25

26 3. Alarm and events in WS SPIDER and WS500 The SPIDER system is a supervisor and a control program for power company s electrical net. The server side is based on a UNIX platform while the clients program, the WS500 (Work Station 500), is based on Windows with a graphical user interface. Figure 3.1 Current communication configurations 3.2 Current solution In today s solution every WS 500 client is connected to the SPIDER server (see fig 3.1). The communication between the server and the clients are through ABB s own ORB implementation, named SIDL (see 2.10 about SIDL) meaning that there is one communication channel between all the clients to the server. This one-to-one communication channel provides a reliable protocol that ensures that the data which was sent always comes through if there s still a physical connection between the server and client. When the clients want to see some alarm or events they need do step forward or backward until the desired alarm or event are displayed. The alarm or event lists are downloaded from the SPIDER server as a sub set with only a few alarms or event in them. This gives the user the impression of turning pages. 26

27 3.3 System performance The system today may have difficulties to handle and distribute peaks of new alarms and events say for example, rates up to 1000 alarms per second to many clients (>500). Under normal circumstances it is probably a much less number of clients that will communicate with the server at the same time but we must look at some extreme situations to get a feeling of what challenges we might be facing. The calculation below are simplified and far from exact but it indicates which configurations and situations that can be troublesome. If we assume that we have the unlikely situation with 500 clients connected to one server. This server would receive in worst case, 1000 alarms with a maximum size of 0,5 KB, a total of 0,5 MB per second (4 Megabit/sec) which is an acceptable load in a LAN. It is not likely that all 500 clients are watching and is interested in the newest alarms but assume that 10% of them are. Then the server needs to update 50 of them with the new alarm information and that gives us a network load of 50 * 0, 5 MB = 25 MB (200 Mbit/sec) and that is a large problem. This is why a multicast/broadcast solution would be a better choice. 27

28 4. Result of thesis 4.1 Problem Description Today s solution has its limitation regarding the alarm and event reporting in the clients WS500 system. There are not any browsing and filtering options because the information cannot be transferred fast enough from the SPIDER server due to the network bandwidth and server capacity. Today s system could also be slowed down dramatically if there large peaks of new alarms and events (see section 3.3 for an example). ABB is now interested in testing a prototype which could handle large peaks of new alarms/events and also distribute all of the alarm/event information to all connected clients so it can be browsed and filtered locally on each computer. 4.2 Problem Analysis The main problems with today s system can be split into 2 sub problems. Data transfer How could we deliver a large amount of data to many users with minimal cost on the SPIDER server load and the network load? Sort/filter and browsing capability How can we achieve that the clients can filter/sort and browse the displayed alarm and/or event information displayed without downloading it again from the SPIDER server? 4.3 Data transfer The main problem in the existing system is to distribute large amount of data in an efficient way so ABB wanted to use broadcast or multicast technology where one data package is sent to many clients instead of sending one data package to each client with unicast Broadcast vs. Multicast The both technologies use UDP packages so they are both unreliable and some extra controls needs to be added to ensure that that all clients have the latest data. The main difference between the broadcast and multicast is that all connected computers in the LAN will receive the broadcasted message even if they are not interested in them and broadcast messages will stop at the routers interface, meaning it can only be received in the LAN. Multicast messages can exceed to other networks but only if the routers are configured to transport them further, but the broadcast messages stops at the router interface. But the main benefit over the broadcast is that only the clients who are interested in the specific multicast messages will receive them by register them self s as a member to the switch/router to a multicast group. 28

29 4.3.2 OPC A&E I discussed OPC Alarm and Events briefly in section 2.6 because it is in the right category even if I did not use it. The main reason I did not use it was that the main problem to distribute large amount of alarms and events to many users in an effective way would not be solved because it uses DCOM which also uses one-to-one connections (unicast) similar to ABBs system today Conclusion The technology we choose to distribute data to all clients were by sending multicast packets because it satisfied the ABB s requirements best even if it there is a need to some extra control to ensure that all data has arrived to all clients. But the main problem with the server and network load will be solved. 4.4 Sort/filter and browsing capability In the current solution there is no sort or filter options regarding the alarm/event lists because every request is processed by the SPIDER server and it would slow it down if there are many users and many alarm/events to iterate for each request and send the result over the network to each client. To get the response we want while browsing the alarm/event lists which are displayed we should try to replicate the entire SPIDER servers alarm/event lists to the local computer memory. This would give very quick response time and also the option to filter and sort them because all information is stored locally on each client computer and does not need to transfer the result over the network. 29

30 4.5 Component architecture The entire SPIDER system is built from components, the server side which runs on the UNIX platform are implemented as SIDL components and the client side are the WS500 (Workstation 500) which is built mainly by COM components on the Windows platform. The prototype that will be presented in this report will have component selection that would best fit their existing system. UNIX WINDOWS SPIDER server WS 500 SPIDER A&E server SIDL component SIDL channel Multicast A&E server/client SIDL component (callback) COM component Multicast channel A&E Viewer ActiveX control Figure 4.1 Overview of the components architecture (the components are in gray) 30

31 4.5.1 Multicast A&E server/client To fit the existing system the Multicast A&E server/client will be developed as a COM component as it will be a part of the WS500. This component can act as a server or a client (see section 4.9).It will also have a SIDL component which will act as a callback for the SPIDER server for alarm and event updates. The component will be written in C A&E Viewer The A&E viewer in the WS500 client system will be an ActiveX control written in Visual Basic because the WS500 system has built in support to load them in a windows frame. The viewer will be able to display alarms and events in a list with a scrollbar. The operator will then be able to scroll and filter alarms/events and acknowledge them or make notes SPIDER A&E server A SIDL component written in C++ will be created in the SPIDER server to support the Multicast A&E server/client communication. 4.6 Data storage The Multicast A&E component stores all the alarm and event information when it shutdowns so they do not need to download them all every time they start the system again. The information contains the latest sequence number of the alarms and events so the missing ones can be downloaded from the SPIDER server at startup through a SIDL connection before it starts sending/receiving multicast messages. All the data is stored locally on the hard drive. 4.7 Prototype overview The prototype consists of a SPIDER server component, WS500 Multicast A&E server/client and a WS500 A&E Viewer. The SPIDER A&E server has the alarms and events in lists. It also keeps a list of Multicast A&E server pairs (primary and secondary). There will be a pair of them on each LAN. The SPIDER A&E server will then send all of the alarm and event updates to the primary Multicast A&E servers through a SIDL connection. The Multicast A&E server will then send all new alarm and event updates through the multicast socket which will be received by the Multicast A&E clients on the LAN. While the primary Multicast A&E server operates normal the secondary server will operate as a normal Multicast A&E client but if the primary Multicast A&E server fails to communicate with the SPIDER, the SPIDER will switch to the secondary Multicast A&E server instead (see figure 4.2). 31

32 Figure 4.2 The prototype topology overview 32

33 4.8 SPIDER A&E server role The SPIDER A&E server is a remote SIDL component running on a UNIX platform which will contain the most recent alarms and events, up to of them each in different lists. Its job is to distribute alarms and events to all registered Multicast A&E servers (one on each LAN) and also to let clients download missing ones Multicast A&E server registration The SPIDER server can have a primary and a secondary Multicast A&E server registered for each local are area network (LAN). They are stored as pairs in a list. When a server registers it tells the SPIDER server if it wants to be a primary or a secondary server. The registration is made by letting the SPIDER server create a duplicate of the Multicast A&E server callback pointer. Through this callback the SPIDER can communicate to the Multicast servers. See appendix A for an example of duplicating an object in CORBA. If the communication to the primary server fails a preset number of times the server will assume that the remote object is not operational and will switch to the secondary server and start communicating with it instead The alarm/event lists The server keeps track over the oldest alarm/event and the newest one by having a first and a last index counter which point out them in the lists. See fig 4.3 below. Last First Alarm Alarm 3 1 Alarm 2 0 Alarm 1 Figure 4.3 Alarm list with alarms When the lists are full the server starts writing over the oldest of them. See fig 4.4 below. First Last Alarm Alarm 3 1 Alarm Alarm Figure 4.4 Alarm list with over alarms 33

34 The server has a separate sequence number counter for the latest alarm and event. The sequence counter is not only increased when a new alarm or event occurs, it will be increased if an existing one is updated also, for example an note is added to an alarm or if it is acknowledged Downloading missing alarms/events To obtain better performance when clients need to download missing alarms/events the server has two other lists with a capacity for the latest indexes for the updated alarms and events. These indexes points out which alarms/events the server should send to the client from the alarm/event lists. This makes it much faster for the server because it does not need to iterate the whole lists every time to find the alarms/events with greater sequence number than the clients. So for an example, say that the clients last alarm sequence number was and it asks the SPIDER server for the latest updates and the servers sequence number is 12023, means that the client misses 3 alarm updates. Then the server will start from the last pointer in the Alarm cache list and send that one and the 2 before it. As we see in figure 4.4 below, that the new alarm on index 3299 and the acknowledged ones on index 820 and 77 will be sent. Last Index Updated Index Index New alarm Acknowledged. 77 Acknowledged. Alarm Cache List Alarm list Figure 4.5 Alarm cache list points out the latest alarm updates in the Alarm list If the difference in sequence number are larger than the client will download all alarm or/and events. 34

Network-Oriented Software Development. Course: CSc4360/CSc6360 Instructor: Dr. Beyah Sessions: M-W, 3:00 4:40pm Lecture 2

Network-Oriented Software Development. Course: CSc4360/CSc6360 Instructor: Dr. Beyah Sessions: M-W, 3:00 4:40pm Lecture 2 Network-Oriented Software Development Course: CSc4360/CSc6360 Instructor: Dr. Beyah Sessions: M-W, 3:00 4:40pm Lecture 2 Topics Layering TCP/IP Layering Internet addresses and port numbers Encapsulation

More information

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur Module 17 Client-Server Software Development Lesson 42 CORBA and COM/DCOM Specific Instructional Objectives At the end of this lesson the student would be able to: Explain what Common Object Request Broker

More information

Ethernet. Ethernet. Network Devices

Ethernet. Ethernet. Network Devices Ethernet Babak Kia Adjunct Professor Boston University College of Engineering ENG SC757 - Advanced Microprocessor Design Ethernet Ethernet is a term used to refer to a diverse set of frame based networking

More information

SFWR 4C03: Computer Networks & Computer Security Jan 3-7, 2005. Lecturer: Kartik Krishnan Lecture 1-3

SFWR 4C03: Computer Networks & Computer Security Jan 3-7, 2005. Lecturer: Kartik Krishnan Lecture 1-3 SFWR 4C03: Computer Networks & Computer Security Jan 3-7, 2005 Lecturer: Kartik Krishnan Lecture 1-3 Communications and Computer Networks The fundamental purpose of a communication network is the exchange

More information

Transport Layer Protocols

Transport Layer Protocols Transport Layer Protocols Version. Transport layer performs two main tasks for the application layer by using the network layer. It provides end to end communication between two applications, and implements

More information

Protocols. Packets. What's in an IP packet

Protocols. Packets. What's in an IP packet Protocols Precise rules that govern communication between two parties TCP/IP: the basic Internet protocols IP: Internet Protocol (bottom level) all packets shipped from network to network as IP packets

More information

Indian Institute of Technology Kharagpur. TCP/IP Part I. Prof Indranil Sengupta Computer Science and Engineering Indian Institute of Technology

Indian Institute of Technology Kharagpur. TCP/IP Part I. Prof Indranil Sengupta Computer Science and Engineering Indian Institute of Technology Indian Institute of Technology Kharagpur TCP/IP Part I Prof Indranil Sengupta Computer Science and Engineering Indian Institute of Technology Kharagpur Lecture 3: TCP/IP Part I On completion, the student

More information

The OSI model has seven layers. The principles that were applied to arrive at the seven layers can be briefly summarized as follows:

The OSI model has seven layers. The principles that were applied to arrive at the seven layers can be briefly summarized as follows: 1.4 Reference Models Now that we have discussed layered networks in the abstract, it is time to look at some examples. In the next two sections we will discuss two important network architectures, the

More information

CPS221 Lecture: Layered Network Architecture

CPS221 Lecture: Layered Network Architecture CPS221 Lecture: Layered Network Architecture Objectives last revised 9/10/12 1. To discuss the OSI layered architecture model 2. To discuss the specific implementation of this model in TCP/IP Materials:

More information

Infrastructure that supports (distributed) componentbased application development

Infrastructure that supports (distributed) componentbased application development Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication

More information

Computer Network. Interconnected collection of autonomous computers that are able to exchange information

Computer Network. Interconnected collection of autonomous computers that are able to exchange information Introduction Computer Network. Interconnected collection of autonomous computers that are able to exchange information No master/slave relationship between the computers in the network Data Communications.

More information

RARP: Reverse Address Resolution Protocol

RARP: Reverse Address Resolution Protocol SFWR 4C03: Computer Networks and Computer Security January 19-22 2004 Lecturer: Kartik Krishnan Lectures 7-9 RARP: Reverse Address Resolution Protocol When a system with a local disk is bootstrapped it

More information

Networking Test 4 Study Guide

Networking Test 4 Study Guide Networking Test 4 Study Guide True/False Indicate whether the statement is true or false. 1. IPX/SPX is considered the protocol suite of the Internet, and it is the most widely used protocol suite in LANs.

More information

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns

More information

CCNA R&S: Introduction to Networks. Chapter 5: Ethernet

CCNA R&S: Introduction to Networks. Chapter 5: Ethernet CCNA R&S: Introduction to Networks Chapter 5: Ethernet 5.0.1.1 Introduction The OSI physical layer provides the means to transport the bits that make up a data link layer frame across the network media.

More information

Course Overview: Learn the essential skills needed to set up, configure, support, and troubleshoot your TCP/IP-based network.

Course Overview: Learn the essential skills needed to set up, configure, support, and troubleshoot your TCP/IP-based network. Course Name: TCP/IP Networking Course Overview: Learn the essential skills needed to set up, configure, support, and troubleshoot your TCP/IP-based network. TCP/IP is the globally accepted group of protocols

More information

Understanding TCP/IP. Introduction. What is an Architectural Model? APPENDIX

Understanding TCP/IP. Introduction. What is an Architectural Model? APPENDIX APPENDIX A Introduction Understanding TCP/IP To fully understand the architecture of Cisco Centri Firewall, you need to understand the TCP/IP architecture on which the Internet is based. This appendix

More information

Protocol Data Units and Encapsulation

Protocol Data Units and Encapsulation Chapter 2: Communicating over the 51 Protocol Units and Encapsulation For application data to travel uncorrupted from one host to another, header (or control data), which contains control and addressing

More information

Note! The problem set consists of two parts: Part I: The problem specifications pages Part II: The answer pages

Note! The problem set consists of two parts: Part I: The problem specifications pages Part II: The answer pages Part I: The problem specifications NTNU The Norwegian University of Science and Technology Department of Telematics Note! The problem set consists of two parts: Part I: The problem specifications pages

More information

IP Network Layer. Datagram ID FLAG Fragment Offset. IP Datagrams. IP Addresses. IP Addresses. CSCE 515: Computer Network Programming TCP/IP

IP Network Layer. Datagram ID FLAG Fragment Offset. IP Datagrams. IP Addresses. IP Addresses. CSCE 515: Computer Network Programming TCP/IP CSCE 515: Computer Network Programming TCP/IP IP Network Layer Wenyuan Xu Department of Computer Science and Engineering University of South Carolina IP Datagrams IP is the network layer packet delivery

More information

Protocols and Architecture. Protocol Architecture.

Protocols and Architecture. Protocol Architecture. Protocols and Architecture Protocol Architecture. Layered structure of hardware and software to support exchange of data between systems/distributed applications Set of rules for transmission of data between

More information

1 Data information is sent onto the network cable using which of the following? A Communication protocol B Data packet

1 Data information is sent onto the network cable using which of the following? A Communication protocol B Data packet Review questions 1 Data information is sent onto the network cable using which of the following? A Communication protocol B Data packet C Media access method D Packages 2 To which TCP/IP architecture layer

More information

Communications and Computer Networks

Communications and Computer Networks SFWR 4C03: Computer Networks and Computer Security January 5-8 2004 Lecturer: Kartik Krishnan Lectures 1-3 Communications and Computer Networks The fundamental purpose of a communication system is the

More information

Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary

Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary C H A P T E R 1 1 Overview of CORBA 11.1 Introduction to CORBA 11.2 CORBA architecture 11.3 Client and object implementations 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary In previous

More information

Guide to Network Defense and Countermeasures Third Edition. Chapter 2 TCP/IP

Guide to Network Defense and Countermeasures Third Edition. Chapter 2 TCP/IP Guide to Network Defense and Countermeasures Third Edition Chapter 2 TCP/IP Objectives Explain the fundamentals of TCP/IP networking Describe IPv4 packet structure and explain packet fragmentation Describe

More information

Transport and Network Layer

Transport and Network Layer Transport and Network Layer 1 Introduction Responsible for moving messages from end-to-end in a network Closely tied together TCP/IP: most commonly used protocol o Used in Internet o Compatible with a

More information

iseries TCP/IP routing and workload balancing

iseries TCP/IP routing and workload balancing iseries TCP/IP routing and workload balancing iseries TCP/IP routing and workload balancing Copyright International Business Machines Corporation 2000, 2001. All rights reserved. US Government Users Restricted

More information

Network Programming TDC 561

Network Programming TDC 561 Network Programming TDC 561 Lecture # 1 Dr. Ehab S. Al-Shaer School of Computer Science & Telecommunication DePaul University Chicago, IL 1 Network Programming Goals of this Course: Studying, evaluating

More information

Objectives of Lecture. Network Architecture. Protocols. Contents

Objectives of Lecture. Network Architecture. Protocols. Contents Objectives of Lecture Network Architecture Show how network architecture can be understood using a layered approach. Introduce the OSI seven layer reference model. Introduce the concepts of internetworking

More information

2057-15. First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring

2057-15. First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring 2057-15 First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring 7-25 September 2009 TCP/IP Networking Abhaya S. Induruwa Department

More information

IP - The Internet Protocol

IP - The Internet Protocol Orientation IP - The Internet Protocol IP (Internet Protocol) is a Network Layer Protocol. IP s current version is Version 4 (IPv4). It is specified in RFC 891. TCP UDP Transport Layer ICMP IP IGMP Network

More information

BASIC ANALYSIS OF TCP/IP NETWORKS

BASIC ANALYSIS OF TCP/IP NETWORKS BASIC ANALYSIS OF TCP/IP NETWORKS INTRODUCTION Communication analysis provides powerful tool for maintenance, performance monitoring, attack detection, and problems fixing in computer networks. Today networks

More information

Middleware Lou Somers

Middleware Lou Somers Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,

More information

Note! The problem set consists of two parts: Part I: The problem specifications pages Part II: The answer pages

Note! The problem set consists of two parts: Part I: The problem specifications pages Part II: The answer pages Part I: The problem specifications NTNU The Norwegian University of Science and Technology Department of Telematics Note! The problem set consists of two parts: Part I: The problem specifications pages

More information

Ethernet. Ethernet Frame Structure. Ethernet Frame Structure (more) Ethernet: uses CSMA/CD

Ethernet. Ethernet Frame Structure. Ethernet Frame Structure (more) Ethernet: uses CSMA/CD Ethernet dominant LAN technology: cheap -- $20 for 100Mbs! first widely used LAN technology Simpler, cheaper than token rings and ATM Kept up with speed race: 10, 100, 1000 Mbps Metcalfe s Etheret sketch

More information

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware Middleware 1 Middleware Lehrstuhl für Informatik 4 Middleware: Realisation of distributed accesses by suitable software infrastructure Hiding the complexity of the distributed system from the programmer

More information

Mathatma Gandhi University

Mathatma Gandhi University Mathatma Gandhi University BSc Computer Science IV th semester BCS 402 Computer Network &Internet MULTIPLE CHOICE QUESTIONS 1. The computer network is A) Network computer with cable B) Network computer

More information

Basic Networking Concepts. 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet

Basic Networking Concepts. 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet Basic Networking Concepts 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet 1 1. Introduction -A network can be defined as a group of computers and other devices connected

More information

TCP/IP and the Internet

TCP/IP and the Internet TCP/IP and the Internet Computer networking today is becoming more and more entwined with the internet. By far the most popular protocol set in use is TCP/IP (Transmission Control Protocol/Internet Protocol).

More information

College 5, Routing, Internet. Host A. Host B. The Network Layer: functions

College 5, Routing, Internet. Host A. Host B. The Network Layer: functions CSN-s 5/1 College 5, Routing, Internet College stof 1 Inleiding: geschiedenis, OSI model, standaarden, ISOC/IETF/IRTF structuur Secties: 1.2, 1.3, 1.4, 1.5 2 Fysieke laag: Bandbreedte/bitrate Secties:

More information

Overview of Computer Networks

Overview of Computer Networks Overview of Computer Networks Client-Server Transaction Client process 4. Client processes response 1. Client sends request 3. Server sends response Server process 2. Server processes request Resource

More information

Guide to TCP/IP, Third Edition. Chapter 3: Data Link and Network Layer TCP/IP Protocols

Guide to TCP/IP, Third Edition. Chapter 3: Data Link and Network Layer TCP/IP Protocols Guide to TCP/IP, Third Edition Chapter 3: Data Link and Network Layer TCP/IP Protocols Objectives Understand the role that data link protocols, such as SLIP and PPP, play for TCP/IP Distinguish among various

More information

Introduction to Computer Networks

Introduction to Computer Networks Introduction to Computer Networks Chen Yu Indiana University Basic Building Blocks for Computer Networks Nodes PC, server, special-purpose hardware, sensors Switches Links: Twisted pair, coaxial cable,

More information

The OSI Model and the TCP/IP Protocol Suite

The OSI Model and the TCP/IP Protocol Suite The OSI Model and the TCP/IP Protocol Suite To discuss the idea of multiple layering in data communication and networking and the interrelationship between layers. To discuss the OSI model and its layer

More information

Industrial Communication Whitepaper. Principles of EtherNet/IP Communication

Industrial Communication Whitepaper. Principles of EtherNet/IP Communication Industrial Communication Whitepaper Principles of EtherNet/IP Communication 1 Contents Introduction...3 Producer/Consumer Model...4 EtherNet/IP Messaging Types...7 Real Time Data Exchanges...9 Typical

More information

Chapter 3: Review of Important Networking Concepts. Magda El Zarki Dept. of CS UC Irvine elzarki@uci.edu http://www.ics.uci.

Chapter 3: Review of Important Networking Concepts. Magda El Zarki Dept. of CS UC Irvine elzarki@uci.edu http://www.ics.uci. Chapter 3: Review of Important Networking Concepts Magda El Zarki Dept. of CS UC Irvine elzarki@uci.edu http://www.ics.uci.edu/~magda 1 Networking Concepts Protocol Architecture Protocol Layers Encapsulation

More information

Technical Support Information Belkin internal use only

Technical Support Information Belkin internal use only The fundamentals of TCP/IP networking TCP/IP (Transmission Control Protocol / Internet Protocols) is a set of networking protocols that is used for communication on the Internet and on many other networks.

More information

What is CSG150 about? Fundamentals of Computer Networking. Course Outline. Lecture 1 Outline. Guevara Noubir noubir@ccs.neu.

What is CSG150 about? Fundamentals of Computer Networking. Course Outline. Lecture 1 Outline. Guevara Noubir noubir@ccs.neu. What is CSG150 about? Fundamentals of Computer Networking Guevara Noubir noubir@ccs.neu.edu CSG150 Understand the basic principles of networking: Description of existing networks, and networking mechanisms

More information

Chapter 3. TCP/IP Networks. 3.1 Internet Protocol version 4 (IPv4)

Chapter 3. TCP/IP Networks. 3.1 Internet Protocol version 4 (IPv4) Chapter 3 TCP/IP Networks 3.1 Internet Protocol version 4 (IPv4) Internet Protocol version 4 is the fourth iteration of the Internet Protocol (IP) and it is the first version of the protocol to be widely

More information

A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA

A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA Yuming Jiang, Chen-Khong Tham, Chi-Chung Ko Department of Electrical Engineering, National University of Singapore, 10 Kent Ridge Crescent, Singapore

More information

Network Basics GRAPHISOFT. for connecting to a BIM Server. 2009 (version 1.0)

Network Basics GRAPHISOFT. for connecting to a BIM Server. 2009 (version 1.0) for connecting to a BIM Server GRAPHISOFT 2009 (version 1.0) Basic Vocabulary...3 Local Area Networks...5 Examples of Local Area Networks...5 Example 1: LAN of two computers without any other network devices...5

More information

Internet Protocol version 4 Part I

Internet Protocol version 4 Part I Internet Protocol version 4 Part I Claudio Cicconetti International Master on Information Technology International Master on Communication Networks Engineering Table of Contents

More information

TCP/IP Fundamentals. OSI Seven Layer Model & Seminar Outline

TCP/IP Fundamentals. OSI Seven Layer Model & Seminar Outline OSI Seven Layer Model & Seminar Outline TCP/IP Fundamentals This seminar will present TCP/IP communications starting from Layer 2 up to Layer 4 (TCP/IP applications cover Layers 5-7) IP Addresses Data

More information

First Semester Examinations 2011/12 INTERNET PRINCIPLES

First Semester Examinations 2011/12 INTERNET PRINCIPLES PAPER CODE NO. EXAMINER : Martin Gairing COMP211 DEPARTMENT : Computer Science Tel. No. 0151 795 4264 First Semester Examinations 2011/12 INTERNET PRINCIPLES TIME ALLOWED : Two Hours INSTRUCTIONS TO CANDIDATES

More information

Agenda. Distributed System Structures. Why Distributed Systems? Motivation

Agenda. Distributed System Structures. Why Distributed Systems? Motivation Agenda Distributed System Structures CSCI 444/544 Operating Systems Fall 2008 Motivation Network structure Fundamental network services Sockets and ports Client/server model Remote Procedure Call (RPC)

More information

CONTROL MICROSYSTEMS DNP3. User and Reference Manual

CONTROL MICROSYSTEMS DNP3. User and Reference Manual DNP3 User and Reference Manual CONTROL MICROSYSTEMS SCADA products... for the distance 48 Steacie Drive Telephone: 613-591-1943 Kanata, Ontario Facsimile: 613-591-1022 K2K 2A9 Technical Support: 888-226-6876

More information

ESSENTIALS. Understanding Ethernet Switches and Routers. April 2011 VOLUME 3 ISSUE 1 A TECHNICAL SUPPLEMENT TO CONTROL NETWORK

ESSENTIALS. Understanding Ethernet Switches and Routers. April 2011 VOLUME 3 ISSUE 1 A TECHNICAL SUPPLEMENT TO CONTROL NETWORK VOLUME 3 ISSUE 1 A TECHNICAL SUPPLEMENT TO CONTROL NETWORK Contemporary Control Systems, Inc. Understanding Ethernet Switches and Routers This extended article was based on a two-part article that was

More information

21.4 Network Address Translation (NAT) 21.4.1 NAT concept

21.4 Network Address Translation (NAT) 21.4.1 NAT concept 21.4 Network Address Translation (NAT) This section explains Network Address Translation (NAT). NAT is also known as IP masquerading. It provides a mapping between internal IP addresses and officially

More information

IP Networking. Overview. Networks Impact Daily Life. IP Networking - Part 1. How Networks Impact Daily Life. How Networks Impact Daily Life

IP Networking. Overview. Networks Impact Daily Life. IP Networking - Part 1. How Networks Impact Daily Life. How Networks Impact Daily Life Overview Dipl.-Ing. Peter Schrotter Institute of Communication Networks and Satellite Communications Graz University of Technology, Austria Fundamentals of Communicating over the Network Application Layer

More information

The OSI Model: Understanding the Seven Layers of Computer Networks

The OSI Model: Understanding the Seven Layers of Computer Networks Expert Reference Series of White Papers The OSI Model: Understanding the Seven Layers of Computer Networks 1-800-COURSES www.globalknowledge.com The OSI Model: Understanding the Seven Layers of Computer

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT COMPUTER NETWORKS

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT COMPUTER NETWORKS BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT COMPUTER NETWORKS Friday 2 nd October 2015 Morning Answer any FOUR questions out of SIX. All questions carry

More information

UPPER LAYER SWITCHING

UPPER LAYER SWITCHING 52-20-40 DATA COMMUNICATIONS MANAGEMENT UPPER LAYER SWITCHING Gilbert Held INSIDE Upper Layer Operations; Address Translation; Layer 3 Switching; Layer 4 Switching OVERVIEW The first series of LAN switches

More information

Computer Networks/DV2 Lab

Computer Networks/DV2 Lab Computer Networks/DV2 Lab Room: BB 219 Additional Information: http://www.fb9dv.uni-duisburg.de/ti/en/education/teaching/ss08/netlab Equipment for each group: - 1 Server computer (OS: Windows 2000 Advanced

More information

Chapter 11. User Datagram Protocol (UDP)

Chapter 11. User Datagram Protocol (UDP) Chapter 11 User Datagram Protocol (UDP) The McGraw-Hill Companies, Inc., 2000 1 CONTENTS PROCESS-TO-PROCESS COMMUNICATION USER DATAGRAM CHECKSUM UDP OPERATION USE OF UDP UDP PACKAGE The McGraw-Hill Companies,

More information

The TCP/IP Reference Model

The TCP/IP Reference Model The TCP/IP Reference Model The TCP/IP Model Comparison to OSI Model Example Networks The TCP/IP Model Origins from ARPANET, DoD research network ARPA - Advanced Research Projects Agency Reliability was

More information

Internet Protocol Address

Internet Protocol Address SFWR 4C03: Computer Networks & Computer Security Jan 17-21, 2005 Lecturer: Kartik Krishnan Lecture 7-9 Internet Protocol Address Addressing is a critical component of the internet abstraction. To give

More information

cnds@napier Slide 1 Introduction cnds@napier 1 Lecture 6 (Network Layer)

cnds@napier Slide 1 Introduction cnds@napier 1 Lecture 6 (Network Layer) Slide 1 Introduction In today s and next week s lecture we will cover two of the most important areas in networking and the Internet: IP and TCP. These cover the network and transport layer of the OSI

More information

EITF25 Internet Techniques and Applications L5: Wide Area Networks (WAN) Stefan Höst

EITF25 Internet Techniques and Applications L5: Wide Area Networks (WAN) Stefan Höst EITF25 Internet Techniques and Applications L5: Wide Area Networks (WAN) Stefan Höst Data communication in reality In reality, the source and destination hosts are very seldom on the same network, for

More information

LAN Switching. 15-441 Computer Networking. Switched Network Advantages. Hubs (more) Hubs. Bridges/Switches, 802.11, PPP. Interconnecting LANs

LAN Switching. 15-441 Computer Networking. Switched Network Advantages. Hubs (more) Hubs. Bridges/Switches, 802.11, PPP. Interconnecting LANs LAN Switching 15-441 Computer Networking Bridges/Switches, 802.11, PPP Extend reach of a single shared medium Connect two or more segments by copying data frames between them Switches only copy data when

More information

Based on Computer Networking, 4 th Edition by Kurose and Ross

Based on Computer Networking, 4 th Edition by Kurose and Ross Computer Networks Ethernet Hubs and Switches Based on Computer Networking, 4 th Edition by Kurose and Ross Ethernet dominant wired LAN technology: cheap $20 for NIC first widely used LAN technology Simpler,

More information

hp ProLiant network adapter teaming

hp ProLiant network adapter teaming hp networking june 2003 hp ProLiant network adapter teaming technical white paper table of contents introduction 2 executive summary 2 overview of network addressing 2 layer 2 vs. layer 3 addressing 2

More information

Chapter 3. Internet Applications and Network Programming

Chapter 3. Internet Applications and Network Programming Chapter 3 Internet Applications and Network Programming 1 Introduction The Internet offers users a rich diversity of services none of the services is part of the underlying communication infrastructure

More information

Module 1. Introduction. Version 2 CSE IIT, Kharagpur

Module 1. Introduction. Version 2 CSE IIT, Kharagpur Module 1 Introduction Lesson 2 Layered Network Architecture Specific Functional Objectives On Completion of this lesson, the students will be able to: State the requirement for layered approach Explain

More information

VPN. Date: 4/15/2004 By: Heena Patel Email:hpatel4@stevens-tech.edu

VPN. Date: 4/15/2004 By: Heena Patel Email:hpatel4@stevens-tech.edu VPN Date: 4/15/2004 By: Heena Patel Email:hpatel4@stevens-tech.edu What is VPN? A VPN (virtual private network) is a private data network that uses public telecommunicating infrastructure (Internet), maintaining

More information

WAN Data Link Protocols

WAN Data Link Protocols WAN Data Link Protocols In addition to Physical layer devices, WANs require Data Link layer protocols to establish the link across the communication line from the sending to the receiving device. 1 Data

More information

Network Layer: Network Layer and IP Protocol

Network Layer: Network Layer and IP Protocol 1 Network Layer: Network Layer and IP Protocol Required reading: Garcia 7.3.3, 8.1, 8.2.1 CSE 3213, Winter 2010 Instructor: N. Vlajic 2 1. Introduction 2. Router Architecture 3. Network Layer Protocols

More information

Distributed Network Management Using SNMP, Java, WWW and CORBA

Distributed Network Management Using SNMP, Java, WWW and CORBA Distributed Network Management Using SNMP, Java, WWW and CORBA André Marcheto Augusto Hack Augusto Pacheco Augusto Verzbickas ADMINISTRATION AND MANAGEMENT OF COMPUTER NETWORKS - INE5619 Federal University

More information

2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET)

2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET) 2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET) There are three popular applications for exchanging information. Electronic mail exchanges information between people and file

More information

UIP1868P User Interface Guide

UIP1868P User Interface Guide UIP1868P User Interface Guide (Firmware version 0.13.4 and later) V1.1 Monday, July 8, 2005 Table of Contents Opening the UIP1868P's Configuration Utility... 3 Connecting to Your Broadband Modem... 4 Setting

More information

File Sharing. Peter Lo. CP582 Peter Lo 2003 1

File Sharing. Peter Lo. CP582 Peter Lo 2003 1 File Sharing Peter Lo CP582 Peter Lo 2003 1 File Sharing What is it? How is it different from File Transfer How it it done? CP582 Peter Lo 2003 2 This lecture we move away from the topic of transferring

More information

Lab 7.1.9b Introduction to Fluke Protocol Inspector

Lab 7.1.9b Introduction to Fluke Protocol Inspector Lab 7.1.9b Introduction to Fluke Protocol Inspector DCE SanJose1 S0/0 S0/0 SanJose2 #1 #2 Objective This lab is a tutorial demonstrating how to use the Fluke Networks Protocol Inspector to analyze network

More information

First Midterm for ECE374 03/09/12 Solution!!

First Midterm for ECE374 03/09/12 Solution!! 1 First Midterm for ECE374 03/09/12 Solution!! Instructions: Put your name and student number on each sheet of paper! The exam is closed book. You have 90 minutes to complete the exam. Be a smart exam

More information

Sage ERP Accpac Online

Sage ERP Accpac Online Sage ERP Accpac Online Mac Resource Guide Thank you for choosing Sage ERP Accpac Online. This Resource Guide will provide important information and instructions on how you can get started using your Mac

More information

Sage 300 ERP Online. Mac Resource Guide. (Formerly Sage ERP Accpac Online) Updated June 1, 2012. Page 1

Sage 300 ERP Online. Mac Resource Guide. (Formerly Sage ERP Accpac Online) Updated June 1, 2012. Page 1 Sage 300 ERP Online (Formerly Sage ERP Accpac Online) Mac Resource Guide Updated June 1, 2012 Page 1 Table of Contents 1.0 Introduction... 3 2.0 Getting Started with Sage 300 ERP Online using a Mac....

More information

Internet Firewall CSIS 4222. Packet Filtering. Internet Firewall. Examples. Spring 2011 CSIS 4222. net15 1. Routers can implement packet filtering

Internet Firewall CSIS 4222. Packet Filtering. Internet Firewall. Examples. Spring 2011 CSIS 4222. net15 1. Routers can implement packet filtering Internet Firewall CSIS 4222 A combination of hardware and software that isolates an organization s internal network from the Internet at large Ch 27: Internet Routing Ch 30: Packet filtering & firewalls

More information

Internet Working 5 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2004

Internet Working 5 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2004 5 th lecture Chair of Communication Systems Department of Applied Sciences University of Freiburg 2004 1 43 Last lecture Lecture room hopefully all got the message lecture on tuesday and thursday same

More information

Introduction to TCP/IP

Introduction to TCP/IP Introduction to TCP/IP Raj Jain The Ohio State University Columbus, OH 43210 Nayna Networks Milpitas, CA 95035 Email: Jain@ACM.Org http://www.cis.ohio-state.edu/~jain/ 1 Overview! Internetworking Protocol

More information

Final for ECE374 05/06/13 Solution!!

Final for ECE374 05/06/13 Solution!! 1 Final for ECE374 05/06/13 Solution!! Instructions: Put your name and student number on each sheet of paper! The exam is closed book. You have 90 minutes to complete the exam. Be a smart exam taker -

More information

Network Protocol Configuration

Network Protocol Configuration Table of Contents Table of Contents Chapter 1 Configuring IP Addressing... 1 1.1 IP Introduction... 1 1.1.1 IP... 1 1.1.2 IP Routing Protocol... 1 1.2 Configuring IP Address Task List... 2 1.3 Configuring

More information

Transport Layer. Chapter 3.4. Think about

Transport Layer. Chapter 3.4. Think about Chapter 3.4 La 4 Transport La 1 Think about 2 How do MAC addresses differ from that of the network la? What is flat and what is hierarchical addressing? Who defines the IP Address of a device? What is

More information

The OSI and TCP/IP Models. Lesson 2

The OSI and TCP/IP Models. Lesson 2 The OSI and TCP/IP Models Lesson 2 Objectives Exam Objective Matrix Technology Skill Covered Exam Objective Exam Objective Number Introduction to the OSI Model Compare the layers of the OSI and TCP/IP

More information

11.1. Performance Monitoring

11.1. Performance Monitoring 11.1. Performance Monitoring Windows Reliability and Performance Monitor combines the functionality of the following tools that were previously only available as stand alone: Performance Logs and Alerts

More information

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE

More information

IP address format: Dotted decimal notation: 10000000 00001011 00000011 00011111 128.11.3.31

IP address format: Dotted decimal notation: 10000000 00001011 00000011 00011111 128.11.3.31 IP address format: 7 24 Class A 0 Network ID Host ID 14 16 Class B 1 0 Network ID Host ID 21 8 Class C 1 1 0 Network ID Host ID 28 Class D 1 1 1 0 Multicast Address Dotted decimal notation: 10000000 00001011

More information

Chapter 2 - The TCP/IP and OSI Networking Models

Chapter 2 - The TCP/IP and OSI Networking Models Chapter 2 - The TCP/IP and OSI Networking Models TCP/IP : Transmission Control Protocol/Internet Protocol OSI : Open System Interconnection RFC Request for Comments TCP/IP Architecture Layers Application

More information

20. Switched Local Area Networks

20. Switched Local Area Networks 20. Switched Local Area Networks n Addressing in LANs (ARP) n Spanning tree algorithm n Forwarding in switched Ethernet LANs n Virtual LANs n Layer 3 switching n Datacenter networks John DeHart Based on

More information

Overview of TCP/IP. TCP/IP and Internet

Overview of TCP/IP. TCP/IP and Internet Overview of TCP/IP System Administrators and network administrators Why networking - communication Why TCP/IP Provides interoperable communications between all types of hardware and all kinds of operating

More information

Communication. Layered Protocols. Topics to be covered. PART 1 Layered Protocols Remote Procedure Call (RPC) Remote Method Invocation (RMI)

Communication. Layered Protocols. Topics to be covered. PART 1 Layered Protocols Remote Procedure Call (RPC) Remote Method Invocation (RMI) Distributed Systems, Spring 2004 1 Introduction Inter-process communication is at the heart of all distributed systems Communication Based on low-level message passing offered by the underlying network

More information

FINAL ASSESSMENT/EXAMINATION JULY 2015 PLEASE READ ALL INSTRUCTIONS CAREFULLY BEFORE YOU BEGIN THIS EXAMINATION

FINAL ASSESSMENT/EXAMINATION JULY 2015 PLEASE READ ALL INSTRUCTIONS CAREFULLY BEFORE YOU BEGIN THIS EXAMINATION THE UNIVERSITY OF TRINIDAD & TOBAGO FINAL ASSESSMENT/EXAMINATION JULY 2015 Course Code and Title: CNET 2001 Network Architecture Programme: B.A.Sc. ICT Computer Engineering Date: Tuesday July 28, 2015

More information

Procedure: You can find the problem sheet on Drive D: of the lab PCs. 1. IP address for this host computer 2. Subnet mask 3. Default gateway address

Procedure: You can find the problem sheet on Drive D: of the lab PCs. 1. IP address for this host computer 2. Subnet mask 3. Default gateway address Objectives University of Jordan Faculty of Engineering & Technology Computer Engineering Department Computer Networks Laboratory 907528 Lab.4 Basic Network Operation and Troubleshooting 1. To become familiar

More information