Server and method for adjusting external network card thereof
By dynamically adjusting the TCP window setting value of the server, the bottleneck problem of the substrate controller when transmitting a large number of packets is solved, which improves network transmission efficiency and reduces processing burden.
Patent Information
- Application Number
- CN202311666703.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-06
- Publication Date
- 2025-06-06
AI Technical Summary
The substrate controller becomes a bottleneck in network transmission when transmitting a large number of packets and cannot effectively match the transmission speed of external network cards.
By dynamically adjusting the TCP window setting value of the server, matching the current network transmission rate based on the relevant information of the external network card, improving network transmission efficiency.
It improves the network transmission efficiency between the external network card and the substrate controller, reduces the transmission bottleneck caused by the substrate controller, and improves the processing burden of remote management.
Smart Images

Figure CN120111003A_ABST
Abstract
Description
Technical Field
[0001] The invention relates to a computer device and its peripheral electronic equipment, and in particular to an adjustment method for a server and its external network card. Background Art
[0002] With the rise of the Internet, servers can provide various network services to users. In order to facilitate the maintenance of servers, servers are often equipped with remote management related hardware. For example, the server's baseboard management controller (BMC) can not only manage the operation settings of the server itself, but also monitor the status of other components in the server. In addition, the baseboard management controller also provides remote connection functions, so that back-end personnel can connect to the baseboard management controller through the Internet to view or adjust the status or settings of the server.
[0003] Generally speaking, the baseboard controller is fixed in the motherboard of the server. Therefore, the speed of the built-in network card of the baseboard controller cannot be changed. Therefore, manufacturers have proposed to use an external network card to provide the baseboard controller with a faster network transmission speed. The baseboard controller can be connected to the external network card through the Network Controller Sideband Interface (NCSI). However, in fact, it is limited by the computing power of the baseboard controller or the transmission speed of the network interface. Therefore, when transmitting a large number of packets, the baseboard controller becomes a bottleneck for packet transmission. Summary of the invention
[0004] In view of this, in one embodiment, the server can dynamically adjust to a corresponding TCP (Transmission Control Protocol) window setting value according to an external network card, thereby matching the current network transmission rate.
[0005] In one embodiment, the server includes an external network controller and a baseboard controller. The external network controller has a first communication interface and stores a device number; the baseboard controller has a second communication interface connected to the first communication interface, the baseboard controller stores a lookup table and a TCP window setting value, and the lookup table stores a plurality of device numbers and adjustment parameters corresponding to the device numbers; wherein the baseboard controller obtains the device number of the external network controller through the second communication interface, the baseboard controller searches the lookup table according to the obtained device number to obtain the corresponding adjustment parameters, and the baseboard controller modifies the TCP window setting value according to the obtained adjustment parameters. The baseboard controller adjusts the TCP window setting value according to the relevant information of the external network card of the peripheral device, so that the internal network transmission speed of the baseboard controller can match the external network transmission speed connected to the external network card.
[0006] In one embodiment, when the baseboard controller is in the booting stage, the baseboard controller drives the second communication interface to test whether it is connected to the external network controller.
[0007] In one embodiment, the baseboard controller determines that the external network controller is not connected, and the baseboard controller completes the booting stage.
[0008] In one embodiment, the external network controller further has an external network interface, and the baseboard controller further has an internal network interface. The external network interface matches a first network speed, and the internal network interface matches a second network speed. The baseboard controller obtains the first network speed of the external network interface according to the device number, and the baseboard controller calculates the speed ratio value according to the first network speed and the second network speed.
[0009] In one embodiment, the baseboard controller determines whether the speed ratio value is greater than the threshold value. If the speed ratio value is greater than the threshold value, the baseboard controller modifies the TCP window setting value according to the obtained adjustment parameters. If the speed ratio value is not greater than the threshold value, the TCP window setting value is not adjusted.
[0010] In one embodiment, the baseboard controller completes the modification of the TCP window setting value by adjusting the parameters, and the baseboard controller restarts the booting phase.
[0011] In one embodiment, the baseboard controller further includes a non-volatile memory storing a lookup table and a TCP window setting value.
[0012] In some embodiments, a method for adjusting an external network card of a server is applied to an external network controller of the server to adjust the transmission efficiency of the external network controller. The adjustment method includes obtaining the device number of the external network controller by the baseboard controller; the baseboard controller searches a lookup table according to the device number to obtain adjustment parameters; and the baseboard controller modifies the TCP window value according to the adjustment parameters.
[0013] In one embodiment, the step of obtaining the device number of the external network controller by the baseboard controller includes the baseboard controller searching a lookup table according to the device number to obtain a first network speed of the external network controller; obtaining a second network speed of the baseboard controller; the baseboard controller calculating a speed ratio value according to the first network speed and the second network speed; if the speed ratio value is greater than a threshold value, the baseboard controller modifies the TCP window value according to the obtained adjustment parameters; if the speed ratio value is less than the threshold value, the baseboard controller maintains the original TCP window value and completes the boot phase.
[0014] In one embodiment, the step of modifying the TCP window value according to the adjustment parameter in the baseboard controller includes a restarting and booting phase of the baseboard controller.
[0015] The adjustment method of the server and its external network card can adjust the corresponding TCP window value according to different external network cards, thereby increasing the network transmission efficiency between the external network card and the baseboard controller, thereby reducing the transmission bottleneck caused by the baseboard controller. In addition, the adjustment method can also improve the processing burden of remote management of the baseboard controller. By increasing the TCP window setting value between the external network card and the baseboard controller, the problems of packet congestion and collision can be reduced in the internal network, thereby increasing the transmission rate. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1 A schematic diagram of a system architecture of a server according to an embodiment.
[0017] Figure 2 A schematic diagram of the hardware architecture of a server according to an embodiment.
[0018] Figure 3 A flowchart of an adjustment method for an external network controller according to an embodiment of the present invention is shown in FIG.
[0019] Figure 4 A search representation diagram of an embodiment is shown.
[0020] Figure 5 FIG. 4 is a flow chart of another adjustment method of an external network controller according to an embodiment.
[0021] Description of reference numerals:
[0022] 100: Server
[0023] 110: External network controller
[0024] 111: First communication interface
[0025] 112: Peripheral network interface
[0026] 113: Device number
[0027] 120: Baseboard controller
[0028] 121: Second communication interface
[0029] 122: Storage unit
[0030] 124: Lookup Table
[0031] 125: Adjust parameters
[0032] 126: TCP window setting value
[0033] 127: Internal network interface
[0034] 130: PCIe controller
[0035] 140: Processor
[0036] S310, S320, S330, S340, S311, S312, S313, S314, S315, S316: Steps DETAILED DESCRIPTION
[0037] Please refer to Figure 1 and Figure 2 The diagrams are respectively a schematic diagram of the system architecture and a schematic diagram of the hardware architecture of an embodiment. The server 100 has at least one external network controller 110, a baseboard management controller 120 (BMC) and a PCIe (Peripheral Component Interconnect Express) controller 130. The external network controller 110 is a control element of an external network card, and the external network controller hereinafter refers to the entire external network card.
[0038] The external network controller 110 is connected to the baseboard controller 120 and the PCIe controller 130. The processor 140 of the server 100 drives the external network controller 110 through the PCIe controller 130 to transmit packet data of the Internet. The external network controller 110 has a first communication interface 111. The first communication interface 111 can be but is not limited to a network controller sideband interface (NCSI). Each external network controller 110 stores its own device number 113. The device number 113 is used to identify the manufacturer, model or version number of the external network controller 110.
[0039] The baseboard controller 120 has a second communication interface 121 and a storage unit 122. The type of the second communication interface 121 matches the type of the first communication interface 111. The first communication interface 111 is connected to the second communication interface 121. The baseboard controller 120 communicates with the external network controller 110 through the second communication interface 121. The storage unit 122 stores a lookup table 124 and a TCP window setting value 126. The lookup table 124 includes a plurality of adjustment parameters 125. Each set of adjustment parameters 125 corresponds to a different device number 113. Generally speaking, multiple sets of the same device number 113 can correspond to the same adjustment parameter 125. The adjustment parameter 125 is used to modify the TCP window setting value 126, and its modification process will be described later.
[0040] In some embodiments, the baseboard controller 120 further includes a non-volatile memory. The non-volatile memory may be, but is not limited to, an electrically erasable programmable read-only memory (EEPROM), a flash memory, or a non-volatile random-access memory. The non-volatile memory stores the lookup table 124 and the TCP window setting value 126.
[0041] In some embodiments, the external network controller 110 further includes an external network interface 112. The baseboard controller 120 has an internal network interface 127. The external network interface 112 matches a first network speed (no number). The internal network interface 127 matches a second network speed (no number). The baseboard controller 120 obtains the first network speed of the external network interface 112 according to the device number 113. Figure 1 , Figure 2 The dotted lines in the figure indicate that the baseboard controller 120 can be selectively connected to the Internet.
[0042] The baseboard controller 120 is also started up at the same time when the server 100 is booted. Therefore, the baseboard controller 120 performs the following adjustment processing of the external network controller 110 during the booting phase of the server 100. Please refer to Figure 3 As shown, the adjustment method of the external network controller 110 includes the following steps:
[0043] Step S310: The baseboard controller obtains the device number of the external network controller;
[0044] Step S320: the substrate controller searches the lookup table according to the device number to obtain the adjustment parameter;
[0045] Step S330: the baseboard controller modifies the TCP window value according to the adjustment parameter; and
[0046] Step S340: the baseboard controller is restarted.
[0047] First, the server 100 is turned on. During the booting stage of the server 100, the baseboard controller 120 is started. The baseboard controller 120 can confirm whether there is an external network controller 110 through the second communication interface 121. If the server 100 is not equipped with an external network card, the baseboard controller 120 will end the detection process of the external network controller 110. Alternatively, the baseboard controller 120 directly completes the booting stage. The baseboard controller 120 can perform detection of other components. If the server 100 is equipped with an external network card, the baseboard controller 120 can obtain the device number 113 from the external network controller 110 through the second communication interface 121 (corresponding to step S310).
[0048] The baseboard controller 120 searches the lookup table 124 for the corresponding adjustment parameter 125 according to the device number 113 (corresponding to step S320). If the lookup table 124 does not contain the corresponding adjustment parameter 125, the baseboard controller 120 maintains the current TCP window setting value 126. In other words, the baseboard controller 120 does not modify the TCP window setting value 126 and ends the process of searching for the adjustment parameter 125.
[0049] When the baseboard controller 120 obtains the adjustment parameter 125 of the corresponding device number 113, the baseboard controller 120 modifies the current TCP window setting value 126 according to the adjustment parameter 125. For example, the TCP window setting value 126 at least includes "VendorID", "Device ID", "Threshold", "TCP windows size" or other values. The aforementioned numerical names are: Vendor ID is the vendor identification number of the network card, Device ID is the device (or hardware) number of the network card, Threshold is the transmission upper limit of the corresponding network, and TCP windows size is the transmission packet size of the network card. TCP windows size is used to adjust the transmission rate of packet traffic. Generally speaking, the baseboard controller 120 can regard "Vendor ID" as the device number 113. Or, the combination of "Vendor ID" and "Device ID" is regarded as the device number 113.
[0050] The baseboard controller 120 modifies the TCP window setting value 126 according to the selected adjustment parameter 125 (corresponding to step S330). Generally speaking, the baseboard controller 120 replaces the current TCP window setting value 126 with the adjustment parameter 125. After completing the modification of the TCP window setting value 126, the baseboard controller 120 issues a restart request, so that both the server 100 and the baseboard controller 120 are restarted (reboot). In the new boot phase, the baseboard controller 120 communicates with the external network controller 110 according to the modified TCP window setting value 126.
[0051] For further explanation, a TCP window setting value 126 is listed below as an example, and the adjustment of the modification by the baseboard controller 120 is described. The numerical values in this example are for illustration and are not limited thereto. Assume that the baseboard controller 120 has a set of TCP window setting values 126, the contents of which are shown in the following table:
[0052]
[0053] Table 1. Original TCP window settings
[0054] The TCP window setting value 126 in Table 1 includes the network card Vendor ID, the network card Device ID, the Threshold definition value (bps), the tcp_rmem setting (three parameters in total), and the tcp_wmem setting (three parameters in total). Assume that the upper limit of the connection speed of the external network card is 1 Gbps and its device number 113 is "0x8086". Therefore, the baseboard controller 120 searches the lookup table 124 for the corresponding adjustment parameter 125 according to the device number 113. The lookup table 124 has two sets of adjustment parameters 125 related to the device number 113, corresponding to the Threshold definition values 1000 (bps) and 100 (bps), respectively. Figure 4 shown.
[0055] Assume that the upper limit of the connection speed of the external network card is 1Gbps. When the difference between the upper limits of the connection speeds of the external network controller 110 and the baseboard controller 120 (i.e., "1000-100=900") exceeds the threshold of "800 (bps)", the baseboard controller 120 will modify the adjustment parameter 125. Otherwise, the baseboard controller 120 will not make any modification. The baseboard controller 120 will obtain the adjustment parameter 125 corresponding to the upper limit of the connection speed of 1000 (bps) according to the device number 113. The baseboard controller 120 writes the selected adjustment parameter 125 into the TCP window setting value 126, as shown in Table 2 below:
[0056]
[0057] Table 2. Modified TCP window settings
[0058] After the baseboard controller 120 completes modifying the TCP window setting value 126 , the baseboard controller 120 initiates a reboot request to the server 100 . After the baseboard controller 120 enters a new booting phase, the baseboard controller 120 communicates with the external network card according to the new TCP window setting value 126 .
[0059] In some embodiments, the lookup table 124 also includes the first network speed of the external network controller 110. In addition to selecting the corresponding adjustment parameter 125, the baseboard controller 120 searches the lookup table 124 according to the device number 113, and calculates a speed ratio value according to the first network speed and the second network speed to determine the speed difference between the external network interface 112 and the internal network interface 127. The baseboard controller 120 further performs the following steps according to the obtained speed ratio value, and please refer to Figure 5 As shown:
[0060] Step S311: the baseboard controller searches the lookup table according to the device number to obtain the first network speed of the external network controller;
[0061] Step S312: obtaining a second network speed of the baseboard controller;
[0062] Step S313: the baseboard controller calculates a speed ratio value according to the first network speed and the second network speed;
[0063] Step S314: the substrate controller determines whether the speed ratio value is greater than a threshold value;
[0064] Step S315: if the speed ratio value is greater than the threshold value, the baseboard controller modifies the TCP window value according to the acquired adjustment parameter; and
[0065] Step S316: If the speed ratio value is less than the threshold value, the baseboard controller maintains the original TCP window value and completes the booting phase.
[0066] After obtaining the device number, the baseboard controller 120 searches the lookup table 124 and obtains the first network speed and adjustment parameter 125 of the external network controller 110 (corresponding to step S311). The baseboard controller 120 also obtains the second network speed of the internal network interface 127 (corresponding to step S312). The baseboard controller 120 calculates the ratio of the first network speed to the second network speed, and this ratio result is referred to as the speed ratio value (corresponding to step S313). The baseboard controller 120 can divide the first network speed by the second network speed to obtain the quotient. For example, if the first network speed is 1000bps and the second network speed is 100bps, the baseboard controller 120 will obtain a speed ratio value of "10" (that is, 1000 / 100).
[0067] Next, the baseboard controller 120 determines whether the speed ratio value is greater than the threshold value (corresponding to step S314). If the speed ratio value is greater than the threshold value, the baseboard controller 120 modifies the TCP window value according to the obtained adjustment parameter 125 (corresponding to step S315). Otherwise, the baseboard controller 120 will not modify the current TCP window value (corresponding to step S316). In addition to the aforementioned speed ratio value calculation method, the baseboard controller 120 can also use the difference between the first network speed and the second network speed as the speed ratio value.
[0068] In some embodiments, after the baseboard controller 120 is restarted, the baseboard controller 120 sends a test packet to the external network controller 110 through the second communication interface 121. The external network controller 110 responds with a reply packet to the baseboard controller 120 according to the test packet. The baseboard controller 120 determines whether the external network controller 110 has failed according to whether the reply packet is received or the content of the reply packet. For example, after the baseboard controller 120 sends the test packet, the baseboard controller 120 waits for a threshold time and determines whether the reply packet is received. If the baseboard controller 120 does not receive the reply packet within the threshold time, the baseboard controller 120 regards that the external network controller 110 has failed.
[0069] The adjustment method of the server 100 and its external network card can adjust the corresponding TCP window value according to different external network cards, thereby increasing the network transmission efficiency between the external network card and the baseboard controller 120, thereby reducing the transmission bottleneck caused by the baseboard controller 120. In addition, the adjustment method can also improve the processing burden of remote management of the baseboard controller 120. By increasing the TCP window setting value 126 between the external network card and the baseboard controller 120, the problems of packet congestion and collision in the internal network can be reduced, thereby improving the transmission rate.
Claims
1. A server, include: An external network controller having a first communication interface and storing a device number; as well as A baseboard controller has a second communication interface connected to the first communication interface and stores a lookup table and a TCP window setting value, wherein the lookup table stores a plurality of device numbers and an adjustment parameter corresponding to the device numbers; The baseboard controller obtains the device number of the external network controller through the second communication interface, searches the lookup table according to the obtained device number to obtain the corresponding adjustment parameter, and modifies the TCP window setting value according to the obtained adjustment parameter. 2 . The server as claimed in claim 1 , wherein when the baseboard controller is in a startup phase, the baseboard controller drives the second communication interface to test whether it is connected to the external network controller. 3 . The server as claimed in claim 2 , wherein the baseboard controller determines that the external network controller is not connected, and the baseboard controller completes the booting stage.
4. The server as described in claim 1, wherein the external network controller further has an external network interface, the baseboard controller further has an internal network interface, the external network interface matches a first network speed, the internal network interface matches a second network speed, the baseboard controller obtains the first network speed of the external network interface according to the device number, and the baseboard controller calculates a speed ratio value according to the first network speed and the second network speed.
5. The server as described in claim 4, wherein the baseboard controller determines whether the speed ratio value is greater than a threshold value. If the speed ratio value is greater than the threshold value, the baseboard controller modifies the TCP window setting value according to the obtained adjustment parameter. If the speed ratio value is not greater than the threshold value, the TCP window setting value is not adjusted. 6 . The server as claimed in claim 1 , wherein the baseboard controller completes the modification of the TCP window setting value by the adjustment parameter, and the baseboard controller restarts a booting phase. 7 . The server as claimed in claim 1 , wherein the baseboard controller further comprises a non-volatile memory, wherein the non-volatile memory stores the lookup table and the TCP window setting value.
8. A method for adjusting an external network card of a server, applied to an external network controller of a server, for adjusting the transmission efficiency of the external network controller, the adjustment method include: Obtaining a device number of the external network controller from a baseboard controller; The substrate controller searches a lookup table according to the device number to obtain an adjustment parameter; as well as The baseboard controller modifies a TCP window value according to the adjustment parameter.
9. The method for adjusting the external network card of a server as claimed in claim 8, wherein in the step of obtaining the device number of the external network controller by the baseboard controller include: In a startup phase of the server, the baseboard controller detects whether it is connected to the external network controller; If the external network controller is connected to the baseboard controller, the baseboard controller obtains the device number from the external network controller; and If the external network controller is not connected to the baseboard controller, the baseboard controller completes the booting phase.
10. The method for adjusting the external network card of a server as claimed in claim 8 or 9, wherein in the step of obtaining the device number of the external network controller by the baseboard controller include: The baseboard controller searches the lookup table according to the device number to obtain a first network speed of the external network controller; Acquire a second network speed of the baseboard controller; The baseboard controller calculates a speed ratio value according to the first network speed and the second network speed; If the speed ratio value is greater than a threshold value, the baseboard controller modifies the TCP window value according to the obtained adjustment parameter; as well as If the speed ratio value is less than the threshold value, the baseboard controller maintains the original TCP window value and completes the booting phase.
11. The method for adjusting an external network card of a server as claimed in claim 8, wherein the step of modifying the TCP window value according to the adjustment parameter in the baseboard controller include: The baseboard controller restarts a power-on phase.