Nat Traversal For Video tutorial Streaming Applications Information Technology Essay

Video loading is considering one of the famous technologies which is employed today. It provides the ability to playback video files remotely through computer systems. The demand because of this technology is rapidly increasing anticipated to endemic of Internet and increasing of the network bandwidth[1]

While HTTP protocol uses one TCP interface at the move layer, RTP may use many plug-ins. RTP can use UDPs or TCPs jacks at the transfer layer depending on how much the packet route is experienced packet reduction [2]. In low packets reduction environment, the utilization of RTP over UDP protocol is more suitable, since in marketing streaming, the small proportion of packets reduction better than packets wait. Hence, the bigger trustworthiness of the TCP is not desired[3]. UDP/RTP in addition has the multicasting feature and has the capacity to deal with real time communication because of its features in bandwidth, jitter, dependability and end node's handling.

RTP/TCP can cause the training video streaming to suffer from discontinuity because the need to retransmission and reordering the packets, whereas RTP/UDP can suffer from dropping the packets by some filtration systems (firewalls) in the Internet COMPANY (ISPs). Some ISPs drop UDP packets because they are connectionless hence unfair against TCP traffic. They also need high control power and memory space to ensure security [4]. But the main issue that may appear is with all the RTP with the Network Address Translation (NAT). NAT drops any RTP/UDP or RTP/TCP packets that are initialized from the exterior (Internet) when incoming to the end-systems (behind the NAT).

The NAT is a technology that permits many computers on a single network to share a open public Internet Protocol (IP) address for being able to access the Internet. The primary reason behind the wide spread of using the NAT is the limited range of the available IPv4 addresses [5].

The use of RTP/UDP or RTP/TCP video streaming is started out with a TCP connection that is set up by a need from the client to the server, after original negotiation using the RTSP protocol on a single established TCP channel, the server starts off video streaming through UDP or TCP plug-ins initialized from the server not through the original RTSP/TCP channel [2].

The NAT allows to move the outgoing connections requests from a bunch behind the NAT into the outdoors network (like Internet) [6], nonetheless it does not permit to pass any connection get from the outside network (like Internet) to any coordinator behind the NAT [7]. It is because the translation table entry is designed only when a client (behind the NAT) initializes a get to connect to a host externally network (Internet) [8], [9]. In case the initialized request came from a host on the outside network of the NAT in to the inside network, the NAT cannot identify the destination host for this request and the bond between the exterior host and the within one cannot be appear [8], [10]. Regarding to the RTP/UDP video recording loading, the NAT will not permit the UDP video loading channels to complete to the client behind the NAT, because the RTP/UDP channels are initially founded from the server (on the web).

Considering the RTP weakness tips, the HTTP protocol, is the preferable choice for video tutorial streaming. However, HTTP protocol also has known weakness factors: an individual can have problems with quality lowering and playback discontinuity because of the probing behavior of TCP protocol. This may also cause an oscillating throughput and poor restoration of the packet rate.

In contrast, the UDP protocol provides a mean to keep the desired sending rate constant. In addition, it keeps streaming clean and reduces the TCP related control.

This paper reveals a novel method to utilize the benefits associated with both TCP and UDP. The proposed method allows NAT traversal by converting each RTP/UDP and RTCP/UDP packet into imitation TCP packet right before being dispatched (at data link layer) with the addition of a fabricated TCP header before every UDP video streaming packet and making the necessary modifications to the distance and checksums domains.

These fabricated TCP packets will cross the NAT, since they will be sent on the channel (IP, TCP port) that first of all initialized (RTSP/TCP channel) by your client behind the NAT. Within this paper, this channel is called the active route.

The receiver, on the other hand has to regain the initial UDP packet before being refined by the equivalent transport coating. The restoration is dependant on a specific signature. To be able to bring back the packets, every fabricated TCP packet really needs a known personal. Depending on that personal, the recipient will restore the original packet. Every one of the previous changes are performed at the data link part.

The rest of this paper is arranged the following: section II, looks at some related work. In section III, the suggested strategy and algorithm are offered. In section IV, the experiments of the put in place proposed method and its discussions are explained. In section V, the analysis of the suggested method and comparisons between the suggested method and the prevailing technologies are provided. The newspaper is concluded is section VI.

Related work

Limited to your knowledge, no many similar works are provided. However, [4] present a strategy to get over the RTP/UDP issues by placing a proxy ip server between the customer and the loading server (at the global network). The proxy obtains a HTTP get (TCP) from your client and translates it to a RTSP/RTP need to the server (TCP+UDP). The proxy has two different contacts (one for the client and the other for the streaming serve). The main function of the proxy is to translate the HTTP loading protocol into RTSP/RTP loading protocol. This may triumph over the NAT problem due to that the HTTP submission (TCP) is initialized by the client and the reply will go through the same TCP port. However another device is needed. Furthermore it is still using the constraints of the TCP between the proxy and your client (e. g. retransmission and reordering etc) (in addition to the increase of traffic to the network). Another issue is that there are too many procedures in order to convert an entire application standard protocol into another one. Beside, this method loses the true time property that is necessary for end to end communication because all the packets mush be forwarded at the proxy ip server.

