24
5. Requirements for Application Layer Gateways
This chapter specifies the requirements that were set when prototyping ALGs with CES began. The chosen solutions are also implemented in the actual prototype. In addition, this chapter explains why certain applications are used with the prototype testing. The first part discusses SIP and the second part of the chapter explains requirements when implementing FTP for CES.
5.1 SIP Application Layer Gateway
The first requirement for SIP ALG was that a client must be able to register to a server. Initially, the server and the client were placed in the same network. This helped checking, how the configurations in the software should be reflected to the messages processed by the prototype. This also narrowed down the options between different software to be used as the client or as the server.
The second requirement was related to the communication with the public network. The target was to be able to register to a server located on the opposite side of a CES device. The client can be located in either the local or the public network, but then the server is placed in another network. After registration has succeeded, the testing continued with SIP MESSAGEs. This can ensure that changing the addresses described in the Chapter 4 works properly.
After this, the public network part continued with the processing of the SIP packets that contain SDP information. As explained in the Chapter 4, the packets with an SDP part require more specific processing, like allocating addresses/ports for RTP traffic. After establishing a connection for RTP traffic in both directions, it was important to be able to terminate the call in the right manner. This means that all the messages required to end the call are transferred from one client to the server and then to the other client.
When one part of the solution was implemented, the algorithms related to different scenarios were started. These algorithms supported private network and CES-to-CES communication. Later, the algorithms using FQDNs instead of IP addresses were added to have two different options for message processing in every scenario. As a Fully Qualified Domain Name is one way to distinguish users, it can also be used as an identity. [8]
5. Requirements for Application Layer Gateways
25
The last important issue in the SIP ALG design was related to allocating resources. Depending on the test scenario, the resources needed for the communication can be allocated in a different phase of the SIP message processing. It is also important to release these addresses that are not used anymore.
5.2 FTP Application Layer Gateway
As a thesis objective, the FTP connections were required in the CES-to-CES communication and in the local communication. More specific information about FTP was given in the Chapter 4.
First requirement was that a host acting as a client is able to log in to the server. The order in the development of the algorithms was from public network communication to the private network communication and finally to the CES-to-CES communication. After the login was successful, the client needed to be able to download a file from the server. Performance was not the big issue in this thesis, so the transfer times are not recorded or analyzed.
Switching the transfer from active to passive and vice-versa, was an important feature. However, implementing it proved to be rather challenging as the aspects of the TCP, Seq/Ack, required specific processing to maintain a continuous signal flow.
At the end, the prototype was tested for simultaneous connections. This means that there can be more than one client communicating with the server at the same time. Transferring data, between the client and the server, needed to work also with parallel connections.
5.3 Design choices
When the Application Layer Gateways were designed it was decided that all of the traffic in the private network should flow through the CES device. This approach is similar to the solutions in the current mobile networks. It also improves the security of an individual user as the users are hidden from each other. However, the analysis of security is not an important aspect in this thesis.
The chosen approach naturally increases the amount of transferred packets. Another way to do this would be to transfer packets directly from a host to another host
5. Requirements for Application Layer Gateways
26
whenever possible. While this could be potentially a better solution in the short run, we argue that our design is more suitable for the future research. Our approach allows placing many private address realms behind one CES.
Any addresses located in the public network are left unchanged. This makes it easier to change from current edge devices to the CES approach without any additional requirements. Related to this, both of the Application Layer Gateways presented in this thesis are transparent to the end user.
The differences between the implemented version and the potential approach are discussed after example runs in Chapter 6 and also in Chapter 7. This is done to provide detailed comparison between the choices.