A multi-link communication method, comprising: sending, S601, by a first device, an add block acknowledgment, ADDBA, request frame to a second device, wherein the ADDBA request frame comprises a reference value of at least one first buffer size field and a reference value of one second buffer size field, and the first device and the second device are multi-link entities comprising one or more links; receiving, S602, by the first device, an ADDBA response frame sent by the second device, wherein the ADDBA response frame comprises an acknowledgment value of the at least one first buffer size field and an acknowledgment value of the second buffer size field; and establishing, by the first device, a multi-link block acknowledgment session between multiple links of the first device and multiple links of the second device based on the ADDBA request frame and the ADDBA response frame, wherein one first buffer size field is used to indicate a size of a local buffer space corresponding to one link in the multiple links of the first device and the multiple links of the second device, and the second buffer size field is used to indicate a size of a global buffer space maintained by the first device and the second device, wherein the method further comprises: maintaining, by the first device, multiple first send windows and one second send window based on the ADDBA request frame and the ADDBA response frame, wherein the multiple first send windows are corresponding to the multiple links of the first device, and the second send window is corresponding to the multi-link entity of the first device, wherein one of the first send windows is corresponding to one link in the multiple links, a starting sequence number of the first send window is WinStartO1, an end sequence number is WinEndO1, and a window size is WinSizeO1, wherein WinSizeO1 is equal to the acknowledgment value of the first buffer size corresponding to the link; and a starting sequence number of the second send window is WinStartO2, an end sequence number is WinEndO2, and a window size is WinSizeO2, wherein WinSizeO2 is equal to the acknowledgment value that is of the second buffer size and that is negotiated by using the ADDBA request frame and the ADDBA response frame. sending, S601, by a first device, an add block acknowledgment, ADDBA, request frame to a second device, wherein the ADDBA request frame comprises a reference value of at least one first buffer size field and a reference value of one second buffer size field, and the first device and the second device are multi-link entities comprising one or more links; receiving, S602, by the first device, an ADDBA response frame sent by the second device, wherein the ADDBA response frame comprises an acknowledgment value of the at least one first buffer size field and an acknowledgment value of the second buffer size field; and establishing, by the first device, a multi-link block acknowledgment session between multiple links of the first device and multiple links of the second device based on the ADDBA request frame and the ADDBA response frame, wherein one first buffer size field is used to indicate a size of a local buffer space corresponding to one link in the multiple links of the first device and the multiple links of the second device, and the second buffer size field is used to indicate a size of a global buffer space maintained by the first device and the second device, wherein the method further comprises: maintaining, by the first device, multiple first send windows and one second send window based on the ADDBA request frame and the ADDBA response frame, wherein the multiple first send windows are corresponding to the multiple links of the first device, and the second send window is corresponding to the multi-link entity of the first device, wherein one of the first send windows is corresponding to one link in the multiple links, a starting sequence number of the first send window is WinStartO1, an end sequence number is WinEndO1, and a window size is WinSizeO1, wherein WinSizeO1 is equal to the acknowledgment value of the first buffer size corresponding to the link; and a starting sequence number of the second send window is WinStartO2, an end sequence number is WinEndO2, and a window size is WinSizeO2, wherein WinSizeO2 is equal to the acknowledgment value that is of the second buffer size and that is negotiated by using the ADDBA request frame and the ADDBA response frame. maintaining, by the first device, multiple first send windows and one second send window based on the ADDBA request frame and the ADDBA response frame, wherein the multiple first send windows are corresponding to the multiple links of the first device, and the second send window is corresponding to the multi-link entity of the first device, wherein one of the first send windows is corresponding to one link in the multiple links, a starting sequence number of the first send window is WinStartO1, an end sequence number is WinEndO1, and a window size is WinSizeO1, wherein WinSizeO1 is equal to the acknowledgment value of the first buffer size corresponding to the link; and a starting sequence number of the second send window is WinStartO2, an end sequence number is WinEndO2, and a window size is WinSizeO2, wherein WinSizeO2 is equal to the acknowledgment value that is of the second buffer size and that is negotiated by using the ADDBA request frame and the ADDBA response frame.