Proposed Methodology

In this work, both the consumer and the server are assumed to convert all the RTP/UDP loading packets into fabricated TCP packets that may be delivered to the other part using the dynamic channel.

This fabrication process which is executed for Windows Operating System (OS) requires a full control of the incoming/outgoing packets. However, there is certainly the problem of source code of the TCP/IP (non open source for Home windows Operating-system) is not commonly accessible and Glass windows does not allow the manipulation of the packets in virtually any TCP/IP protocol suite from level above the TCP/IP driver layer.

To defeat the inaccessibility concern, a hooking technique is used so as to control the (body/packet) at the idea that links between the protocol driver and the NIC greeting card(s), which is symbolized by the Network Drivers Interface Standards (NDIS).

Hooking is a method that can convert the calling of one operating system function into a new one that subsequently calls the initial one. The new function can do extra job before moving the execution to the original. This can be done with no need for the foundation code of the original [11].

The suggested modules is applied and run in house windows user mode. If the module can connect the NDIS, it can screen, control, add, and modify the NDIS inbound/outgoing packets easily.

The NDIS-Hooking driver inserts itself between TCP/IP and all the adapters that bind with it as shown in figure (1).

Figure 1. NDIS hooking driver with relation to user mode

When TCP/IP transmits a packet, it extends to the NDIS-Hooking drivers (as a framework) before sending to the adapter. In the same way, packets that are to be suggested (received) on TCP/IP will go directly to the NDIS-Hooking drivers first.

The fabricated TCP header is inserted/deleted in the data link frame, which means that the original RTP/UDP protocol can be used without adjustment. Nonetheless the fabricated packets can still bypass the NAT as authenticated ones.

Figure 2. Proposed structure structure

As these extra bytes (fabricated TCP header) will add when the packet is in the data hyperlink layer, this might cause the packet to go beyond the Maximum Transfer Unit (MTU) of the network. Since, no packet must exceed the Maximum Transfer Unit (MTU) of the network [12], [13], therefore, the sender's MTU must be lowered by length of the fabricated TCP header duration (20 bytes).

The complete proposed system comprises two main modules. The first module resides on the loading client as the second resides on the loading server. Figure (3) shows the video tutorial streaming network topology.

Figure 3. Video tutorial streaming network topology

Each module includes the next components:

A component (hooking function in Fig. 1) that makes the usage of the frame at the data link covering. This aspect accesses the casings in data link layer which is in the kernel method and moves it into the user function and vice versa.

A aspect that finds the required frame predicated on its content. This component extracts the specified packets from the structures which have to be modified (fabricated/restored) depending on mailing course (income/outcome).

A component which makes the required adjustments (fabricating/repairing) to the predetermined packets. This element changes the predetermined packets depending the sending course (send/receive). In mailing, the component changes the RTP/UDP packet into fabricated TCP packet. In receiving, the aspect restores the fabricated TCP packet into its original RTP/UDP content. This aspect also re-computes size and checksums.

Client Side Module

As mentioned before, the module has to gain access to the kernel (at data website link layer). That is done by being able to access the NDIS drivers. The module listens until a packet event has took place. A couple of two possible cases:

Incoming packet: In the event the packet is from the streaming server, then your program can look for the TCP that contains an RTSP packet. If this RTSP packet contains both client's and server's loading slots, then record this connection's information into an array. This is took place normally at the setup phase of the RTSP connection. Later (when the RTP packet used), the client will check every TCP packet if it includes a specified personal. If this signature is lifted (in the TCP header), this imply that this TCP packet is fabricated and it includes the initial RTP/UDP packet. The program will take away the TCP header and recomputed the UDP and IP checksums. Each one of these steps are done before mailing the packet to the rest of TCP/IP standard protocol stack

Outgoing packet: In case the packet is outgoing to the streaming server and the outgoing packet was a RTP/UDP packet, then put a new fabricated TCP header prior to the UDP header. This fabricated TCP header provides the TCP interconnection information taken from the correct record from a wide range containing all loading relationships' details. This TCP header also includes a specified signature that must been acknowledged from the loading server in order to come back the packet back to its original RTP/UDP packet. This procedure must also recompute the checksums. All these steps are done before mailing the packet to the adapter. Body 4 shows the flowchart of customer side component.

Figure 4. Flowchart of your client side module

Server Part Module

In server area module, steps like the client are also put in place. The difference is the fact that the system gets the RTSP connection's details from the outgoing TCP packet instead of incoming TCP packet in the client. Amount (5) shows the flowchart of the main steps of the server module.

Figure 5. Flowchart of the server area module

Experiments and discussions

Experiments Setup

