WO2020088064A1 - 文件的发送方法、发送装置、电子设备及可读介质 - Google Patents
文件的发送方法、发送装置、电子设备及可读介质 Download PDFInfo
- Publication number
- WO2020088064A1 WO2020088064A1 PCT/CN2019/102993 CN2019102993W WO2020088064A1 WO 2020088064 A1 WO2020088064 A1 WO 2020088064A1 CN 2019102993 W CN2019102993 W CN 2019102993W WO 2020088064 A1 WO2020088064 A1 WO 2020088064A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- sending
- data packet
- data packets
- transmission
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
Definitions
- the present application relates to the field of streaming media transmission technology, and in particular, to a file transmission method, transmission device, electronic device, and computer-readable medium.
- the purpose of the present application is to provide a file sending method, which is used to reduce the packet loss rate in the file transmission process and improve the reliability of the file transmission.
- a file sending method including:
- the receiving end sends out the acknowledgment signal after receiving a data packet.
- the writing the plurality of data packets into the sending queue includes:
- the plurality of data packets are sequentially written into the sending queue
- the sequentially reading and sending the plurality of data packets from the sending queue, and storing the sending sequence number in each data packet includes: sequentially reading from the sending queue by using a first process or thread Fetch and send the multiple data packets, and store the sending sequence number in each data packet;
- the receiving the confirmation signal and deleting the corresponding data packet from the sending queue according to the confirmation signal includes:
- a second process or thread is used to receive the confirmation signal and delete the corresponding data packet from the sending queue according to the confirmation signal.
- a first pointer is used in the first thread or process to point to the sending queue
- a second pointer is used in the second thread or process to point to the sending queue
- the method further includes: receiving a packet loss rate sent by the sending end.
- it further includes: adjusting the sending code rate according to the packet loss rate.
- the adjusting the sending code rate according to the packet loss rate includes:
- the sending code rate is kept unchanged.
- storing the sending sequence number in each data packet includes:
- the transmission sequence number stored in the data packet is the transmission sequence number of the previous data packet plus one.
- a file sending apparatus including:
- the file splitting module is configured to split the file to be sent into multiple data packets, and store the split sequence number in each data packet;
- a data packet writing module configured to perform writing of the plurality of data packets into the sending queue
- a data packet sending module configured to perform sequential reading and sending of the plurality of data packets from the sending queue, and store a sending sequence number in each data packet;
- the confirmation signal receiving module is configured to perform the reception confirmation signal
- the data packet deleting module is configured to execute the deletion of the corresponding data packet from the sending queue according to the confirmation signal, wherein the receiving end sends out the confirmation signal after each data packet is received.
- the data packet writing module includes:
- the first writing unit is configured to execute that if the number of packets of the plurality of data packets is equal to or less than the length of the sending queue, writing the plurality of data packets into the sending queue in sequence;
- the second writing unit is configured to execute that if the number of packets of the plurality of data packets is greater than the length of the sending queue, after partially writing the data packets to the sending queue, for the remaining data packets, whenever the When one data packet in the sending queue is deleted, one data packet is read from the remaining data packets in sequence and written into the sending queue.
- the data packet sending module includes:
- the data packet sending unit is configured to execute the first process or thread to sequentially read and send the plurality of data packets from the sending queue, and store the sending sequence number in each data packet;
- the confirmation signal receiving module includes:
- the confirmation signal unit is configured to execute the second process or thread to receive the confirmation signal.
- a first pointer is used in the first thread or process to point to the sending queue
- a second pointer is used in the second thread or process to point to the sending queue
- it also includes:
- the packet loss rate receiving module is configured to perform receiving the packet loss rate sent by the sending end.
- it also includes:
- the transmission code rate adjustment module is configured to perform adjustment of the transmission code rate according to the packet loss rate.
- the sending code rate adjustment module includes:
- the first adjustment unit is configured to perform an increase in the transmission code rate when the packet loss rate is less than a preset minimum threshold
- the second adjustment unit is configured to perform a reduction in the transmission code rate when the packet loss rate is greater than a preset maximum threshold
- the third adjustment unit is configured to perform keeping the transmission code rate unchanged when the packet loss rate is between the preset minimum threshold and the preset maximum threshold.
- the data packet sending module includes:
- the transmission sequence number storage unit is configured to store the transmission sequence number in the data packet every time a data packet is transmitted, plus the transmission sequence number of the previous data packet plus 1.
- an electronic device including:
- Memory for storing processor executable instructions
- the processor is configured to execute any one of the sending methods described above.
- a non-transitory computer-readable storage medium stores computer instructions, and when the computer instructions are executed, the transmission according to any one of the foregoing method.
- the sending method adopted in the embodiment of the present application may include the following beneficial effects: writing a data packet into the sending queue, reading and sending the data packet from the sending queue, and deleting the data packet corresponding to the received confirmation signal from the sending queue , Because there will be no confirmation signal for the data packets that failed to be sent, the data packets that failed to be sent will stay in the sending queue and wait for retransmission. After multiple transmissions, all data packets will reach the receiving end, thus ensuring a weak network environment. It can still maintain a large transmission capacity and reliability.
- FIG. 1 is a C / S model of the file transmission system of this application shown in FIG. 1;
- FIG. 2a shows a flowchart of a file sending method according to an embodiment of the present application
- FIG. 2b shows a flowchart of a file receiving method according to an embodiment of the present application
- FIG. 3 shows a flowchart of a file sending method according to an embodiment of the present application
- FIG. 4 shows a schematic diagram of a sending queue in an embodiment of the present application
- FIG. 5 shows a flowchart of a method of sending bit rate decision by a sending end of a file transmission in an embodiment of the present application
- FIG. 6 shows a flowchart of a file receiving method according to an embodiment of the present application
- FIG. 7 shows a structural diagram of a file sending apparatus according to an embodiment of the present application.
- Fig. 8 is a block diagram of a device for executing a file sending method according to an exemplary embodiment
- Fig. 9 is a block diagram of a device for executing a file sending method according to an exemplary embodiment.
- FIG. 1 it is a C / S model of a file transmission system according to an embodiment of the present application, that is, a client / server model. It is generally composed of a computer platform, a network platform, and a database platform, and can be divided into a sending terminal 101 according to its role. Receiver 103 and connection network 102.
- the sending end 101, or client is a small application that runs on the client to send information to the server and receives server information.
- the receiving end 103 is a server, which is used to respond to client requests and perform processing.
- the connection network 102 is a network that serves as a connection, including, for example, a local area network, the Internet, and the like.
- the sending end 101 that is, the client, will split the file data to be sent, and send the split data packets to the server in sequence.
- the method for sending files applied to the client is exemplarily described below with reference to FIG. 2a.
- FIG. 2a shows a flowchart of a file sending method according to an embodiment of the present application, and specifically includes the following steps.
- step S201 the file to be sent is split into multiple data packets, and the split sequence number is stored in each data packet.
- step S202 a plurality of data packets are written into the transmission queue.
- step S203 a plurality of data packets are sequentially read and transmitted from the transmission queue, and the transmission sequence number is stored in each data packet.
- step S204 a confirmation signal is received, and the corresponding data packet is deleted from the transmission queue according to the confirmation signal.
- the type and size of the file to be sent are not limited. Split the file to be sent into multiple data packets, and the size of each data packet can be equal or unequal. When splitting, the split sequence number of the data packet is stored in the corresponding data packet to facilitate subsequent splicing into a file.
- the sending queue is a pre-generated queue that can store a limited number of data packets.
- Each element in the transmit queue is a data packet. Initially, starting from the data packet with a split sequence number of 0, the sending queue is filled in sequence according to the split sequence number, and the size of each data packet is sp, until the sending queue is full or the file ends, that is, the data packets are all written to the sending queue.
- the maximum length of the send queue is q_max.
- the data packets are read in sequence from the sending queue and sent, and the sending sequence number is stored in each data packet. If a data packet is sent multiple times before and after, the sending sequence number for multiple sending may be different.
- the sending sequence number is the sequence number corresponding to the order of the data packets in the sending queue.
- the confirmation information of the data packet is received, that is, the above confirmation signal.
- the confirmation signal may be a confirmation character.
- the confirmation information of the data packet is the confirmation information sent by the receiving end indicating that the data packet is received, and each time a confirmation information is received, the corresponding data packet is deleted from the sending queue. That is, the data packet corresponding to the acknowledgment signal is deleted from the sending queue, where the acknowledgment signal may include the transmission sequence number of the successfully received data packet.
- the receiving end 103 that is, the server, receives the data packet sent by the client and returns an acknowledgement signal. When all the data packets are received, they are spliced into files.
- the file receiving method applied to the server is exemplarily described below with reference to FIG. 2b.
- FIG. 2b shows a flowchart of a file receiving method according to an embodiment of the present application. It includes the following steps.
- step S201 ' a data packet is received.
- step S202 ' a confirmation signal is transmitted based on the transmission sequence number in the data packet.
- step S203 ' the files are spliced according to the split sequence number in the data packet.
- the received data packet is spliced into a file.
- the receiving end After receiving the data packet, the receiving end can read the sending sequence number and splitting sequence number in the data packet, and send an acknowledgment signal to the sending end according to the sending sequence number in the data packet to inform the sending end that the data packet was successfully received.
- the receiving end can also splice the received data packet into a file according to the split sequence number in the received data packet.
- the sending method adopted in the embodiment of the present application writes the data packet into the sending queue, reads and sends the data packet from the sending queue to the receiving end, and deletes the data packet corresponding to the received confirmation signal from the sending queue, because Packets that fail to send will not receive an acknowledgment signal, so that packets that fail to send will stay in the sending queue and wait for retransmission. After multiple transmissions, all packets will reach the receiving end, thus ensuring that in a weak network environment, Can maintain the reliability of file transmission.
- FIG. 3 shows a flowchart of a file sending method according to an embodiment of the present application, and specifically includes the following steps.
- step S301 the queue is filled, that is, the data packets of the file to be sent are sequentially filled into the sending queue.
- step S302 it is determined whether the queue is full or the file is over, that is, whether the sending queue is full, or whether all data packets corresponding to the sending file are put into the sending queue. If yes, step S303 is executed, otherwise step S301 is executed.
- step S303 data packets are sequentially transmitted.
- step S304 a confirmation signal is received.
- step S305 the data packet is deleted.
- step S306 it is determined whether there are remaining data packets, that is, whether there are any remaining data packets in addition to the data packets in the transmission queue. If yes, go to step S307, otherwise go to step S308.
- step S307 a new data packet is inserted into the head of the queue, that is, a new data packet is inserted into the head of the queue of the sending queue.
- the new data packet is one of the remaining data packets.
- step S308 it is determined whether the transmission is completed, that is, whether the data packets in the transmission queue are completely transmitted. If yes, the flow ends, if no, step S303 is executed.
- Figure 4 is a schematic diagram of a send queue.
- the data packets of the file to be sent are sequentially filled into the sending queue, wherein the data packet of the file to be sent may be a plurality of data packets into which the file to be sent is split in advance.
- the data packet of the file to be sent may be a plurality of data packets into which the file to be sent is split in advance.
- step S303 the data packets are sequentially read from the transmission queue and transmitted.
- step S304 the confirmation signal received in step S304, the corresponding data packet is deleted from the transmission queue. Sending the data packet and receiving the confirmation signal may be performed in parallel.
- step S303 is executed in a first thread or process, and steps S304-307 are executed in a second process or thread.
- the sending sequence number is represented by N_send, N_send starts from 1, P_send is a pointer to the sending queue, and P_recv is another pointer to the sending queue.
- the first thread or process uses p_send to move from the head of the send queue to the end of the queue. Each time a data packet is pointed to, the data packet is read and sent, and accordingly, N_send is incremented by 1. Among them, the direction from “in” to “out” in FIG. 4 represents the p_send moving direction.
- the second thread or process has been in the receiving state all the time, receiving the confirmation signal, using p_recv to point to the sending queue according to the confirmation signal, and deleting the corresponding data packet every time a confirmation signal is received. After a data packet is deleted, if there are remaining data packets at this time, a new data packet is taken from the remaining data packets and filled into the head of the sending queue, thereby keeping the number of data packets in the sending queue unchanged.
- the number of data packets in the sending queue gradually decreases as the data packets are deleted from the sending queue. And, when P_send moves to the end of the queue, it returns to the head of the queue to send the data packet. At this time, the transmission sequence number of the data packet is equal to the transmission sequence number of the data packet at the end of the previous round plus one.
- a data packet with N_send of 5 has not received an acknowledgment signal, which means that the data packet has not been successfully sent, then the data packet will not be deleted and will always be stored in the sending queue.
- P_send moves to the data packet again, the data packet can be sent again. After such processing many times, it can be ensured that all data packets receive corresponding acknowledgment signals, that is, all data packets are received by the receiving end and deleted from the sending queue.
- FIG. 5 shows a flowchart of a method of sending bit rate decision by a sending end of a file transmission in an embodiment of the present application. It includes the following steps.
- step S501 the initialization code rate is r0
- step S502 it is determined whether the packet loss rate p ⁇ p_low is true. If yes, step S503 is executed; otherwise, step S504 is executed.
- step S504 it is determined whether the packet loss rate p> p_high is true. If yes, step S505 is executed; otherwise, step S506 is executed.
- step S506 the transmission code rate remains unchanged.
- r0 is the initial transmission code rate, that is, the initial rate at which the client sends data packets.
- p is the actual packet loss rate measured by the server in real time
- p_low is the preset minimum packet loss rate threshold, for example, it can be set to 0.1.
- p_high is the preset maximum packet loss rate threshold, for example, it can be set to 0.3.
- r_opt is the best transmission bit rate that the client can achieve, alpha> 0, for example, set to 0.2, beta> 0, for example, set to 0.2.
- r_opt * is the current transmission code rate.
- the actual packet loss rate p is compared with the preset maximum packet loss rate p_high and the minimum packet loss rate p_low respectively.
- Steps S503, S505 and S506 adjust the actual transmission code rate according to the comparison To ensure a higher transmission code rate while ensuring a lower packet loss rate.
- the client can adjust the sending code rate by adjusting the sending rate of the data packet or the size of the split data packet.
- the client and the server can cooperate to complete the above code rate decision step.
- the server calculates the packet loss rate, judges according to the packet loss rate, the preset minimum packet loss rate threshold, and the first set maximum packet loss rate threshold, and sends the judgment result to the client, and the client adjusts in time according to the judgment result
- the transmission code rate, and the transmission code rate and the reception code rate can satisfy the following formula:
- r_opt max (r_opt, r_recv * (1 + theta)),
- r_recv * represents the received code rate, which is equal to the number of characters received divided by the received time.
- FIG. 6 shows a flowchart of a file receiving method according to an embodiment of the application. It includes the following steps:
- Step S601 Receive a data packet, that is, receive a data packet sent from a client.
- Step S602 A confirmation signal is returned, that is, every time a data packet is received, a confirmation signal is returned to the client. That is, the confirmation signal corresponding to the received data packet is returned to the client.
- Step S603 Sort the received data packets according to the split sequence number, and splice together to form a file according to the split sequence number.
- Step S604 Calculate the packet loss rate, that is, calculate the packet loss rate in the transmission process according to the actually received data packet and the sending sequence number of the data packet.
- Step S605 Count the actual receiving rate, that is, calculate the actual receiving rate during the transmission process, that is, the received code rate, according to the actual number of data packets received per unit time.
- the packet loss rate in addition to splicing the received data packets into a file, the packet loss rate can be counted according to the actually received data packet and the sending sequence number of the data packet, so that the client can decide the sending bit rate.
- the above client sends data packets, and the server receives data packets.
- the number of data packets received by the server in a certain period of time is not necessarily equal to the number of data packets sent, because in the transmission process, packet loss may occur due to various reasons, so You can decide the sending bit rate by calculating the packet loss rate to reduce the packet loss rate.
- the server counts the packet loss rate and transmits the packet loss rate to the client, and the client adjusts the next transmission code rate according to the packet loss rate.
- the sending bit rate can be adjusted once.
- the server can also count the actual received bit rate.
- the server can count the actual received bit rate during transmission based on the actual number of data packets received per unit time. The manner of determining the received code rate has been described in the above embodiment, and will not be repeated here.
- FIG. 7 shows a structural diagram of a file sending apparatus according to an embodiment of the present application.
- the sending device 700 includes a file splitting module 701, a data packet writing module 702, a data packet sending module 703, an acknowledge signal receiving module 704, and a data packet deleting module 705.
- the file splitting module 701 is used to split the file to be sent into multiple data packets, and store the split sequence number in each data packet.
- the data packet writing module 702 is used to write a plurality of data packets into the sending queue.
- the data packet sending module 703 sequentially reads and sends a plurality of data packets from the sending queue, and stores the sending sequence number in each data packet.
- the confirmation signal receiving module 704 is used to receive a confirmation signal.
- the data packet deleting module 705 is used to delete the corresponding data packet from the sending queue according to the confirmation signal, and the receiving end sends out a confirmation signal after receiving each data packet.
- each data packet stores a split sequence number and a transmission sequence number.
- the split sequence number is used to identify the position of the data packet in the file to be sent, which is convenient for the subsequent splicing of the data packet into a file.
- the sending sequence number is used to identify the sending order of the data packets, and is used to subsequently calculate the packet loss rate. And it should be pointed out that if a data packet is sent twice before and after, the first transmission sequence number and the second transmission sequence number are not the same.
- the acknowledgment signal corresponding to the data packet is received, the data packet is deleted from the sending queue, and if there are remaining data packets, a new data packet can be inserted at the head of the sending queue to maintain the length of the sending queue. Change until the send queue is full or the file ends, where the new data packet is one of the remaining data packets.
- the sending queue controls the sending of data packets to ensure that only the received data packets will be deleted from the sending queue in the end.
- the data packet retransmission mechanism is implemented to achieve robust file transmission.
- Each element in the sending queue is a data packet, and two pointers are maintained in the device.
- One pointer points to the data packet currently to be sent. After each data packet is sent, the pointer moves forward to the next data packet. Each time it moves, the packet sequence number is increased by 1. When the pointer reaches the end of the queue, the pointer is pointed to the head of the queue of the sending queue. At this time, the data
- the sending sequence number of the packet is equal to the sending sequence number of the data packet at the end of the previous round plus one.
- the other pointer is used to delete the data packet, and points and deletes the data packet according to the received confirmation signal.
- Pointers are a type of data in programming languages.
- the confirmation signal may be a confirmation character.
- a transmission type control character sent by the receiving end to the sending end indicates that the data sent by the sending end has been confirmed to be correct.
- the pointer can move to the next data packet and send the next data packet. The unsuccessful data packet will stay in the sending queue and wait for the next round of sending after the pointer polling. When it is sent again, the split sequence number of the data packet will not change, and the sending sequence number will change.
- the sending device reads and sends a data packet from the sending queue, and deletes the data packet corresponding to the received confirmation signal from the sending queue. Since the data packet that fails to be sent will not receive the confirmation signal, the sending Failed data packets will stay in the sending queue and wait for retransmission. After multiple transmissions, all data packets will reach the receiving end, thus ensuring that in a weak network environment, they can still maintain greater transmission capacity and transmission reliability.
- the foregoing data packet writing module 702 may include:
- the first writing unit (not shown in FIG. 7) is configured to perform writing of the plurality of data packets in sequence if the number of the plurality of data packets is equal to or less than the length of the transmission queue queue;
- the second writing unit (not shown in FIG. 7) is configured to perform the process of writing part of the data packets to the sending queue in sequence if the number of the multiple data packets is greater than the length of the sending queue. For the remaining data packets, each time a data packet in the sending queue is deleted, a data packet is sequentially read from the remaining data packets and written into the sending queue.
- the foregoing data packet sending module 703 may include:
- a data packet sending unit (not shown in FIG. 7) is configured to execute a first process or thread to sequentially read and send the plurality of data packets from the sending queue, and store and send the data packets in each data packet Serial number
- the confirmation signal receiving module 704 may include:
- the confirmation signal unit (not shown in FIG. 7) is configured to execute the second process or thread to receive the confirmation signal.
- a first pointer may be used to point to the sending queue in the first thread or process, and a second pointer may be used to point to the sending queue in the second thread or process.
- the foregoing sending device may further include:
- a packet loss rate receiving module (not shown in FIG. 7) is configured to perform reception of the packet loss rate sent by the sending end.
- the foregoing sending device may further include:
- the transmission code rate adjustment module (not shown in FIG. 7) is configured to perform adjustment of the transmission code rate according to the packet loss rate.
- the above transmission bit rate adjustment module may include:
- the first adjustment unit (not shown in FIG. 7) is configured to perform an increase in the transmission code rate when the packet loss rate is less than a preset minimum threshold
- the second adjustment unit (not shown in FIG. 7) is configured to perform a reduction in the transmission code rate when the packet loss rate is greater than a preset maximum threshold
- a third adjustment unit (not shown in FIG. 7) is configured to perform keeping the transmission code rate unchanged when the packet loss rate is between the preset minimum threshold and the preset maximum threshold.
- the foregoing data packet sending module 703 may include:
- the transmission sequence number storage unit (not shown in FIG. 7) is configured to store the transmission sequence number as the transmission sequence number of the previous data packet plus 1 each time a data packet is transmitted.
- An embodiment of the present application further provides an electronic device including: a processor; a memory for storing processor executable instructions; wherein the processor is configured to execute the file described in any of the above embodiments Sending method.
- the electronic device can write the data packet into the sending queue, read and send the data packet from the sending queue, and remove the data packet corresponding to the received confirmation signal from the sending queue Delete, because no confirmation signal will be received for the data packets that failed to be sent, so that the data packets that failed to be sent will stay in the transmission queue and wait for retransmission. After multiple transmissions, all data packets will reach the receiving end, thereby ensuring the weak network Under the environment, it can still maintain a large transmission capacity and transmission reliability.
- Fig. 8 is a block diagram of an electronic device 1200 used in the foregoing transmission method according to an exemplary embodiment.
- the electronic device 1200 may be a mobile phone, computer, digital broadcasting terminal, messaging device, game console, tablet device, medical device, fitness device, personal digital assistant, or the like.
- the electronic device 1200 may include one or more of the following components: a processing component 1202, a memory 1204, a power component 1206, a multimedia component 1208, an audio component 1210, an input / output (I / O) interface 1212, and a sensor component 1214 , And communication components 1216.
- the processing component 1202 generally controls the overall operations of the electronic device 1200, such as operations associated with display, telephone calls, data communication, camera operations, and recording operations.
- the processing component 1202 may include one or more processors 1220 to execute instructions to complete all or part of the steps in the above method.
- the processing component 1202 may include one or more modules to facilitate interaction between the processing component 1202 and other components.
- the processing component 1202 may include a multimedia module to facilitate interaction between the multimedia component 1208 and the processing component 1202.
- the memory 1204 is configured to store various types of data to support operation at the electronic device 1200. Examples of these data include instructions for any application or method operating on the electronic device 1200, contact data, phone book data, messages, pictures, videos, and so on.
- the memory 1204 may be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read only memory (EEPROM), erasable and removable Programmable read only memory (EPROM), programmable read only memory (PROM), read only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.
- SRAM static random access memory
- EEPROM electrically erasable programmable read only memory
- EPROM erasable and removable Programmable read only memory
- PROM programmable read only memory
- ROM read only memory
- magnetic memory flash memory
- flash memory magnetic disk or optical disk.
- the power supply component 1206 provides power to various components of the electronic device 1200.
- the power supply component 1206 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power for the electronic device 1200.
- the multimedia component 1208 includes a screen that provides an output interface between the electronic device 1200 and the user.
- the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen to receive input signals from the user.
- the touch panel includes one or more touch sensors to sense touch, swipe, and gestures on the touch panel. The touch sensor may not only sense the boundary of the touch or sliding action, but also detect the duration and pressure related to the touch or sliding operation.
- the multimedia component 1208 includes a front camera and / or a rear camera. When the electronic device 1200 is in an operation mode, such as a shooting mode or a video mode, the front camera and / or the rear camera may receive external multimedia data. Each front camera and rear camera can be a fixed optical lens system or have focal length and optical zoom capabilities.
- the audio component 1210 is configured to output and / or input audio signals.
- the audio component 1210 includes a microphone (MIC).
- the microphone is configured to receive an external audio signal.
- the received audio signal may be further stored in the memory 1204 or sent via the communication component 1216.
- the audio component 1210 further includes a speaker for outputting audio signals.
- the I / O interface 1212 provides an interface between the processing component 1202 and a peripheral interface module.
- the peripheral interface module may be a keyboard, a click wheel, or a button. These buttons may include, but are not limited to: home button, volume button, enable button, and lock button.
- the sensor assembly 1214 includes one or more sensors for providing the electronic device 1200 with various aspects of status assessment.
- the sensor component 1214 can detect the on / off state of the device 1200, and the relative positioning of the components, such as the display and the keypad of the electronic device 1200, and the sensor component 1214 can also detect the electronic device 1200 or a component of the electronic device 1200 , The location of the user changes, the presence or absence of user contact with the electronic device 1200, the orientation or acceleration / deceleration of the electronic device 1200, and the temperature change of the electronic device 1200.
- the sensor assembly 1214 may include a proximity sensor configured to detect the presence of nearby objects without any physical contact.
- the sensor assembly 1214 may also include a light sensor, such as a CMOS or CCD image sensor, for use in imaging applications.
- the sensor assembly 1214 may further include an acceleration sensor, a gyro sensor, a magnetic sensor, a pressure sensor, or a temperature sensor.
- the communication component 1216 is configured to facilitate wired or wireless communication between the electronic device 1200 and other devices.
- the electronic device 1200 may access a wireless network based on a communication standard, such as WiFi, an operator network (such as 2G, 3G, 4G, or 5G), or a combination thereof.
- the communication component 1216 receives a broadcast signal or broadcast related information from an external broadcast management system via a broadcast channel.
- the communication component 1216 further includes a near field communication (NFC) module to facilitate short-range communication.
- the NFC module can be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.
- RFID radio frequency identification
- IrDA infrared data association
- UWB ultra-wideband
- Bluetooth Bluetooth
- the electronic device 1200 may be implemented by one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), and field devices.
- ASICs application specific integrated circuits
- DSPs digital signal processors
- DSPDs digital signal processing devices
- PLDs programmable logic devices
- FPGA Programming gate array
- controller microcontroller, microprocessor or other electronic components are used to implement the above method.
- non-transitory computer-readable storage medium including instructions, such as a memory 1204 including instructions, which can be executed by the processor 1220 of the electronic device 1200 to complete the above method.
- the non-transitory computer-readable storage medium may be ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, optical data storage device, or the like.
- Fig. 9 is a block diagram of an electronic device 1300 used for the foregoing transmission method according to an exemplary embodiment.
- the electronic device 1300 may be provided as a server.
- the electronic device 1300 includes a processing component 1322, which further includes one or more processors, and memory resources represented by the memory 1332, for storing instructions executable by the processing component 1322, such as application programs.
- the application programs stored in the memory 1332 may include one or more modules each corresponding to a set of instructions.
- the processing component 1322 is configured to execute instructions to perform the above-mentioned information list display method.
- the electronic device 1300 may further include a power supply component 1326 configured to perform power management of the electronic device 1300, a wired or wireless network interface 1350 configured to connect the electronic device 1300 to the network, and an input output (I / O) interface 1358 .
- the electronic device 1300 can operate an operating system based on the memory 1332, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, or the like.
- An embodiment of the present application also provides a non-transitory computer-readable storage medium, where the computer-readable storage medium stores computer instructions, and when the computer instructions are executed, the method for sending a file according to any of the foregoing embodiments is implemented .
- the data packet when the computer instruction is executed, the data packet can be written into the sending queue, the data packet can be read and sent from the sending queue, and the data packet corresponding to the received confirmation signal can be read from Deleted in the sending queue, because the failed packets will not receive the confirmation signal, so that the failed packets will stay in the sending queue and wait for retransmission. After multiple transmissions, all packets will reach the receiving end, thus ensuring In a weak network environment, it can still maintain a large transmission capacity and transmission reliability.
- An embodiment of the present application further provides a computer program, which is used to execute the method for sending a file according to any of the above embodiments during runtime.
- the computer program can write a data packet to the sending queue at runtime, read and send the data packet from the sending queue, and transfer the data packet corresponding to the confirmation signal from Deleted in the sending queue, because the failed packets will not receive the confirmation signal, so that the failed packets will stay in the sending queue and wait for retransmission. After multiple transmissions, all packets will reach the receiving end, thus ensuring In a weak network environment, it can still maintain a large transmission capacity and transmission reliability.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
公开了一种文件的发送方法、发送装置、电子设备和计算机可读介质。所述发送方法包括:将待发送文件拆分成多个数据包,并在每个数据包内存储拆分序号;将所述多个数据包写入发送队列;从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号;接收确认信号,并根据所述确认信号从所述发送队列中删除对应的数据包,接收端每接收到一个数据包后发出一个所述确认信号。本申请在传输文件的过程中,由于对于发送失败的数据包不会收到确认信号,使得发送失败的数据包会停留在发送队列中等待重新发送,经过多次发送,所有数据包都会到达接收端,从而提高了文件传输的可靠性。
Description
本申请要求于2018年11月2日提交中国专利局、申请号为201811302049.7发明名称为“文件传输的发送方法、发送装置、电子设备及可读介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及流媒体传输技术领域,特别涉及一种文件的发送方法、发送装置、电子设备及计算机可读介质。
随着科学技术的不断发展,各行业信息化的程度普遍提高,数据文件在网络之间的传输也越来越多。
为了保证数据文件能够快速、稳定的进行传输,目前的文件传输大多结合文件拆分技术,将文件拆分成多个数据包,并以多线程断点传输方式进行,从而确保文件的传输具有鲁棒性。
但是由于执行文件传输任务的服务器的配置不尽相同,且各个传输节点的网络环境也各不相同,时好时坏,尤其是在服务器配置较低、网络速度慢或不稳定时,数据包在传输过程中还是会出现传输失败的情况,从而在一定程度上会降低文件传输的成功率。
互联网通信中,丢包和带宽受限普遍存在。尤其在弱网环境下,如何可靠且高效的进行文件传输,对提升服务质量至关重要,例如短视频领域中,短视频的数据包上传的成功率和高效性极大的影响用户的体验和留存。
发明内容
鉴于上述问题,本申请的目的在于提供一种文件的发送方法,用于降低了文件传输过程中的丢包率,提高了文件传输的可靠性。
为实现上述目的,根据本申请实施例的第一方面,提供一种文件的发送方法,包括:
将待发送文件拆分成多个数据包,并在每个数据包内存储拆分序号;
将所述多个数据包写入发送队列;
从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号;
接收确认信号,并根据所述确认信号从所述发送队列中删除对应的数据包,接收端每接收到一个数据包后发出一个所述确认信号。
可选地,所述将所述多个数据包写入发送队列包括:
如果所述多个数据包的包数量等于或小于所述发送队列的长度,则将所述多个数据包依次写入发送队列;
如果所述多个数据包的包数量大于所述发送队列的长度,则将部分数据包依次写入到发送队列后,对于剩余数据包,每当所述发送队列有一个数据包被删除时,从所述剩余数据包中依次读取一个数据包写入到所述发送队列中。
可选地,所述从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号包括:采用第一进程或线程从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号;
所述接收确认信号,并根据所述确认信号从所述发送队列中删除对应的数据包包括:
采用第二进程或线程接收确认信号,并根据所述确认信号从所述发送队列中删除对应的数据包。
可选地,在所述第一线程或进程中采用第一指针指向所述发送队列,在所述第二线程或进程中采用第二指针指向所述发送队列。
可选地,还包括:接收所述发送端发送的丢包率。
可选地,还包括:根据所述丢包率调整发送码率。
可选地,所述根据所述丢包率调整发送码率包括:
当所述丢包率小于预设最低阈值时,增大发送码率;
当所述丢包率大于预设最大阈值时,降低发送码率;
当所述丢包率在所述预设最低阈值与所述预设最大阈值之间时,保持发送码率不变。
可选地,所述在每个数据包内存储发送序号包括:
每次发送一个数据包时,在该数据包内存储发送序号为上一个数据包的发送序号加1。
根据本发明实施例的第二方面,提供一种文件的发送装置,包括:
文件拆分模块,被配置为执行将待发送文件拆分成多个数据包,并在每个数据包内存储拆分序号;
数据包写入模块,被配置为执行将所述多个数据包写入发送队列;
数据包发送模块,被配置为执行从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号;
确认信号接收模块,被配置为执行接收确认信号;
数据包删除模块,被配置为执行根据所述确认信号从所述发送队列中删除对应的数据包,其中,接收端每接收到一个数据包后发出一个所述确认信号。
可选地,所述数据包写入模块包括:
第一写入单元,被配置为执行如果所述多个数据包的包数量等于或小于所述发送队列的长度,则将所述多个数据包依次写入发送队列;
第二写入单元,被配置为执行如果所述多个数据包的包数量大于所述发送队列的长度,则将部分数据包依次写入到发送队列后,对于剩余数据包,每当所述发送队列有一个数据包被删除时,从所述剩余数据包中依次读取一个数据包写入到所述发送队列中。
可选地,所述数据包发送模块包括:
数据包发送单元,被配置为执行采用第一进程或线程从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号;
所述确认信号接收模块包括:
确认信号单元,被配置为执行采用第二进程或线程接收确认信号。
可选地,在所述第一线程或进程中采用第一指针指向所述发送队列,在所述第二线程或进程中采用第二指针指向所述发送队列。
可选地,还包括:
丢包率接收模块,被配置为执行接收所述发送端发送的丢包率。
可选地,还包括:
发送码率调整模块,被配置为执行根据所述丢包率调整发送码率。
可选地,所述发送码率调整模块包括:
第一调整单元,被配置为执行当所述丢包率小于预设最低阈值时,增大发送码率;
第二调整单元,被配置为执行当所述丢包率大于预设最大阈值时,降低发送码率;
第三调整单元,被配置为执行当所述丢包率在所述预设最低阈值与所述预设最大阈值之间时,保持发送码率不变。
可选地,所述数据包发送模块包括:
发送序号存储单元,被配置为执行每次发送一个数据包时,在该数据包内存储发送序号为上一个数据包的发送序号加1。
根据本发明实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述任意一项所述的发送方法。
根据本发明实施例的第四方面,提供一种非临时性计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现上述任一项所述的发送方法。
本申请实施例采用的发送方法可以包括以下有益效果:将数据包写入到发送队列中,从发送队列中读取并发送数据包,并将收到确认信号对应的数据包从发送队列中删除,由于对于发送失败的数据包不会收到确认信号,使得发送失败的数据包会停留在发送队列中等待重新发送,经过多次发送,所有数据包都会到达接收端,从而确保在弱网环境下,依然能保持较大的传输能力和传输可靠性。
为了更清楚地说明本发明实施例和现有技术的技术方案,下面对实施例和现有技术中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为图1示出了本申请文件传输系统的C/S模型;
图2a示出了本申请一实施例的文件的发送方法的流程图;
图2b示出了本申请一实施例的文件的接收方法的流程图;
图3示出了本申请一实施例的文件的发送方法的流程图;
图4示出了本申请实施例中发送队列的示意图;
图5示出了本申请实施例中文件传输的发送端发送码率决策的方式的流程图;
图6示出了本申请一实施例的文件的接收方法的流程图;
图7示出了本申请实施例的文件的发送装置的结构图;
图8是根据一示例性实施例示出的一种执行文件的发送方法的装置的框图;
图9是根据一示例性实施例示出的一种执行文件的发送方法的装置的框图。
为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下基于实施例对本申请进行描述,但是本申请并不仅仅限于这些实施例。在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。为了避免混淆本申请的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
下面结合附图和实施例,对本申请的具体实施方式作进一步详细描述。
如图1所示为本申请实施例的文件传输系统的C/S模型,即客户端/服务器模型,它一般由计算机平台、网络平台和数据库平台组成,按其作用可以分为发送端101,接收端103和连接网络102。发送端101即客户端(Client),是一个运行在客户机上向服务器发送信息,并接收服务器信息的小型应用程序。接收端103是服务器(Server),是用于响应客户端请求并进行处理的。连接网络102即起连接作用的网络,包括诸如局域网、互联网等。
发送端101也就是客户端,会对待发送的文件数据进行拆分,将拆分后的数据包依次发送给服务器。下面结合图2a示例性地描述应用于客户端的文件的发送方法。
图2a示出了本申请一实施例的文件的发送方法的流程图,具体包括以下步骤。
在步骤S201中,将待发送文件拆分成多个数据包,并在每个数据包内存储拆分序号。
在步骤S202中,将多个数据包写入发送队列。
在步骤S203中,从发送队列中依次读取并发送多个数据包,并在每个数 据包内存储发送序号。
在步骤S204中,接收确认信号,并根据确认信号从所述发送队列中删除对应的数据包。
待发送文件的类型和大小均不限定。将待发送文件拆分成多个数据包,每个数据包大小可相等或不等。拆分时,将数据包的拆分序号存储在对应的数据包,便于后续拼接成文件。
发送队列为预生成的能存储限定数量的数据包的队列。发送队列中的每一个元素就是一个数据包。初始时,从拆分序号为0的数据包开始,按照拆分序号依次填充发送队列,每个数据包的大小为sp,直到发送队列充满或文件结束,也就是数据包全部写入发送队列,发送队列的最大长度为q_max。传输时,从发送队列中依次读取数据包,并进行发送,并在每个数据包内存储发送序号。如果一个数据包前后被发送多次,则多次发送的发送序号可以不相同。其中,发送序号为数据包在发送队列中的顺序对应的序号。
同时接收数据包的确认信息,也就是上述确认信号,确认信号可以是确认字符,在数据通信中,接收端发给给发送端的一种传输类控制字符,表示发送端发来的数据已确认接收无误。数据包的确认信息为接收端发送的表示接收到数据包的确认信息,每收到一个确认信息,从发送队列中将相应数据包删除。也就是从发送队列中将与确认信号相应的数据包删除,其中,确认信号可以包括成功接收的数据包的发送序号。
接收端103也就是服务端,接收客户端发送的数据包并返回确认信号。当接收到所有的数据包后,将其拼接成文件。下面结合图2b示例性地描述应用于服务器的文件接收方法。
图2b示出了本申请一实施例的文件的接收方法的流程图。具体包括以下步骤。
在步骤S201’中,接收数据包。
在步骤S202’中,根据数据包内的发送序号,发送确认信号。
在步骤S203’中,根据数据包内的拆分序号,拼接成文件。也就是说, 根据数据包内的拆分序号,将接收到的数据包拼接成文件。
接收端接收数据包后,可以读取数据包中的发送序号和拆分序号,并根据数据包内的发送序号,发送确认信号至发送端,以告知发送端数据包成功接收。接收端还可以根据接收到的数据包内的拆分序号,将接收到的数据包拼接成文件。
本申请实施例采用的发送方法将数据包写入到发送队列中,从发送队列中读取并发送数据包至接收端,并将收到确认信号所对应的数据包从发送队列中删除,由于发送失败的数据包不会收到确认信号,使得发送失败的数据包会停留在发送队列中等待重新发送,经过多次发送,所有数据包都会到达接收端,从而确保在弱网环境下,依然能保持文件传输可靠性。
图3示出了本申请一实施例的文件的发送方法的流程图,具体包括以下步骤。
在步骤S301中,填充队列,也就是将待发送文件的数据包依次填充到发送队列。
在步骤S302中,判断队列是否充满或文件结束,也就是判断发送队列是否充满,或者,发送文件对应的数据包是否全部放入发送队列。如果是,则执行步骤S303,否则执行步骤S301。
在步骤S303中,依次发送数据包。
在步骤S304中,接收确认信号。
在步骤S305中,删除该数据包。
也就是,每收到一个确认信号,就删除该确认信号对应的数据包。
在步骤S306中,判断是否有剩余数据包,也就是判断除发送队列中的数据包外,是否还有剩余数据包。如果是,执行步骤S307,否则执行步骤S308。
在步骤S307中,队列头部插入新的数据包,也就是在所述发送队列的队列头部插入新的数据包。其中,所述新的数据包为所述剩余数据包中的一个。
在步骤S308中,判断是否发送完毕,也就是判断发送队列中的数据包是 否发送完毕。如果是,则流程结束,如果否,则执行步骤S303。
下面结合图4具体说明本实施例。图4是一个发送队列的示意图。
根据步骤S301,将待发送文件的数据包依次填充到发送队列中,其中,待发送文件的数据包可以为预先将待发送文件拆分成的多个数据包。有三种可能的情况:1)待发送文件的数据包的数量等于发送队列的最大长度,则数据包正好充满发送队列;2)待发送文件的数据包的数量小于发送队列的最大长度,则数据包都填充到发送队列后,发送队列还有剩余;3)待发送文件的数据包的数量大于发送队列,则发送队列填满后,还有剩余数据包。对于3)的情况,需要将剩余数据包临时存储在一个缓存中。
根据步骤S303依次从发送队列中读取数据包并发送数据包。根据步骤S304接收到的确认信号,从发送队列中删除相应的数据包。发送数据包和接收确认信号可以是并行执行步骤。可选地,步骤S303在第一线程或进程中执行,步骤S304-307在第二进程或线程中执行。
下面结合图4进一步说明该并行过程。发送序号用N_send表示,N_send从1开始,P_send为指向发送队列的一个指针,P_recv为指向发送队列的另一个指针。第一线程或进程采用p_send从发送队列的队列头移动到队列尾,每指向一个数据包,读取并发送该数据包,相应地,N_send则加1。其中,图4中从“入”到“出”的方向表示p_send移动方向。
第二线程或进程一直处于接收状态,接收确认信号,根据确认信号采用p_recv指向发送队列,每接收到一个确认信号,将对应的数据包删除。当一个数据包删除后,如果这时还有剩余数据包,则从剩余数据包中取出一个新的数据包填充到发送队列的头部,从而保持发送队列中的数据包数量不变。
如果没有剩余数据包,则随着数据包被从发送队列中删除,发送队列中的数据包数量逐渐减少。并且,当P_send移动到队列尾时,回到发送队列的队列头重头进行数据包的发送。此时,数据包的发送序号等于上一轮队列尾的数据包的发送序号加1。
例如,N_send为5的数据包一直没有接收到确认信号,则说明该数据包没有发送成功,那么该数据包不会被删除,会一直保存在发送队列中。当 P_send再次移动到该数据包时,可以再次发送该数据包。经过多次这样的处理,能够确保针对所有的数据包均接收到对应的确认信号,即所有数据包都被接收端接收,并被从发送队列中删除。
综上,本实施例通过对发送队列的控制,确保所有数据包均得以发送成功,从而提高了文件传输的可靠性。
图5示出了本申请实施例中文件传输的发送端发送码率决策的方式的流程图。具体包括以下步骤。
在步骤S501中,初始化码率为r0,
在步骤S502中,判断丢包率p<p_low是否成立,是则执行步骤S503,否则执行步骤S504。
在步骤S503中,增大发送码率为r_opt=r_opt*(1+alpha)。
在步骤S504中,判断丢包率p>p_high是否成立,是则执行步骤S505,否则执行步骤S506。
在步骤S505中,降低发送码率为r_opt=r_opt*(1-beta)。
在步骤S506中,发送码率保持不变。
上述步骤中,r0为初始化的发送码率,即客户端发送数据包的初始速率。p为服务端实时统计的实际丢包率,p_low是预先设置的最低丢包率阈值,例如可以设置为0.1。p_high是预先设置的最高丢包率阈值,例如可以设置为0.3。r_opt为客户端可以达到的最佳发送码率,alpha>0,例如设为0.2,beta>0,例如设为0.2。r_opt*为当前发送码率。
上述步骤S502,S504中将实际丢包率p与预先设置好的最大丢包率p_high和最小的丢包率p_low分别进行比较,步骤S503,S505,S506根据比较结果对实际的发送码率进行调整,确保在保证较低的丢包率的同时又有较高的发送码率。客户端可以通过调节数据包的发送速率,或者拆分得到的数据包的大小等方式调整发送码率。
在一种实施方式中,上述码率决策的步骤,客户端和服务器可以相互配合完成。例如,服务器计算丢包率,根据丢包率、预先设置的最低丢包率阈 值以及先设置的最高丢包率阈值进行判断,并把判断结果发送给客户端,客户端根据判断结果,及时调整发送码率,且发送码率和接收码率可以满足下述公式:
r_opt=max(r_opt,r_recv*(1+theta)),
其中theta>beta,推荐值为0.25。使整个发送过程保持合适的丢包率和发送码率。r_recv*表示接收码率,等于接收到的字符数除以接收时间。
在上述实施例中,丢包率p计算方式为:在一定时间内,例如1s,统计实际收到数据包的数量x,数据包的最大发送序号seq_max,数据包的最小发送序号seq_min,那么丢包率p=1-x/(seq_max-seq_min)。
图6示出了本申请一实施例的文件的接收方法的流程图。具体包括以下步骤:
步骤S601:接收数据包,也就是接收来自客户端发送的数据包。
步骤S602:返回确认信号,也就是每接收一个数据包,就向客户端返回一个确认信号。也就是说,向客户端返回所接收到的数据包对应的确认信号。
步骤S603:将接收到的数据包按照拆分序号排序,并按拆分序号拼接组成文件。
步骤S604:统计丢包率,也就是根据实际接收的数据包和数据包的发送序号,计算传输过程中的丢包率。
步骤S605:统计实际接收速率,也就是根据单位时间内接收到的数据包的实际数量,统计传输过程中的实际接收速率,也就是接收码率。
上述文件接收的步骤中,除了要将接收到的数据包拼接组成文件之外,还可以根据实际接收的数据包和数据包的发送序号,统计丢包率,以便于客户端对发送码率决策中对丢包率的使用。
上述客户端发送数据包,服务器接收数据包,在一定时间内服务器接收到的数据包数量不一定等于发送的数据包数量,因为在传输过程中,可能会因为各种原因导致丢包现象,因此可以通过计算丢包率进行发送码率决策,以降低丢包率。
例如,每隔5秒,服务器统计一次丢包率并将丢包率传送给客户端,客户端根据丢包率调整下一次的发送码率。再例如,每次P_send指向发送队列的队列头时,可以调整一次发送码率。
服务器还可以统计实际接收码率,在一种实施方式中,服务器可以根据单位时间内接收到的数据包的实际数量,统计传输过程中的实际接收码率。接收码率的确定方式已在上述实施例中进行说明,在此不再赘述。
服务器可以将接收码率发送至客户端,以便客户端在调整发送码率时,可以判断发送码率和接收码率是否可以满足公式:r_opt=max(r_opt,r_recv*(1+theta))的要求,以保证文件发送过程可以保持合适的丢包率和发送码率。
图7示出了本申请实施例的文件的发送装置的结构图。发送装置700包括文件拆分模块701、数据包写入模块702、数据包发送模块703、确认信号接收模块704和数据包删除模块705。
文件拆分模块701用于将待发送文件拆分成多个数据包,并在每个数据包内存储拆分序号。
数据包写入模块702用于将多个数据包写入发送队列。
数据包发送模块703从发送队列中依次读取并发送多个数据包,并在每个数据包内存储发送序号。
确认信号接收模块704用于接收确认信号。
数据包删除模块705用于根据确认信号从发送队列中删除对应的数据包,接收端每接收到一个数据包后发出一个确认信号。
在本实施例的发送装置中,每个数据包内存储一个拆分序号和发送序号。拆分序号用于标识数据包在待发送文件中的位置,便于后续将数据包拼接成文件。发送序号用于标识数据包的发送顺序,用于后续计算丢包率。而且应该指出,如果一个数据包前后被发送两次,则第一次的发送序号和第二次的发送序号并不相同。当接收到数据包对应的确认信号时,就将该数据包从发 送队列中删除,并在有剩余数据包的情况下,可以在发送队列头部插入新的数据包,维持发送队列长度保持不变,直到发送队列充满或文件结束,其中,新的数据包为剩余数据包中的一个。
通过发送队列控制发送数据包,保证最终只有被接收到的数据包才会从发送队列中删除,实现了数据包重发机制,从而实现了文件传输的鲁棒性。
发送队列中的每一个元素为一个数据包,并在装置中维护两个指针,一个指针指向当前需要发送的数据包。每发送完一个数据包,指针向前移动到下一个数据包,每移动一次,数据包的发送序号加1,当指针到达队列尾时,将指针指向发送队列的队列头部,此时,数据包的发送序号等于上一轮队列尾的数据包的发送序号加1。另一个指针用于删除数据包,根据接收到的确认信号指向并删除数据包。指针是编程语言中的一种数据类型。
在上述发送装置中,还包括可以对发送码率的进行调整的模块。具体地,该模块可以先按照初始码率发送数据包,定时接收服务器反馈的丢包率,将其和预先设置的最高、最低丢包率阈值进行比较,通过比较结果来实时调整客户端的发送码率,保证整个传输过程中,都具有较低的丢包率和较高的传输码率。
在上述传输过程中,确认信号可以是确认字符,在数据通信中,接收端发给给发送端的一种传输类控制字符,表示发送端发来的数据已确认接收无误。在本申请实施例中,无论客户端是否收到确认信号,指针均可以移动到下一个数据包,发送下一个数据包。而没有发送成功的数据包则会留在发送队列中,等待指针轮询后的下一轮发送,再次被发送时,该数据包的拆分序号不变,发送序号则会发生变化。
本实施例提供的发送装置,从发送队列中读取并发送数据包,并将收到确认信号对应的数据包从发送队列中删除,由于发送失败的数据包不会收到确认信号,使得发送失败的数据包会停留在发送队列中等待重新发送,经过多次发送,所有数据包都会到达接收端,从而确保在弱网环境下,依然能保持较大的传输能力和传输可靠性。
在一种实施方式中,上述数据包写入模块702可以包括:
第一写入单元(图7中未示出),被配置为执行如果所述多个数据包的包数量等于或小于所述发送队列的长度,则将所述多个数据包依次写入发送队列;
第二写入单元(图7中未示出),被配置为执行如果所述多个数据包的包数量大于所述发送队列的长度,则将部分数据包依次写入到发送队列后,对于剩余数据包,每当所述发送队列有一个数据包被删除时,从所述剩余数据包中依次读取一个数据包写入到所述发送队列中。
在一种实施方式中,上述数据包发送模块703可以包括:
数据包发送单元(图7中未示出),被配置为执行采用第一进程或线程从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号;
上述确认信号接收模块704,可以包括:
确认信号单元(图7中未示出),被配置为执行采用第二进程或线程接收确认信号。
在一种实施方式中,在所述第一线程或进程中可以采用第一指针指向所述发送队列,在所述第二线程或进程中可以采用第二指针指向所述发送队列。
在一种实施方式中,上述的发送装置还可以包括:
丢包率接收模块(图7中未示出),被配置为执行接收所述发送端发送的丢包率。
在一种实施方式中,上述的发送装置还可以包括:
发送码率调整模块(图7中未示出),被配置为执行根据所述丢包率调整发送码率。
在一种实施方式中,上述发送码率调整模块可以包括:
第一调整单元(图7中未示出),被配置为执行当所述丢包率小于预设最低阈值时,增大发送码率;
第二调整单元(图7中未示出),被配置为执行当所述丢包率大于预设最 大阈值时,降低发送码率;
第三调整单元(图7中未示出),被配置为执行当所述丢包率在所述预设最低阈值与所述预设最大阈值之间时,保持发送码率不变。
在一种实施方式中,上述数据包发送模块703可以包括:
发送序号存储单元(图7中未示出),被配置为执行每次发送一个数据包时,在该数据包内存储发送序号为上一个数据包的发送序号加1。
本申请实施例还提供了一种电子设备,该电子设备包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述任一实施例所述的文件的发送方法。
可见,本申请实施例所提供的方案中,电子设备可以将数据包写入到发送队列中,从发送队列中读取并发送数据包,并将收到确认信号对应的数据包从发送队列中删除,由于对于发送失败的数据包不会收到确认信号,使得发送失败的数据包会停留在发送队列中等待重新发送,经过多次发送,所有数据包都会到达接收端,从而确保在弱网环境下,依然能保持较大的传输能力和传输可靠性。
图8是根据一示例性实施例示出的一种用于上述发送方法的电子设备1200的框图。例如,电子设备1200可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图8,电子设备1200可以包括以下一个或多个组件:处理组件1202,存储器1204,电源组件1206,多媒体组件1208,音频组件1210,输入/输出(I/O)的接口1212,传感器组件1214,以及通信组件1216。
处理组件1202通常控制电子设备1200的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1202可以包括一个或多个处理器1220来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1202可以包括一个或多个模块,便于处理组件1202和其他 组件之间的交互。例如,处理组件1202可以包括多媒体模块,以方便多媒体组件1208和处理组件1202之间的交互。
存储器1204被配置为存储各种类型的数据以支持在电子设备1200的操作。这些数据的示例包括用于在电子设备1200上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1204可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1206为电子设备1200的各种组件提供电力。电源组件1206可以包括电源管理系统,一个或多个电源,及其他与为电子设备1200生成、管理和分配电力相关联的组件。
多媒体组件1208包括在所述电子设备1200和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1208包括一个前置摄像头和/或后置摄像头。当电子设备1200处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1210被配置为输出和/或输入音频信号。例如,音频组件1210包括一个麦克风(MIC),当装置1200处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1204或经由通信组件1216发送。在一些实施例中,音频组件1210还包括一个扬声器,用于输出音频信号。
I/O接口1212为处理组件1202和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按 钮、音量按钮、启用按钮和锁定按钮。
传感器组件1214包括一个或多个传感器,用于为电子设备1200提供各个方面的状态评估。例如,传感器组件1214可以检测到设备1200的打开/关闭状态,组件的相对定位,例如所述组件为电子设备1200的显示器和小键盘,传感器组件1214还可以检测电子设备1200或电子设备1200一个组件的位置改变,用户与电子设备1200接触的存在或不存在,电子设备1200方位或加速/减速和电子设备1200的温度变化。传感器组件1214可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1214还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1214还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1216被配置为便于电子设备1200和其他设备之间有线或无线方式的通信。电子设备1200可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件1216经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1216还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备1200可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1204,上述指令可由电子设备1200的处理器1220执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图9是根据一示例性实施例示出的一种用于上述发送方法的电子设备 1300的框图。例如,电子设备1300可以被提供为一服务器。参照图9,电子设备1300包括处理组件1322,其进一步包括一个或多个处理器,以及由存储器1332所代表的存储器资源,用于存储可由处理组件1322的执行的指令,例如应用程序。存储器1332中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1322被配置为执行指令,以执行上述信息列表显示方法方法。
电子设备1300还可以包括一个电源组件1326被配置为执行电子设备1300的电源管理,一个有线或无线网络接口1350被配置为将电子设备1300连接到网络,和一个输入输出(I/O)接口1358。电子设备1300可以操作基于存储在存储器1332的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例还提供了一种非临时性计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现上述任一实施例所述的文件的发送方法。
可见,本申请实施例所提供的方案中,计算机指令被执行时可以将数据包写入到发送队列中,从发送队列中读取并发送数据包,并将收到确认信号对应的数据包从发送队列中删除,由于对于发送失败的数据包不会收到确认信号,使得发送失败的数据包会停留在发送队列中等待重新发送,经过多次发送,所有数据包都会到达接收端,从而确保在弱网环境下,依然能保持较大的传输能力和传输可靠性。
本申请实施例还提供了一种计算机程序,所述计算机程序用于在运行时执行上述任一实施例所述的文件的发送方法。
可见,本申请实施例所提供的方案中,计算机程序在运行时可以将数据包写入到发送队列中,从发送队列中读取并发送数据包,并将收到确认信号对应的数据包从发送队列中删除,由于对于发送失败的数据包不会收到确认信号,使得发送失败的数据包会停留在发送队列中等待重新发送,经过多次 发送,所有数据包都会到达接收端,从而确保在弱网环境下,依然能保持较大的传输能力和传输可靠性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (19)
- 一种文件的发送方法,其特征在于,包括:将待发送文件拆分成多个数据包,并在每个数据包内存储拆分序号;将所述多个数据包写入发送队列;从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号;接收确认信号,并根据所述确认信号从所述发送队列中删除对应的数据包,其中,接收端每接收到一个数据包后发出一个所述确认信号。
- 根据权利要求1所述的发送方法,其特征在于,所述将所述多个数据包写入发送队列包括:如果所述多个数据包的包数量等于或小于所述发送队列的长度,则将所述多个数据包依次写入发送队列;如果所述多个数据包的包数量大于所述发送队列的长度,则将部分数据包依次写入到发送队列后,对于剩余数据包,每当所述发送队列有一个数据包被删除时,从所述剩余数据包中依次读取一个数据包写入到所述发送队列中。
- 根据权利要求1所述的发送方法,其特征在于,所述从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号包括:采用第一进程或线程从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号;所述接收确认信号,并根据所述确认信号从所述发送队列中删除对应的数据包包括:采用第二进程或线程接收确认信号,并根据所述确认信号从所述发送队列中删除对应的数据包。
- 根据权利要求3所述的发送方法,其特征在于,在所述第一线程或进程中采用第一指针指向所述发送队列,在所述第二线程或进程中采用第二指 针指向所述发送队列。
- 根据权利要求1所述的发送方法,其特征在于,还包括:接收所述发送端发送的丢包率。
- 根据权利要求5所述的发送方法,其特征在于,还包括:根据所述丢包率调整发送码率。
- 根据权利要求6所述的发送方法,其特征在于,所述根据所述丢包率调整发送码率包括:当所述丢包率小于预设最低阈值时,增大发送码率;当所述丢包率大于预设最大阈值时,降低发送码率;当所述丢包率在所述预设最低阈值与所述预设最大阈值之间时,保持发送码率不变。
- 根据权利要求1所述的发送方法,其特征在于,所述在每个数据包内存储发送序号包括:每次发送一个数据包时,在该数据包内存储发送序号为上一个数据包的发送序号加1。
- 一种文件传输的发送装置,其特征在于,包括:文件拆分模块,被配置为执行将待发送文件拆分成多个数据包,并在每个数据包内存储拆分序号;数据包写入模块,被配置为执行将所述多个数据包写入发送队列;数据包发送模块,被配置为执行从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号;确认信号接收模块,被配置为执行接收确认信号;数据包删除模块,被配置为执行根据所述确认信号从所述发送队列中删除对应的数据包,其中,接收端每接收到一个数据包后发出一个所述确认信号。
- 根据权利要求9所述的发送装置,其特征在于,所述数据包写入模块包括:第一写入单元,被配置为执行如果所述多个数据包的包数量等于或小于所述发送队列的长度,则将所述多个数据包依次写入发送队列;第二写入单元,被配置为执行如果所述多个数据包的包数量大于所述发送队列的长度,则将部分数据包依次写入到发送队列后,对于剩余数据包,每当所述发送队列有一个数据包被删除时,从所述剩余数据包中依次读取一个数据包写入到所述发送队列中。
- 根据权利要求9所述的发送装置,其特征在于,所述数据包发送模块包括:数据包发送单元,被配置为执行采用第一进程或线程从所述发送队列中依次读取并发送所述多个数据包,并在每个数据包内存储发送序号;所述确认信号接收模块包括:确认信号单元,被配置为执行采用第二进程或线程接收确认信号。
- 根据权利要求11所述的发送装置,其特征在于,在所述第一线程或进程中采用第一指针指向所述发送队列,在所述第二线程或进程中采用第二指针指向所述发送队列。
- 根据权利要求9所述的发送装置,其特征在于,还包括:丢包率接收模块,被配置为执行接收所述发送端发送的丢包率。
- 根据权利要求13所述的发送装置,其特征在于,还包括:发送码率调整模块,被配置为执行根据所述丢包率调整发送码率。
- 根据权利要求14所述的发送装置,其特征在于,所述发送码率调整模块包括:第一调整单元,被配置为执行当所述丢包率小于预设最低阈值时,增大发送码率;第二调整单元,被配置为执行当所述丢包率大于预设最大阈值时,降低 发送码率;第三调整单元,被配置为执行当所述丢包率在所述预设最低阈值与所述预设最大阈值之间时,保持发送码率不变。
- 根据权利要求9所述的发送装置,其特征在于,所述数据包发送模块包括:发送序号存储单元,被配置为执行每次发送一个数据包时,在该数据包内存储发送序号为上一个数据包的发送序号加1。
- 一种电子设备,其特征在于,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述权利要求1-8任意一项所述的发送方法。
- 一种非临时性计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现如权利要求1至8任一项所述的发送方法。
- 一种计算机程序,其特征在于,所述计算机程序用于在运行时执行权利要求1至8任一项所述的发送方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811302049.7 | 2018-11-02 | ||
| CN201811302049.7A CN109617945A (zh) | 2018-11-02 | 2018-11-02 | 文件传输的发送方法、发送装置、电子设备及可读介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020088064A1 true WO2020088064A1 (zh) | 2020-05-07 |
Family
ID=66002274
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2019/102993 Ceased WO2020088064A1 (zh) | 2018-11-02 | 2019-08-28 | 文件的发送方法、发送装置、电子设备及可读介质 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN109617945A (zh) |
| WO (1) | WO2020088064A1 (zh) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109617945A (zh) * | 2018-11-02 | 2019-04-12 | 北京达佳互联信息技术有限公司 | 文件传输的发送方法、发送装置、电子设备及可读介质 |
| CN112398744B (zh) * | 2019-08-16 | 2024-09-06 | 阿里巴巴集团控股有限公司 | 网络通信方法、装置及电子设备 |
| CN111147540B (zh) * | 2019-11-18 | 2022-09-16 | 深圳市元征科技股份有限公司 | 文件传输方法、装置、设备和存储介质 |
| CN111107165B (zh) * | 2019-12-30 | 2022-09-27 | 深圳市其乐游戏科技有限公司 | 断线重连方法、装置及计算机可读存储介质 |
| CN111885564B (zh) * | 2020-07-03 | 2024-03-22 | 海尔优家智能科技(北京)有限公司 | 数据传输方法、设备升级方法、计算机可读的存储介质 |
| CN114363370B (zh) * | 2021-12-29 | 2023-12-26 | 中汽创智科技有限公司 | 车载设备通信方法、装置、系统和车辆 |
| CN115987665B (zh) * | 2022-12-29 | 2025-09-02 | 杭州海康威视数字技术股份有限公司 | 一种数据发送和数据接收方法、数据传输系统及介质 |
| CN121585329B (zh) * | 2026-01-27 | 2026-04-03 | 格通智联技术(上海)有限公司 | 数据传输方法、装置及设备 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102137027A (zh) * | 2011-05-03 | 2011-07-27 | 厦门市美亚柏科信息股份有限公司 | 数据的可靠传输方法和装置 |
| CN104660308A (zh) * | 2015-01-26 | 2015-05-27 | 武汉健坤科技有限公司 | 基于蓝牙低功耗技术的文件传输方法和系统 |
| CN106331106A (zh) * | 2016-08-25 | 2017-01-11 | 广州小百合信息技术有限公司 | 信息发布方法和系统 |
| CN107623545A (zh) * | 2016-07-15 | 2018-01-23 | 中国人民解放军信息工程大学 | 文件传输方法及装置 |
| CN109617945A (zh) * | 2018-11-02 | 2019-04-12 | 北京达佳互联信息技术有限公司 | 文件传输的发送方法、发送装置、电子设备及可读介质 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8930569B2 (en) * | 2004-05-05 | 2015-01-06 | Qualcomm Incorporated | Methods and apparatus for optimum file transfers in a time-varying network emvironment |
| US9693127B2 (en) * | 2014-05-14 | 2017-06-27 | Samsung Electronics Co., Ltd | Method and apparatus for communicating audio data |
| CN108306715A (zh) * | 2017-01-11 | 2018-07-20 | 深圳市首欣通达科技有限公司 | 一种基于北斗一代卫星短报文通信功能进行长文件传输的方法及系统 |
| CN106790653B (zh) * | 2017-01-17 | 2020-04-24 | 上海泓智信息科技有限公司 | 文件传输处理方法及装置 |
| CN107580233A (zh) * | 2017-08-21 | 2018-01-12 | 武汉斗鱼网络科技有限公司 | 一种传输数据的方法、装置及计算机设备 |
-
2018
- 2018-11-02 CN CN201811302049.7A patent/CN109617945A/zh active Pending
-
2019
- 2019-08-28 WO PCT/CN2019/102993 patent/WO2020088064A1/zh not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102137027A (zh) * | 2011-05-03 | 2011-07-27 | 厦门市美亚柏科信息股份有限公司 | 数据的可靠传输方法和装置 |
| CN104660308A (zh) * | 2015-01-26 | 2015-05-27 | 武汉健坤科技有限公司 | 基于蓝牙低功耗技术的文件传输方法和系统 |
| CN107623545A (zh) * | 2016-07-15 | 2018-01-23 | 中国人民解放军信息工程大学 | 文件传输方法及装置 |
| CN106331106A (zh) * | 2016-08-25 | 2017-01-11 | 广州小百合信息技术有限公司 | 信息发布方法和系统 |
| CN109617945A (zh) * | 2018-11-02 | 2019-04-12 | 北京达佳互联信息技术有限公司 | 文件传输的发送方法、发送装置、电子设备及可读介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN109617945A (zh) | 2019-04-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2020088064A1 (zh) | 文件的发送方法、发送装置、电子设备及可读介质 | |
| CN106488335B (zh) | 直播控制方法及装置 | |
| CN113301658B (zh) | 上行消息传输方法、装置及存储介质 | |
| CN111654450B (zh) | 数据传输方法及装置、存储介质 | |
| WO2020134559A1 (zh) | 一种数据传输方法、装置、终端设备及存储介质 | |
| EP3865995A1 (en) | Method, device and server for playing audio | |
| US11375403B2 (en) | Method and apparatus for detecting maximum transmission unit value | |
| US11558494B2 (en) | Method and apparatus for processing data, user equipment and computer-readable storage medium | |
| CN107743096B (zh) | 网络优化方法、装置、终端以及存储介质 | |
| WO2020132874A1 (zh) | 数据传输方法及装置 | |
| WO2020029085A1 (zh) | 传输块调度间隔的配置、确定方法及装置和基站 | |
| US11109260B2 (en) | Data transmission method and apparatus | |
| WO2019033521A1 (zh) | 数据承载重映射过程中数据包处理的方法、装置和系统 | |
| CN109429556B (zh) | Harq反馈方法、装置、用户设备和基站 | |
| CN107231283B (zh) | 消息管理方法及装置、消息预读方法及装置 | |
| US11665586B2 (en) | Method and apparatus for data transmission, electronic device and computer readable storage medium | |
| CN109287139A (zh) | 数据传输方法及装置 | |
| CN111586152B (zh) | 蓝牙传输数据的播放方法及装置、蓝牙传输数据的发送方法及装置 | |
| CN108401482B (zh) | 数据传输方法和装置 | |
| WO2023226717A1 (zh) | 文件传输方法、文件传输装置、服务器及存储介质 | |
| CN117376191A (zh) | 网络访问方法、装置、电子设备、存储介质及芯片 | |
| CN116321363A (zh) | 基于远距离无线电的通信方法、装置、设备及存储介质 | |
| CN109962757A (zh) | 基于视联网的数据传输方法及装置 | |
| WO2020097883A1 (zh) | 传输消息的方法及装置 | |
| WO2023221117A1 (zh) | 报文接收方法、装置、存储介质及电子设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19880426 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19880426 Country of ref document: EP Kind code of ref document: A1 |