First post, by superfury
Anyone knows how PPP negotiation(LCP, IPXCP, IPCP) works with an ISP?
I know that either side requests options from the other side. The other side can acnowledge them(OK) or Nak(different value replacement or different length required)/Reject(unnegotatable option, perform default action afaik) the parameters.
Now, what are the options negotiated (acked) used for? Are they parameters applied to the receiving of packets from the side sending the request that's acked?
So when either side receives an ack to it's sent request, it increases the identifier of it by 1 for future requests? Is it then to use said options to encode the PPP stream? And keep using defaults otherwise?
It sounds like such a request is made for sending packets only(not affecting receiving)? Is that correct? So a request packet received from the sender(side A) receiving back on side A an ack from side B(the other side) says that a connection is open for side A to send packets to side B. The same is done in reverse for side B to be able to send lower layers from side B to side A(by side B sending a request to side A and receiving an ack from side A)?
So for LCP it's pretty simple once receiving an ACK: simply apply all options in the ack to the current connections and set the LCP layer status to opened(which starts the NCP layer requests). The same for the NCP layer in that respect.
But when IPXCP or IPCP is used, exactly what is negotiated? Is it negotiating it's own address to use on a network(side A(Windows/MS-DOS), which is the dialling side, where side B is the PPP router being connected to)? If that's the case, what is the ISP negotiating exactly? The ISP doesn't exactly have stuff like username/password(PAP/CHAP) for side A(since side A requests this?) or an address on the network itself that's unique for every client(the modem that's dialing out, which is side A), or does it?
Anyone can explain this? These things don't seem to be explained anywhere I can find?
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io