In the case of Dial-up and DSL phone-line modems, as well as modems that use cell networks, all modems must have a phone number that is dialed, as if they are telephones. I can confim this by looking at the admin page of my cell modem when it has a SIM card in it. It shows the "phone number" of my modem.
My question is, (forgive me if I'm incorrect about any facts, feel free to call me out) how can an IP address be resolved to a phone number to connect to a (for example) dial-up modem?
Say, for example, I have a friend that still somehow has a dial-up internet connection. Suppose I have fiber optic internet, and I want to connect to a web server running on his computer, because he doesn't want to pay for cloud hosting. (I know that hosting a web server computer on a network with a dial-up connection is an extremely bad idea, but just go with it). My computer will be connected to my FO modem through an ethernet router, but my friend's computer will be directly connected via ethernet to the his DU modem (no router).
This should be the approximate path that my computer would use to connect to the web server (I'll be skipping over the details of the TCP protocol, just suppose all packets arrive perfectly):
- My computer (the web browser specifically) first creates a packet to 162.178.34.20 (my friend's IP address) port 80, from 162.127.98.70 (my IP address) port 29963 with the following content:
GET / HTTP/1.1
Host: 162.176.34.20
Accept: */*
The packet gets sent over an ethernet cable to my ethernet router, which detects that the destination IP address is not in this network, and sends it along another ethernet cable, to my FO modem.
My FO modem translates the packet data into beams of light that are sent super quickly to my ISP via a fiber optic cable.
Somehow (details not important), the packet data goes from router to router and eventually ends up at my friend's ISP.
The packet gets translated into telephone signals by a modem at my friend's ISP.
SOMEHOW (this part is my question) the ISP figures out that this IP address corrasponds to a certain phone number, and dials that phone number. My friend's modem picks up the line, and his ISP sends the packet data via a plain old phone line.
My friend's modem sends the data to my friend's computer over an ethernet line, NOT going through a router.
My friend's computer (specifically the web server), processes the recieved packet data and creates a new packet to 162.127.98.70 (my IP address) port 29963, from 162.178.34.20 (my friend's IP address) port 80 with the following content:
HTTP/1.1 200 OK
Content-Type: text/html
Server: friends-server
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Hello World!</title>
</head>
<body>
<h1>Welcome to My Website</h1>
<p>I'm a guy who's stuck in the past, and can't get new internet.</p>
</body>
</html>
The packet data is sent back to my friend's modem, it translates the data into telephone signals, and again, this is my question, the router SOMEHOW figures out the ISP's phone number, sends them the data, and the entire process happens in reverse.
Lastly, once my computer has recieved the data, my web browser begins parsing the HTTP, and gets the HTML from it. It then renders it to my screen, and I can see his web page. (YAAAAAY!)
Note: to simplify the process, I left out the DNS system. Just imagine that to browse to his website, I typed in http://162.178.34.20/
and that's it.
I sincerely appoligize for the extra long question, but let me remind you the main point: How are IP addresses resolved to phone numbers for Dial-Up modems? Also, let me note that there is ABSOLUTELY NO WIRELESS NETWORKING INVOLVED in this process. I hate WiFi.
答案1
In the case of Dial-up and DSL phone-line modems, as well as modems that use cell networks, all modems must have a phone number that is dialed, as if they are telephones
That was only true for dial-up. It is not true for DSL – the line might still get assigned a phone number for accounting purposes, but that number is not involved in the actual connection at all. Phone and DSL are two different channels that run over the same cable but never touch each other.
Mobile phones do use a phone number as part of the service, but the data connection is not established by making a call. (It used to be with CSD, maybe 20 years ago – but not with later technologies.)
The packet gets sent over an ethernet cable to my ethernet router, which detects that the destination IP address is not in this network, and sends it along another ethernet cable, to my FO modem
Technically it's your computer which detects that the destination is not in this network first. The packets also have destination MAC addresses, not only IP addresses.
SOMEHOW (this part is my question) the ISP figures out that this IP address corrasponds to a certain phone number, and dials that phone number. My friend's modem picks up the line, and his ISP sends the packet data via a plain old phone line.
Usually, no, the ISP will not dial you. If you want to connect to the internet, you dial the ISP, and generally this was not something that just happened behind the scenes – you had to do it deliberately when you wanted to go online.
Your phone line didn't have a permanent IP address. You only get assigned an IP address temporarily, after the ISP picks up, and lose it again when either side hangs up. (That's where "dynamic" IP addresses came from.)
This means that your modem must continuously hold the call active and the line busy in order to receive packets. (The ISP probably charges you by the minute.) That's a big part of what makes server hosting a poor idea.
My friend's modem sends the data to my friend's computer over an ethernet line, NOT going through a router.
Dial-up modems did not connect through Ethernet. Most of the time, they weren't independent network devices – they were peripherals that belonged to the computer (like a keyboard or a printer), and they connected through the serial port (aka the "COM1" port or ttyS0).
Many modems were actually internal PCI cards, so in other words, a dial-up modem was much more like an Ethernet card by itself than an Ethernet-connected device.
Though, enterprise routers with a modem module did exist and could be Ethernet-connected and do NAT and such, exactly like modern cable or ADSL routers/modems, but it's rarely something you'd find at home. (If your hypothetical friend is running servers at home, he might actually have one, and then data from the modem would indeed travel over Ethernet – but then it would not be "not through a router" anymore.)
The packet data is sent back to my friend's modem, it translates the data into telephone signals, and again, this is my question, the router SOMEHOW figures out the ISP's phone number, sends them the data, and the entire process happens in reverse.
It doesn't have to figure out the ISP's phone number at this point, because it's already on the call – otherwise it wouldn't have received the original packet.
But as mentioned before, the modem is directly attached to the computer – not over a network connection, but as part of the computer. So when you're offline and want to connect to the internet, the computer directly sends a dial command to the modem (see "AT commands") before even constructing that IP packet.
答案2
How can an IP address be resolved to a phone number?
It isn't. You are misunderstanding how dial up modems work.
In order to get on line a consumers dial up modem calls a telephone number at an ISP who is providing dial up services. There may be a bank of modems at the ISP behind a single telephone number.
A 2 way connection is created between the consumer dial up modem and one of the ISP dial up modems.
The ISP modem is connected to the internet and provides an IP address for that 2 way connection.