Hi,Alimi: The situation seems more complex than our initial purpose, we should make some clarification in order to make the progress step a little further. 1. Current "server notification" is mainly aim to increase the efficiency of ALTO service for tracker-based environment. We should pay more attention to this than the trackless ones because we observed that the predominant p2p traffic in our network is tracker-based. Under the condition of spending same efforts, we can get more valuable results on these controllable p2p traffic than the more diverse, trackless type p2p traffic. 2. The following consideration will focus only tracker-based situation, trackless situation will be took into account in future after we can seek/find one more efficient algorithm for information distribution. If we can find such algorithm, the notification mechanism can function together with it to increase the ALTO service efficiency in trackless environment.
3. For tracker-based situation, there will be one table in ALTO server to record the IP address/port of p2p tracker, to which the ALTO server will send the notification message. This table will be formed by manual under the cooperation contracts between ISP and these p2p application developers. This table will be “half-persistent” in the sense that one member will be deactivated if the ALTO sever does not receive any query messages during three query interval periods. It will be activated again immediately once the ALTO server receives its query message, for example, when the tracker startup or the break path to the ALTO server is recovered. 4. For tracker-based situation, the notification mechanism can be designed more specific, as you have advised. We can modify our current notification message to include the information that point out which parts of ALTO map has been changed. The interested ALTO client can then send the query message to ALTO server to get the updated ALTO information, other ALTO clients can neglect this notification message then. It can also includes the change of endpoints’ cost and properties. 5. For tracker-based situation, the ALTO sever will be deployed in distribute. Every ALTO server will record only the registered ALTO clients(p2p trackers) within its zone. The ALTO servers in one zone should be deployed in redundancy, this will keep the ALTO service uninterrupted when one of them is maintained or decommissioned. 6. For tracker-based situation, there is little necessary to introduce one new Notification server into current ALTO architecture. There will exist very small amounts of messages/burden aroused from the notification mechanism. Best Regards. Wang Aijun Network Infrastructure Research Division Network and Service Research Department China Telecom Coporation Beijing Research Institute -----邮件原件----- 发件人: [email protected] [mailto:[email protected]] 代表 Richard Alimi 发送时间: 2010年4月20日 2:46 收件人: wangaijun 抄送: [email protected]; [email protected]; [email protected]; [email protected]; Likai 主题: Re: 答复: Is it possible to incorporate "server notification" mechanism into current ALTO protocol Thanks for the explanations. Please see below for some comments: 2010/4/19 wangaijun <[email protected]>: > [ ... snip ... ] > > -----邮件原件----- > 发件人: [email protected] [mailto:[email protected]] 代表 Richard > Alimi > 发送时间: 2010年4月17日 2:26 > 收件人: wangaijun > 抄送: [email protected]; [email protected]; [email protected]; Likai; > [email protected] > 主题: Re: Is it possible to incorporate "server notification" mechanism into > current ALTO protocol > > [ ... snip ... ] > > (1) For what entities can an ALTO Client register for notifications? > Network map changes? Cost map changes? Changes to only a subset of the > maps (e.g., as returned by the Map Filtering Service)? Endpoint > properties? Endpoint costs? How specific or general do you envision > this notification mechanism to be? > > Reply: Generally, any change of network condition/policy can lead the update > of cost map or network map, so it is appropriate to design the notification > mechanism as one for general purpose, that is to say, any change in network > condition will trigger the server notification message. Once the ALTO > clients receive this notification message, they can get their specific > interesting ALTO information via the current ALTO query/response message, > with the help of Map Filtering Service. Okay. One property of this design that I would like to point out, is that the ALTO Server may be sending notifications to clients who do not care about the particular update that was made. Of course, one advantage is simplicity and it may in fact be reasonable to make this tradeoff in some cases. > For information about Endpoint costs and Endpoint properties, we think they > should be dealt by p2p tracker or p2p application themselves, the ISP should > not consider these things because they are not relevant to the network(there > are also a lot discussion about the appropriate usage of these information, > whether it is beneficial or not has not been decided yet.). Could you be more specific here? I'm not quite sure what you mean by "not relevant to the network." > (2) How "persistent" is the registration for notifications? Does an > ALTO Client simply register for the _next_ network event, and is > expected to re-register after receiving this particular notification? > Or, does an ALTO Client register for notifications for all future > network events (in which case, a mechanism for un-registering must > also be provided)? > > Reply: It is apparently that the ALTO server should aware the state change > of registered ALTO clients. I don't believe this is apparent quite yet, mostly because I'm not convinced the ALTO Server needs to keep track of this and I don't know what exactly is meant by "state change" of an ALTO Client. Do you mean application restarts? Network connectivity changes? > The re-reigster process as you described is more > appropriate. But according to our current draft, it is unnecessarily to > redesign the re-register message: when the ALTO server send one > notification, it is expected the ALTO client will send one query message > immediately or in short time(this time can be configured). This query > message can be treated as one re-register message. If the server does not > receive any message from the listed ALTO Clients, then it will be deleted > from the register table in ALTO Server. I don't believe all ALTO Queries should be regarded as an implicit registration. This can be extremely wasteful; I believe it should be the _ALTO Client_ who decides whether or not it wishes to receive notifications. For example, if a set of ALTO Clients are using redistribution, it can be wasteful for the ALTO Server to notify all of them; the redistribution process may have its own notification mechanism. I strongly believe that explicit registration is preferred here. > (3) What happens if the ALTO Server cannot reach a particular client > that registered for notifications -- is it permanently removed from > the notification list? What if there is a network failure between the > ALTO Server and ALTO Client - is the ALTO Client expected to somehow > detect this and re-register for notifications? > > Reply: When the ALTO Clients startup, it will first query the ALTO server. So, in this event, the ALTO Client would be left without notifications until it restarts? Related to this, what happens if an ALTO Server crashes? Do you envision prescribing guidelines on the storage for the notification list (take a look at NFS's requirements on stable storage to see what might be involved here if you go down this road)? If there is no stable storage for maintaining the list, I presume the ALTO Client would at least need to periodically check that it is still registered. (If it does not check periodically, you may be leaving an P2P tracker that runs for weeks or months at a time without any updated ALTO information.) Another related possibility is if the ISP decommissions one ALTO Server (or even temporarily shuts it down for maintenance); is it responsible for re-allocating "registered" clients to other ALTO Servers? > Once the ALTO server receive this query message, it will register the ALTO > Clients' contact information(ip addresses/ports pair). I presume that you mean adding at least the peer's listening port to each query message sent to the ALTO Server. > If the ALTO server > does not receive the new query message after its notification message, the > ALTO client will be removed from the notification list. The client can > re-activated the register/notification process by sending the query message > in any time. With this implicit mechanism, each peer that is behind a NAT will incur a wasted notification message from the ALTO Server (unless the ALTO Client configures port-forwarding, or other adjustments for NAT traversal are made). > (4) I see in the draft that you mention "In order to improve the ALTO > server's efficiency, only P2P tracker and application server will be > notified by ALTO server." How do does the ALTO Server know which ALTO > Clients are P2P trackers or application servers? Is there a whitelist > maintained by the ALTO Service's provider? > > Reply: Here the application server is mainly referred other Client/Server > style application, in which the application server can notify its client for > the change of network information. The ALTO server need not distinguish the > differences between them. Sure it does, unless the ALTO Server is prepared to send out at notifications to each ALTO Client that has requested information from it. Tracker-based applications are not the only P2P applications in the world. > You also mention below that "For tracker-less application, if one PID > head was elected as described in draft > http://tools.ietf.org/id/draft-ikpark-alto-virtual-p2ptracker-00.txt > the notification mechanism can also applied to it." Looking back at > this draft, I think you are assuming that the ALTO Server maintains > state information about the particular P2P swarms -- this would > require a radical shift from the current direction of the ALTO > Protocol and the multiple solution proposals that fed into it. My > personal preference would be to keep P2P swarm information out of the > ALTO Server; an alternative method for the P2P application would be to > utilize a different mechanism such as a DHT. > > Reply: Currently, our draft is mainly for tracker-based p2p application. It > is more complex in tracker-less environment because the ALTO clients that > are embedded in p2p clients are very unstable. One alternative solution > except the above proposal is that let the ALTO clients/p2p clients decide > whether they need the notification or not themselves. If it is true(for some > stable p2p peer), they can register directly to the ALTO server, or else > just use the traditional query/response mechanism. I would personally much prefer this design and it solves some of the concerns above. > Another architecture for providing notifications (if they are needed > in only certain deployment scenarios) is to define it as a separate > protocol. "Notification servers" could be deployed separately (either > physically or logically separate) from the ALTO Servers. Notification > servers could be responsible for performing more frequently polling > the ALTO Server to look for changes, and a notification mechanism can > operate between the Notification Servers and ALTO Clients. The same > protocol could even be used between Notification Servers, and be used > for distributing notifications in a distribution-tree-like fashion. > Of course, this would not provide "realtime" notifications (in the > sense that it still operates as a polling mechanism), but I just > mention it as another possibility for consideration that might satisfy > your particular design goals. > > Reply: This architecture has the same pros and cons of our embed solution. > The current notification mechanism will not lay much extra burden to the > ALTO server, the notification protocol between ALTO servers and > distribution-tree-like fashion can still be designed accordingly, because in > realty, the network information will come authoritatively from one > administration point for one ISP and the ALTO servers will be deployed in > distributed in future. I guess the disagreement comes down to how much "burden" the notification is on the ALTO Server. With regards to the amount of messaging and state storage, I tend to agree that both architectures would be equivalent. However, with regards to implementation complexity, I believe that separating them can be preferred. The ALTO Server can remain as a clean design without per-client state. Notification servers have their own jobs regarding storing per-client state and failure recovery with regards to this per-client state (see above), and perhaps NAT traversal logic as well. -- Richard Alimi Department of Computer Science Yale University _______________________________________________ alto mailing list [email protected] https://www.ietf.org/mailman/listinfo/alto
