Slashdot Mirror


Vista's TCP/IP Promises and Perils

boyko.at.netqos tips us to a new writeup on Vista's TCP/IP stack, which is called Compound TCP/IP (CTCP). From the article: "...security policy will come from a centralized source. When you get your DHCP lease, your computer will report to the stack what OS you're using, what version level, what patches, what anti-virus software that's active — all that kind of stuff. It will have the ability to restrict your network access if you have a down-level machine... We could see a lot of our customers with much higher WAN network utilization because of this new TCP/IP stack... CTCP can be enabled/disabled from the command prompt but there has been no mention of tuning parameters which leads us to ask the question: How are you supposed to configure this setting in Vista?... What worries us... is that Microsoft is basing this on packet round trip time. The round-trip time from the client-side will have the server processing time in it; but the clients aren't likely going to be the running the CTCP at first. If you have a server-to-server backup running, for example, CTCP may think its part of the round-trip time and it'll throw the delay window through the roof..."

12 of 183 comments (clear)

  1. Article summary by ledow · · Score: 5, Informative

    Article summary:

    We haven't used Vista.
    We haven't tested the features we're talking about.
    We think they're actually probably very good.
    We don't know (and nor does anyone) because we haven't tested them.
    They could be bad.
    They could do nasty stuff to your networks.
    But we don't know because we haven't tested anything.
    Sounds good in theory though.
    And all the MS guys that have ever wrote about it say it works.
    We don't think it'll work perfectly first time.
    But we don't know because we haven't tested anything at all in any way.
    We advise others to test before they make any decision.

    Good article. (That was sarcasm. At least I think it was but I haven't tested it myself yet).

  2. Why build it into the stack? by Kadin2048 · · Score: 5, Informative

    I don't get it. If you're just going to be querying the OS for information about its configuration (antivirus, patch state, version level, etc.) why don't you just implement it at a higher level? I don't see any reason to bury this sort of stuff down in the network stack. It could just as easily run as an application-level service rather than being built in down on the transport level. (And in fact I know of systems which do this sort of thing running as userspace tools.)

    The goal here seems to just be a way to allow corporate networks like WANs to restrict access based on the version of Windows that's running and the security software being implemented on the client. Setting aside how a rootkit would just fake the responses (and I don't believe for a second that there won't be rootkits for Vista once it gets mainstream), why does this have to be in the network stack? It could be easily implemented as part of the higher-level networking services like WINS or Active Directory, as a requirement before the user is allowed access to particular network resources.

    This whole concept seems rather flawed, unless there's some large part of it that I'm missing, and it just seems like it's going to require other OSes to rewrite their perfectly good TCP/IP stacks in order to inter-operate with Windows networks. Maybe that's the whole point?

    --
    "Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
    1. Re:Why build it into the stack? by jdray · · Score: 2, Informative

      Let's take preconceived notions about Microsoft out of the equation here for just a minute (hard to do, I know). If a system can't even get an IP address without proving that it's a good network citizen, then it can't do much of anything network related. In my experience, there's not typically a requirement to sign on to Active Directory or participate in WINS to get out on the Net; if you have an IP address and client software, you're surfing.

      --
      The Spoon
      Updated 6/28/2011
    2. Re:Why build it into the stack? by TheRaven64 · · Score: 4, Informative
      There shouldn't be. The DHCP specification explicitly allows you to embed arbitrary information in the request, and a server can filter based on any of this information. The 'options' field of the DHCP request (known as 'vendor extensions' in BOOTP, on which DHCP is based) is provided for this exact purpose. There's also nothing stopping an open source DHCP client from populating these fields saying 'I am a fully patched Windows machine,' or, indeed stopping an unpatched Windows machine doing the same thing, making it somewhat useless.

      --
      I am TheRaven on Soylent News
    3. Re:Why build it into the stack? by r3m0t · · Score: 2, Informative

      It's also insecure as hell, someone could write a virus that does nothing but shut off this checking and then erases itself. Then you got a lot of time spent by the Help Desk and/or Techs trying to figure out why no one can connect!

      Not if:
      1) This code is in the kernel,
      2) You are running a version of Vista which forbids patching of the kernel (i.e. modification of the kernel that is running) - that's any 64-bit installation

      Also not if:
      1) The setting requires a UAC prompt,
      2) The company has gone to the bother of training users to:
      2 a) Answer valid UAC prompts,
      2 b) Decline unexpected UAC prompts
      3) The requirement in (1) is secure and cannot be worked around. ... OK, it's insecure as hell.

  3. What the load of misinformation by zdzichu · · Score: 4, Informative

    I haven't read TFA, but based on blurb it will be horrible.

    Compound TCP is not a TCP/IP stack! It's congestion avoidance/recovery algorithm for TCP streams. It's one of many (Vega, Reno, BIC, CUBIC etc. etc.). It's also available for Linux (but was removed from standard kernel some time ago).

    Other things mentioned are parts of Network Access Control, which is already deployed in many companies. There are many software and hardware solutions available, Vista isn't special. It becoming must-have in corporate environment, praising Vista for having it is like claiming that DHCP client in OS is innovation.

    --
    :wq
    1. Re:What the load of misinformation by zdzichu · · Score: 4, Informative

      1. Didn't even read the article

        I was commenting blurb, not article itself.

      2. What does the design of the tcp/ip stack in any other OS have anything to do with this?

      Compund TCP is not stack design. It's one of congestion algorithms for TCP.

      --
      :wq
  4. Asking the Google for more info... by NullProg · · Score: 5, Informative

    I discover NAC/NAP. Network Admission Control and Network Access Protection. While the idea is noble, its going to be costly (for customers) to implement in mixed networks. They also don't discuss non PC network clients (Printers, Scanners, hand held etc). Even worse (see below), your going to have to pay for a 3rd party network stack for Windows 2000.

    White paper here: http://download.microsoft.com/download/d/0/8/d08df 717-d752-4fa2-a77a-ab29f0b29266/NAC-NAP_Whitepaper .pdf

    Interesting chat transcript here: http://www.microsoft.com/technet/community/chats/t rans/network/06_0914_tn_network.mspx

    From the transcript:

    Q: NAP seems to fulfill the pre-admission health/integrity check very well. Can customers use the same NAP infrastructure to support post-admission NAC? e.g. with NAP today I can check a desktop PC is healthy when it joins, but what about 24 hours later?
    A: Post-admission enforcement depends on the enforcement mechanism you're using. For instance, health will be re-evaluated when a client attempts to renew their IP address when using DHCP as the enforcement mechanism. For IPSec, it will happen when health certs expire. For 802.1x, it will happen when re-authentication occurs. For VPN, it will happen when clients reconnect. Any health change on the client will trigger re-evaluation of the health state, too.

    Q: What is the likelihood of a NAP agent for Windows 2000 clients in the network?
    A: We are not planning to implement a Windows 2000 NAP client. However, we are licensing our protocols to 3rd party companies so that they can offer NAP clients on Windows 2000 (and other OS's like Mac, Linux, etc.)


    Enjoy,

    --
    It's just the normal noises in here.
  5. Re:Sure, ask the client by Anonymous Coward · · Score: 1, Informative

    Using the new 'walled garden' features in the Windows Server series to direct the machines traffic to an isolated subnet that allows it to communicate only with the Windows Update Services software you can download and run. That machine gets the patches, and seeds them to your local machines on a schedule you control.

    When the machine is updated, it can be rebooted and then brought back into the fold.

    -Steve Gray

  6. Re:Raises questions by Todd+Knarr · · Score: 2, Informative

    It's just more vendor-specific fields in the DHCP request and response, plus some ioctl() hooks into the network stack. Basically a CTCP client brings up a normal unrestricted TCP stack and sends it's info in fields in the DHCP request. The DHCP server sees the fields, analyzes them and sends back configuration info in the DHCP response. The client then interprets the configuration info and uses the CTCP API to tell the network stack to impose the rules the server sent.

    Of course, you can see several gaping holes in this scheme already. As is only to be expected from Yet Another Harebrained Scheme Out Of Redmond.

  7. Re:Sometimes you need an IP, Sometimes you don't. by dave562 · · Score: 2, Informative
    What isn't addresses is how to then get updates - kind of hard without an address.

    The buzzword "quarantine network" has been tossed around for at least the last six months. The theory behind the technology is that a client that fails to meet the policy requirements will be directed to a completely seperate subnet (think DMZ) where it will have access to a server that will push down the necessary patches and AV upgrades to bring the client into compliance. In otherwords, if your network is on 10.1.1.x then the quarantine network might be 10.2.1.x and any client that fails to meet the policy will get a DHCP lease for the 10.2.1.x netowrk. Of course dedicated attackers will be able to eventually circumvent the technology, but fundementally it is pretty sound. It will definitely address the problem of Joe Blow bringing in his laptop from home full of virii. It should also help mitigate the issue of "rogue" laptops that aren't members of the domain. The first time a Linux box receives a query that it doesn't know how to respond to, it will be quarantined. Of course there are probably ways around that (maybe you could configure Samba to respond to the requests?), but it will take a dedicated attacker with thorough knowledge of the network and local access to it.

    A better way to handle the whole problem is to put machines into a quarantined VLAN and then dynamically change their port's VLAN after authorization has been established via any number of criteria.

    You might want to take a look at what Cisco is up to. They are the company that is really driving the whole quarantine network ideal and making it a reality.

  8. Re:It's called embrace and extend by hr+raattgift · · Score: 3, Informative

    I seem to have missed your Networking 101. Maybe that's good, because it seems your Networking 101 has garbled your understanding of layers and abstraction within a protocol stack.

    As CTCP is a protocol carried in IP, there should be no impact within the network, as practically nothing does deep introspection of packets other than firewalls (for policy) and end systems (for multiplexing and demultiplexing). Intermediate systems (i.e., IP routers) simply won't care or necessarily even notice that the IP datagrams they're forwarding have something other than TCP or UDP or GRE or UTI or, well, there are a hundred other "layer 4" (transport layer) possibilities counting only those with assigned numbers from IANA. Internet routers examine and forward "layer 3" (network layer) packets.

    Your ethernet switches and other varieties of LAN equipment will see frames carrying only one network layer protocol for any of these: IP. These switches examine and forward "layer 2" packets.

    AppleTalk, IPX, XNS and so forth are separate network layer protocols ("layer 3") from IP, and it is extremely unlikely that CTCP ("layer 4") will be defined for any of these other than IPv6, and it's unlikely that any of them (possibly including IPv6) will be carried natively (i.e., not tunnelled) across more than the tiniest fraction of wide area networking infrastructure.

    Using a single network layer ("layer 3") protocol is operationally easier than using multiple network layer protocols, and operator skill has not scaled nearly as well as either bandwidth or forwarding performance since multiprotocol WANs were common (late 1980s, early 1990s). This is especially true for very large scale networks, like international backbones and national network operators, and even larger regional and metro operators.

    The trade-off favouring reduced operator knowledge ("we just move IP very very quickly") at the expense of encapsulation overhead (computation in the end systems, bandwidth everywhere else) has been an economic one, not a technical one. Indeed, many technical people, particularly IPv6 and MPLS proponents, really like the idea of a multiprotocol big-I Internet in order to experiment with possible future network-based services like finer-grained addressability or explicit routing. I am not one of these people, but my objections are almost entirely economic (well, I do think both MPLS and IPv6 are weak and overly conservative hacks at operational problems which unsurprisingly have evolved faster and further than these two protocol suites can reasonably be expected to cope with).

    RFC 2001 describes the congestion-avoiding system at the heart of TCP, which is the Internet's dominant bulk transfer protocol. Any other bulk transfer protocol with a similar system to RFC 2001's slow start and congestion avoidance could reasonably say that it is designed for "TCP fairness" in that -- on average -- the occupancy of a pure tail-drop FIFO queue in front of a chronic bottleneck will be inversely proportional to the number of congestion-avoiding flows traversing that bottleneck at the same time.

    This sort of fairness is easy to demonstrate both in simulation and live across a WAN or the Internet, and is done regularly, since improving TCP specifically or bulk transfer performance in general is an active area of networking research.

    With respect to intermediate systems, their operators generally won't care about well-behaved (in the fairness sense) flows, since they should be nondisruptive and should not require special handling of the IP packets they're carried in.

    Badly behaved flows are generally counterproductive. Most "greedy" and "impatient" bulk transfer protocols do not perform well in comparison with TCP, and usually end up generating more traffic and take more time to do the same work. Unfortunately, such flows can also slow down TCP bulk transfers by causing and increasing actual network congestion.

    Queueing discip