You are tasked with optimizing data transmission in a system that follows the 1553 communication protocol. Given a list of data packets with their respective transmission times, your goal is to determine the maximum number of packets that can be transmitted within a given time window.
Each packet is represented as a tuple (packet_id, transmission_time), where packet_id is a unique identifier and transmission_time is the time taken to transmit that packet. You need to return the list of packet IDs that can be transmitted within the specified time limit.
Example 1:
Input: packets = [(1, 3), (2, 2), (3, 1)], time_limit = 5
Output: [3, 2]
Explanation: Packets 3 and 2 can be transmitted in a total of 3 + 2 = 5 time units.
Example 2:
Input: packets = [(1, 4), (2, 3), (3, 2), (4, 1)], time_limit = 6
Output: [4, 3]
Explanation: Packets 4 and 3 can be transmitted within the time limit.
1 <= len(packets) <= 10^51 <= transmission_time <= 10^91 <= time_limit <= 10^9.