Skip to main content

A minimal Multipath TCP client

Project description

mftpclient

release badge license MIT badge tests

About

Minimal Python FTP client in order to allow file transfer on top of Multipath TCP (MPTCP). For a deeper read about Multipath TCP, please consult this webpage.

Table of Contents

  • Getting Started
  • Enabling MPTCP

Getting Started

There are no extra python dependencies needed since the client extends the CPython FTP client.

In order to use Multipath TCP you have to ensure that your operating system support Multipath TCP. However for portability reasons if the operating system doesn't support Multipath TCP then the implementation falls back to a normal TCP connection.

Enabling MPTCP

Linux

Multipath TCP is supported in the official linux kernel starting from version 5.6.

In order to verify is Multipath TCP is enabled, run the following command :

sudo sysctl -a | grep mptcp.enabled

The expected result should be net.mptcp.enabled = 1. It is possible that the output is net.mptcp.enabled = 0. If you want to enable it run :

sudo sysctl -w net.mptcp.enabled=1

Some FTP commands (especially PORT) are changed when passing through the internet by middleboxes. In order for MTCP to detect such changes both the client and sender have to enable the MTCP Checksum. If the checksum calculated and sent by the sender mismatch the one calculated by the receiver, then the connections fallsback to a TCP connection to preserve the established connection. More about the topic on this page. Note that for FTPS this step is not neccessary.

To enable the MPTCP checksum run :

sudo sysctl -w net.mptcp.checksum_enabled=1

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mftpclient-0.0.3.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

mftpclient-0.0.3-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file mftpclient-0.0.3.tar.gz.

File metadata

  • Download URL: mftpclient-0.0.3.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for mftpclient-0.0.3.tar.gz
Algorithm Hash digest
SHA256 16b0cb61b3b92551a76773d60d753d2ba8ae07f7dc30c3e5b668b3f257b3bc24
MD5 5319ce42b6fc4f92d2ffa3c70c33b17b
BLAKE2b-256 0e0454eb87149b52449760424e14399fdbff7c69c45a88eecd044a0924c94f43

See more details on using hashes here.

File details

Details for the file mftpclient-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: mftpclient-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for mftpclient-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cc31179fcf8c53fa33cf4969feb11ddb4e81003a87c56e59c1bc467f62dfcfa4
MD5 013060d66073e14e7b5fc5a24af0027a
BLAKE2b-256 3f452c5c268d0c33508f999f64a68aa6b4858d27687f5791970d81ac86c223f9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page