TCP throughput on LTE

252 views
Skip to first unread message

daniel.maldo...@gmail.com

unread,
Feb 13, 2019, 9:46:36 AM2/13/19
to ns-3-users
Hello all,

I am trying to get the largest available Throughput of a TCP connection using LENA in the downlink direction. Eventually I will need to measure the performance of the connection with FdNetdevices and other processes in between.

That's why I have modified "lena-simple-epc.cc" with the following scenario:
1. 1 static UE attached to 1 eNodeB, both at the same place.
2. RB=100 (BW=20MHz).
3. I have disabled Error Model on ns-3 spectrum model.
4. Using UDP I already have an Average throughput: 72.0759 Mbps

But when I use TCP application (TcpNewReno), I only get a throughput around 1.45 Mbps .

I assume that Error model in the point to point connection (or in some other NetDevice?) between the Remote Host and EPC is the one that produce errors and don't let TCP to reach the maximum data rate, but I can't found  the way of disabling it.

Can you please give me some advice on how to make it?

Thanks in advance,

Regards,

Daniel M.
TCP_Throughput_Lena-simple-epc

Goodsol Lee

unread,
Feb 14, 2019, 1:27:49 AM2/14/19
to ns-3-users
Hi,

In my case, I usually do not set any error model in point to point net devices that connect pgw and server node.

As my best knowledge, there are no error if you do not modify error model.

So, check the where's the error comes from.

Did you set RLC as AM mode and HARQ enabled?

or, if there are error in p2p model, refer fifth.cc in examples/tutorial folder. 

You can know how to attach RateErrorModel if you see that example.

Thanks.




2019년 2월 13일 수요일 오후 11시 46분 36초 UTC+9, daniel.maldo...@gmail.com 님의 말:

daniel.maldo...@gmail.com

unread,
Feb 14, 2019, 4:41:56 AM2/14/19
to ns-3-users
Goodsol,

Thanks for your answer.

A few hours after publishing my question in the group I found a case similar to mine, and as you mentioned, the problem was due to buffer overflow at the RLC layer.

As you can see in the link https://groups.google.com/forum/#!topic/ns-3-users/0xdh7CAGZNU the solution at that moment was to manually increase the RLC TX buffer size to about 128K, in fact I have tested several times and above this value there is no improvement in throughput.

At that time RLC_AM presented a bug, but in the current version is fixed.

By manually configuring the RLC UM buffer or configuring the RLC_AM mode I achieved an average TCP throughput around 28 Mbps.

However, it is still far from the 72 Mbps obtained with UDP.

I think it's due to TCP behavior, but maybe you have another idea about it?

Regards,

Daniel Maldonado

Goodsol Lee

unread,
Feb 14, 2019, 7:51:13 AM2/14/19
to ns-3-users
Hi, 

there are several reasons that tcp cannot achieve desired throughput while UDP can in single bs-single user

1. slow start phase is fast in increasing window size, but UDP sends data rate with full at first of simulation. 

2. RLC buffer overflow -> packet loss. As you mentioned, there are danger of packet loss by link layer overflow

3. HARQ fail -> in LTE module, I remember that maximum harq retransmission number is 8. So, with sudden degradation of signal, you will find it causes packet loss.

*Send buffer and Receiver buffer size -> I'm not sure that these can affect your simulation because I guess the default value is big enough to serve 72Mbps. But to make sure, you'd better check it in tcp-socket-base.cc

In my guess, above three things are the main reason of low throughput of tcp.

The first reason will be solved if you set simulation time long enough and slow start threshold big enough (but it can cause another congestion window drop by link level failure)

second and third reason can be traced in lte-helper.cc.

But first of all, checking congestion window and finding why the dup ack or retransmission time out happened will be the fastest way to solve problem.

If there are other reasons that makes your tcp collapse, please teach me.

Thanks.

Reply all
Reply to author
Forward
0 new messages