WWDC2000 Session 160

Transcript

Kind: captions Language: en I actually have the energetic sessions of the developers conference this year and actually that makes a lot of sense because it's the energies of developers like yourself that actually made what is the internet actually happen this session is actually going to go through and talk a bit about mac OS networking this is networking in Mac OS 9 and Mac OS 10 so with that I'd like to introduce Justin Walker who is the manager of the Mac os10 networking team thank you and I've never been associated with high energies i'm not sure what Tom meant by that anyway so let's start what we're going to do today is talk about networking in our two systems Mac OS 10 is what I'll cover and then we'll have lefty come up and give you his trademarked walkthrough of the current state of Mac OS 9 networking so to begin with we'll set the stage by looking at a diagram that shows you where we're going to be focusing this is a diagram of Mac OS 10 which you've probably seen a couple of times before and the important part for us is the networking area which is in kernel of Mac OS 10 and an important point to note which we've emphasized before and will continue to emphasize is this the colonel and the core OS of Mac OS 10 is Darwin and Darwin is a public source operating system that we want developer involvement in I'll do my best and maybe we'll get somebody to crank up the volume anyway the Darwin OS is a public publicly available OS and we've got a website set up for it which you will have heard about if you hear in on Monday afternoon in networking just to review we have a network stack that's based on bsd and in particular it's been upgraded with in the last year to a relatively recent version of freebsd and we're providing full multihoming and routing capabilities for both apple talk and for ipv4 and as part of the upgrade to the pre bsd code we imported mechanisms to support firewall and NAT within the kernel and these are mechanisms as opposed to full products to support this so those of you who are developing in this arena will have the opportunity to take advantage of that and provide your own products that use these mechanisms I want to go over what we've done in the past year and then talk a little bit about what's coming up beyond bp4 among other things we've introduced kernel extensions PPP support the new stack and some capabilities that I've always already mentioned and coming up we'll talk a little bit about ipv6 IPSec and in something we're calling mobility for want of a better term right now so we've shipped dp1 deep through DP three which was the release that contained the new the new networking stack and these products included improved carbon OT support focused on performance and some new features in February we shipped a kernel development kit which included support for Network kernel extensions and documentation for developing them in DP for which you've now got a copy of we have a number of improvements i want to discuss shared addresses for IP between the classic environment and mac OS 10 some more carbon and some more improvements in OT in carbon and a little bird told us we had to have PPP so that's in there we've got full dhcp support both in client and server including ad hoc networking and we've been continuing to make progress on a socket ization of the appletalk toad and que es are fully supported in DP for and actually they're a significant part of the operation of DP for today our support for shared IP with classic is done with nke and PPP is also implemented with NK ease the development mechanisms in DP 44 kernel extensions supersede the KDK in a number of areas so the header files and a documentation been upgraded to reflect that and coming up in the future we want to improve support in this area particularly want to look at support for new device families for example for token ring and improve the way we handle socket and data length and que es the bottom line here is feedback from you as developers is an important aspect of how we plan and schedule our work the PPP we're supporting serial connections in this release specifically the internal and external modems we use chat scripts those of you familiar with bsd and linux style PPP will know what those are there is a poor man's CCL Dean reefs will be talking about modem family support and the networking device session that comes up Friday morning and you want to attend that if this is in your area for API support we have a socket API that is OT like in the sense that it directly mirrors the OT PPP control AP is from Mac OS 9 and those api's are implemented in our carbon OT stack configuration the dialer app that is in the system demos directory on DP for is handling the UI for configuration and in addition if you're a glutton for punishment you can fill in the traditional bsd flat files but the intent here is that you either configure through the dialer api or through another mechanism that i'll be discussing in a little bit also our aim over the long haul is to support PPP over whatever the developer and customer community require particular areas that we've heard requests for ethernet and dsl and the support will be integrated in with the rest of PPP so for example the dialer will be able to recognize the kinds of devices that support PPP and the same api's they're used for serial will work for PPP over ethernet and other mechanisms let's talk some about classic networking by popular demand we've eliminated the need to provide multiple IP addresses for each platform one for classic and others for Mac os10 the configuration is dictated by Mac OS 10 and it's based on whatever interfaces are in use in the base system but no user configuration is required the classic implementation will gather all of the configuration parameters they are important for OT from Mac OS 10 and install them in in the configuration database the control panel is read-only so you can see what your parameters are but you need not modify it you cannot modify them and as I'll show in a minute the reliance here is on OT for routing so any any packet transmission is handled fully by OT as far as the IP stack is concerned in Mac OS 10 the implementation splits the flow of packets below the 10 stacks so that they are not directly involved in packet traffic's so let me take a look at the operation of this mechanism got the classic application with the OT stack relatively unchanged it opens up a special socket and binds to a chosen network device and installs an nke which will be used to handle outbound traffic from OT the different colors indicates the direction of flow so a packet going out from OT will be written into the socket socket nke will look at the packet and determine whether it is destined for the wire or gets essentially looped back to to the 10 stack likewise when network when network traffic comes in through the device it's intercepted by an N ke and based on information within a packet a decision is made whether it goes upstream to the 10 stack or whether it's handed off to the classic stack by having via this special socket the same thing happens for apple talk except that in the case of apple talk there's no there's no combination of addresses each stack is fully separate and independent now let's take a look at how TCP and UDP traffic is handled the OT stack has been modified to handle pork sharing which means that we treat both stacks as using the same port address space for both TC for both tcp and UDP when there's an OT bind call comes into OT it is directed down through the socket and then over to the IP stack to do a bind within within the 10 stack and if that succeeds the success is propagated back up the stack to OT and the normal OT operations continue so for example if you wanted to run a web web server with in OT and there was not one running on 10 you can fire it up and it will take over port 80 and all traffic to port 80 will be diverted to classic if if the bind fails or the port reserved fails then the bind will fail and the operation will not succeed moving to carbon we've done a lot of work on performance and we're now at a position where when we run same tests on carbon on 10 and on Mac OS 9 on the same platform we get similar performance as far as we can measure it's on a par the support for control api's is there based on the OTP the OT PPP api's from Mac OS 9 one point that we want to make for developers using OT in carbon is that you can't make assumptions about thread behavior the way you could in Mac OS 9 you have to use atomic operations and make make sure you're using the proper and early notification procedures to interlock operation reason for that is that no te online uses cooperate cooperative threading cooperative task operations where as on Mac os10 threads are pre-emptive in Apple talk we've updated carbon and ot to handle a number of new mechanisms server provider api's we support the zip we support DDP endpoints and we support the NBP mapper api's apple has decided that this that apple talk is a legacy protocol and we're not going to put any more effort into it so in particular that means no a pap or ATP support and as always we listen so if you have concerns about this you will need to talk to developer relations and marketing and so they can give us the proper direction finally we fixed a bunch of bugs and it's very stable if you saw the demos of Internet Explorer using carbon that was all done over the carbon OT we've got dhcp DHCP support in the p4 its full client and server so you can act either as either it's our c compliant with all of the musts of 2131 implemented and most of the shoulds in addition the dhcp engine will handle ad hoc or zero comp networking if the dhcp server you're trying to contact doesn't respond then we will auto configure an address for you in the range that's been dictated by the IETF and the DHCP engine will continue to probe for for DHCP servers and in the case that it eventually finds one that auto configured address will remain in use so existing connections and existing programs will continue to run but it can now the system can now function based on its DHCP addresses as well in addition we'll be looking at more integration with the zeroconf work that's going on in the IETF and I think lefty will have some more to say about dynamic dns support and the direction that we're heading there beyond ep 4 we're looking at something we're calling mobility just for having a simple phrase to capture it what we're looking at is mechanisms that we can put in place to simplify configuration change and management we want to be able to change the address without a reboot we want to be able to put the system to sleep wake it up have it deal with changing networking environments around it and with net configuration change in general as might be forced by say a user running a configuration panel we're bringing in a native support for the Mac network setup api's I'll talk a little bit more about that later and we're implementing ipv6 and ipsec and we've got two sessions tomorrow to discuss that in more detail so let's look at what this mobility stuff is we want to be able to live in a dynamic environment and things like the Energy Star requirements from EPA powerbooks other portable mechanisms can move around or go to sleep wake up and find in the environment change we want to provide the ability to make those transitions smooth and adapt automatically to the new environment as it's found by the system so let's look at a really colorful diagram starting from the bottom and sort of going from the outside moving in below the colonel boundary we've got protocol stacks and device devices which will produce events at various sorts indicating detected change somebody unplug the ethernet cable from your box or you move from an environment where base station a is in control to an environment where base station B is in control an event indicating that will have to propagate up so we're putting in place ap is to let that happen what we support we will support applications that modify the configuration in such a way that this is a unified set of mechanisms and we won't want to allow applications to request and receive notifications when certain aspects of your network environment and other system configuration information changes and at the center of all this is a configuration demon it manages a cache of information like IP address active network devices and so on and it manages a list of requests from interested applications for notification so let's look at some of the details one of the components of this is the network setup api's and that one of the first clients of this will be our new network control panel and this allows us to have a common view of configuration information and interlock access to that information so that multiple applications could be modifying modifying this information or watching for modification at the same time another component which I indicated earlier was Colonel event delivery these are events that will come up from network devices and networks tax as things change and finally that central engine is the configuration demon it's a it's a demon that runs as long as the system is up we're building a plug-in architecture so we can extend it dynamically it detects changes from devices by waiting for a band it can detect changes based on action from applications like the control panel and system components like PPP can notify it when something changes for example a link comes up or links a link goes down and pieces of data that are kept and affected by these events include default routes IP addresses dns information and so on we have AP is that allow an application to register to get notifications when certain kinds of events occur and we have AP is that allow the applications that modify this data to notify the rest of the system when a change has been made so to go back just briefly to put into a picture again events come up from below are cached in the config demons cash and trigger notifications that can go to interested applications and we have a mechanism with the network setup API is to let control panels and similar applications modify and display current configuration information in the future we're going to work towards a more integrated system of configuration management the aim is to get seamless changes supported for examples you can use airport in a live environment and track track base station change and alike one of the interesting areas for a developer is how to handle how to handle a change like this there are issues of security do you want to believe exactly what the information you received from the network tells you or do you have to provide a filter of some kind and prompt the user for information it's a complicated problem I have no idea how complex it is but it doesn't seem to lend itself to an easy solution another issue we're going to look at moving forward is I the IETF mobile IP support both for ipv4 and for ipv6 and again I'm soliciting input talk to me talk to the rest of our team talk to the developer relations guys and marketing give us your input as to what you think is needed in this arena IP is kind of the Vic lettuce protocol these days and there are good reasons to think about changing the IETF has a new generation of IP and it's called ipv6 support in Mac OS 10 is on the way and we'll be talking more about that tomorrow and both for ipsec and for ipv6 tomorrow we'll tell you more about how to get access to a package which includes both the protocol sets tools and libraries and headers as well as a kernel that supports it so that you can begin to experiment for those of you who want to get down and dirty the implementation we use comes from cam a it's a project based on a consortium of Japanese manufacturers who are very interested in propagating ipv6 they've done a whole lot of work on on these protocols and they're currently the de facto implementation for all of the bsd projects and we're adapting it to use for mac OS 10 check the web developer website under mac OS 10 for details tomorrow and now with that I'll hand it over to lefty to talk about Mac OS 9 thanks Justin hi everybody has it been a year already good grief so I'm David schlessinger I'm the manager of the mac OS 9 networking team and I'm going to talk a little about what we did last year we're going to do the thing I guess the Justin was referring to when he talked about trademarking the talk we do it every year we go through the list of what developers have requested and where we stand on those requests and then I'm going to give you some idea of some of the things that we're looking at working on now so what did we do last year we came out with two sort of general releases of open transport we had an open transport 252 and we had various flavors of open transport 2.6 and if you've got software update active you probably got me each and every one of them so 25 to shift with mac OS 9 and one of the big changes that we made there was that finally after having been out for several years we upgraded our core streams and TCP implementations the extremes in TCP that had been in open transport prior to OS 9 actually dated all the way back to the original version of open transport and it had become more and more difficult to maintain and we were missing out on a lot of features that the folks over at mint had had been putting in and basically we took all of the old stuff out and put all new stuff in and that was a very major change went a lot more smoothly than we thought it might so we were pretty happy with that we have learned a lot of that dhcp we thought dhcp was pretty straightforward we were wrong boy there are lots of varying interpretations of little points in dhcp it seems there are lots of corner cases that we have me quite thought of but I think we may have found every single one but I'm hoping PPC over IP now this is this is something that I was I'm very excited about a half of them have been around for a while now but they're limited to appletalk networks which really places a real strict limit on the context in which you can use them what we did in OS 9 is we expanded the PPC protocol to work over a substrate of IP so instead of only being limited to doing Apple scripting remote Apple scripting in the context of your Apple talk network you can now do it across the internet you can effectively run an apple script or send Apple events that will affect a machine all the way across the country or around the world and this gives a lot of power and a lot of flexibility particularly the people like systems administrators ISPs all kinds of applications for this so that's a very exciting i addition more DHCP fixes we found out that DHCP doesn't really mesh with wireless all that well at least in the way that we originally envisioned it and we've had lots and lots of little tiny modifications here and there lots of special cases to make all of that work more smoothly and I really think it's working a lot better now we're pretty happy with it at this point hmm too much network setup 1.1 we introduced network setup in mac OS 85 and this was a planned upgrade we had mostly bug fixes in there we reduced open transport from six libraries down to two thereby freeing up valuable real estates in your extensions folder and and over 250 bug fixes so all kinds of things are working better now it's a lot more stable we've got a lot of performance improvements for some kind of peculiar cases we ran into so lots of good stuff went into 25 to 26 is essentially what we call a dot release it's got a bunch of bug fixes and specifically it shipped with mac OS 9 0 190 290 390 for and it may keep shipping for a while yet I don't know 32 bugs fixed all told i sat down and counted them and guess what they're mostly dhcp fixes so but it's working better than ever we're happy with that and if you have any dhcp problems be sure to see me right after the presentation okay so here's here's the trademarked part I don't know how many of you were here three years ago when I first did this but this is a list that Richard Ford who was in our marketing guy compiled I guess about four years ago and if you've been paying attention you'll notice that the size of the type is probably tripled since the first time I used it we've got 51 items on this list right here and if that seems like a lot you weren't here four years ago because we had I think a hundred and seventy-five so every year I go through and I tell people what on this list we've been working on and as we get them done I take them off and the list get shorter and shorter in the typeface gets bigger and bigger and eventually I'm going to have like one item in 48 point type at any rate here are the things that we managed to do over the last year we've got better admin utilities a network assistant particularly Apple events over IP I mentioned I p personal file sharing and again both of these things PPC over IP Apple events over IP IP personal file sharing are all in line with the strategy that we've been following over the past several years appletalk was a fine idea it was a good thing it's out of date it's nobody's using it really except in very limited contexts and it's not we're not where things are going and networking clearly so in order to preserve the valuable aspects that we put into appletalk way back when and there are many of those we have been transferring some of the most important uses of appletalk file sharing Apple events and what have you so that they can operate in an internet environment and PPC over IP and IP file-sharing are just two examples of that but this is this is really a core strategy for us okay what's left still got a bunch of things there now we have limited engineering bandwidth and as I said this list is four years old and I thought it was like a really good time at this point to sort of step back and say well you know here are a bunch of things and we haven't gotten any of these in the last four years in my best estimate what are the ones that probably are not worth the effort for us right now and this is pretty much what I came up with nobody's screamed good okay great anyway appletalk multihoming appletalk grabbing we've had these in the past we had a product called a Polly internet router once upon a time which I actually supported I don't see a lot of call for that I certainly have not had anybody ask me for a DSP optimizations and I don't know how long ATM enhancements and kind of thing I don't see us doing a lot of built-in kind of file system specific clients I don't see a calm toolbox replacement on the horizon I'm afraid I TX ipx / PPP ISDN multi-link PPP more of the same so these are things that we basically decided are not going to remain on our list anymore so I've taken the liberty of exercising them and here's what we have less than here's what we're working on right now obviously right at the top of the list bug fixes we never have enough bug fixes yes okay thank you we I'm glad to have that feedback you know this is remember this is this is our take on things from where we're standing and if something I say doesn't make any sense let me know it doesn't make any sense and i'm happy to rethink it bugfixes DNS SEC is something that we're looking at Justin referred to dynamic dns a little earlier but dynamic dns and DNS SEC really interlink you don't want to be dynamically updating names of networked entities out there unless you've got some kind of kind of security associated with it so I don't see us doing the one without the other IP multihoming is something that people have been requesting for I don't know how long we are actively working on it right now we have prototyped implementations various places that are doing various things and we're making a lot of progress in that space IP second ipv6 justin is referred to previously and I'm going to go into those in just a little more detail here but I want to save the really good stuff for tomorrow when we got sessions dedicated to both of those subjects we are working on a unified control panel for networking so that rather than having to deal with seven different ones you've only got to deal with one and we've demonstrated various incarnations of that as time has gone on plug and play IP auto configuration is sort of a long way of saying ipv6 and again tomorrow in the ipv6 session I'm going to go into a lot of detail about what that's all about and why it's important then why you should care and finally our tepee PPP compression this isn't just RTP it's IP UDP TCP RTP header compression for serial lengths which is a real performance enhancement for applications like streaming media and what have you so these are the things were actively engaged in these days I wanted to break this out in a little more readable format but this is roughly or order of priorities on this thing and there's a reason for that I'd be multihoming an ipsec it turns out our prerequisites for doing ipv6 so in order to get daddy and I have to get these in first now these are these are features that have value in their own right but they had the list because I can't do what I really want to do until I do those things first multihoming we've talked about IPSec is going to become a very important technology if you're not familiar with ipsec you really ought to get familiar with it right now all of the proliferation of wireless devices has created a situation where all of you folks with airport cards are beaming all kinds of information all over the place and we had a little we had a little experiment a while back when we first got our set of base stations and airport cards over at Apple we sat out in the parking lot with one to see if like we could see what was going you bet so we're very careful about using dpns and limiting who can use which base stations but security over networking is very important and that's the point you should grasp here people spend a lot of money on fire walls but once you put a wireless card in your laptop yeah your firewall is not doing you a lot of good at that point so this is very important we're going to talk more about this tomorrow multicast DNS this is interesting we have now the ability we've had for a while for a bunch of people to sit down in a room and do a kind of ad hoc networking you know you can use wireless cards you can use I are you can actually hook people up to a hub if you want to do it that way one of the problems that you run into is that in an environment in an IT environment specifically where you're dynamically configuring addresses it's very difficult to do if not impossible to do that mapping from name to address I don't want people to have to remember that my IP number is 17 dots something that's something that's something I would much rather have them remember that my name the name of my machine is lefty apple com or whatever multicast DNS gives you a way to provide dns service in ad-hoc environments without having a dedicated dns server and in effect every machine in the ad hoc network operates as its own kind of mini dns server for the entities that are registered within the context of that node we're working on thread callable open transport and I'll go into a little more detail on that ipv6 justin is mentioned I'll talk a little more finally async appletalk initialization which I've been told doesn't have a lot of developer value but I think anybody who's like ever closed their laptop and opened it up again and had to wait 40 seconds for it to come back well tell you that it actually does have some value to them okay see I was right okay multihoming we're looking at a very minimal implementation of multihoming here I'm not proposing bringing a full router to your Macintosh because you don't want the H I anyway trust me if you want bhi there are nice third-party products that can actually do this to you but what we're proposing here is essentially a limited multihoming with no forwarding capability the assumption being that I've got a bunch of network interface is connected to my machine I say one of them is my default route and all of the others I make grabbing decisions based on the IP address and the subnet mask pretty easy i am the two together every incoming packet i look to see if it matches that subnet if it does it goes there if it doesn't it goes out the default and that's pretty easy doesn't require any human interface at all and we figure this will probably do the trick for probably ninety percent of the people who are interested in this because it's people who are interested in being on an ethernet while having an airport card active or what have you and nobody nobody's asking you to run a router on their Macintosh really so this is something that we actually can deliver that will not create a lot of a chai impact or a lot of confusion for people in it the valuable capability they don't have right now ipsec I've talked a little about already what we're proposing delivering here is a basic framework to allow you the developer to develop applications that utilize IPSec functionality we are not developed we are not delivering an actual IPSec product here what we are delivering is in effect the core functionality maintaining the security policy database that kind of thing what you have to supply as the developer is the actual key management logic if you want to have Ike then you've got to you've got to implement it on top of what we give you you've got to deliver the actual protocol arbitration we deliver just the core we're going to have more details on that at the ipsec session and that is 330 tomorrow next door ok multicast DNS I already talked a little bit about it's an extension of standard DNS that's being worked on by in large part by the IETF being led by one of our engineers here Stuart Cheshire again it's intended to support ad-hoc networks it's not solving the same problem as dynamic it's solving a similar problem the dynamic dns but not in at all the same way effectively we're putting a multicast dns kind of microserver into each macintosh and you will register names with this server in an analogous way to the way that you register NDP names now you'll do it through a mapper object so the analogy is is pretty straightforward there ok we're looking at making open transport callable from MP threads now it turns out that this is one of those things that also has prerequisites the thing that we basically needed to do to make all of this work was get rid of open transport reliance on Apple shared library manager which was a fine idea way back one once upon a time but it's been supplanted by CFM essentially unsupportable we're hoping that very few people use it and if you are using it right now we hope you'll stop soon the reason that we want to do this is basically to lay the groundwork so that we can put as an alternative to the standard o tapi two sockets interface on top of open transport there's no sense in my doing that unless it's semantically accurate when compared with a UNIX machine running the same api's so I need to have some kind of real robust threading in there in order to do that and that's what the goal of this essentially is ipv6 next-generation internet there are a lot of reasons that I'm not going to get into in great detail today because I've got a big long presentation on this for tomorrow a lot of reasons why you should be interested in ipv6 there people talk about the address space being exhausted that's not true it's not getting exhausted it's just been dabbling misallocated all along the big problem that we face right now is a combinatorial routing problem every time war nodes get added to the into the internet that's more things that more routers have to remember and the real problem is that ipv4 addresses carry no inherent routing information in them the router has to remember everything just based on the IP address ipv6 just to give you a quick preview gives you the capability of constructing addresses in such a way that they actually carry routing information in them there are other points of ipv6 that simplify and speed up all kinds of acts all kinds of aspects of using the internet and we're going to talk in detail about that tomorrow at five so I hope you'll come to that if you've got an interest in I hope you do again async appletalk initialization we substantially reduced boot and wake time and about time too okay I want to talk very quickly about where we're going on remote access so the main feature that we brought out with remote access in the last year was whereas we had previously shipped only a client version we're now shipping full client server this is basically the same remote access product that went out in a box once upon a time that people paid good money for it's now part of the regular operating system distribution the plans that we've got in the upcoming year are mostly around PPP multi-homing and that's in line with our work on multihoming for the rest of open transport as I mentioned earlier we're working on the advanced header compression that's specified in what is it RFC 2349 I guess and elsewhere we're working on support for the extensible authentication protocol which is being more widely used and it's been requested by a number of developers we are working on giving you finer control over the framing that's applied to the byte stream coming through remote access which will simplify implementation of alternative links for people who are doing things like pppoe and what have you and again we're looking at adding ipv6 support in there as well okay so time to talk about endangered species as I do every year there are some things I would like to have go away I don't think anybody much uses them I'm here to ask you to let me know if I'm grossly wrong about these things i'm pretty sure that mac IP is not being very heavily used we've been carrying it around for a lot of years it's tunneling IP through Apple talk and it's just not a wonderful idea it places all kinds of limitations and restrictions on things it would simplify our lives considerably if that could just go away nobody's told me it can but if you have a different opinion you should definitely let us know this is an old one you've heard before preps files they're still going away okay I know I know that all of you have been working very very hard on getting onto the network setup database API sand that's that's what you should be doing I am proposing actually getting rid of the preps this time around and again if somebody has a major objection to that they should definitely let us know because I don't want to cause problems but i do want to simplify matters in remote access it's about time that we said goodbye to the apple remote access protocol i don't see any real need really i would have done it last year okay well that's that's for sure then okay so we've got some additional resources that relate to the various points that we've mentioned here there's the mac OS ipv6 and ipsec package which you'll be able to find under the mac OS page on developer apple com of the project com a home page is at wwwcom net the ipv6 forum is at ww ipv6 org Mentats home page if you're interested in learning more about the core code that goes into open transport is it meant I meant at calm and the ipv6 conformance testing information is at tawheed org we have related sessions we've got this one right now which is certainly related but you've probably missed most of it by now tomorrow we've got IP second mac OS at three thirty in the room next door followed immediately by ipv6 in mac OS and both of those I think are going to be well worth attending these are largely going to take the form of technology introductions and overview so if you're not familiar with ipsec or you're not familiar with ipv6 and you want to get more information these are really good sessions for you to be attending there's gonna be a lot of a lot of interesting and informative stuff there also Dean Reese is going to be having the i/o kit networking hardware seminar at ten-thirty in the morning on friday in this room and finally I really strongly encourage everybody who has an opinion to share to come to the NMC feedback forum it used to be pretty years we had 14 9 and 14 10 but we've unified those as well this year so if you want to tell us what a great job we're doing or tell us what a bad job we're doing or something in between come to room j1 Thursday 1030am for the NMC feedback form and contact information I'm I'm lefty Justin Walker manages the Makah less networking group Tom wire is our guy in world wide developer relations they're all our email addresses we love to hear from people as long as it's not too abusive or even if it is if it's you know if it's like well thought out or creative and now I'd like to bring Justin and the Mac os10 networking teams and the mac OS 9 work networking teams all up on stage and we can do our QA thanks much you