Network communication between computers is used for information exchange between different devices and humans. System architecture considers dividing complex systems to interrelated smaller parts and constructing the whole system easily shows up with the relations of the parts. Architectural decisions are the design decisions that concern the whole system or one or more core parts. These decisions influence system quality issues. Typical quality characteristics are portability, maintainability and adaptability. Architectural decisions are very important due to the direct or indirect effect of non-functional requirements such as software quality characteristics. Therefore, designers should also consider the possible side effects of architectural decisions.
This invention discloses a Layer Architecture (LA) and its method of implementation.
One object of the invention is to create a generic and modular layer architecture that can be used in layered network communications between devices.
Another object of the invention is to create a structure where one can use it and adapt it in a network as one of the network layers within the network structure wherein two or more devices communicate via the network.
Another object of the invention is to deploy a non-transitory computer-readable medium having embodied thereon a computer program configured to cause a processor to communicate between two endpoints connected to a network;
Communications layers are defined by Open System Interconnection (OSI) to divide a complex task to several simpler pieces with piece having a certain function. It is a conceptual “Seven Layer Reference Model” describing the handling and transmission of data between networking devices. Alternatively, TCP/IP is a “Four Layer Reference Model” which is originally developed by The Defense Advance Research Projects Agency (DARPA) to interconnect defense networks.
Main difference between TCP/IP and OSI model is the lack of the definition of the communication layer protocols on OSI. Common output of each model is the usage of communication layer concept, however, TCPTP model is widespread in practice.
Communication layers may consist of one or several protocols which are standardized by organizations such as ETSI, ANSI, ITU and IETF. Protocol is a set of standardized rules and sometimes a protocol may be used interchangeably with the corresponding layer. Protocols and layers have some common features as follows:
The above general rules, requirements and features shall be used for the design and implementation of the layer and the layer protocols which form communication software.
LA is an object oriented architecture which is used to design and implement communication layers and protocols. It proposes a generic and a modular structure for the communication layers. In this architecture, forenamed common features of communication layers and protocols are included. Therefore, LA is a layer or a protocol design model. LA aims to provide the quality characteristics such as maintainability, adaptability and efficiency. Additionally, it takes into account the results and the possible side effects of architectural decisions.
Object oriented modeling techniques are used While designing the LA.
Designers can port and adapt the LA to new platforms easily. LA is useful in terms of understandability and learnability for the designers. LA is maintainable in terms of analyzability, changeability and testability for colleagues such as Test or System Engineering staff. Therefore, LA provides the quality characteristics such as usability, maintainability and portability.
Layer configuration parameters are stored in layer configuration parameters unit 34. Layer manager unit 33 accesses the layer configuration parameters by communicating with layer configuration parameters unit 34. Layer manager initializes protocol by using the configuration parameters received from Layer Configuration Parameters Unit 34. Protocol Manager 35 provides management function to follow a predetermined protocol. These functions include finding related control manager and sending packets and events to the identified control manager, Protocol Manager 35 handles any error conditions based on the current protocol.
Protocol Manager 35 controls the currently received packet and directs it to the related communication unit if needed, and reports the incoming information from the communication units to the monitor unit which it owns. If stated in the Standard, protocol manager 35 processes the protocol using one or more states according to the events.
Protocol Manager Unit 35 communicates with Protocol Packet Unit 36 that prepares packets, parses packets, controls and checks packets, allocate packets, de-allocate packets, encapsulate packets and de-capsulate packets. Protocol Packet Unit 36 receives packets 70 from Data Queue Manager Unit 43. Data Queue Manager Unit 43 processes the currently received protocol packet and communicates with Outgoing Queue Unit 45 and Incoming Queue Unit 44. Outgoing Queue Unit 45 stores outgoing protocol packets. Incoming Queue Unit 44 stores incoming protocol packets. Data Queue Manager Unit 43 has connection with Fragment Reassembly Unit 40, QoS Provider Unit 41 and Automatic Repeat Request Unit 42. QoS Provider Unit 41 provides QoS mechanisms such as flow control, congestion control, packet priority, connection priority, service delay, reliability or throughput. QoS Provider Unit 41 may also process proxy mechanisms if required.
Fragmented Reassembly Unit 40 fragments big packets coming from upper layer and reassemble protocol packets coming from lower layer if required. Fragment Reassembly Unit 40 communicates with Protocol Communication Unit 37 by connection 77. Connection 77 between Fragmented Reassembly Unit 40 and Protocol Communication Unit 37 may or may not be used depending upon the protocol used. Some protocols may use this communication while others may not require this communication. Therefore connection 77 is a protocol dependent connection.
Protocol Communication Unit 37 controls the currently received packet and directs it to the related communication unit if needed, and reports the incoming information from the communication units to the monitor unit which it owns. Protocol Communication Unit 37 processes the protocol using one or more states according to the events, if stated in the used standard. Protocol Communication Unit 37 communicates with Protocol Table 38 which consists of information about the protocol. If defined on the Standard, it has one Quality Of Service (QoS) unit which provides related requirements. QoS Provider Unit 41 communicates with Protocol Communication Unit 37 by connection 79. Connection 79 between QoS Provider Unit 40 and Protocol Communication Unit 37 may or may not be used depending upon the protocol used. Some protocols may use this communication while others may not require this communication. Therefore connection 79 is a protocol dependent connection.
Automatic Repeat Request Unit 42 provides reliable packet transmission and communicates with Protocol Communication Unit 37 by connection 80. Communication 80 between Automatic Repeat Request Unit 42 and Protocol Communication Unit 37 may or may not be used depending upon the protocol used. Some protocols may use this communication while others may not require this communication. Therefore connect on 80 is a protocol dependent connection.
State Design Pattern Unit 200 comprises State Unit 46 and Concrete State Unit 47. Protocol Communication Unit 37 processes the State Design Pattern Unit for each triggered event. State Design Pattern Unit 200 allows the Protocol Communication Unit 37 to manage internal communication states and alter its behavior to the events when its internal state changes. State Design Pattern Unit 200 includes Concrete State Unit 47 for each of the communication states. Each Concrete State Unit 47 determines the behavior to the events and the next state. State Unit 46 is a base class for all Concrete State Units 47 and it processes the common events which are not state specific.
Protocol Table Unit 38 helps with updating and configuring protocol information if such an update is needed. Protocol Table Unit 38 is connected to Protocol Manager Unit 35 and Protocol Communication Unit 37. Protocol Table Unit 38 includes static or dynamic protocol parameters such as routing table, caches (DNS, ARP, etc.), ATM or X.25 PVC table, protocol configuration parameters etc. Protocol Manager Unit 35 and Protocol Communication Unit 37 use the Protocol Table Unit 38 to manage the protocol parameters through the operations such as get and set.
Layer Monitor Unit 39 monitors and stores various information and performance related information about the protocol used. Layer Monitor Unit 39 also performs processing of statistics for the layer, status, state transitions, connections and alarms. Layer Monitor 39 is connected to Protocol Manager 35. Layer Manager Unit 33 and Protocol Manager Unit 35 both use Layer Monitor Unit 39 to store the information about the layer and layer protocols. Layer Monitor Unit 39 may send stored information to the out to debug and monitor the layer. Information may be about errors, alarms, counters, events, statistics and status of the units of the layer and layer protocols.
Fragment Reassembly (FR) unit 40 fragments big packets coming from upper layer and reassemble protocol packets coming from lower layer if required.
LA components, their relations and the direction of the relations are determined as defined above.
In another embodiment of the invention, the Layer Architecture is applied to the Transport Layer 201 of a network as shown in
Transport Layer Manager 93 manages the upper layer (application layer) and lower layer (IP layer) interfaces. It routes the incoming requests or packets from these interfaces to the TCP Manager 95 or UDP Manager 94 according to the type of them. Similarly, it routes request or packets from TCP Manager 95 and UDP Manager 94 to the appropriate interface. LTDP Manager 94 realizes the UDP protocol and uses the UDP Packet Unit 96. UDP Packet Unit 96 processes the UDP protocol packet operations such as pack, parse, control, check, allocate, de-allocate, encapsulate and de-capsulate.
TCP Manager 95 manages all TCP connections by using TCP Packet Unit 97 and TCP Session Units 202 each representing a TCP connection. TCP Packet Unit 97 processes the TCP protocol packet operations such as pack, parse, control, check, allocate, de-allocate, encapsulate and de-capsulate. TCP Session Unit 202 manages the TCP connection by using TCP Automatic Repeat Request Unit 101, TCP Packet Unit 97, TCP State Unit 102 and TCP concrete state units which are generalized from TCP State Unit 102. RFC 793 defines eleven number of TCP connection states which are represented by the concrete state units such as Closed, Listen, SynSent, SynRcvd, Estab, CloseWait, LastAck, Closing, FinWait1, FinWait2, TimeWait. Details of the TCP states can be found in RFC 793. TCP Session Unit 202 processes the TCP State Unit 102 for each triggered event and as a result, TCP state is updated and some action is executed according to the current state. TCP Automatic Repeat Request Unit 101 is responsible for reliable TCP communication. It has TCP Data Queue Manager 100 which manages incoming and outgoing TCP buffers by using TCP Incoming Queue Element Units 99 and TCP Outgoing Queue Element Units 98. TCP Incoming Queue Element Unit 99 and TCP Outgoing Queue Element Unit 98 are generalized from TCP Packet Unit 97 and they process incoming and outgoing TCP buffer operations such as add, delete, find, copy. generate and release.
Because of the nature of TCP, the main class of this protocol. TCP Manager 95 needs a session oriented structure with connection states to be in interaction with itself Firstly, connection oriented nature requires use of un-estimated but platform dependent number of TCP Sessions 202 representing each connection, and secondly, stateful nature of each TCP connection needs a state design pattern consisting, of TCP Session 202 class and generalized state classes connected with each session.
Reliability of the protocol is provided by TCP Automatic Repeat Request 101 which is also using a TCP Data Queue Manager 100 for packet queueing purposes. All TCP packets coming from the lower layer and all application data coming from the upper layer are processed, coded or decoded by the help of TCP Packet class 97 connected. to TCP Manager 95. TCP Packet class 97 is also connected to TCP Session Unit 202 and to TCP Data Queue Manager 100.
In contrast to TCP, UDP is modeled with only UDP Manager class 94 assisted with UDP Packet class 96. Basic role of UDP, and its limited capabilities, let this protocol be modeled as seen in in
UDP Manager 94 is connected to UDP Packet Unit 96.
The method for performing the operations of different units within the LA is disclosed in
If the event is related to a lower layer then the system moves to step 314 where lower layer was notified about the event. Upon this confirmation, the system moves to step 316 where services list used from the lower layer is checked. Upon checking the services, the system moves to step 317 where the information is sent to the layer monitor. After the system sends the information to Layer Monitor 39, the system moves to step 318 to check if the system should wait or continue. If the system has to wait then the system moves to step 319 where the system waits for an input event. If the system moves to step 320 then the system continues its operation.
If during the operation in step 309, if a proper protocol manager found then the system moves to step 322 in which case the event is processed based on the protocol standard definition. In step 323, proper process protocol packet and protocol table are used. In step 324 a related protocol communication unit is searched. If a related protocol communication unit is not found then the system produces an error in step 326 and this error signal is presented to the user to let the user know that there is no proper communication unit in this system to handle the incoming event that requires a specific communication unit.
If in step 325 a proper protocol communication unit is found then the system moves to step 328 where the state design pattern is processed in the protocol communication unit. After the process of the state design protocol, the system moves to step 330 where the event is processed. After the process, the system performs the event requirement according to the current state. Afterwards the system moves to step 332 where the system goes to the next state. In step 335 the system checks if there is any error. If there is an error then the system moves to step 334 where the system stops and reports the error.
If in step 335 there is no error then the system moves to step 336 for process.
control management. In step 338, if required, the system fragments outgoing packets and reassembles incoming packets using Data Queue Manager. The system moves to step 339 if it is required by the protocol to provide QoS services. Afterwards, if it is required by the protocol, the system moves to step 340 to provide reliability requirements. The system manages steps 338, 339 and 340 with the help from step 347 where incoming queue and outgoing queue are managed by one or more Incoming Queue element and Outgoing Queue Element. The system uses Protocol Packet for operations such as add, delete, copy, generate, allocate and de-allocate.
While the foregoing written description of the invention enables one of ordinary Skill to make and use what is considered presently to be the best mode thereof, those of ordinary skill will understand and appreciate the existence of variations, combinations, and equivalents of the specific embodiment, method, and examples herein. The invention should therefore not be limited by the above described embodiment, method, and examples, but by all embodiments and methods within the scope and spirit of the invention.