IPv4-IPv6 FTP application level gateway
First Claim
1. A method for handling file transfer protocol (FTP) packets, comprising:
- receiving an FTP packet that is being sent between an FTP client and an FTP server in a current FTP session, wherein the FTP client and FTP server use a different IPv4 or IPv6 protocol;
determining whether the FTP packet is being sent using an IPv4 protocol or an IPv6 protocol;
translating any addresses and FTP commands or replies from an IPv4 format to an IPv6 format or visa versa, based on the determination as to whether the FTP packet is being sent using an IPv4 protocol or an IPv6 protocol;
updating a next (NXT) value with the FTP packet'"'"'s SEQ value plus a size of the payload after translation, wherein the NXT value represents an expected ACK value of a return FTP packet sent in response to the FTP packet;
prior to updating the NXT value, determining that the FTP packet is valid if the FTP packet'"'"'s ACK value equals the NXT value;
updating a first offset value for translating from IPv4 to IPv6 or a second offset value for translating from IPv6 to IPv4 to correspond to a change in payload size of the FTP packet due to the translation if any;
prior to updating the first or second offset value, updating a SEQ value or an ACK value of the FTP packet based on the first or second offset value; and
forwarding the translated FTP packet to its destination if the FTP packet is determined to be valid.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are methods and apparatus for handling FTP (file transfer protocol) control packets. In general terms, mechanisms are provided for facilitating FTP sessions between devices utilizing different protocols, such as IPv4 and IPv6. For example, FTP control packets from an IPv6 client to an IPv4 server are handled to facilitate such communication. Likewise, FTP control packets from an IPv4 client to an IPv6 server are handled to facilitate such communication. Communication is also facilitated when either or both of the client or server is in the form of a dual-stack device. To facilitate FTP session between devices having different protocols, FTP control packets between two different protocol devices are translated from one protocol to another protocol when required, e.g., from an IPv6 to an IPv4 format or visa versa.
54 Citations
31 Claims
-
1. A method for handling file transfer protocol (FTP) packets, comprising:
-
receiving an FTP packet that is being sent between an FTP client and an FTP server in a current FTP session, wherein the FTP client and FTP server use a different IPv4 or IPv6 protocol; determining whether the FTP packet is being sent using an IPv4 protocol or an IPv6 protocol; translating any addresses and FTP commands or replies from an IPv4 format to an IPv6 format or visa versa, based on the determination as to whether the FTP packet is being sent using an IPv4 protocol or an IPv6 protocol; updating a next (NXT) value with the FTP packet'"'"'s SEQ value plus a size of the payload after translation, wherein the NXT value represents an expected ACK value of a return FTP packet sent in response to the FTP packet; prior to updating the NXT value, determining that the FTP packet is valid if the FTP packet'"'"'s ACK value equals the NXT value; updating a first offset value for translating from IPv4 to IPv6 or a second offset value for translating from IPv6 to IPv4 to correspond to a change in payload size of the FTP packet due to the translation if any; prior to updating the first or second offset value, updating a SEQ value or an ACK value of the FTP packet based on the first or second offset value; and forwarding the translated FTP packet to its destination if the FTP packet is determined to be valid. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system operable to handle FTP packets, the computer system comprising:
-
one or more processors; one or more memory, wherein at least one of the processors and memory are adapted for; receiving an FTP packet that is being sent between an FTP client and an FTP server in a current FTP session, wherein the FTP client and FTP server use a different IPv4 or IPv6 protocol; determining whether the FTP packet is being sent using an IPv4 protocol or an IPv6 protocol; translating any addresses and FTP commands or replies from an IPv4 format to an IPv6 format or visa versa, based on the determination as to whether the FTP packet is being sent using an IPv4 protocol or an IPv6 protocol; updating a next (NXT) value with the FTP packet'"'"'s SEQ value plus a size of the payload after translation, wherein the NXT value represents an expected ACK value of a return FTP packet sent in response to the FTP packet; prior to updating the NXT value, determining whether the FTP packet is valid if the FTP packet'"'"'s ACK value equals the NXT value; updating a first offset value for translating from IPv4 to IPv6 or a second offset value for translating from IPv6 to IPv4 to correspond to a change in payload size of the FTP packet due to the translation if any; prior to updating the first or second offset value, updating a SEQ value or an ACK value of the FTP packet based on the first or second offset value; and forwarding the translated FTP packet to its destination if the FTP packet is determined to be valid. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer program product for handling FTP packets, the computer program product comprising:
-
at least one computer readable medium; computer program instructions stored within the at least one computer readable medium, the instructions when executed causes a computer to perform the following steps; receiving an FTP packet that is being sent between an FTP client and an FTP server in a current FTP session, wherein the FTP client and FTP server use a different IPv4 or IPv6 protocol; determining whether the FTP packet is being sent using an IPv4 protocol or an IPv6 protocol; translating any addresses and FTP commands or replies from an IPv4 format to an IPv6 format or visa versa, based on the determination as to whether the FTP packet is being sent using an IPv4 protocol or an IPv6 protocol; updating a next (NXT) value with the FTP packet'"'"'s SEQ value plus a size of the payload after translation, wherein the NXT value represents an expected ACK value of a return FTP packet sent in response to the FTP packet; prior to updating the NXT value, determining whether the FTP packet is valid if the FTP packet'"'"'s ACK value equals the NXT value; updating a first offset value for translating from IPv4 to IPv6 or a second offset value for translating from IPv6 to IPv4 to correspond to a change in payload size of the FTP packet due to the translation if any; prior to updating the first or second offset value, updating a SEQ value or an ACK value of the FTP packet based on the first or second offset value; and forwarding the translated FTP packet to its destination if the FTP packet is determined to be valid. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. An apparatus for handling FTP packets, comprising:
-
means for receiving an FTP packet that is being sent between an FTP client and an FTP server in a current FTP session, wherein the FTP client and FTP server use a different IPv4 or IPv6 protocol; means for determining whether the FTP packet is being sent using an IPv4 protocol or an IPv6 protocol; means for translating any addresses and FTP commands or replies from an IPv4 format to an IPv6 format or visa versa, based on the determination as to whether the FTP packet is being sent using an IPv4 protocol or an IPv6 protocol; means for updating a next (NXT) value with the FTP packet'"'"'s SEQ value plus a size of the payload after translation, wherein the NXT value represents an expected ACK value of a return FTP packet sent in response to the FTP packet; means for determining whether the FTP packet is valid if the FTP packet'"'"'s ACK value equals the NXT value prior to updating the NXT value; means for updating a first offset value for translating from IPv4 to IPv6 or a second offset value for translating from IPv6 to IPv4 to correspond to a change in payload size of the FTP packet due to the translation if any; means for updating a SEQ value or an ACK value of the FTP packet based on the first or second offset value prior to updating the first or second offset value; and means for forwarding the translated FTP packet to its destination if the FTP packet is determined to be valid.
-
Specification