Alarms and events in WS500. Author Peter Adleff
|
|
|
- Tyrone Blankenship
- 9 years ago
- Views:
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 [email protected] Supervisor at Mälardalen University Daniel Flemström [email protected] Supervisor at ABB Power Technologies AB Peter Freyhult [email protected] 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
35 4.9 WS500 Multicast A&E server/client The Multicast A&E server/client is a part of the entire WS500 program which runs on windows platform. It is mainly built up by 2 components, a COM object and a SIDL object. The COM object stores all of the alarms and events and handles the multicasting on the LAN. It communicates with the WS500 A&E Viewer and process all of the WS500 Viewers requests such as filtering and browsing. It can also update the A&E Viewer through a callback pointer to the ActiveX control so it keeps the A&E Viewer updated. The SIDL component will be used to communicate with the SPIDER server for sending and receiving alarms and events updates (see figure 4.1). The Multicast A&E can have two different roles; it can act as a server or a client depending how it is configured before startup. The server and client roles are described in the following sections WS500 Multicast A&E Server Role When acting as a Multicast A&E server it can either be registered at the SPIDER server as primary or as secondary server. If it is chosen as a secondary server it will act as a Multicast A&E client until the primary server is not operating as it should. If the primary server would fail for some reason to communicate with the SPIDER server, the SPIDER would then make the secondary to primary and vice versa (see figure 4.2). When the Multicast server is started all the stored alarms and events will be loaded from the local hard drive. It will then connect to the SPIDER server to get all missing alarms and events under the offline period until it has them all (identical lists with the server). After synchronizing the server process all newly incoming alarms and events form the SPIDER server and send them through the multicast channel out to the Multicast clients. It will also periodically send ping messages with the latest sequence numbers to tell all the clients what the latest alarm end events are. By sending periodic ping messages it also tells the clients that there is a Multicast server up and running and has connection to the SPIDER server. The functionality of the primary server can be illustrated with the state-chart below. 35
36 Figure 4.6 State-chart for the Multicast A&E server 1. Under the startup it will load every alarm and event stored on the hard drive. 2. All the alarms and events are loaded; try getting an instance of the SPIDER server object and register. 3. Registration failed. Print error message with possible cause. 4. Retry to get an instance of the SPIDER server object and register. 5. Instance created correctly and registration successful. 6. Download alarms and events until their sequence number matches the SPIDER servers. 7. Alarms and events sequence number OK. 8. Send multicast packets with new alarms and events updates if there are some. 9. Send multicast ping packets with the latest alarm and event sequence number. 10. Shutdown 11. Save all the alarm and event data to hard drive Sending multicast packages To be able to send multicast packages the COM component has a multicast socket created which it can send the packages through. See appendix B for a socket creation. A router and a switch will discard any UDP packages if it will receive too many so to prevent to flood the network if there for some reason are thousands of alarms per second, the Multicast A&E server will not send all incoming alarm/event updates as they arrive. It will instead store them and send a configurable number of them in each package and wait for adjustable time between them. This will give an even flow of data in the network even with big peeks of alarms and events. Every alarm and event data has some overhead with some extra information besides the actual alarm or event. This is for the system to recognize each alarm/event and its state etc. See appendix C for the alarm and event structure. To ensure that the UDP packages have not been modified, an error check has been added into each package so called CRC value. Before the server sends any packages it calculates a CRC value of the content in the package by using an algorithm known as Cyclic Redundancy Check (CRC). The result will be a 32-bits integer which will be added to the multicast message. If the contents of a package are changed, its CRC value changes as well. This allows the CRC number to be used as a "checksum" at the receiving client in order to identify whether or not the package has changed. See Appendix D for an example of creating the CRC table and processing a text string through it to get a CRC value. 36
37 4.11 WS500 Multicast A&E Client Role Every other connected WS500 clients on the LAN runs in Multicast client mode even the one configured as a secondary Multicast server as long as the primary is up and running correctly. They all have a SIDL connection directly to the SPIDER A&E server so they can download missing alarms and events if they need to. Just like the startup of the Multicast A&E server the client also loads all stored alarms and events to the memory from the local hard drive. It will then ask the SPIDER server if it is missing any by asking what the latest ones have for sequence numbers and download all new ones if there are some. After it has synchronized all alarms and events so they have identical lists the client will start to accept multicast messages from the Multicast A&E server by joining the multicast group (see section 2.5). It has also a timeout function, if the Multicast A&E server is not sending any ping or alarm/event messages a timeout will occur. It will then warn the client operator that the Multicast A&E server is not operating as it should but still give the option to download alarms and events manually from the SPIDER A&E server. The functionality of the multicast client can be illustrated as the state-chart below. Figure 4.7 State-machine for the Multicast A&E client 1. Under the startup it will load every alarm and event stored on the hard drive. 2. All the alarms and events are loaded; try getting an instance of the SPIDER server object. 3. Creation failed. Print error message with possible cause. 4. Retry to get an instance of the SPIDER server object. 5. Instance created correctly. 6. Download alarms and events until their sequence number matches the SPIDER servers. 7. Alarms and events sequence number OK. 8. Start receiving multicast packets with new alarm/event updates or ping. 37
38 9. Timeout occurred. No ping or no new packages from Multicast A&E server. Ask the SPIDER server for the last alarm and event sequence numbers. Download if any are missing. 10. Shutdown 11. Save all the alarm and event data to hard drive The behavior 1 to 7 is the same as for the Multicast A&E server role (see section 4.10) Receiving multicast packages Every multicasted package is first checked for CRC errors. If it fails the test it will be discarded otherwise if its new alarm or event updates it will update its own list with them. If it s a new ping message with the latest alarm and event sequence number it will match those with its own sequence numbers. If they do not match it will download the missing ones from the SPIDER A&E server directly through a SIDL connection. 38
39 4.12 WS500 A&E Viewer role The WS500 A&E View is an ActiveX control written in Visual Basic. The WS500 system has built in functionality to open them in a window frame. It is based on a list control (Microsoft s MSFlexgrid) with a scrollbar which can display the alarms and events. In the A&E Viewer the client can acknowledge alarms and make notes to events. Browsing and filtering the alarm/event information are made by no noticeable delay due to the local connection to the Multicast A&E COM object (see fig 4.1) Scrolling alarm/event lists To optimize the performance in the ActiveX control, the list only stores the same number of alarms/events that are visible because Microsoft s MSFlexgrid becomes slow to scroll if there are many items in the list. In the figure below we can see that 20 alarms are visible but the scrollbar to the right indicates that there are many more. Even so the list only holds 20 in the memory and when the user uses the scrollbar to browse the alarms it send the scrollbars relative position to the Multicast A&E object which translate the position into the correct alarm index and returns the next 20 from there. Figure 4.8 Alarms displayed in WS500 A&E Viewer 39
40 Modifying an alarm/event The user has the option to write notes on different alarm/events and acknowledge alarm. When writing a note or acknowledging an alarm there can be a small delay because the information must travel to the SPIDER A&E server and back to the Multicast A&E server and out on the multicast channel before the A&E Viewer will be updated see figure 4.9 for an example. Figure 4.9 The data flow when acknowledge an alarm 1. The user acknowledges an alarm and sends the parameters to the Multicast A&E object (client or server, does not matter in this case) 2. The Multicast A&E object sends the information to the SPIDER A&E server through the SIDL connection. 3. The Spider A&E server updates the alarm status and sends the information to the Multicast A&E server throw the SIDL connection (The callback to the Multicast A&E server) 4. The Multicast A&E server updates its own lists with the new information and sends it out throw the multicast channel. 5. The Multicast A&E clients receive the updated alarm status and update its own lists with the new information and then update the WS500 A&E Viewer through the callback reference. 6. The WS500 A&E viewer gets the new information and displays the modification The example above shows the data flow throw the network when acknowledging an alarm but the same procedure is done with any modification on a event or alarm. It 40
41 must be updated and confirmed by the SPIDER A&E server before the WS500 A&E Viewer can display the change. 41
42 4.13 Analysis I ran some test during the development of the prototype and it seemed to work very well but the test only included one SPIDER A&E server and one Multicast A&E server and 4 Multicast A&E clients (which one were running as a secondary Multicast A&E server). I tested the system by simulating 1000 new alarm/events per second under a couple minutes and it performed perfectly. I also shut down the Multicast A&E server so the SPIDER server had to switch to the secondary server and it also worked well. The prototype met our requirements of the system but to really test what it is capable of it needs to be tested further in a real environment with hundreds of clients and real live data. But the prototype indicated that the multicasting technology could work. The advantages and disadvantages below are my assumptions of the system Advantages The biggest advantage with the multicasting approach is that the SPIDER server load and the network load is minimized when the SPIDER server only needs to send updates to one computer on each LAN, the Multicast A&E server, which also only needs to send one multicast package to all other Multicast A&E clients on the LAN instead of sending the same package to each and one of them. Another advantage is that the user now can filter and browse the alarms/events without any problems or delays because the lists are stored locally on each computer Disadvantages One disadvantage is if a client is started for the first time or has been offline a very long time it will take a while for it to catch up because it will have to download all missing alarms/events directly from the SPIDER server until it synchronized the lists. Another disadvantage is the overhead information needed in every package to ensure a reliable multicasting and the extra processing with it. 42
43 Future work The client sides of the prototype were implemented in the WS500 system but on the server side it was developed as a stand alone application meaning that the alarms and events were simulated and was not connected to their SPIDER server and database. The prototype was tested on ABBs LAN but only 4 of the computers were connected as Multicast A&E clients. It worked very good even with large peaks of new alarms and events and all of them reached the clients. But to really know how the system would perform it should in the future be tested with many more clients and the server should be connected so real live data can be used to give a better understanding on how the would work in a real environment. 43
44 Conclusion This master thesis has really gained me much knowledge in programming I had to learn new technologies such as SIDL (CORBA) and COM since ABBs system was mainly built up with them. It was not easy at first and I did not know what to expect and it took some time to get familiar with it but it turned out not to be a problem. The biggest problem was to get Microsoft Visual Studio 6.0 to compile SIDL together with the rest of my projects. I also had to refresh my knowledge in TCP/IP for the multicast functionality. Designing and coding were the most time consuming tasks. The server on UNIX platform and the client implementation on Windows were written in C++. But before I started to develop the prototype I created small test applications in SIDL, COM and a multicast chat application to get a better knowledge of the technologies. After that I started to put it all together and the application grew and then I really started to see why it is so important to document everything because it was a lot of code produced. It was a lot of testing and debugging along the way and it was really difficult to that when I needed to debug one computer in UNIX (the SPIDER server), and one Multicast server and at least one Multicast client at the same time. I had to write to a log file to really see what happened sometimes. At the most I run some tests with a SPIDER A&E server, Multicast A&E server and 4 Multicast A&E clients with very good result when simulating a large number of new alarms and events (up to 1000 per seconds). 44
45 References 1. Computer Networks By Andrew S Tanenbaum Publisher: Prentice Hall; 3 rd edition, 1996 ISBN: First-Year Companion Guide, 2dd Edition, By Cisco Systems Publisher: Cisco Press, 2001 ISBN: TCP/IP Illustrated, Volume 1, The Protocols By Stevens W Richard Publisher: Addison-Wesley Professional; 1 st edition, 1994 ISBN: Distributed Systems By Andrew S Tanenbaum, Maarten Van Steen Publisher: Prentice Hall ISBN: A Router Assisting Control Tree Configuration Mechanism for Relaible Multicast By I.Chong ICOIN 2002, LNCS 2343, pp , Springer-Verlag Berlin Heidelberg, Frameworks for Component-Based Client/Server Computing By: Scott m. Lewndowski Department of Computer Science, Brown University ACM Computing Surveys, Vl.30, No.1, March Beginning Atl Com Programming, Beginning By Richard Grimes, Alex Stockton, George Reilly, Julian Templeman Publisher: Wrox Press, 1998 ISBN: C++ Programming with CORBA By Andreas Vogel, Bhaskar Vasudevan, Maira Benjamin, Ted Villalba Publisher: John Wiley & Sons Ltd, 1999 ISBN: Inside CORBA By Thomas Mowbray Publisher Addison Wesley Longman, 1997 ISBN:
46 17. Enterprise Application Integration with CORBA Component and Web-Based Solutions By Ron Zahavi Publisher: John Wiley & Sons Ltd, 1999 ISBN: SIDL SPIDER IDL Kjell Lyxell ABB Automation Systems Power Utilities Reversion Programming Distributed Application With COM And Visual Basic 6.0 By Ted PATTISON Publisher: Microsoft Press, 1998 ISBN: Alarms and Events Custom Interface By OPC Foundation Version 1.10, Final Release OCTOBER 2,
47 Appendix A Example of duplicating a remote SIDL object as a primary server: The client calls the AddServerObject method with its own reference (sink) as a parameter. The m_multicastservernode is the list containing a struct of server callbacks for the secondary and primary servers and the index is a counter of pairs in the list. void AddServerObject(ALARM_EVENT::ICallback_ptr sink) { m_multicastservernode[index].primary = ALARM_EVENT::ICallback::_duplicate(sink); } 47
48 Appendix B Creating a multicast socket in C++ BOOL CMulticastSocket::CreateSendingSocket() { // m_sendsocket is of type CAsyncSocket if(!m_sendsocket.create(0, SOCK_DGRAM, 0)) // Create an unconnected UDP socket return FALSE; if(!setttl(m_timetolive)) // Set Time to Live as specified by user AfxMessageBox(L"Warning! Error Setting TTL"); SetLoopBack(m_bLoopBack); // Enable/Disable Loopback } return TRUE; BOOL CMulticastSocket::SetTTL(UINT m_timetolive) { /* Set Time to Live to parameter TTL */ if(m_sendsocket.setsockopt(ip_multicast_ttl, &m_timetolive, sizeof(int), IPPROTO_IP) == 0) return FALSE; /* Error Setting TTL */ else return TRUE; /* else TTL set successfully */ } void CMulticastSocket::SetLoopBack(BOOL bloop) { if(!bloop) /* if required to stop loopback */ { bforcenoloopback = TRUE; /* Internally making a note that loopback has to be disabled forcefilly */ Port */ } } // Get IP/Port for send socket in order to disable loopback forcefully */ char localhost[255]; gethostname(localhost, 255); struct hostent *host = gethostbyname(localhost); /* Get local host IP */ m_strlocalip = inet_ntoa (*(struct in_addr*)*host->h_addr_list); CString Dummy; // Dummy string to be passed to the GetSockName function m_sendsocket.getsockname(dummy, m_nlocalport); /* Get Port Number for Sending 48
49 Appendix C Constructed types in SIDL These structs shows information stored for each alarm/event struct Alarm { short status; short acknowledged; short persistant; long sequencenr; long index; long alarmid; long versionnr; wstring msg; }; struct Event { short status; long sequencenr; long index; long eventid; long versionnr; wstring msg; wstring comment; }; 49
50 Appendix D Cyclic Redundancy Check (CRC) //////////////////////////////////////////////////////////////////////////////// // Name // ---- // InitCRC32Table // // Description & Purpose // // This method is called to initialize the CRC table. // // Input & Output // // ////////////////////////////////////////////////////////////////////////////////// VOID SIDLAlarmEventSource::InitCRC32Table() { ULONG ulpolynomial = 0x04c11db7; // This is the official polynomial used by CRC-32 // 256 values representing ASCII character codes. for(int i = 0; i <= 0xFF; i++) { crc32_table[i]=reflect(i, 8) << 24; for (int j = 0; j < 8; j++) crc32_table[i] = (crc32_table[i] << 1) ^ (crc32_table[i] & (1 << 31)? ulpolynomial : 0); crc32_table[i] = Reflect(crc32_table[i], 32); } } //////////////////////////////////////////////////////////////////////////////// // Name // ---- // Reflect // // Description & Purpose // // This method is a requirement for the official CRC-32 standard. // // Input & Output // // ////////////////////////////////////////////////////////////////////////////////// ULONG SIDLAlarmEventSource::Reflect(ULONG ref, char ch) { ULONG value(0); // Swap bit 0 for bit 7 // bit 1 for bit 6, etc. for(int i = 1; i < (ch + 1); i++) { if(ref & 1) value = 1 << (ch - i); ref >>= 1; 50
51 } } return value; //////////////////////////////////////////////////////////////////////////////// // Name // ---- // GetCRC // // Description & Purpose // // This method is creates CRCs using the lookup table. // // Input & Output // // // [in] text - text which will be processed for the CRC value // [in] len - text lenght ////////////////////////////////////////////////////////////////////////////////// INT SIDLAlarmEventSource::GetCRC(CComBSTR &text, int len) { ULONG ulcrc(0xffffffff); // set bit high unsigned char* buffer; buffer = (unsigned char*)(lpctstr)text; // Perform the algorithm on each character // in the string, using the lookup table values. while(len--) ulcrc = (ulcrc >> 8) ^ crc32_table[(ulcrc & 0xFF) ^ *buffer++]; } return ulcrc ^ 0xffffffff; // OR operation with the beginning value (all bits set to high). 51
52 APPENDIX E In the figures below we have two local area networks (LANs) connected to a router. All the connected hosts on each LAN have IP addresses which are class A, B or C (see section figure 2.3). E 1. Unicast transmission example. A unicast transmission is between two nodes somewhere on the same LAN or between two different LANs on the Internet. In this example Host 2 on LAN 1 is communicating with Host 3 on LAN 2. They communicate by targeting each others unique IP addresses and port number and the router and switches will transfer the packages to the correct destination. 52
53 E2. Broadcast transmission example. Host 1 on LAN 1 is sending a broadcast message in this example. The switch receives the message and sends it through all its ports. Every host on LAN 1 and the router will receive it. But the hosts on LAN 2 cannot receive any broadcast message from LAN 1 because the broadcast domain is limited to the routers interfaces (it stops at the router). All broadcast messages are destined with an IP class E (see figure 2.3). 53
54 E3. Multicast transmission example. In this example we see that Hosts 2 and 4 on LAN 1 is receiving multicasted messages and also the Host 3 on LAN 2. The hosts that are willing to accept these messages need to join a multicast group first (see section 2.5.1). When Host 1 on LAN 1 sends the multicast message the switch on LAN 1 will then forward the message to all hosts in the multicast group (LAN1) and the router. Normally the multicast domain is limited to the router interface as the broadcast domain (see E2) but the router can be configured to send multicast messages further to other LANs and expand the multicast domain as in this example. The configured router will then send the message to LAN2 where the switch will check if there are any hosts in a multicast group that matches the received multicast message. In this example Host 3 has joined and will receive it. 54
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
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
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
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
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
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
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
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
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:
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
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.
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
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.
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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
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
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
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
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
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).
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:
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
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
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,
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
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
Chapter 3: Review of Important Networking Concepts. Magda El Zarki Dept. of CS UC Irvine [email protected] http://www.ics.uci.
Chapter 3: Review of Important Networking Concepts Magda El Zarki Dept. of CS UC Irvine [email protected] http://www.ics.uci.edu/~magda 1 Networking Concepts Protocol Architecture Protocol Layers Encapsulation
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.
What is CSG150 about? Fundamentals of Computer Networking. Course Outline. Lecture 1 Outline. Guevara Noubir [email protected].
What is CSG150 about? Fundamentals of Computer Networking Guevara Noubir [email protected] CSG150 Understand the basic principles of networking: Description of existing networks, and networking mechanisms
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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,
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
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
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
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
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
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,
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
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
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
VPN. Date: 4/15/2004 By: Heena Patel Email:[email protected]
VPN Date: 4/15/2004 By: Heena Patel Email:[email protected] What is VPN? A VPN (virtual private network) is a private data network that uses public telecommunicating infrastructure (Internet), maintaining
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
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
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
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
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
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
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
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
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
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....
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
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
Introduction to TCP/IP
Introduction to TCP/IP Raj Jain The Ohio State University Columbus, OH 43210 Nayna Networks Milpitas, CA 95035 Email: [email protected] http://www.cis.ohio-state.edu/~jain/ 1 Overview! Internetworking Protocol
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 -
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
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
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
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
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
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
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
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
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
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
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
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
