Thanks Lorenza.
Sorry, I should give you some recap :) You misunderstood my comparison.
I was NOT comparing TCP to UDP in general (I know both of them in
depth), I was comparing them when both TCP sender and UDP sender have
sent enough data that can congest the enb. If that is the case, then
TCP packets and UDP packets are just "data" at link layer, there is no
difference between them, and if there are enough data for both cases,
their DL throughput should be similar, both equals to enb's link layer
capacity/bandwidth.
How do I make sure both sender send enough data to congest enb? For
UDP, I configured its sending rate to be much higher than enb's link
layer capacity; for TCP, I didn't do anything, but because I'm using
AM mode, there is no network layer packet loss, so TCP's cwnd will
keep increasing, makes the packets buffered at enb (bufferbloat
phenomenon of cellular network), I also confirmed this from trace.
Under this congested circumstance, I was expecting that their DL
throughput should be similar. I said that "TCP ACK on UL should not
affect DL capacity", because anyway there are already enough TCP data
at enb, so UL ACKs, latency, should not matter in my case.
Previously, because TCP has UL traffic (TCP ACKs), which generates
STATUS PDU at DL, so I have to adjust the TCP throughput by assuming
that STATUS PDU (link layer ACKs) are piggybacked, the reason why I'm
logging the extra bytes TCP can leverage: size of Tx Opportunity minus
size of STATUS PDU (BTW, I'm not assuming multiple PDUs, I'm just
assuming each Tx Opportunity can be leveraged efficiently, by
piggybacking actual data on STATUS PDU packet). After the adjustment,
I found that when the inter-cell interference on UL is not severe, my
TCP throughput is similar to UDP.
The new problem I found is that when the inter-cell interference on UL
is severe (DL interference doesn't matter), TCP throughput is still
lower than UDP. I don't know the reason, why UL packet from
neighboring cells can affect DL performance? I then figured out that
seems the reason is that using TCP I saw more link layer ReTx, but for
UDP the link layer ReTx is rare. Do you know the reason?
I guess only I know my experiment in detail, so I think it is really
hard for you to figure out the root cause of the problem. But I wonder
are there any other differences between TCP and UDP that can
potentially make the throughput different?
Three quick, concrete questions:
1) AM mode will treat UDP packet and TCP packet identically, right?
That means both types of packet should be retransmitted in the same
way. (I think so, MAC layer should not differentiate upper layer
protocol);
2) If I'm using ALWAY_AM, then both DL and UL are using AM right? so
UL traffic should also be retransmited? can I configure UL to use UM
but not AM?
3) are there two lte-rlc-am instances for both UL and DL? I'm printing
out ReTx information from lte-rlc-am.cc, I thought all the print-outs
are for DL, but are some of them for UL? How do I differentiate?
Thanks for you time again, my description is long... :)
> You received this message because you are subscribed to a topic in the
> Google Groups "ns-3-users" group.
> To unsubscribe from this topic, visit
>
https://groups.google.com/d/topic/ns-3-users/Tkkk9q8G6Uo/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to