In this experiment, we use three Personal computers running or windows 7. Two Personal computers with one LAN cards (consumer and the server). The other Computer (working as a NAT) has two LAN cards.

RedMug streaming server commercial software is used on the server site. The VLC marketing player (version 1. 0. 5) is used on the client part. The VLC multimedia player is defined to make use of the RTSP protocol by giving a URL of 1 movie on the streaming server. The proposed method (consumer and server modules) is carried out in VC++. Online Framework and it is running in glass windows OS environment in customer mode. A home windows device drivers (Glass windows Packet Filter Equipment "winpkfilter 3. 0" from NT Kernel Resources, http://www. ntkernel. com) is utilized for the hooking goal.

Experimental Results and Discussion

In the first experiment (before using the proposed method), the client tries to gain access to the movie on the streaming server using the above system configuration. The connection's establishment and the training video streaming negotiations between your client and the server are established normally. However, the connection fails at the stage of data streaming transformation (see Fig. 6).

Figure 6. Interconnection malfunction when data loading transforming began (server side)

The reason behind the success of the initialization of the client-server interconnection and everything the negotiations had a need to transfer the video streaming are that the bond get is a TCP and the initialization is from the consumer (behind the NAT) and the video tutorial streaming negotiations are done by the RTSP that uses the dynamic channel. However, your client could not receive the video streaming data since the NAT lowered the RTP/UDP training video streaming packets. The client then sends a teardown control to inform the server that the negotiation is over. The client starts off one additional negotiation attempts before it close the bond.

In the second test, we used the proposed clients and server modules. After operating, both modules start monitoring the data link frames. The client monitors the outgoing loading request while the server monitors the incoming streaming request.

When your client request a video tutorial loading from the server, The connection's establishment and the video tutorial streaming negotiations between your client and the server are proven normally and the client starts to show the video loading data as shown if body (7A and 7B).

FEATURE

HTTP

RTP/TCP

RTP/UDP

PROPOSED METHOD

Directional

Bidirectional

Bidirectional

Uniary

Uniary

Playback hiccups

Yes

Yes

No

No

Quality Reductions

Yes

Yes

No

No

Oscillating throughput

Yes

Yes

No

No

Slow recovery

Yes

Yes

No

No

ISP firewall

Traverse

Traverse

Blocked

Traverse

NAT traversal

Yes

No

No

Yes

End-to-End Delay

Long

Long

Short

Short

Window buffer and reordering

Yes

Yes

No

No

Streaming method

Downloading or progressive

Streaming

Streaming

Streaming

Figure 7A. Interconnection still dynamic when the data streaming are transforming (server side)

Figure 8B. Video tutorial streaming is exhibited in your client (behind the NAT)

When negotiation is captured, the coordinator records the bond details: IP, TCP slot and the streaming UDP jacks. The host will put in the fabricated TCP header (following the UDP header) in the video tutorial streaming packet before mailing it.

The reason for the success of transforming the streaming data is that the sending host changes each streaming UDP packet into a fabricated TCP packet that bypasses the NAT since it uses the energetic channel. The getting host in turn restores the fabricated TCP packet into the UDP loading data at the info link level before mailing it to the upper layer.

Evaluation

A evaluation between our suggested method and the existing technologies is provided in Table 1. The proposed method has several advantages over the existing technologies, however the new packet size is 20 bytes larger than the standard RTP/UDP packet, but less compared with the HTTP. This has a little effect on the network performance.

The suggested method can traverse the video tutorial streaming total types of NAT. Additionally, it may traverse the firewall that blocks the UDP jacks that RTP might use, common with home Internet gateway. Streaming might fail at times even if the gateway has a built-in RTSP NAT.

Reference [4] utilizes both streaming protocols independently by by using a third device (proxy) between the client and server (every area with whole streaming protocol benefits and drawbacks), the proposed method utilizes the benefits of the RTP and HTTP protocols without using any extra device.

Table I. CURRENT AND PROPOSED METHOD COMPARISON

Conclusion

The two main move part protocols: TCP and UDP can be utilized in loading but with the whole advantages and disadvantages of using that process. In this newspaper, a fresh method is provided and implemented that can combine some benefits of both protocols. It enables the client and server to make use of UDP advantages in each area for loading. Both consumer and server profits scalability by devoid of to cope with some TCP control feature (e. g. Acknowledgement and screen buffering etc). Inside the other hand, utilize the advantage of the TCP advantages to traverse the NAT and the firewall. In other words, the stream is not discarded and traverses the NAT and the firewall. The experimental results show that the new method achieves the firewall traversal and Nat traversal despite having the most difficult NAT (symmetric NAT).

Also We Can Offer!

Other services that we offer

If you don’t see the necessary subject, paper type, or topic in our list of available services and examples, don’t worry! We have a number of other academic disciplines to suit the needs of anyone who visits this website looking for help.

How to ...

We made your life easier with putting together a big number of articles and guidelines on how to plan and write different types of assignments (Essay, Research Paper, Dissertation etc)