Tuesday, June 4, 2019

Nat Traversal For Video Streaming Applications Information Technology Essay

Nat Traversal For Video Streaming Applications Information Technology attemptVideo drift is considering one of the famous technologies which is exercised today. It provides the competency to playback television files remotely through computer meshworks. The demand for this technology is rapidly increasing delinquent to wide spread of Internet and increasing of the network bandwidth1While HTTP protocol uses one transmission control protocol port at the transport layer, RTP notify use many a nonher(prenominal) ports. RTP fuel use UDPs or transmission control protocols ports at the transport layer depending on how much the softw be package path is suffered from mailboat discharge 2. In low packets loss environment, the use of RTP over UDP protocol is preferable, since in media cyclosis, the small ratio of packets loss better than packets delay. Hence, the higher reliability of the transmission control protocol is not desired3. UDP/RTP has in addition the multicasting featur e and has the ability to deal with very time communication due to its features in bandwidth, jitter, reliability and end nodes processing.RTP/transmission control protocol stub cause the video float to suffer from discontinuity because the affect to retransmission and reordering the packets, whereas RTP/UDP can suffer from dropping the packets by some filters (firewalls) in the Internet Service Provider (ISPs). Some ISPs drop UDP packets because they atomic number 18 connecterless hence cheating(prenominal) against TCP traffic. They also need high processing power and memory to ensure security 4. But the main thing that can occur is when utilise the RTP with the Network Address Translation (NAT). NAT drops any RTP/UDP or RTP/TCP packets that are initialized from the outside (Internet) when incoming to the end-systems (behind the NAT).The NAT is a technology that permits many computers on the same network to share a public Internet Protocol (IP) address for accessing the Int ernet. The main reason behind the wide spread of using the NAT is the limited number of the getable IPv4 addresses 5.The use of RTP/UDP or RTP/TCP video float is started with a TCP connection that is established by a invite from the guest to the server, after initial negotiation using the RTSP protocol on the same established TCP channel, the server starts video streaming through UDP or TCP ports initialized from the server not through the original RTSP/TCP channel 2.The NAT permits to breathe the exceed connections requests from a host behind the NAT into the outside network (like Internet) 6, however it does not permit to pass any connection request from the outside network (like Internet) to any host behind the NAT 7. This is because the translation table entry is constructed only when a client (behind the NAT) initializes a request to connect to a host on the outside network (Internet) 8, 9. If the initialized request came from a host on the outside network of the NAT int o the inside network, the NAT cannot call the destination host for this request and the connection between the outside host and the inside one cannot be occur 8, 10. Regarding to the RTP/UDP video streaming, the NAT will not give the UDP video streaming channels to pass to the client behind the NAT, since the RTP/UDP channels are initially established from the server (on the Internet).Considering the RTP weakness points, the HTTP protocol, is the preferable choice for video streaming. However, HTTP protocol also has known weakness points the user can suffer from quality reduction and playback discontinuity due to the probing behaviour of TCP protocol. This can also cause an oscillating throughput and slow recovery of the packet rate.In contrast, the UDP protocol provides a mean to keep the desired displace rate constant. It also keeps streaming smooth and eliminates the TCP related processing.This motif presents a novel manner to utilize the benefits of both TCP and UDP. The pr oposed method enables NAT traversal by converting separately RTP/UDP and RTCP/UDP packet into fake TCP packet just out front being sent (at information contact layer) by adding a fictive TCP header in the first place each UDP video streaming packet and making the necessary modifications to the length and checksums fields.These fabricated TCP packets will pass the NAT, since they will be transmitted on the channel (IP, TCP port) that firstly initialized (RTSP/TCP channel) by the client behind the NAT. In this paper, this channel is called the sprightly channel.The receiver, on the other side has to regenerate the original UDP packet originally being processed by the corresponding transport layer. The restoration is based on a specific signature. In order to restore the packets, every fabricated TCP packet has to have a known signature. Depending on that signature, the receiver will restore the original packet. All of the previous changes are performed at the selective inform ation link layer.The rest of this paper is organized as follows section II, looks at some related work. In section III, the proposed methodology and algorithmic program are presented. In section IV, the experiments of the implemented proposed method and its discussions are described. In section V, the evaluation of the proposed method and comparisons between the proposed method and the existing technologies are presented. The paper is concluded is section VI.Related workLimited to our knowledge, no many similar works are presented. However, 4 present a method to overcome the RTP/UDP issues by putting a proxy server between the client and the streaming server (at the global network). The proxy receives a HTTP request (TCP) from the client and translates it to a RTSP/RTP request to the server (TCP+UDP). The proxy has two different connections (one for the client and the other for the streaming serve). The main function of the proxy is to translate the HTTP streaming protocol into RTSP /RTP streaming protocol. This can overcome the NAT problem due to that the HTTP request (TCP) is initialized by the client and the reply will pass through the same TCP port. However a trine device is needed. In addition it is still using the constraints of the TCP between the proxy and the 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 operations in order to convert a complete application protocol into another one. Beside, this method loses the real time property that is needed for end to end communication because all the packets mush be forwarded at the proxy server.Proposed MethodologyIn this work, both the client and the server are assumed to convert all the RTP/UDP streaming packets into fabricated TCP packets that can be sent to the other side using the active channel.This fabrication process which is implemented for Windows Operating System (OS) requires a full control of the in coming/outgoing packets. However, there is the issue of source code of the TCP/IP (non open source for Windows OS) is not readily accessible and Windows does not allow the manipulation of the packets in any TCP/IP protocol cortege from level above the TCP/IP driver layer.To overcome the inaccessibility issue, a hooking technique is used in order to control the (frame/packet) at the point that links between the protocol driver and the NIC card(s), which is represented by the Network Driver Interface Specification (NDIS).Hooking is a technique that can convert the calling of one operating system function into a new one that in turn calls the original one. The new function can do excess job before moving the execution to the original. This can be through without the need for the source code of the original 11.The proposed modules is implemented and take out in windowpanes user modal value. When the module can hook the NDIS, it can monitor, control, add, and modify the NDIS incoming/ outgoing packets easily.The NDIS-Hooking driver inserts itself between TCP/IP and all of the adapters that constipate with it as shown in figure (1). anatomy 1. NDIS hooking driver with relation to user modeWhen TCP/IP sends a packet, it reaches the NDIS-Hooking driver (as a frame) before sending to the adapter. Likewise, packets that are to be indicated (received) on TCP/IP will go to the NDIS-Hooking driver first.The fabricated TCP header is inserted/deleted in the selective information link frame, this means that the original RTP/UDP protocol is used without modification. Nonetheless the fabricated packets can still bypass the NAT as authenticated ones.Figure 2. Proposed frame structureAs these extra bytes (fabricated TCP header) will add when the packet is in the data link layer, this may cause the packet to exceed the Maximum Transfer unit of measurement (MTU) of the network. Since, no packet must exceed the Maximum Transfer Unit (MTU) of the network 12, 13, therefore, the se nders MTU must be decreased by length of the fabricated TCP header length (20 bytes).The whole proposed system is composed of two main modules. The first module resides on the streaming client while the second resides on the streaming server. Figure (3) shows the video streaming network topology.Figure 3. Video streaming network topologyEach module consists of the following voicesA component (hooking function in Fig. 1) that makes the access to the frame at the data link layer. This component accesses the frames in data link layer which is in the centerfield mode and moves it into the user mode and vice versa.A component that finds the required frame based on its content. This component extracts the specified packets from the frames which have to be changed (fabricated/restored) depending on sending direction (income/outcome).A component that makes the required modifications (fabricating/restoring) to the predetermined packets. This component changes the predetermined packets dep ending the sending direction (send/receive). In sending, the component changes the RTP/UDP packet into fabricated TCP packet. In receiving, the component restores the fabricated TCP packet into its original RTP/UDP content. This component also re-computes length and checksums.Client Side facultyAs mentioned earlier, the module has to access the kernel (at data link layer). This is done by accessing the NDIS driver. The module listens until a packet event has occurred. There are two possible scenariosIncoming packet If the packet is coming from the streaming server, then the program will look for the TCP that contains an RTSP packet. If this RTSP packet contains both the clients and servers streaming ports, then record this connections information into an array. This is happened normally at the setup phase of the RTSP connection. Later (when the RTP packet used), the client will check every TCP packet if it contains a specified signature. If this signature is raised (in the TCP head er), this mean that this TCP packet is fabricated and it contains the original RTP/UDP packet. The program will remove the TCP header and recomputed the UDP and IP checksums. All these steps are done before sending the packet to the rest of TCP/IP protocol stackOutgoing packet If the packet is outgoing to the streaming server and the outgoing packet was a RTP/UDP packet, then insert a new fabricated TCP header before the UDP header. This fabricated TCP header contains the TCP connection information taken from the appropriate record from an array containing all streaming connections details. This TCP header also contains a specified signature that has to been recognized from the streaming server in order to return the packet back to its original RTP/UDP packet. This operation also needs to recompute the checksums. All these steps are done before sending the packet to the adapter. Figure 4 shows the flowchart of client side module.Figure 4. Flowchart of the client side moduleServer Si de ModuleIn server side module, steps similar to the client are also implemented. The difference is that the system gets the RTSP connections details from the outgoing TCP packet preferably of incoming TCP packet in the client. Figure (5) shows the flowchart of the main steps of the server module.Figure 5. Flowchart of the server side moduleExperiments and discussionsExperiments apparatusIn this experiment, we use three PCs running windows XP. Two PCs with one LAN card (client and the server). The other PC (working as a NAT) contains two LAN cards.RedMug streaming server commercial software is used on the server site. The VLC media player (version 1.0.5) is used on the client side. The VLC media player is set to use the RTSP protocol by giving a URL of one movie on the streaming server. The proposed method (client and server modules) is implemented in VC++.Net Framework and it is running in windows OS environment in user mode. A windows device driver (Windows Packet Filter Kit win pkfilter 3.0 from NT Kernel Resources, http//www.ntkernel.com) is used for the hooking purpose.Experimental Results and DiscussionIn the first experiment (before using the proposed method), the client tries to access the movie on the streaming server using the above system configuration. The connections establishment and the video streaming negotiations between the client and the server are established normally. However, the connection fails at the stage of data streaming transformation (see Fig. 6).Figure 6. Connection breakdown when data streaming transforming began (server side)The reason for the success of the initialization of the client-server connection and all the negotiations needed to transfer the video streaming are that the connection request is a TCP and the initialization is coming from the client (behind the NAT) and the video streaming negotiations are done by the RTSP that uses the active channel. However, the client could not receive the video streaming data since the NAT dropped the RTP/UDP video streaming packets. The client then sends a teardown command to inform the server that the negotiation is over. The client starts one additional negotiation tries before it secretive the connection.In the second experiment, we used the proposed clients and server modules. After running, the two modules start monitoring the data link frames. The client monitors the outgoing streaming request while the server monitors the incoming streaming request.When the client request a video streaming from the server, The connections establishment and the video streaming negotiations between the client and the server are established normally and the client starts to display the video streaming data as shown if figure (7A and 7B).FEATUREHTTPRTP/TCPRTP/UDPPROPOSED METHODDirectionalbidirectionalBidirectionalUniaryUniaryPlayback hiccupsYesYesNoNoQuality ReductionsYesYesNoNoOscillating throughputYesYesNoNoSlow recoveryYesYesNoNoISP firewallTraverseTraverse blockadeTra verseNAT traversalYesNoNoYesEnd-to-End DelayLongLongShortShortWindow buffer and reorderingYesYesNoNoStreaming methodDownloading or progressiveStreamingStreamingStreamingFigure 7A. Connection still active when the data streaming are transforming (server side)Figure 8B. Video streaming is displayed in the client (behind the NAT)When negotiation is captured, the host records the connection details IP, TCP port and the streaming UDP ports. The host will insert the fabricated TCP header (after the UDP header) in the video streaming packet before sending it.The reason for the success of transforming the streaming data is that the sending host converts each streaming UDP packet into a fabricated TCP packet that bypasses the NAT because it uses the active channel. The receiving host in turn restores the fabricated TCP packet into the UDP streaming data at the data link layer before sending it to the upper layer.EvaluationA comparison between our proposed method and the existing technologies is presented in control board 1. The proposed method has several advantages over the existing technologies, although the new packet size is 20 bytes larger than the normal RTP/UDP packet, but less compared with the HTTP. This has a little invasion on the network performance.The proposed method can traverse the video streaming over all types of NAT. It can also traverse the firewall that blocks the UDP ports that RTP may use, common with bag Internet gateway. Streaming might fail at times even if the gateway has a built-in RTSP NAT.Reference 4 utilizes the two streaming protocols separately by using a third device (proxy) between the client and server (every side with whole streaming protocol advantages and disadvantages), the proposed method utilizes the benefits of the RTP and HTTP protocols without using any extra device.Table I. CURRENT AND PROPOSED METHOD COMPARISONConclusionThe two main transport layer protocols TCP and UDP can be used in streaming but with the whole advant ages and disadvantages of using that protocol. In this paper, a new method is presented and implemented that can merge some advantages of both protocols. It enables the client and server to use UDP advantages in each side for streaming. Both client and server gains scalability by not having to deal with some TCP processing feature (e.g. Acknowledgement and window buffering etc). In the other hand, utilize the benefit 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 even with the most difficult NAT (symmetric NAT).

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.