merlin@hqda-ai.UUCP (David S. Hayes) (05/10/87)
In article <16608@amdcad.AMD.COM>, bandy@amdcad.AMD.COM (Andy Beals) writes: > I don't know about you, but the last time I dialed-up a > computer, I got line-noise. Interactive smtp is nice but you > need to have an error-free datastream between them. So, anyone > for writing a point-to-point dialup tcp/ip? This discussion seems headed to the general possibility of doing TCP/IP over a dialup phone line, so I'm moving it to comp.protocols.tcp. Ideally, we'd like to be able to write a daemon that can listen for non-local IP requests, check against a list of dial-up machines and their addresses, dial the phone, and then act as a pass-through. All this should be done without any kernel modifications. I don't know if this can be done with current 4.x BSD kernels. Used to be that all BSD sites had source, but with the rise of the workstation vendors, that's not true anymore. Perhaps raw sockets would provide a means to do this, but it's been quite a while since I did anything with raw sockets. Anyone else have any ideas? -- David S. Hayes, The Merlin of Avalon PhoneNet: (202) 694-6900 UUCP: *!seismo!sundc!hqda-ai!merlin ARPA: merlin%hqda-ai.uucp@brl.arpa
kent@DECWRL.DEC.COM (05/11/87)
This topic seems to come up every year or so. I have some old messages (from 83) where a few of us discussed this topic. The raw sockets sort of approach seems good, as far as it goes. The real problem seems to be that the IP protocol family (especially TCP) believe in short packet lifetimes (30-60 seconds for TCP open timeout, ~255 seconds total packet lifetime), and this is hard to achieve in a dialnet environment, where it can take 30 seconds to convince a dialer to dial a number and connect the call, much less get logged in, switch the dial port to be an IP link, etc. On top of that, protocols like SMTP count on being able to reach the destination host directly; there's no concept of uucp-ish store and forward in the protocols. This makes opens take even longer; several hosts in succession may have to dial and open connections, depending on the diameter of the net. There are even desirable configurations where it is impossible to have everyone connected at the same time -- say neither hosts A nor B have dialers, but are both periodically polled by C. A and B can never be connected at the same time, thus can't exchange IP packets. That seems to be where the idea of dialup is incompatible with the IP networking model... Cheers, chris
CERF@A.ISI.EDU.UUCP (05/11/87)
Chris, How about running full TCP/IP on the dial-up link to deal with the problem of store/forward - this limits the application of IP to pt-pt applications such as mail, where the store/forward is outside the context of the initial TCP connection. Vint
kent@DECWRL.DEC.COM (05/11/87)
Vint, That was the plan -- to run all the protocols intact. The original impetus for the idea was to punt explicit store-and-forward mail systems (like uucp). I'm not in favor of introducing any new mechanisms into the Internet that require explicit routing by the user. We already have people doing dial-up IP from home machines, and Dave Mills has had fuzzies doing it for much longer than that (I booted my first fuzzball long distance at 1200 baud in 1983, and it was old hat then). The problem seems to be making multi-hop configurations work with existing TCP/SMTP implementations. chris
minshall@OPAL.BERKELEY.EDU (05/11/87)
How I would do TCP/IP from a micro over a phone line: 1. The user dials up their favorite IP host (TIP?). 2. The user logs in. 3. The user invokes, simultaneously on both sides, programs which place a remote procedure call interface over the wire, with reliability. The program on the IP host is, basically, just a user application. 4. Then, the remote procedure call interface "gives" the user programs on his micro, the ability to access the hosts standard TCP/IP services. Ttalking to a 4.2 system, if after establishing the dial-up logon, I have a program which says: { ... s = socket(....); if (s == -1) { ... } if (connect(s, ...) == -1) { ... } if (recv(s, ...) == -1) { ... } } all of the calls "socket", "connect", "recv", etc., would be performed via remote procedure call to the IP host. (Better, possibly, would be to implement a standard set of TCP-over-dial remote calls (like LU6.2 verbs) that everyone would recognize once the system dependent call setup/login/invocation was performed.) Note that in this way, we get out of having to assign a new IP address to the client machine, and the user gets to move his/her TCP/whatever programs down to his/her micro.
CERF@A.ISI.EDU.UUCP (05/11/87)
Chris, If TCP is configured to be pretty persistent, and if there is only the one dial-up, low speed, circuit switched hop, I would think one can get the IP to work - assuming you can avoid dial-up for each packet! On the other hand, to introduce dial-up links virtually anywhere in the topology of the Internet, and low speed, to boot, without a reliable link protocol [forcing recovery to be via TCP] seems pretty hard to achieve. Vint
dms@HERMES.AI.MIT.EDU (David M. Siegel) (05/12/87)
Speaking of dial-up IP... I am looking into hooking up a home Sun-3 to IP via a modem. I was planning on using Serial Line IP (slip) for this purpose, but came up with a few problems: 1) The SLIP package doesn't support logging in to the IP connection, so anyone could dial up to the modem and connect to the network. 2) The SLIP host that's on the Ethernet end needs to know the IP address of the dialup host, so if different hosts can dialup to the IP connection, something must be done to handshake down the dialup host's Ethernet address. Question: has anyone done something like this, and is SLIP the right way to go? -Dave
minshall@OPAL.BERKELEY.EDU (05/12/87)
Chris, Yes, there are two issues here. Circuit-switched IP is one. The other is, for me, how does one extend IP service to a large number of micros, many of which are sitting in someone's home, and connected via a dial-up phone line. My bias is that these do not need to have IP addresses assigned, and so can piggy-back off some existing host. Still, I think these machines need various TCP/IP *client* services (FTP, telnet, SMTP maybe), and I think the remote procedure call is valuable there. Yes, it needs a reliable data link layer, flow control, in-sequence delivery, etc. The user sitting at home would like to move files back and forth between the home system and hosts on the IP network, share file systems with other hosts, login over the network, etc. The RPC mechanism seems, to me, an interesting way of accomplishing that. Greg Minshall
minshall@OPAL.BERKELEY.EDU (05/12/87)
Chris, Currently, a user logged in to one of our IP hosts can now run any/all of the client protocols they would like. When they do this, they run the protocol using the IP host's CPU cycles, and things they do that reference files (ftp, "screen capture" on telnet) they reference files located on the IP host system. What I would like is for any user with an account on any of our IP hosts to be able to dial in (from home), or otherwise connect, and run those same clients from their micro (thus affecting the files in the micro, and using, mostly, CPU cycles from the micro). One of the advantages here is that the user need not submit a "request for an IP address" form to the local administration. Nor do they need to know what IP address they are talking from. I am the first to admit that the RPC mechanism solves only the problem I am posing. Still, I think it is an interesting problem. As to your point about validation schemes, I tend to differ. I agree that the .rhosts scheme has limited usability (and can be something of a security hole). However, I think that the most interesting schemes will be those relying on authentication, keys, etc. (and NOT on knowledge of the remote host name). Again, my purpose is to allow micros to become clients. This is also my bias. Not to prompt any heated discussion, but I am dubious of the desirability of running SMTP servers on large numbers of micros. Here I think the POP-like protocols are more interesting. In those (relatively fewer) cases where it is necessary to run a machine with servers, then a separate IP address (and separate protocols) would be the way to go. I should make clear that I am not even seriously proposing any work in this area at this time. It is just an idea I've been kicking around for a while, and the recent discussion was enough to finally prod me into airing it a bit. Greg
kent@DECWRL.DEC.COM (05/13/87)
Greg, Every time this issue comes up, I wonder why people don't want to assign addresses to micros. Is it just a problem of scale? I realize that most of the micros won't be hooked up at the same time. But, if you're going to have server SMTP service on the micro, that probably means that each micro needs a unique name. If you don't assign it a permanent number, then you have a real headache at startup, interacting with the nameserver database, etc. If you're just talking about having client services on the micros, then you can get away with random names/numbers. But home micros are getting powerful enough that people might want to have server SMTP sitting there. Another authorization problem arises for home micros that want to be remote file system clients. It seems very difficult to use the flexible protection/authentication mechanisms that are appearing if you don't know exactly which host is the client -- the 4.2 .rhosts mechanism breaks down pretty quickly. The contents of .rhosts either becomes all possible dialup hostnames, or is essentially useless. chris
kent@DECWRL.DEC.COM (05/13/87)
The question isn't really how to do TCP on a phone line to allow a micro in, but rather how to build something like a circuit-switched IP network. As evidenced by the mail on the list, lots of people have had user-initiated dialup IP for some time. Most implementations just run IP over the wire (with something like SLIP or compressed SLIP as the data link layer), with acceptable performance. The remote procedure interface is interesting, but you need to build some sort of reliably data link layer under it ... I wonder if it really buys you anything in performance? chris
kent@DECWRL.DEC.COM (05/13/87)
We use SLIP (with some header compression) for dialups from some home machines. Basically, the user logs in and then runs a shell script that does ifconfig and slipconf on the dialup line, and does a similar thing on their home machine. This supplies the IP address and avoids the problem of having an IP port hanging out for anyone to dial into. chris
CERF@A.ISI.EDU.UUCP (05/13/87)
Chris, One problem with assigning numbers or names to micros is that they don't bind to any telephone or other addresses - since in principle a micro is mobile. So you need some kind of authentication to assure that the caller is who he says he is. This isn't insurmountable, but it is like the X.32 (dial-up X.25 ) problem. Vint
Mills@UDEL.EDU.UUCP (05/13/87)
Greg (?), You are making assumptions that a willing 4.x is available to front the application and that a front-end protocol will be designed for it (them). I prefer not to need that horsepower and use IP directly over the micro-IMP (or whatever) link, even if encapsulated in SLIP, hello or other suitable envelope. Address management and authentication is an interesting issue - see for example the schemes used by the fuzzballs (RFC-891) and (a different one) the MIT PC/IP gateway. For authentication I offer a variant of the Needham-Schroeder scheme (e.g. RFC-1004). My point is that we shouldn't have to climb all the way up the protocol stack to connect a PC to the Internet. Dave
Mills@UDEL.EDU.UUCP (05/13/87)
Vint, I can't resist observing that, in the nine years or so I have been running dial-up 1200-bps IP links (mostly over metropolitan areas), the incidence of packets lost to transmission errors has been much less than those due to the circuit simply going on-hook. The nice thing about TCP and the latter is that you can redial during the user-timeout interval, while TCP is retransmitting, and things just go on as before. Now consider the amateur TCP/IP packet-radio experiments being conducted by Phill Karn and several others (including myself), where the packet loss can be as high as one in three on the radio channel. I would agree from experience that the channel protocol needs to be reworked entirely before expecting TCP retransmissions to save the day. Obviously, Phill and friends are leapfrogging the dial-in issue. You want ubiquitous access? Look ma, no telephones or wires even. Dave
montnaro@sprite.UUCP (05/15/87)
I'm sure this is naive of me, but what's a fuzzie (or fuzzball) as referred to recently in the dial-up SMTP discussion? Replies by mail please. -- Skip| ARPA: montanaro@ge-crd.arpa Montanaro| UUCP: montanaro@desdemona.steinmetz.ge.com (518)387-7312| GE DECnet: advax::"montanaro@desdemona.steinmetz.ge.com"
glee@cognos.uucp (Godfrey Lee) (05/19/87)
In article <8705121532.AA19034@armagnac.DEC.COM> "Christopher A. Kent" <kent@sonora.dec.com> writes: >We use SLIP Is SLIP available publicly? -- ----------------------------------------------------------------------------- Godfrey Lee, Cognos Incorporated, 3755 Riverside Drive, Ottawa, Ontario, CANADA K1G 3N3 (613) 738-1440 decvax!utzoo!dciem!nrcaer!cognos!glee