home *** CD-ROM | disk | FTP | other *** search
/ Network Support Encyclopedia 96-1 / novell-nsepro-1996-1-cd2.iso / download / netware / pburst.exe / APPNOTE.TXT next >
Text File  |  1993-11-16  |  33KB  |  812 lines

  1. This is a reprint of a of "Packet Burst Update: BNETX vs. VLM
  2. Implementations" in the November 1993 Issue of NetWare
  3. Application Notes.  To order a copy of this application note,
  4. which includes graphics not found in this reprint, see the end of
  5. this article.
  6.  
  7. NOVEMBER 1993   
  8.  
  9. Packet Burst Update:
  10. BNETX vs. VLM Implementations
  11. Myron Mosbarger
  12.  
  13. Senior Consultant
  14. Systems Research Department
  15. Drex Dixon
  16. Systems Software Engineer
  17.  
  18. NetWare Systems Group
  19.  
  20. Novell's new implementation of packet burst in the DOS
  21. Requester(VLMs) offers several advantages over traditional packet
  22. windowing implementations and over Novell's previous packet burst
  23. shell (BNETX).This AppNote compares the old and new
  24. implementations, focusing on the architectural changes that have
  25. been made. By understanding the use of PB buffers and how each
  26. version uses window size and interpacket gap for dynamic
  27. self-adjustment, network administrators will have the conceptual
  28. foundation for installing or updating packet burst on their own
  29. network.
  30.  
  31. Copyright ■ 1993 by Novell, Inc., Provo, Utah. All rights
  32. reserved.
  33.  
  34. No part of this document may be reproduced, stored in a retrieval
  35. system, or transmitted in any form or by any means, electronic,
  36. mechanical, photocopying, recording, or otherwise,without express
  37. written permission from Novell, Inc.
  38.  
  39. Disclaimer
  40.  
  41. Novell, Inc. makes no representations or warranties with respect
  42. to the contents or use of these Application Notes (AppNotes) or
  43. of any of the third-party products discussed in the AppNotes.
  44. Novell reserves the right to revise these AppNotes and to make
  45. changes in their content at any time, without obligation to
  46. notify any person or entity of such revisions or changes. These
  47. AppNotes do not constitute an endorsement of the third-party
  48. product or products that were tested. Configuration(s) tested or
  49. described may or may not be the only available solution. Any test
  50. is not a determination of product quality or correctness, nor
  51. does it ensure compliance with any federal, state, or local
  52. requirements. Novell does not warranty products except as stated
  53. in applicable Novell product warranties or license agreements.
  54.  
  55.  
  56.  
  57. Contents
  58.  
  59. Introduction . . . . . . . . . . . . . . . . .63
  60. Brief Review of Packet Burst. .    . . . . . .63
  61.    The Old Implementation (BNETX)  . . . . . .63
  62.    The New Implementation (VLM)    . . . . . .64
  63. Key Concepts . . . . . . . . . . . . . . . . .64
  64.  
  65.    Buffering . . . . . . . . . . . . . . . . .64
  66.    Windowing . . . . . . . . . . . . . . . . .64
  67.    Interpacket Gap (IPG) . . . . . . . . . . .66
  68.  
  69. Comparison of Packet Burst in BNETX and VLMs .67
  70.    PB Buffers  . . . . . . . . . . . . . . . .68
  71.       PB Buffers in BNETX  . . . . . . . . . .68
  72.       PB Buffers in VLMs . . . . . . . . . . .70
  73.    Window Size and Interpacket Gap . . . . . .71
  74.      Window Size in BNETX . . . . . . . . . .71
  75.       Window Size in the VLMs  . . . . . . . .72
  76.       Adjusting the Window Size  . . . . . . .74
  77.    Tuning the Interpacket Gap  . . . . . . . .75
  78.       The Optimum Delivery Rate  . . . . . . .75
  79.       Determining the IPG 
  80.          in VLM 1.02 and Earlier . . . . . . .75
  81.       Determining the IPG 
  82.          in VLM 1.03 and Later . . . . . . . .76
  83.       Pings Over Satellite Links . . . . . . .77
  84.    Congestion  . . . . . . . . . . . . . . . .78
  85.       How BNETX Handles Congestion . . . . . .78
  86.       How the VLMs Handle Congestion . . . . .79
  87. Conclusion   . . . . . . . . . . . . . . . . .79
  88.  
  89.  
  90. Trademarks Novell, the N design, and NetWare are registered
  91. trademarks, and Internetwork Packet Exchange, NetWare Loadable
  92. Module, NLM, NetWare DOS Requester, NDR, Packet Burst, Virtual
  93. Loadable Module, and VLM, are trademarks of Novell, Inc. All
  94. other product names mentioned are trademarks of their respective
  95. companies or distributors.
  96.  
  97. Introduction
  98.  
  99. Two major concerns as local area networks have grown into
  100. metropolitan and wide area networks (WANs) are bandwidth
  101. utilization and response time.  Novell developed packet burst
  102. technology as an enhancement to its NetWare Core Protocol (NCP),
  103. primarily to increase available bandwidth and reduce response
  104. time on busy network segments and over low-speed links. 
  105.  
  106. The first implementation of packet burst consisted of an add-on
  107. module (PBURST.NLM) for the NetWare 3.11 operating system and a
  108. burst mode version of the NETX shell (BNETX.EXE).  With the
  109. release of NetWare 4.x and 3.12, packet burst has been redesigned
  110. and integrated as a feature in the core products.  The
  111. workstation packet burst capabilities are integrated into the new
  112. VLMs (Virtual Loadable Modules) and are enabled in the default
  113. workstation configuration.
  114.  
  115. The differences between BNETX and the VLM implementations of
  116. packet burst are significant. This AppNote focuses on the changes
  117. in Novell's packet burst implementation and identifies the
  118. effects they have on network throughput.
  119.  
  120. Brief Review of Packet Burst 
  121.  
  122. NetWare's original service protocol, NCP, was designed and
  123. optimized for use over high-speed LAN links (2.5 Mbps and
  124. faster).  The one-to-one request and response ratio imposed by
  125. NCP did not present a problem for local area communication.  As
  126. NetWare users began communicating over slower wide area links,
  127. some of the limitations of this request/response dialogue were
  128. accentuated. 
  129.  
  130. The Old Implementation (BNETX)
  131.  
  132. To improve throughput during large file transfers, Novell's
  133. initial implementation of packet burst modified the number of
  134. packets sent in response to a request.  This allowed a
  135. many-to-one ratio rather than a one-to-one ratio when a client
  136. was reading or writing large files (over 64KB).  The process was
  137. dynamic and improved throughput during file transfer by
  138. increasing the number of packets that could be sent before
  139. receiving an acknowledgement.
  140.  
  141. This required modifications to the workstation shell (NETX),
  142. which culminated in the creation of a new shell called BNETX and
  143. a new NetWare Loadable Module (NLM) called PBURST.NLM. 
  144. Generally, users on wide area networks (typically slower links)
  145. stood to gain the most from using BNETX.  Implementing an optimal
  146. configuration with BNETX required manual modification of the
  147. workstation's NET.CFG file.
  148.  
  149. For in depth information regarding Novell's packet burst shell,
  150. see "An Introduction to Burst Mode Technology" in the March 1992
  151. NetWare Application Notes.
  152.  
  153. The New Implementation (VLM) 
  154.  
  155. While the first iteration of packet burst was successful in many
  156. installations, its ability to dynamically configure and adjust to
  157. network conditions was limited. In the current implementation of
  158. Novell's DOS Requester, packet burst is automatically enabled at
  159. the workstation in the FIO Virtual Loadable Module (VLM).  At the
  160. server, packet burst is an integral component of the NetWare 4.x
  161. operating system.  No special code is required. NetWare 3.12 also
  162. has packet burst capabilities integrated into the operating
  163. system.
  164.  
  165. Note: 
  166.  
  167. If workstations will be running the new VLMs and connecting to    
  168. file servers running NetWare 3.11, the PBURST.NLM must be
  169. installed on those servers to take advantage of the new VLM
  170. packet burst features.
  171.  
  172. Key Concepts
  173.  
  174. Before proceeding with our comparison of the BNETX and VLM packet
  175. burst implementations, it is helpful to have some basic
  176. understanding of buffering, windowing, and interpacket gap. 
  177. These are key to understanding the major architectural
  178. differences between traditional windowing protocols, BNETX, and
  179. the VLMs.
  180.  
  181. Buffering 
  182.  
  183. To understand how Novell's packet burst VLM works, we must first
  184. understand where and how buffering is used in NetWare
  185. communications. There are two kinds of buffers which affect
  186. throughput:
  187.  
  188.  The network interface card hardware buffers, which are
  189. responsible  for taking packets off the network and passing them
  190. to the receiving  device.
  191.  
  192.  Workstation (shell) and router buffers, which are responsible
  193. for  copying or transferring packets, or their contents, to
  194. memory.  As we will see, hardware and software buffers can
  195. significantly limit the amount of data a workstation or router
  196. can handle. 
  197.  
  198. Windowing
  199.  
  200. Traditional windowing implementations focus on sending groups of
  201. packets back-to-back in what is called a "window." Once all of
  202. the packets in the window have arrived at the destination, a
  203. single acknowledgment packet is returned (see Figure 1). 
  204.  
  205. Figure 1: 
  206.  
  207. In traditional windowing protocols, a group of packets is sent
  208. with a single acknowledgement packet.
  209.  
  210. Provisions are made in case not all of the packets in the window
  211. arrive intact. For example, if 10 packets were requested, the
  212. receiving station tracks the packets it receives by sequence
  213. number. If any packets are not received within the timeout
  214. period, the receiving station requests are-send.  The re-send
  215. begins with the lost packet (packet #5 in the example shown in
  216. Figure 2) and includes all packets in sequence to the end.
  217.  
  218.  
  219. Figure 2: 
  220. When packets are dropped, the packets are re-sent starting with
  221. the one that was bad.
  222.  
  223. In traditional windowing implementations, adjusting the window
  224. size is the primary means of tuning throughput. This tuning
  225. process is illustrated in Figure 3.
  226.  
  227. Figure 3: 
  228. When packets are dropped, the window size is reduced in
  229. traditional windowing implementations.
  230.  
  231. A small number of dropped or missing packets is to be expected
  232. due to varying network traffic conditions.  But when a specified
  233. number of packets is dropped in so many windows in a row, the
  234. window size is adjusted downward. Decreasing the window size
  235. reduces the probability of dropped packets, which generally makes
  236. the file transfer process more efficient because there aren't as
  237. many re-sends. 
  238.  
  239. However, as the window size becomes smaller and smaller it can
  240. also reduce the effectiveness of the windowing protocol.  After
  241. all, the whole point is to be able to send a group of packets
  242. instead of a single packet for each acknowledgement.
  243.  
  244. Interpacket Gap (IPG)
  245.  
  246. Interpacket gap is the time that elapses between the end of one
  247. packet and the beginning of the next, as illustrated in Figure 4.
  248. Adjusting the IPG (or packet metering, as it is sometimes called)
  249. is a technique not commonly used in traditional windowing
  250. protocols.  As explained above, traditional windowing
  251. implementations focus on adjusting the window size as the sole
  252. means of managing throughput.  Novell's latest packet burst
  253. implementation adjusts the IPG as the primary variable for
  254. increasing throughput, then adjusts the window size as the
  255. secondary variable.
  256.  
  257. Figure 4: 
  258.  
  259. The interpacket gap is the time between the end of one packet in
  260. the window and the beginning of the next.
  261.  
  262. Adjusting the IPG is a technique used in Novell's VLM
  263. implementation of packet burst.  It provides greater throughput
  264. than adjusting the window size because the number of packets per
  265. window remains the same. By adjusting the IPG, packets flow
  266. through the workstation in larger windows and with no retries.
  267.  
  268. Figure 5: 
  269. Adjusting the IPG controls the flow of packets to match the
  270. ability of the receiving NIC to handle them.
  271.  
  272.  
  273. Optimally, the packet receive rate is equal to the workstation's
  274. capacity to receive and distribute the data with no dropped
  275. packets. The VLMs dynamically adjust and optimize the IPG to
  276. overcome the limitations of hardware processing speed and
  277. hardware buffering, as shown in Figure 5.
  278.  
  279. Comparison of Packet Burst in BNETX and VLMs
  280.  
  281. There are three major differences between packet burst in BNETX
  282. and in the VLMs. They are:
  283.  
  284.  Their use of workstation buffers (PB Buffers)
  285.  Their use of window size and interpacket gap as tuning
  286. variables
  287.  Their ability to self-configure and handle congestion
  288.  
  289. PB Buffers 
  290.  
  291. PB Buffers in BNETX.  
  292.  
  293. To configure the number of buffers the shell can use for packet
  294. burst, workstations running BNETX require a modification to the
  295. NET.CFG file, similar to the following:
  296.  
  297. PB Buffers = 4  (or some other decimal value)
  298.  
  299. This value determines the amount of memory that will be claimed
  300. by the shell for packet burst buffers.  The formula for
  301. calculating the memory requirement associated with BNETX is: 
  302.  
  303. Memory required by shell = PB Buffers X Packet Size
  304.  
  305. For example, if the packet size is 1500 bytes (as it is for
  306. Ethernet), the amount of additional memory allocated to the
  307. workstation shell to run BNETX with four buffers is 6000 bytes (4
  308. X 1500 = 6000).  For Token Ring (with 4096-byte packets), the
  309. same configuration would require 16,384 bytes of memory.
  310.  
  311. Note that this is non-returnable memory. Once it has been
  312. pre-allocated to the shell for packet burst buffers, the memory
  313. is no longer available for any other use.
  314.  
  315. A number of other factors come into play here. For one, the
  316. NetWare shell has a 64KB segment limit, which makes it possible
  317. to specify a PB Buffers value greater than the shell can
  318. accommodate. For example, if the current shell size is 43KB, the
  319. maximum available memory left for buffers would be 21KB (64KB X
  320. 43KB). As shown in Figure 6, this much memory could accommodate
  321. fourteen 1500-byte Ethernet buffers or five 4096-byte Token Ring
  322. packets.
  323.  
  324. Figure 6: 
  325. The 64KB segment limit of the BNETX shell limits the amount of
  326. buffer space available.
  327.  
  328. With BNETX, performance generally improves as the number of
  329. buffers increases. However, there is a point after which adding
  330. more buffers yields only nominal performance benefits. For
  331. example, experience has shown that a PB Buffer value of 10 for
  332. 4096-byte Token Ring packets provides no more performance benefit
  333. than a value of 5 would.
  334.  
  335. Another weakness with BNETX is its inability to dynamically
  336. configure the number of buffers needed.  Arriving at an
  337. "optimized" configuration requires user intervention on each
  338. workstation using packet burst. To discover the optimal number of
  339. buffers, a user must experiment.  Without the aid of network
  340. analyzers, this is mostly a trial-and-error process.  Once the
  341. proper number of buffers is determined, you must examine the
  342. workstation to see if it has enough memory to support the packet
  343. burst configuration along with the other applications running at
  344. the workstation.
  345.  
  346. In addition to its stringent memory requirements, the way BNETX
  347. uses buffering requires two moves or copies to transfer data into
  348. workstation memory (see Figure 7).
  349.  
  350. Figure 7: 
  351. BNETX requires two separate transfers or copies to get data from
  352. the NIC memory into workstation memory.
  353.  
  354. The latency factor as packets are first transferred into buffer
  355. memory and then into workstation memory limits the overall speed
  356. at which packets could be received. The net result is a decrease
  357. in actual throughput.
  358.  
  359. PB Buffers in VLMs.  
  360.  
  361. In Novell's VLM implementation, the workstation packet burst
  362. feature is contained in the FIO.VLM module.  (FIO stands for File
  363. Input/Output.)  Like BNETX, FIO.VLM uses the "PB Buffers = "
  364. statement in NET.CFG, which is set by default to a value of 3. 
  365. Unlike BNETX, the VLM does not use this value to set aside buffer
  366. space.  Rather, the value either enables (non-zero integer) or
  367. disables (zero) the packet burst feature at the workstation.
  368.  
  369. For example, if packet burst feature will not be used, a small
  370. amount of memory can be reclaimed by adding the following command
  371. to the NET.CFG file:
  372.  
  373. PB Buffers = 0
  374.  
  375. This command disables packet burst at that workstation and
  376. reduces the DOS Requester's memory requirement slightly.
  377.  
  378. Another difference is that the FIO.VLM does not buffer read
  379. packets into an intermediate buffer pool as BNETX did.  It
  380. requires only one copy to transfer memory from the NIC to the
  381. workstation (see Figure 8).
  382.  
  383. Figure 8: 
  384. The VLM implementation requires only one transfer to get data
  385. from NIC memory into workstation memory.
  386.  
  387. This major architectural change provides several benefits over
  388. BNETX.  The most significant advantage is the VLM's ability to
  389. dynamically configure buffering at each workstation -- no user
  390. intervention or NET.CFG modification is required. In addition,
  391. the VLM dynamically tunes itself for optimal performance and
  392. improves throughput by eliminating the latency effects associated
  393. with the addition of intermediate buffers.
  394.  
  395. Window Size and Interpacket Gap 
  396.  
  397. Window Size in BNETX.
  398.  
  399. BNETX is basically a traditional implementation of a windowing
  400. protocol over IPX.  It adjusts the window size as its primary
  401. means of flow control.  As shown in Figure 9, packets are sent in
  402. windows of a predetermined size.  If packets are dropped, the
  403. window size is adjusted downward to accommodate either network
  404. traffic or the destination device's capacity to receive packets. 
  405. With BNETX, the IPG remains relatively constant and does not
  406. generally improve performance.
  407.  
  408. Figure 9: 
  409. The BNETX implementation adjusts the window size as its
  410. primary means of flow control.
  411.  
  412. Determining the appropriate window size is crucial to the tuning
  413. process.  In Novell's BNETX implementation, the initial window
  414. size is determined by the shell, the PB Buffers parameter, and
  415. the packet size--with a maximum window size of 64KB.
  416.  
  417. BNETX requires the number of workstation buffers to be set by
  418. editing the NET.CFG file.  The workstation then configures its
  419. shell memory buffers when NET.CFG is run, as described above. 
  420. For that reason, BNETX will never request a window size larger
  421. than its buffering capacity.
  422.  
  423. It is important to understand that the shell or memory buffering
  424. capacity of the receiving device is independent from the hardware
  425. buffering capabilities of the network interface card. Therefore,
  426. setting the buffer size higher than the NIC can handle will in
  427. effect waste memory.  In BNETX, the maximum buffering
  428. capabilities of a workstation is the weakest buffering component.
  429.  
  430. Window Size in the VLMs.
  431.  
  432. Version 1.02 and earlier versions of the VLMs do not adjust the
  433. window size, only the IPG.  VLMs version 1.03 and later do adjust
  434. the window size, but only after adjusting the IPG to its maximum
  435. value first. 
  436.  
  437. For VLM versions 1.02 and later, window sizes are determined as
  438. follows.
  439.  
  440. By design, the VLM implementation has no window size limitation
  441. as BNETX does (this has been successfully tested and confirmed). 
  442. However, to accommodate the capabilities of the majority of
  443. network devices, the values of 16 packets for a read and 10
  444. packets for a write have been set as defaults. The maximum window
  445. size is calculated as follows:
  446.  
  447. Maximum number of reads  (16) X the frame size
  448.  
  449. Maximum number of writes (10) X the frame size 
  450.  
  451. To illustrate how these imposed defaults work, suppose a
  452. workstation attached locally on a network segment wants to read a
  453. 56KB file. On Ethernet, the workstation will request two windows
  454. (16 packets) of 24KB and one window (6 packets) of 8KB. On Token
  455. Ring with 4KB packets,the workstation would have one window (14
  456. packets) of 56KB (see Figure 10).
  457.  
  458. Figure 10: 
  459. Imposed defaults for maximum window size determine how
  460. many packets can be sent in a burst.
  461.  
  462. Window sizes of 16 for reads and 10 for writes were selected for
  463. two reasons.  First,  they provide a greater reliability in a
  464. wide variety of installations.  On wide area networks or slower
  465. links (which are generally more prone to loss than LAN links),
  466. larger window sizes tend to be less reliable.  Second, as the
  467. number of packets in a transfer increases, the percentage of
  468. improvement increases substantially within the first 10 to16
  469. packets.  Beyond that, performance improvements are minimal (see
  470. Figure 11).
  471.  
  472. Figure 11: 
  473. As the size of the burst increases, so does the percentage of
  474. performance improvement.
  475.  
  476. Starting with VLM version 1.02, two new configuration parameters
  477. have been added to allow users to modify the packet burst window
  478. size:
  479.  
  480. PBURST READ WINDOW SIZE  = n   (3 to 255)
  481.  
  482. PBURST WRITE WINDOW SIZE = n   (3 to 255)
  483.  
  484. When entered in the NET.CFG file, these commands allow a user to
  485. override the defaults. For users on a locally-attached segment
  486. whose network and server have sufficient capacity, increasing the
  487. number of packets in a read or write will improve performance
  488. even more.
  489.  
  490.  
  491.  
  492. Adjusting the Window Size.  
  493.  
  494. The window size is adjusted exponentially.  As an example,
  495. suppose a window size of 16 packets with a maximum packet size of
  496. 1KB reaches it maximum IPG and the percentage of unsuccessful
  497. bursts is unacceptable. The window size will be decreased
  498. according to the following formula:
  499.  
  500. NewWinSz = CurWinSz ■ ((CurWinSz ■ 3 ■ MaxPcktSz) / 4) 
  501.  
  502. In our example, the new window size would become 12KB. The
  503. calculation is as follows:
  504.  
  505. 16KB ■ ((16KB ■ 3 ■ 1KB) / 4) = 12KB
  506.  
  507. If a 12KB window size was also found to be unacceptable, the size
  508. would be reduced to 10KB, and so on.
  509.  
  510. Tuning the Interpacket Gap 
  511.  
  512. Unlike traditional windowing implementations, the VLMs
  513. substantially improve throughput by "tuning" the IPG. This
  514. technique is unique to Novell's VLM packet burst implementation.
  515.  
  516. The Optimum Delivery Rate.  
  517.  
  518. Conceptually, the optimal window delivery rate sends data at the
  519. same rate the slowest device along the packet delivery path can
  520. process it, without dropping any packets. This would create a
  521. smooth flow of data with the least amount of overhead (timeouts,
  522. re-sends, and so on). Novell has found that by adjusting the
  523. interpacket gap, very large windows of data can be sent
  524. successfully.
  525.  
  526. Determining the appropriate interpacket gap is the key to this
  527. process.  Ideally, when the gap is optimally tuned, a workstation
  528. can read or write a window of any size.
  529.  
  530. Determining the IPG in VLM 1.02 and Earlier.  
  531.  
  532. Since VLM version 1.02 adjusts only the IPG, not the window size,
  533. it is important to determine an appropriate maximum IPG or
  534. ceiling for a window. To do so, the workstation sends a series of
  535. pings (messages that go to the destination and back again). Half
  536. the time value of fastest round trip becomes the maximum
  537. interpacket gap (see Figure 12).
  538.  
  539. Figure 12: 
  540. To arrive at the maximum IPG, the workstation takes half of the
  541. fastest round-trip ping time.
  542.  
  543. With this maximum value established, the requesting device begins
  544. the file transfer by using an IPG of 0 (zero).  When a
  545. predetermined number of failures occur (for example, two packets
  546. dropped in six bursts), the interpacket gap is automatically
  547. increased until either no packets are dropped or the maximum IPG
  548. is reached.
  549.  
  550. As an example, suppose a workstation determined a maximum IPG
  551. value of 5000. The initial IPG is set to zero. If this is
  552. unsuccessful, the IPG is increased to 3000. If this is
  553. successful, it remains unchanged.  This process is illustrated in
  554. Figure 13.
  555.  
  556. Figure 13: 
  557. The process of adjusting the IPG in VLM versions 1.02 and
  558. earlier.
  559.  
  560. The ceiling value is large enough to handle nearly all network
  561. and workstation bottlenecks. Since the VLMs pass data directly to
  562. memory on the workstation, the only buffer limitations are those
  563. of the interface card (or in the case of a router, both hardware
  564. and receive buffers).  Remember, for VLMs version 1.02 and
  565. earlier, only the IPG is changed, not the window size. 
  566.  
  567. Determining the IPG in VLM 1.03 and Later.  In the latest version
  568. of the VLMs, the initial IPG is set to half of the maximum IPG
  569. and uses a binary algorithm to reach the optimum IPG. This
  570. represents two changes:
  571.  
  572.  First, by setting the initial IPG at half the maximum rather
  573. than zero,  the number of re-sends is reduced for the majority of
  574. today's  workstations.
  575.  
  576.  Second, the binary algorithm for tuning the IPG is
  577. substantially faster  than the method used in VLM 1.02, and
  578. allows for fine tuning the  gap time to maximize performance.
  579.  
  580. These two changes can improve login time for packet burst-enabled
  581. workstations.
  582.  
  583. Figure 14 illustrates how the IPG tuning method works for VLM
  584. versions 1.03 and later.
  585.  
  586. Figure 14: The IPG tuning method for VLM versions 1.03 and later.
  587.  
  588. In this example, if the maximum IPG is 5000 microseconds, the
  589. initial IPG would be set at 2500.  If this were successful, the
  590. IPG would be decreased to 1300 microseconds. If that were
  591. successful, the IPG would be reduced to 700 microseconds.  If
  592. that were unsuccessful, the IPG would be increased to 1000
  593. microseconds.  This process would continue until a baseline IPG
  594. is established.
  595.  
  596. Note: When decreasing the IPG, the algorithm rounds up (1250
  597.       becomes 1300). When increasing the IPG, the algorithm
  598.       rounds down (1250 becomes 1200).
  599.  
  600. The method used in version 1.03 will be faster for the majority
  601. of client workstations and will tune all machines faster than the
  602. 1.02 method.
  603.  
  604. Pings Over Satellite Links.
  605.  
  606. When dealing with satellite or network links with inherent
  607. delays, the original ping process produced an unrealistic value.
  608. To accommodate this type of link, the ping process was modified
  609. to determine an approximate available bandwidth.  This is
  610. accomplished by sending three pairs of pings across the network
  611. link.  The time between the end of the first packet and the end
  612. of the second packet in each pair is computed and saved.  The
  613. average of all three pings is computed and becomes the maximum
  614. IPG for the workstation. Based on this value, the IPG is set to
  615. half the value for the first transfer and is then tuned for
  616. optimal throughput (see Figure 15).
  617.  
  618. Figure 15: 
  619.  
  620. Modified process for determining IPG over satellite links with
  621. inherent delays.
  622.  
  623. This method provides a good approximation of the available
  624. bandwidth across the route.
  625.  
  626. Congestion
  627.  
  628. A potential problem with high volume, "bursty" traffic is
  629. bandwidth availability and congestion. Traditional packet burst
  630. implementations can add additional traffic.  For example, if a
  631. burst of packets begins transferring and packets are dropped (due
  632. to increased traffic) during the transfer, retry algorithms tend
  633. to increase congestion with retry packets.  This creates
  634. additional traffic on an already busy network. The effect of this
  635. problem as seen by the users could be lost network
  636. connections,slow response, or other related timeout problems. 
  637.  
  638. When packets are dropped, it is the function of the client or
  639. workstation software to initiate retries.  Client software that
  640. is unable to dynamically adjust or back off the number of packets
  641. and retries in high traffic conditions tends to worsen the
  642. problem by increasing the number of packets sent, which was the
  643. cause of the problem initially.
  644.  
  645. How BNETX Handles Congestion.
  646.  
  647. BNETX adjusts to network congestion in the traditional manner by
  648. adjusting the window size.  The window size is temporarily
  649. reduced and will eventually return to the original baseline size.
  650. The smaller the window, the more windows are needed to complete a
  651. transfer and with each window an acknowledge packet is sent. 
  652. This means that packet burst becomes less effective in high
  653. traffic situations.
  654.  
  655. How the VLMs Handle Congestion.
  656.  
  657. The VLM deals with congestion by increasing the IPG.  The VLM
  658. checks for network congestion by monitoring and tracking the
  659. number packets lost during a transfer. 
  660.  
  661. For example, if one packet is lost in six windows, the VLM makes
  662. no corrections. However, if a packet is dropped in consecutive
  663. windows, the VLM would increase the IPG for the next several
  664. windows. This process will continue until the number of packets
  665. dropped is within an acceptable limit (see Figure 16).
  666.  
  667. Figure 16: 
  668. The VLM handles network congestion by increasing the IPG.
  669.  
  670.  
  671. Remember, the retry timeout and IPG values are based on
  672. information received about the network's capacity prior to the
  673. file transfer.
  674.  
  675. The primary difference between adjusting the window size and
  676. adjusting the IPG is that the number of acknowledgements does not
  677. increase as traffic increases. This means that when windows of
  678. 24KB are being sent, there is no loss in the efficiency of the
  679. packet burst protocol even though the packets arrive at a slower
  680. rate. In contrast, there is a loss of efficiency when adjusting
  681. the window size.
  682.  
  683. Conclusion 
  684.  
  685. In NetWare 3.12 and 4.x, the FIO.VLM contains Novell's new
  686. implementation of packet burst for workstations. This
  687. implementation offers several advantages over typical packet
  688. burst implementations and over Novell's previous version (BNETX).
  689. While VLM versions 1.03 and later have been significantly
  690. improved for locally-attached users, they have been modified
  691. specifically to provide increased performance for low-speed links
  692. and links with delays over VSAT (Very Small Aperture Terminal).
  693.  
  694. The percentages shown in Figure 17 are representative of the
  695. performance benefits that come from using BNETX or the VLMs over
  696. NETX. Keep in mind that network interface cards, drivers,
  697. workstations,and servers all influence total throughput. Our
  698. testing was mainly conducted to show the effect of the tuning
  699. algorithms for the VLMs compared to BNETX.
  700.  
  701. Figure 17: 
  702.  
  703. Percentage of performance increase for BNETX and the VLMs as
  704. compared to the NETX shell.
  705.  
  706. Sites which are doing large file transfers or which are currently
  707. using BNETX will benefit substantially by installing version 1.03
  708. of the VLMs.
  709.  
  710. About Novell Research
  711.  
  712. Novell Research is a program through which Novell publishes
  713. technical information about designing, implementing, and managing
  714. NetWare-based systems. Publications produced by Novell Research
  715. include NetWare Application Notes and Novell Research Reports.
  716.  
  717. Novell Research publications are written by Novell consultants
  718. and
  719. engineers, with the help of outside industry experts when
  720. necessary.
  721. The information contained in these publications is based on lab
  722. research and actual field experience of the authors, covering
  723. topics
  724. in these main areas:
  725.  
  726. o    Network design and optimization strategies
  727. o    Network management tactics
  728. o    NetWare internals and theory of operations
  729. o    Novell product implementation guidelines
  730. o    Integration solutions for third-party products
  731. o    NetWare programming techniques
  732.  
  733. This information is designed to benefit Novell's technical
  734. audience
  735. consisting of systems engineers, support engineers, consultants,
  736. programmers, network managers, and information systems
  737. personnel.
  738.  
  739. Novell's Systems Research Department in Provo, Utah, serves as
  740. home to Novell Research. However, the name "Novell Research" and
  741. the program represent all of Novell's geographic locations and
  742. business units.
  743.  
  744.  
  745. NetWare Application Notes
  746.  
  747. NetWare Application Notes (AppNotes) is published monthly by
  748. Novell. Each issue contains several articles that address
  749. different
  750. aspects of working with NetWare, including design,
  751. implementation,
  752. development, and optimization. The material is based on technical
  753. research performed by Novell personnel.
  754.  
  755.  
  756. Novell Research Reports
  757.  
  758. Novell Research Reports are in-depth treatments of key technical
  759. issues such as network backup and security. These reports also
  760. represent technical research performed by Novell personnel. 
  761. Cooperative research projects are planned for topics of general
  762. interest for which Novell cannot produce strategic research
  763. without
  764. outside assistance.
  765.  
  766.  
  767. Subscription Rates
  768.  
  769. NetWare Applications Notes are available directly from Novell, by
  770. subscription only. As of March 1, 1993, the one-year subscription
  771. rate for domestic orders is $95. The one-year subscription rate
  772. for
  773. international orders is US$135. AppNote subscribers also receive 
  774. copies of selected Novell Research Reports as they become
  775. available.
  776.  
  777. A discount is available for organizations desiring 10 or more 
  778. subscriptions.
  779.  
  780. Back issues of NetWare Application Notes are available for $15
  781. each, and back issues of Novell Research Reports and Cooperative
  782. Research Reports are $25 each (add $5 for shipment outside the
  783. U.S.). A discount is available for bulk reprint orders of 10 or
  784. more
  785. copies.
  786.  
  787. Contact the Novell Research Order Desk for more information. All
  788. orders must be prepaid.
  789.  
  790. Novell Research Order Desk:
  791.  
  792.      Voice (toll-free)   800-377-4136
  793.      Voice               303-297-2725
  794.      Fax                 303-294-0930
  795.  
  796. A list of available Novell Research publications follows.
  797.  
  798.  
  799. Novell Research Publications List
  800.  
  801. To obtain an updated list of publications, call the Novell
  802. Research
  803. Order Desk at 800-377-4136. Outside the U.S. and Canada, call
  804. 303-297-2725.
  805.  
  806. To order NetWare Application Notes (AppNotes) subscriptions,
  807. AppNote reprints, or Novell Research Reports, Call toll-free
  808. (800) 377-4136. Outside the U.S., call (303) 297-2725. Please
  809. have your order and credit card information ready.
  810.  
  811. For the November 1993 appnote, 
  812. specify part number 164-000032-011.