Any modern smartphone can act as a Wi-Fi router capable of distributing the Internet to another device. All owners are allowed to use this functionality, but not everyone is provided with this option for free. It often happens that a mobile operator limits the “unlimited” tariff and charges an additional fee for distributing the Internet from a smartphone. This happens thanks to TTL, which is well controlled by the operator.
What kind of technology is this and how to get around the restrictions - we’ll talk in today’s article.
What is TTL and why is it needed?
TTL is a special indicator that is built into every device capable of accessing the Internet. The abbreviation itself stands for Time To Live - “lifetime of an IP packet.” This is a set of data that is transferred from the user to the server and back. Time in this case means how long a packet can last without losing information. Initially, they wanted to measure TTL in seconds, which is where the definition came from.
The TTL value in computer networks ranges from 0 to 255. As you move between different routers, the parameter constantly changes. For owners of devices based on iOS and Android, the initial value is usually 64, for Windows – 128. Each transition through the wireless channel reduces the indicator by 1 unit. If there are many hops from one client to another, the value becomes 0 - in which case all data in the packet is destroyed.
The exact number of TTL values is always forwarded to the provider, who can always find out whether the traffic was passed through third-party devices or not. Thus, mobile operators can easily control the distribution of the Internet to their customers. When the owner of a smartphone distributes the Internet, its TTL value decreases by one and equals 63. This immediately becomes known to the operator, who, in turn, begins to take action - usually charging an additional fee or blocking access to the Internet.
In more detail it looks like this:
To bypass operator blocking, you must increase the TTL value by 1 unit. This way we will get an increased number, which will decrease to the original one. In this case, the operator will not be able to suspect the client of distributing the Internet.
We'll talk about how to do this further.
Is it possible to change TTL on Android without root rights?
How to unpack the cache for a game on Android - step-by-step instructions
You can adjust the TTL value without root rights, but this function is not available on many devices.
Entering a command
If the owner of a smartphone does not know how to change the TTL on Android without superuser rights, then he needs to do the following:
- Install Terminal Emulator on the gadget.
- Open a terminal and enter - cat /proc /sys / net / ipv4 / ip_default_ttl.
- If the gadget's system allows you to change TTL without root, then this option will be available. You need to add one to it (64 + 1 = 65).
- Reboot the device for the settings to take effect.
Important! This method is rarely suitable, so it is easier to get root rights to make changes to the Android OS.
You can change TTL in Android OS in various ways, but most often this requires superuser rights. Therefore, the first thing you need to do is get them and only then change the parameter. On some smartphones this can be done without root rights, but such models are rare. In any case, before doing this, it is necessary to accurately determine the current TTL on the distributing device and the one connected to it (on Android gadgets this indicator is 64, on PCs and phones with Windows Mobile - 128, on Cisco devices - 255). You also need to disconnect the device from the access point so that your mobile provider does not block access to the Network.
*Prices in the article are for April 2021.
How to find out the TTL value on a computer
Before moving on to changing the TTL, it is necessary to determine what it is equal to. In Windows 10, this is quite easy to do - just enter the desired command into the command line running as administrator. Let's look at an example:
- Open the Start menu on your computer and enter the “Command Prompt” query. At the top we find the program we need and right-click on it. Then select “Run as administrator”.
- As a result, we end up in a console window - that’s what we need. Enter the command ping 127.0.01 or ping 127.0.0.1 into it. We get information about TTL:
Having found out the value we need, we can move on to changing it.
Definition
What is TTL? The term "time to live" refers to the amount of time or "hops" a packet takes to establish itself on the network before being dropped by the router. The technology is also used in other contexts, including CDN caching and DNS caching.
TTL is a value in an IP protocol packet that tells the network router whether the packet was too long. In IPv6, the field in each packet has been renamed. TTL is set in the eighth binary bit in the packet header and is used to prevent packets from endlessly propagating across the Internet or another network. When forwarding an IP packet, routers must reduce the TTL by at least one order of magnitude. If the packet's field reaches zero, the router that detects it discards the packet and sends an ICMP (Internet Control Protocol) message back to the originating host.
How to change TTL in Windows 10
To edit the TTL, we will need to turn to the registry editor - this is a built-in utility that allows you to adjust system settings. If you have never worked with it, then be careful - adjusting various parameters can lead to problems with Windows.
Let's move on to the settings:
- We press the key combination “Win + R” on the keyboard, where Win is the button with the Windows logo, located in the lower left corner. The “Run” window will open in front of us - enter the regedit request in it and click “OK”.
- In the window that appears, enter: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parame.
- Now we need to create a new file - to do this, right-click on the empty area and select “New” -> “DWORD Value (32 bits). If you are on a 64-bit system, then select QWORD (64 bits). As a result, we get a new parameter - let's give it the name DefaultTTL.
- Open the parameter we created and make changes to it. Set the value to 65, in the “Calculation system” block select “Decimal”.
All that remains is to restart the computer, and the TTL value will be changed to 65. When transferring the Internet from a smartphone, it will change to the standard 64. The cellular operator will not suspect anything, and you will be able to use the Internet distribution as if nothing had happened.
Technical description of the process
The IP TTL is set initially by the system sending the packet. It can be placed at any value from 1 to 255. Different operating systems set different default values. Each router that receives the packet subtracts at least 1 from the count. If the counter remains greater than 0, the router forwards the packet, otherwise it discards it and sends an Internet Control Protocol (ICMP) message back to the originating host, which may cause a retransmission.
The TTL/hop limit point must maintain a continuous flow of packets stuck in routing loops (possibly due to incorrect data tables and network congestion). In Multiprotocol Label Switching (MPLS) clouds, the TTL is copied from the IP TTL when an IP packet enters the cloud. On exit, the MPLS TTL value is copied into the corresponding field as long as it is less than the value in the field.
How to distribute Internet on an Android smartphone
There are three ways to distribute the Internet - via a mobile hotspot, USB or Bluetooth.
Mobile Hotspot
The algorithm of actions is as follows:
- Pull out the curtain on your phone and hold down the “Access Point” button to go to the main menu.
- Set the slider to “Enabled” mode.
In my case, the Wi-Fi distribution is performed under the name “Frank” with the password “12345678”. Your smartphone will have different settings, but you can always change them. You can also disable password login in the settings - to do this, click on the ellipsis in the upper right corner and select “Access point settings.” Then in the “Security” block change the value to “Open”.
We distribute the Internet via Bluetooth
You can connect via Bluetooth only if your laptop supports this technology. The connection process is as follows:
- First, turn on Bluetooth on the smartphone itself - to do this, pull out the curtain and activate the function we need.
- Go to the computer - click on the far right button in the bottom line and activate Bluetooth.
- After this, the Bluetooth icon will appear in the taskbar - right-click on it and open the settings.
- In the window that appears, select “Add Bluetooth or other device.”
- Click "Bluetooth".
- Select the device we need and click “Connect”. At this time, a notification will be sent to your phone, which also needs to be confirmed.
- We return to the Bluetooth settings and select “Devices and Printers”.
- All that remains is to find our smartphone and connect to it via an access point.
Make sure your phone and laptop are not connected to any other network.
Via USB connection
To connect via USB, we need a simple Type-A/C to Type-C/Micro B cable - basically the one you usually use for charging.
We connect the phone to the computer and perform the following steps:
- Pull out the curtain and click on “USB for file transfer”.
- In the window that appears, activate the “USB modem” item.
- Now go to the computer - a new window should appear on the right side asking you to connect a new network. Click “Yes”.
- If the window does not appear, then you can connect through the bottom panel:
With these simple manipulations we were able to connect to the Internet, which is distributed from an Android smartphone.
Application cases
In addition to tracing packet routes across the Internet, TTL is used in the context of caching information over a period of time. Instead of measuring time between routers, each of which can take a certain number of hours, some network use cases work in a more traditional way.
A CDN typically uses TTL PL to determine how long cached content must be served from the edge CDN server before a new copy is fetched from the origin server. By properly setting the time between origin server loads, the CDN can serve updated content without continuously propagating requests to the origin. This optimization allows the CDN to efficiently serve content closer to the user, reducing the required bandwidth from the origin.
In the context of a DNS record, the TTL is a numeric value that determines how long the DNS cache server can serve the record before contacting the authoritative DNS server and getting a new copy of the record.
How to share internet on an iOS device
Internet distribution on iOS is practically no different from that on Android. To do this, go to “Settings” -> “Cellular Data” -> “Modem Mode” or “Settings” -> “Modem Mode”. In the window that appears, select “Allow others.” Here we can change the password - just click on the “Wi-Fi Password” item and enter a new password.
We can also distribute the Internet to Mac, PC and other devices via Bluetooth:
- Open “Settings” -> Bluetooth.
- We find the “Connect to Bluetooth” option on the computer and select the device we need. We looked at the case of a Windows computer earlier - you can use it.
After changing the TTL, you can use Internet distribution without any problems, if there were any previously. Good luck!
Changing TTL
The ping and traceroute utilities use the TTL value to try to reach a given host computer or trace a route to that host. Traceroute sends a stream of packets with successively higher TTLs, so each will be dropped in turn by the next hop (router) on the way to its destination: the first packet has a TTL of one and is dropped by the first router, the second has a TTL of two and is dropped by the next router. The time between sending the packet and receiving the ICMP response message is used to calculate each subsequent travel time.
In IP multicast, the TTL controls the area or range within which a packet can be forwarded. Conventionally, IP is limited to:
- 0 — host;
- 1 - subnet;
- 32 - website;
- 64 - by region;
- 128 - continent;
- 255 - unlimited.
Casting TTL to a single value to bypass operator restrictions
- You can bring the TTL to a single value of 63 by changing it on the distributing phone and on the receiving computer. This is a non-committing TTL change.
Changing the TTL of the sending phone and receiving device
- You can not change anything on the receiving devices, but “force” the distributing phone to always send packets with TTL=63 to the operator, regardless of where they come from: from the distributing phone itself or from the receiving device (computer or phone). This is TTL commit.
TTL fixation
The second scheme is more convenient, but it is not suitable for all phones.
So, we looked at what TTL is and why it needs to be changed. How exactly to change TTL requires consideration in a separate article. How to change TTL on Windows.