Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(14612)

Issue 314810043: 3GPP HTTP model for applications module

Can't Edit
Can't Publish+Mail
Start Review
Created:
7 years, 6 months ago by jani.puttonen
Modified:
6 years, 2 months ago
CC:
ns-3-reviews_googlegroups.com
Visibility:
Public.

Description

A new traffic model for ns-3. The patch contains the following: - Two new applications: `ThreeGppHttpClient` and `ThreeGppHttpServer`. - `ThreeGppHttpVariables` for all sort of randomization in the model, e.g., packet sizes, off times, etc. - `ThreeGppHttpTag` to be used on each transmitted packet to differentiate main and embedded objects and to allow the model to compute delays. - A new test suite `three-gpp-http-client-server`. - Typical helper class `ThreeGppHttpHelper` - Some histogram figures to illustrate the distributions of the random number generators in the model. They are included in the Doxygen documentation. This issue is an slightly upgraded version of Http model already announced about 1.5 years ago, but was not completed: https://codereview.appspot.com/233780043/.

Patch Set 1 #

Patch Set 2 : Changed from tag to header, added Sphinx documentation, and added an example. #

Total comments: 11

Patch Set 3 : Resolved all comments. #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+5677 lines, -4 lines) Patch
M doc/doxygen.conf View 1 chunk +1 line, -0 lines 0 comments Download
M doc/models/Makefile View 1 1 chunk +5 lines, -0 lines 0 comments Download
M src/applications/doc/applications.rst View 1 2 1 chunk +230 lines, -3 lines 0 comments Download
A src/applications/doc/http-embedded-object-size.png View Binary file 0 comments Download
A src/applications/doc/http-main-object-size.png View Binary file 0 comments Download
A src/applications/doc/http-num-of-embedded-objects.png View Binary file 0 comments Download
A src/applications/doc/http-parsing-time.png View Binary file 0 comments Download
A src/applications/doc/http-reading-time.png View Binary file 0 comments Download
A src/applications/examples/three-gpp-http-example.cc View 1 2 1 chunk +165 lines, -0 lines 0 comments Download
A src/applications/examples/wscript View 1 1 chunk +8 lines, -0 lines 0 comments Download
A src/applications/helper/three-gpp-http-helper.h View 1 chunk +172 lines, -0 lines 0 comments Download
A src/applications/helper/three-gpp-http-helper.cc View 1 chunk +133 lines, -0 lines 0 comments Download
A src/applications/model/three-gpp-http-client.h View 1 2 1 chunk +426 lines, -0 lines 0 comments Download
A src/applications/model/three-gpp-http-client.cc View 1 2 1 chunk +884 lines, -0 lines 5 comments Download
A src/applications/model/three-gpp-http-header.h View 1 1 chunk +141 lines, -0 lines 0 comments Download
A src/applications/model/three-gpp-http-header.cc View 1 1 chunk +218 lines, -0 lines 0 comments Download
A src/applications/model/three-gpp-http-server.h View 1 2 1 chunk +564 lines, -0 lines 0 comments Download
A src/applications/model/three-gpp-http-server.cc View 1 2 1 chunk +945 lines, -0 lines 1 comment Download
A src/applications/model/three-gpp-http-variables.h View 1 2 1 chunk +339 lines, -0 lines 0 comments Download
A src/applications/model/three-gpp-http-variables.cc View 1 2 1 chunk +502 lines, -0 lines 0 comments Download
A src/applications/test/three-gpp-http-client-server-test.cc View 1 2 1 chunk +910 lines, -0 lines 0 comments Download
M src/applications/wscript View 1 2 2 chunks +15 lines, -1 line 0 comments Download
M src/network/model/application.h View 1 chunk +19 lines, -0 lines 0 comments Download

Messages

Total messages: 8
Tom Henderson
I do not have any detailed comments right now; the code is clear, well-written, conforming ...
7 years, 5 months ago (2016-10-20 16:56:08 UTC) #1
jani.puttonen
Hi Tom et al! A new patchset (#2) provided for the 3GPP HTTP model for ...
7 years, 5 months ago (2016-11-04 19:05:37 UTC) #2
Tom Henderson
I again just have some minor comments mainly to improve documentation and example program. Please ...
7 years, 5 months ago (2016-11-14 21:12:54 UTC) #3
Luciano Chaves
Hi. I was looking at this code and I got a question about the ThreeGppHttpHeader: ...
7 years, 2 months ago (2017-02-01 10:39:40 UTC) #4
Tommaso Pecorella
Hi Luciano, I understand both your concerns, but I'm against them. The "old" HTTP header ...
7 years, 1 month ago (2017-03-02 00:32:12 UTC) #5
Luciano Chaves
Hi About the HTTP header version, I agree with you that HTTP2 would be better ...
7 years, 1 month ago (2017-03-08 14:59:51 UTC) #6
jani.puttonen
Hi Luciano and Tommaso! We agree that HTTP/2 would be better approach. However, I think ...
7 years ago (2017-04-06 18:44:09 UTC) #7
Tommaso Pecorella
6 years, 2 months ago (2018-02-11 04:22:06 UTC) #8
Sorry for the epic time I took to check the code.

Most comments are trivial... but one.

I don't understand why the application should be interested in the TCP segment
she and the interface MTU.

If the problem is that the server doesn't know the client's request length, just
add the length in the header.
As a matter of fact, we shouldn't rely on TCP segment size because it could be
dynamic (sooner or later it will be) and about MTU... well, it's not constant
either (see IPv6's PMTU).

https://codereview.appspot.com/314810043/diff/40001/src/applications/model/th...
File src/applications/model/three-gpp-http-client.cc (right):

https://codereview.appspot.com/314810043/diff/40001/src/applications/model/th...
src/applications/model/three-gpp-http-client.cc:125:
"ns3::Application::PacketDelayAddressCallback")
This doesn't exist. You renamed it "DelayAddressCallback"

https://codereview.appspot.com/314810043/diff/40001/src/applications/model/th...
src/applications/model/three-gpp-http-client.cc:129:
"ns3::Application::PacketDelayAddressCallback")
This doesn't exist. You renamed it "DelayAddressCallback"

https://codereview.appspot.com/314810043/diff/40001/src/applications/model/th...
src/applications/model/three-gpp-http-client.cc:269: NS_FATAL_ERROR ("Client
failed to connect"
This shouldn't really abort the simulation. A failed connect could be a normal
event.
Please use a more graceful error type (maybe a NS_LOG_ERROR).

https://codereview.appspot.com/314810043/diff/40001/src/applications/model/th...
src/applications/model/three-gpp-http-client.cc:460: NS_ASSERT_MSG (packetSize
<= 536, // Hard-coded MTU size.
Why this limitation ?

https://codereview.appspot.com/314810043/diff/40001/src/applications/model/th...
src/applications/model/three-gpp-http-client.cc:508: NS_ASSERT_MSG (packetSize
<= 536, // Hard-coded MTU size.
Same comment as before.

https://codereview.appspot.com/314810043/diff/40001/src/applications/model/th...
File src/applications/model/three-gpp-http-server.cc (right):

https://codereview.appspot.com/314810043/diff/40001/src/applications/model/th...
src/applications/model/three-gpp-http-server.cc:222: UintegerValue (m_mtuSize));
Please NO.
You can't change a default value for any subsequent socket, because other apps
in the simulation could be heavily affected by this.

I know you're trying to re-set to its proper value afterwards, but even that is
a bug. Different sockets could have different mtu(s)
Instead, use m_initialSocket->SetAttribute (...)
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b