Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

In Windows Server 2008 or Windows Server 2008 R2 environment, if the network environment is set to enable Delay ACK and storage is connected with iSCSI, an iScsiPrt error is output to the System Event Log when a general operation is executed


View products that this article applies to.

Symptoms

In Windows Server 2008 or Windows Server 2008 R2 environment, if the network environment is set to enable delay ACK and storage is connected with iSCSI, an iScsiPrt error is output to the System Event Log when a general operation, such copying files, is executed.

↑ Back to the top


Cause

This error occurs when a network adapter (NIC) drops a packet.



When a packet reaches a network adapter, a receive interrupt is generated by the network adapter. When a receive interrupt is generated by a network adapter, the DPC routine is placed in the queue to call the receive handler. Next, the packet is retrieved from the receive buffer at the timing of the DPC interrupt and handed to a higher layer receive handler. If a DPC with a higher priority is being executed or there is a heavy load on the system at this time, there may be a delay before the DPC process is executed making a buffer necessary. If this buffer is not big enough, then a packet is dropped.

In general, this occurs when the server processing speed is not fast enough to keep up with the packet reception rate (packets/sec). When the Initiator (receiving side) drops a packet, it will send a resend request to the Target (sending side). However, if a large number of packets are dropped at once, there may be a large discrepancy between the sequence numbers of the frames that the receiving side requests to be resent and the newest frames that the sending side has sent. When this discrepancy reaches the current receiving window size, the sending side is not able to send any more packets in advance and waits until it receives receive acknowledgement (ACK) for pending frames. After the receiving side receives the frame for which it resent a DUP ACK it does not receive any other frames, so that after waiting the 0.2 seconds of the Delay ACK, it returns the ACK. This results in a 5 frame/sec transmission/reception rate, so that a time out occurs at the Initiator or Target.

↑ Back to the top


Workaround

Use one of the following methods to avoid this problem.

Method 1: Increase the receiving buffer

Note: This method is a unique network adapter setting, so please ask the supplier of your network adapter for the setting procedures.


In this example, an Intel PRO/1000 PT Dual Port Server Adapter is used.
  1. Click Start button, then click Run.
  2. In Open box, type DevMgmt.msc, then click OK.
  3. Open Network Adapter, right click Intel PRO/1000 PT Dual Port Server Adapter, then click Properties.
  4. Click Summary tab.
  5. From Properties list, click Receive Buffers, then select a larger value from Value list, such as 2048.
  6. Click OK to enable the setting.

Method 2: Disable Delay ACK

Important: This section, method, or task describes how to edit the Registry. Making a mistake in the Registry can result in serious problems. Be very careful when editing the Registry. Making a backup of the Registry before editing it will allow restoring the Registry if a problem should occur. Click the Technical Support Information below for details on backing up and restoring.
322756 Backing Up and Restoring the Windows Registry
Setting the Registry value TcpAckFrequency to 1 according to the technical information below will disable Delay ACK. This will prevent the resend processing time from going to 5 frame/sec when a packet is dropped. Using this method will not prevent packets from being dropped, but even if they are dropped the resend processing delay will be improved, so that time outs will not occur.
328890 New Registry entries to control the operation of TCP ACK in Windows XP and Windows Server 2003

Method 3: Disable AutoTuningLevel to fix the window size

Disabling AutoTuningLevel by executing the technical information method below will prevent the window from expanding. As a result, there will be a great reduction in the receiving rate, making it more difficult to drop packets.

Note: This method will reduce the receiving rate and the performance of the network will also be reduced.
934430 Using Windows Vista behind a firewall device will result in a failed network connection

↑ Back to the top


More Information

Procedure for Recreating the Problem

  1. In a system in which Delay ACK is enabled, copy or backup a large volume of files to a disk connected with iSCSI.
  2. Check for packets dropped by the network adapter with the performance counter [Network Interface\Packets Received Discarded].

Result

Any iScsiPrt errors are output to the System Event Log.

↑ Back to the top


Keywords: kb, kbexpertiseadvanced, kbprb, kberrmsg, kbharmony, kbtshoot

↑ Back to the top

Article Info
Article ID : 981482
Revision : 1
Created on : 1/7/2017
Published on : 6/21/2014
Exists online : False
Views : 1342