Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Issue 1088002: 2 experiments: DNS prefetch limit concurrency: TCP split a packet (Closed)

Created:
10 years, 9 months ago by jar (doing other things)
Modified:
9 years, 7 months ago
CC:
chromium-reviews, darin-cc_chromium.org, ben+cc_chromium.org, wtc, willchan no longer on Chromium, eroman, vandebo (ex-Chrome)
Visibility:
Public.

Description

2 experiments: DNS prefetch limit concurrency: TCP split a packet Some firewalls apparently try to preclude a "syn flood to host" by limiting the number of syn's (used to open a TCP/IP socket) that are outstanding without having received a syn-ack. Presumably this is to prevent a user from participating in a syn-flood attack (which traditional sends a lot of syn packets, with false return addresses, resulting in no responses). Apparently this firewall technology has in some cases been extended to include UDP sessions for which there has been no response, and this may include DNS resolutions. Since the prefetcher currently resolves as many as 8 names simultaneously, this is remarkably close to the reported threshold of 10 un-answered connections. This test attempts to limit connections to 2, 4, or 6, so that we can see if this helps users. In TCP, the RTO remains (under windows) at a full 3 seconds until after the first ack is received. As a result, if the first data packet sent (after the SYN) is lost, then TCP won't resend until after 3 seconds without an ack. As a test, we split up the first packet into two parts (the second part containing only one byte). This is done as an A/B test, and we'll see if we get a measurable improvement in page-load-time latency. Finally, to get better page load stats, I adjusted the PLT histograms so that we record a "final" time for abandoned pages when they are closed (even if they didn't finish rendering, etc.). This should give a much more fair PLT comparison for all network latency experiments. BUG=3041 BUG=12754 r=mbelshe,darin Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=42181

Patch Set 1 #

Patch Set 2 : '' #

Patch Set 3 : '' #

Patch Set 4 : '' #

Patch Set 5 : '' #

Patch Set 6 : '' #

Patch Set 7 : '' #

Patch Set 8 : '' #

Patch Set 9 : '' #

Total comments: 22

Patch Set 10 : '' #

Patch Set 11 : '' #

Patch Set 12 : '' #

Patch Set 13 : '' #

Patch Set 14 : '' #

Total comments: 2

Patch Set 15 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+128 lines, -13 lines) Patch
M chrome/browser/browser_main.cc View 5 6 7 8 9 10 11 12 13 1 chunk +15 lines, -1 line 0 comments Download
M chrome/browser/net/dns_global.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +29 lines, -3 lines 0 comments Download
M chrome/renderer/render_view.cc View 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +58 lines, -6 lines 0 comments Download
M net/http/http_stream_parser.cc View 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +26 lines, -3 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
jar (doing other things)
Mike: Please look at the A/B test in http_stream_parser.cc. This is an implementation as per ...
10 years, 9 months ago (2010-03-19 16:51:36 UTC) #1
Mike Belshe
http://codereview.chromium.org/1088002/diff/15004/4006 File chrome/browser/browser_main.cc (right): http://codereview.chromium.org/1088002/diff/15004/4006#newcode438 chrome/browser/browser_main.cc:438: bool kSplitPacketFieldTrial = true; nit: I find this extra ...
10 years, 9 months ago (2010-03-19 17:42:28 UTC) #2
jar (doing other things)
Changes made per suggestions by mbelshe. http://codereview.chromium.org/1088002/diff/15004/4006 File chrome/browser/browser_main.cc (right): http://codereview.chromium.org/1088002/diff/15004/4006#newcode438 chrome/browser/browser_main.cc:438: bool kSplitPacketFieldTrial = ...
10 years, 9 months ago (2010-03-19 19:54:30 UTC) #3
Mike Belshe
lgtm http://codereview.chromium.org/1088002/diff/2007/48002 File net/http/http_stream_parser.cc (right): http://codereview.chromium.org/1088002/diff/2007/48002#newcode196 net/http/http_stream_parser.cc:196: static const bool kEnsureSecondPacket(kTrial && (kTrial->group() == 0)); ...
10 years, 9 months ago (2010-03-19 23:50:25 UTC) #4
jar (doing other things)
Rename done per Mike's suggestion. http://codereview.chromium.org/1088002/diff/2007/48002 File net/http/http_stream_parser.cc (right): http://codereview.chromium.org/1088002/diff/2007/48002#newcode196 net/http/http_stream_parser.cc:196: static const bool kEnsureSecondPacket(kTrial ...
10 years, 9 months ago (2010-03-19 23:54:42 UTC) #5
darin (slow to review)
10 years, 9 months ago (2010-03-27 04:32:47 UTC) #6
sorry for missing this code review.  the render_view.cc changes lgtm.

Powered by Google App Engine
This is Rietveld 408576698