A processor-implemented method for uplink scheduling in a communication network, comprising: estimating downlink delay for a transmitter-receiver pair communication in the communication network by performing a downlink delay estimation, in response to an uplink request received from a transmitter of the transmitter-receiver pair in the communication network, via one or more hardware processors, wherein the downlink delay relates to delay for transmission from the communication network to the receiver; estimating a processing delay in the communication network, via the one or more hardware processors, wherein the processing delay represents total execution time required for processing uplink data frames from the transmitter and for creating corresponding downlink data frames for transmission; and determining a utility value for each transmitter i on a resource j based on an utility function u ij, and the utility function u ij is represented as: u ij = υ 1 R ij R imax ∗ F ij F jmax − υ 2 D u, i ′ D imax * x ij wherein D u, i ′ is a fraction of uplink delay budget, R ij is an instantaneous transmission rate for the transmitter on a frame j, R imax is a maximum transmission rate for the transmitter, F ij and F jmax are traffic flow of the transmitter and total traffic flow in the frame j, respectively, υ1 and υ2 are scaling factors for transmission rate and delay limit, respectively, and x ij is a resource allocation factor which is in a form of a binary metric, and wherein a value of x ij is 1, if the transmitter is scheduled in the frame j, and '0' otherwise; D imax is maximum delay budget for the transmitter i and scheduling uplink for the transmitter based on the downlink delay, the processing delay, the uplink delay budget and using an optimal scheduling model, which is represented as: Maximize ∑ j = 1 M ∑ i = 1 N u ij, wherein N represents users for uplink and M represents total resources in the uplink data frame which is to be filled with users' uplink data, and wherein scheduling the uplink for the transmitter comprises of determining a time at which resources are required for uplink transmission. estimating downlink delay for a transmitter-receiver pair communication in the communication network by performing a downlink delay estimation, in response to an uplink request received from a transmitter of the transmitter-receiver pair in the communication network, via one or more hardware processors, wherein the downlink delay relates to delay for transmission from the communication network to the receiver; estimating a processing delay in the communication network, via the one or more hardware processors, wherein the processing delay represents total execution time required for processing uplink data frames from the transmitter and for creating corresponding downlink data frames for transmission; and determining a utility value for each transmitter i on a resource j based on an utility function u ij, and the utility function u ij is represented as: u ij = υ 1 R ij R imax ∗ F ij F jmax − υ 2 D u, i ′ D imax * x ij wherein D u, i ′ is a fraction of uplink delay budget, R ij is an instantaneous transmission rate for the transmitter on a frame j, R imax is a maximum transmission rate for the transmitter, F ij and F jmax are traffic flow of the transmitter and total traffic flow in the frame j, respectively, υ1 and υ2 are scaling factors for transmission rate and delay limit, respectively, and x ij is a resource allocation factor which is in a form of a binary metric, and wherein a value of x ij is 1, if the transmitter is scheduled in the frame j, and '0' otherwise; D imax is maximum delay budget for the transmitter i and scheduling uplink for the transmitter based on the downlink delay, the processing delay, the uplink delay budget and using an optimal scheduling model, which is represented as: Maximize ∑ j = 1 M ∑ i = 1 N u ij, wherein N represents users for uplink and M represents total resources in the uplink data frame which is to be filled with users' uplink data, and wherein scheduling the uplink for the transmitter comprises of determining a time at which resources are required for uplink transmission.