SlideShare a Scribd company logo
1 of 30
Download to read offline
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Programming TCP
for responsiveness
DeNA Co., Ltd.
Kazuho Oku
1
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
explains TCP latency optimization implemented in H2O
HTTP/2 server 2.1
2	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Background
3	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
TCP slow start
n  Initial Congestion Window (IW)=10
⁃  only 10 packets can be sent in first RTT
⁃  used to be IW=3
n  window increase: 1.5x/RTT
4	Programming TCP for responsivesess
0	
100,000	
200,000	
300,000	
400,000	
500,000	
600,000	
700,000	
800,000	
1	 2	 3	 4	 5	 6	 7	 8	
bytes	transmi,ed
RTT
TCP	slow	start	(IW10,	MSS1460)
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Why 1.5x?
During slow start, a TCP increments cwnd by at most SMSS bytes
for each ACK received that cumulatively acknowledges new data.
(snip)
The delayed ACK algorithm specified in [RFC1122] SHOULD be
used by a TCP receiver. When using delayed ACKs, a TCP
receiver MUST NOT excessively delay acknowledgments.
Specifically, an ACK SHOULD be generated for at least every
second full-sized segment, and MUST be generated within 500 ms
of the arrival of the first unacknowledged packet.
TCP Congestion Control (RFC 5681)
5	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Flow of the ideal HTTP
n  fastest within the limits of TCP/IP
n  receive a request 0-RTT, and:
⁃  first send CSS/JS*
⁃  then send the HTML
⁃  then send the images*
*: but only the ones not cached by the browser
6	Programming TCP for responsivesess
client server
1	RTT
request
response
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
The reality in HTTP/2
n  TCP establishment: +1 RTT*
n  TLS handshake: +2 RTT**
n  HTML fetch: +1 RTT
n  JS,CSS fetch: +2 RTT***
n  Total: 6 RTT
*: 0 RTT on reconnection
**: 1 RTT on reconnection
***: servers often cannot switch to sending JS,CSS
instantly, due to the output buffered in TCP send buffer
7	Programming TCP for responsivesess
client server
1	RTT
TCP	SYN
TCP	SYNACK
TLS	Handshake
TLS	Handshake
TLS	Handshake
TLS	Handshake
GET	/
HTML
GET	css,js
css,	js
〜〜
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Ongoing optimizations
n  TCP Fast Open
⁃  initial establishment in 1 RTT
⁃  re-establishment in 0 RTT
n  TLS 1.3
⁃  initial handshake complete in 1 RTT
⁃  resumption in 0 RTT
n  what can be done in the HTTP/2 layer?
8	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Programming TCP for responsiveness
9	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Programming TCP for responsiveness
Answer: TCP Urgent Indications (i.e. MSG_OOB)
10	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Programming TCP for responsiveness
Answer: TCP Urgent Indications (i.e. MSG_OOB)
11	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
TCP Urgent Indications
n  out-of-band messaging for TCP
⁃  used by telnet!
n  can only send 1 octet
⁃  conflicting specs on how to handle multi-octet
messages
n  cannot be used for HTTP/2
n  RFC 6093 “recommends against the use of urgent
mechanism” (RFC 7414)
12	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Typical sequence of HTTP/2
13	Programming TCP for responsivesess
HTTP/2 200 OK
<!DOCTYPE HTML>
…
<SCRIPT SRC=”jquery.js”>
…
client server
GET /
GET /jquery.js
need	to	switch	sending	from	HTML	
to	JS	at	this	very	moment	
(means	that	amount	of	data	sent	in	
*	must	be	smaller	than	IW)
1	RTT
*
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Buffering in TCP and TLS layer
14	Programming TCP for responsivesess
TCP	send	buffer
CWND	
unacked	 poll	threshold	
BIO	buf.
// ordinary code (non-blocking)
while (SSL_write(…) != SSL_ERR_WANT_WRITE)
;
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Why do we have buffers?
15	Programming TCP for responsivesess
n  TCP send buffer:
⁃  reduce ping-pong bet. kernel and application
n  BIO buffer:
⁃  for data that couldnʼt be stored in TCP send buffer
TCP	send	buffer
CWND	
unacked	 poll	threshold	
BIO	buf.
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Improvement: poll-then-write
16	Programming TCP for responsivesess
TCP	send	buffer
CWND	
unacked	 poll	threshold	
// only call SSL_write when polls notifies the app.
while (poll_for_write(fd) == SOCKET_IS_READY)
SSL_write(…);
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Adjust poll threshold
17	Programming TCP for responsivesess
TCP	send	buffer
CWND	
unacked	 poll	threshold	
n  set poll threshold to the end of CWND?
⁃  setsockopt(TCP_NOTSENT_LOWAT)
⁃  in linux, the minimum is CWND + 1 octet
•  becomes unstable when set to CWND + 0
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Adjust poll threshold
18	Programming TCP for responsivesess
CWND	
unacked	 poll	threshold	
// only call SSL_write when polls notifies the app.
while (poll_for_write(fd) == SOCKET_IS_READY)
SSL_write(…);
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
TCP	send	buffer
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Further improvement: read TCP states
19	Programming TCP for responsivesess
CWND	
unacked	 poll	threshold	
// calc size of data to send by calling getsockopt(TCP_INFO)
if (poll_for_write(fd) == SOCKET_IS_READY) {
capacity = CWND - unacked + TWO_MSS - TLS_overhead;
SSL_write(prepare_http2_frames(capacity));
}
TLS	Records
sent	immediately	 not	immediately	sent	
HTTP/2	frames
TCP	send	buffer
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Negative impact of additional delay
n  increased delay bet. ACK recv. → data send, since:
⁃  traditional approach: completes within kernel
⁃  this approach: application needs to be notified to
generate new data
n  outcome:
⁃  increase of CWND becomes slower
⁃  leads to slower peak speed?
•  depends on how CWND at peak is calculated
⁃  does kernel use TCP timestamp for the matter?
20	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Countermeasures
n  optimize for responsiveness only when necessary
⁃  i.e. when RTT is big and CWND is small
⁃  impact of optimization is proportional to
unsent_bytes / CWND
n  disable optimization if additional delay is significant
⁃  when epoll returns immediately, estimated
additional delay is equal to the time spent by the
loop
21	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Configuration Directives
n  http2-latopt-min-rtt
⁃  minimum TCP RTT to enable the optimization
⁃  default: UINT_MAX (disabled)
n  http2-latopt-max-cwnd
⁃  maximum CWND to enable (in octets)
⁃  default: 65535
n  http2-max-additional-delay
⁃  max. additional delay (as the ratio to TCP RTT)
⁃  latopt disabled if the delay is greater
⁃  default: 0.1
22	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Pseudo-code
size_t get_suggested_write_size() {
getsockopt(fd, IPPROTO_TCP, TCP_INFO, &tcp_info, sizeof(tcp_info));
if (tcp_info.tcpi_rtt < min_rtt || tcp_info.tcpi_snd_cwnd > max_cwnd)
return UNKNOWN;
switch (SSL_get_current_cipher(ssl)->id) {
case TLS1_CK_RSA_WITH_AES_128_GCM_SHA256:
case …:
tls_overhead = 5 + 8 + 16;
break;
default:
return UNKNOWN;
}
packets_sendable = tcp_info.tcpi_snd_cwnd > tcp_info.tcpi_unacked ?
tcp_info.tcpi_snd_cwnd - tcp_info.tcpi_unacked : 0;
return (packets_sendable + 2) * (tcp_info.tcpi_snd_mss - tls_overhead);
}
23	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Benchmark (1)
24	Programming TCP for responsivesess
n  conditions:
⁃  server in Ireland, client in Tokyo (RTT 250ms)
⁃  load tiny js at the top of a large HTML
n  result: delay decreased from 511ms to 250ms
⁃  i.e. JS fetch latency was 2RTT, became 1 RTT
•  similar results in other environments
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Benchmark (2)
n  using same data as previous
n  server: Sakura VPS (Ishikari DC)
25	Programming TCP for responsivesess
0	
50	
100	
150	
200	
250	
300	
HTML	 JS	
milliseconds
downloading	HTML	(and	JS	within)	
RTT	~25ms
master	 latopt
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Conclusion
n  near-optimal result can be achieved
⁃  by adjusting poll threshold and reading TCP
states
⁃  1-packet overhead due to restriction in Linux
kernel
n  1-RTT improvement in H2O
⁃  estimated 1-RTT improvement per the depth of
the load graph
26	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Under the hood
27	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
TCP_NOTSENT_LOWAT
n  supported by Linux, OS X
n  on Linux:
⁃  sysctl:
•  set to -1: use kernel default
•  set to 0: sshd hangs
•  set to positive int: override kernel default
⁃  setsockopt:
•  set to 0: use default (sysctl or kernel)
•  set to int: override default
28	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Unit of CWND
n  Linux: # of packets
⁃  if INITCWND is 10, you can send at most 10
packets at once, regardless of their size
n  BSD (incl. OS X): octets
⁃  you can send CWND*MSS octets, regardless of
the number of packets
•  if CWND=10 and MSS=1460, it is possible to send
14,600 packets containing 1-octet payload
29	Programming TCP for responsivesess
Copyright	(C)	2016	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Determining amount of data that can be
sent immediately
OS MSS CWND inflight send	buffer	(inflight	+	unsent)
Linux tcpi_snd_mss tcpi_snd_cwnd* tcpi_snd_unacked* ioctl(SIOCOUTQ)
OS	X** tcpi_maxseg tcpi_snd_cwnd - tcpi_snd_sbbytes
FreeBSD tcpi_snd_mss tcpi_snd_cwnd - ioctl(FIONWRITE)
NetBSD tcpi_snd_mss tcpi_snd_cwnd* - ioctl(FIONWRITE)
30	Programming TCP for responsivesess
n  calculate either of:
⁃  CWND - inflight
⁃  min(CWND - (inflight + unsent), 0)
n  units used in the calculation must be the same
⁃  NetBSD: fail
*:	units	of	values	marked	are	packets,	unmarked	are	octets	
**:	somefmes	the	values	of	tcpi_*	are	returned	as	zeros

More Related Content

What's hot

Promise of Push (HTTP/2 Web Performance)
Promise of Push (HTTP/2 Web Performance)Promise of Push (HTTP/2 Web Performance)
Promise of Push (HTTP/2 Web Performance)Colin Bendell
 
How happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPHow happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPIchito Nagata
 
IETF 100: Surviving IPv6 fragmentation
IETF 100: Surviving IPv6 fragmentationIETF 100: Surviving IPv6 fragmentation
IETF 100: Surviving IPv6 fragmentationAPNIC
 
HTTP2 and gRPC
HTTP2 and gRPCHTTP2 and gRPC
HTTP2 and gRPCGuo Jing
 
Teach your (micro)services talk Protocol Buffers with gRPC.
Teach your (micro)services talk Protocol Buffers with gRPC.Teach your (micro)services talk Protocol Buffers with gRPC.
Teach your (micro)services talk Protocol Buffers with gRPC.Mihai Iachimovschi
 
HTTP/2: What no one is telling you
HTTP/2: What no one is telling youHTTP/2: What no one is telling you
HTTP/2: What no one is telling youFastly
 
redGuardian DP100 large scale DDoS mitigation solution
redGuardian DP100 large scale DDoS mitigation solutionredGuardian DP100 large scale DDoS mitigation solution
redGuardian DP100 large scale DDoS mitigation solutionRedge Technologies
 
Are we really ready to turn off IPv4?
Are we really ready to turn off IPv4?Are we really ready to turn off IPv4?
Are we really ready to turn off IPv4?APNIC
 
Network and TCP performance relationship workshop
Network and TCP performance relationship workshopNetwork and TCP performance relationship workshop
Network and TCP performance relationship workshopKae Hsu
 
gRPC or Rest, why not both?
gRPC or Rest, why not both?gRPC or Rest, why not both?
gRPC or Rest, why not both?Mohammad Murad
 
Implementing BGP Flowspec at IP transit network
Implementing BGP Flowspec at IP transit networkImplementing BGP Flowspec at IP transit network
Implementing BGP Flowspec at IP transit networkPavel Odintsov
 
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)Thomas Graf
 
Microservices summit talk 1/31
Microservices summit talk   1/31Microservices summit talk   1/31
Microservices summit talk 1/31Varun Talwar
 
Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.Alex Borysov
 
LF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OVS_17_OvS manipulation with Go at DigitalOceanLF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OVS_17_OvS manipulation with Go at DigitalOceanLF_OpenvSwitch
 
加快互联网核心协议,提高Web速度yuchungcheng
加快互联网核心协议,提高Web速度yuchungcheng加快互联网核心协议,提高Web速度yuchungcheng
加快互联网核心协议,提高Web速度yuchungchengMichael Zhang
 
HTTP/3 over QUIC. All is new but still the same!
HTTP/3 over QUIC. All is new but still the same!HTTP/3 over QUIC. All is new but still the same!
HTTP/3 over QUIC. All is new but still the same!Daniel Stenberg
 

What's hot (20)

Promise of Push (HTTP/2 Web Performance)
Promise of Push (HTTP/2 Web Performance)Promise of Push (HTTP/2 Web Performance)
Promise of Push (HTTP/2 Web Performance)
 
How happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTPHow happy they became with H2O/mruby and the future of HTTP
How happy they became with H2O/mruby and the future of HTTP
 
Make gRPC great again
Make gRPC great againMake gRPC great again
Make gRPC great again
 
IETF 100: Surviving IPv6 fragmentation
IETF 100: Surviving IPv6 fragmentationIETF 100: Surviving IPv6 fragmentation
IETF 100: Surviving IPv6 fragmentation
 
HTTP2 and gRPC
HTTP2 and gRPCHTTP2 and gRPC
HTTP2 and gRPC
 
Teach your (micro)services talk Protocol Buffers with gRPC.
Teach your (micro)services talk Protocol Buffers with gRPC.Teach your (micro)services talk Protocol Buffers with gRPC.
Teach your (micro)services talk Protocol Buffers with gRPC.
 
HTTP/2: What no one is telling you
HTTP/2: What no one is telling youHTTP/2: What no one is telling you
HTTP/2: What no one is telling you
 
7.protocols 2
7.protocols 27.protocols 2
7.protocols 2
 
7. protocols
7. protocols7. protocols
7. protocols
 
redGuardian DP100 large scale DDoS mitigation solution
redGuardian DP100 large scale DDoS mitigation solutionredGuardian DP100 large scale DDoS mitigation solution
redGuardian DP100 large scale DDoS mitigation solution
 
Are we really ready to turn off IPv4?
Are we really ready to turn off IPv4?Are we really ready to turn off IPv4?
Are we really ready to turn off IPv4?
 
Network and TCP performance relationship workshop
Network and TCP performance relationship workshopNetwork and TCP performance relationship workshop
Network and TCP performance relationship workshop
 
gRPC or Rest, why not both?
gRPC or Rest, why not both?gRPC or Rest, why not both?
gRPC or Rest, why not both?
 
Implementing BGP Flowspec at IP transit network
Implementing BGP Flowspec at IP transit networkImplementing BGP Flowspec at IP transit network
Implementing BGP Flowspec at IP transit network
 
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
 
Microservices summit talk 1/31
Microservices summit talk   1/31Microservices summit talk   1/31
Microservices summit talk 1/31
 
Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.Enabling Googley microservices with HTTP/2 and gRPC.
Enabling Googley microservices with HTTP/2 and gRPC.
 
LF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OVS_17_OvS manipulation with Go at DigitalOceanLF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OVS_17_OvS manipulation with Go at DigitalOcean
 
加快互联网核心协议,提高Web速度yuchungcheng
加快互联网核心协议,提高Web速度yuchungcheng加快互联网核心协议,提高Web速度yuchungcheng
加快互联网核心协议,提高Web速度yuchungcheng
 
HTTP/3 over QUIC. All is new but still the same!
HTTP/3 over QUIC. All is new but still the same!HTTP/3 over QUIC. All is new but still the same!
HTTP/3 over QUIC. All is new but still the same!
 

Similar to Programming TCP for responsiveness

Computer network (16)
Computer network (16)Computer network (16)
Computer network (16)NYversity
 
Mobile Transpot Layer
Mobile Transpot LayerMobile Transpot Layer
Mobile Transpot LayerMaulik Patel
 
IRJET- Modeling a New Startup Algorithm for TCP New Reno
IRJET- Modeling a New Startup Algorithm for TCP New RenoIRJET- Modeling a New Startup Algorithm for TCP New Reno
IRJET- Modeling a New Startup Algorithm for TCP New RenoIRJET Journal
 
Computer network (13)
Computer network (13)Computer network (13)
Computer network (13)NYversity
 
chapter 3.2 TCP.pptx
chapter 3.2 TCP.pptxchapter 3.2 TCP.pptx
chapter 3.2 TCP.pptxTekle12
 
Abandon Decades-Old TCPdump for Modern Troubleshooting
Abandon Decades-Old TCPdump for Modern TroubleshootingAbandon Decades-Old TCPdump for Modern Troubleshooting
Abandon Decades-Old TCPdump for Modern TroubleshootingAvi Networks
 
TCP Over Wireless
TCP Over WirelessTCP Over Wireless
TCP Over WirelessFarooq Khan
 
Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2Chartbeat
 
Reconsider TCPdump for Modern Troubleshooting
Reconsider TCPdump for Modern TroubleshootingReconsider TCPdump for Modern Troubleshooting
Reconsider TCPdump for Modern TroubleshootingAvi Networks
 
features of tcp important for the web
features of tcp  important for the webfeatures of tcp  important for the web
features of tcp important for the webrinnocente
 
Improving Distributed TCP Caching for Wireless Sensor Networks
Improving Distributed TCP Caching for Wireless Sensor NetworksImproving Distributed TCP Caching for Wireless Sensor Networks
Improving Distributed TCP Caching for Wireless Sensor NetworksAhmed Ayadi
 
Insights into the performance and configuration of TCP in Automotive Ethernet...
Insights into the performance and configuration of TCP in Automotive Ethernet...Insights into the performance and configuration of TCP in Automotive Ethernet...
Insights into the performance and configuration of TCP in Automotive Ethernet...RealTime-at-Work (RTaW)
 
Tcp congestion control
Tcp congestion controlTcp congestion control
Tcp congestion controlAbdo sayed
 
Tcp congestion control (1)
Tcp congestion control (1)Tcp congestion control (1)
Tcp congestion control (1)Abdo sayed
 
Iaetsd an effective approach to eliminate tcp incast
Iaetsd an effective approach to eliminate tcp incastIaetsd an effective approach to eliminate tcp incast
Iaetsd an effective approach to eliminate tcp incastIaetsd Iaetsd
 
TCP and Mobile Networks Turbulent Relationship
TCP and Mobile Networks Turbulent RelationshipTCP and Mobile Networks Turbulent Relationship
TCP and Mobile Networks Turbulent RelationshipNatasha Rooney
 
Lecture 19 22. transport protocol for ad-hoc
Lecture 19 22. transport protocol for ad-hoc Lecture 19 22. transport protocol for ad-hoc
Lecture 19 22. transport protocol for ad-hoc Chandra Meena
 

Similar to Programming TCP for responsiveness (20)

Computer network (16)
Computer network (16)Computer network (16)
Computer network (16)
 
Mobile Transpot Layer
Mobile Transpot LayerMobile Transpot Layer
Mobile Transpot Layer
 
IRJET- Modeling a New Startup Algorithm for TCP New Reno
IRJET- Modeling a New Startup Algorithm for TCP New RenoIRJET- Modeling a New Startup Algorithm for TCP New Reno
IRJET- Modeling a New Startup Algorithm for TCP New Reno
 
Computer network (13)
Computer network (13)Computer network (13)
Computer network (13)
 
chapter 3.2 TCP.pptx
chapter 3.2 TCP.pptxchapter 3.2 TCP.pptx
chapter 3.2 TCP.pptx
 
Tcp congestion avoidance
Tcp congestion avoidanceTcp congestion avoidance
Tcp congestion avoidance
 
Abandon Decades-Old TCPdump for Modern Troubleshooting
Abandon Decades-Old TCPdump for Modern TroubleshootingAbandon Decades-Old TCPdump for Modern Troubleshooting
Abandon Decades-Old TCPdump for Modern Troubleshooting
 
TCP Over Wireless
TCP Over WirelessTCP Over Wireless
TCP Over Wireless
 
Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2Tuning TCP and NGINX on EC2
Tuning TCP and NGINX on EC2
 
Reconsider TCPdump for Modern Troubleshooting
Reconsider TCPdump for Modern TroubleshootingReconsider TCPdump for Modern Troubleshooting
Reconsider TCPdump for Modern Troubleshooting
 
features of tcp important for the web
features of tcp  important for the webfeatures of tcp  important for the web
features of tcp important for the web
 
Improving Distributed TCP Caching for Wireless Sensor Networks
Improving Distributed TCP Caching for Wireless Sensor NetworksImproving Distributed TCP Caching for Wireless Sensor Networks
Improving Distributed TCP Caching for Wireless Sensor Networks
 
Lec 2.pptx
Lec 2.pptxLec 2.pptx
Lec 2.pptx
 
Insights into the performance and configuration of TCP in Automotive Ethernet...
Insights into the performance and configuration of TCP in Automotive Ethernet...Insights into the performance and configuration of TCP in Automotive Ethernet...
Insights into the performance and configuration of TCP in Automotive Ethernet...
 
Tcp congestion control
Tcp congestion controlTcp congestion control
Tcp congestion control
 
Tcp congestion control (1)
Tcp congestion control (1)Tcp congestion control (1)
Tcp congestion control (1)
 
Iaetsd an effective approach to eliminate tcp incast
Iaetsd an effective approach to eliminate tcp incastIaetsd an effective approach to eliminate tcp incast
Iaetsd an effective approach to eliminate tcp incast
 
TCP and Mobile Networks Turbulent Relationship
TCP and Mobile Networks Turbulent RelationshipTCP and Mobile Networks Turbulent Relationship
TCP and Mobile Networks Turbulent Relationship
 
Sania rtp
Sania rtpSania rtp
Sania rtp
 
Lecture 19 22. transport protocol for ad-hoc
Lecture 19 22. transport protocol for ad-hoc Lecture 19 22. transport protocol for ad-hoc
Lecture 19 22. transport protocol for ad-hoc
 

More from Kazuho Oku

QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7Kazuho Oku
 
HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来Kazuho Oku
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話Kazuho Oku
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95Kazuho Oku
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向Kazuho Oku
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先Kazuho Oku
 
HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計Kazuho Oku
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP betterKazuho Oku
 
JSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedKazuho Oku
 
JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法Kazuho Oku
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013Kazuho Oku
 
Using the Power to Prove
Using the Power to ProveUsing the Power to Prove
Using the Power to ProveKazuho Oku
 
JSX - 公開から1年を迎えて
JSX - 公開から1年を迎えてJSX - 公開から1年を迎えて
JSX - 公開から1年を迎えてKazuho Oku
 
JSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the WebJSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the WebKazuho Oku
 
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜Kazuho Oku
 
JSX Design Overview (日本語)
JSX Design Overview (日本語)JSX Design Overview (日本語)
JSX Design Overview (日本語)Kazuho Oku
 
Unix Programming with Perl 2
Unix Programming with Perl 2Unix Programming with Perl 2
Unix Programming with Perl 2Kazuho Oku
 

More from Kazuho Oku (20)

QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7
 
HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
 
HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP better
 
JSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons Learned
 
JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013
 
Using the Power to Prove
Using the Power to ProveUsing the Power to Prove
Using the Power to Prove
 
JSX - 公開から1年を迎えて
JSX - 公開から1年を迎えてJSX - 公開から1年を迎えて
JSX - 公開から1年を迎えて
 
JSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the WebJSX - developing a statically-typed programming language for the Web
JSX - developing a statically-typed programming language for the Web
 
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
 
JSX
JSXJSX
JSX
 
JSX Optimizer
JSX OptimizerJSX Optimizer
JSX Optimizer
 
JSX Design Overview (日本語)
JSX Design Overview (日本語)JSX Design Overview (日本語)
JSX Design Overview (日本語)
 
JSX
JSXJSX
JSX
 
Unix Programming with Perl 2
Unix Programming with Perl 2Unix Programming with Perl 2
Unix Programming with Perl 2
 

Recently uploaded

LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSLESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSlesteraporado16
 
Computer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteComputer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteMavein
 
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024Jan Löffler
 
Presentation2.pptx - JoyPress Wordpress
Presentation2.pptx -  JoyPress WordpressPresentation2.pptx -  JoyPress Wordpress
Presentation2.pptx - JoyPress Wordpressssuser166378
 
Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Shubham Pant
 
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...APNIC
 
Zero-day Vulnerabilities
Zero-day VulnerabilitiesZero-day Vulnerabilities
Zero-day Vulnerabilitiesalihassaah1994
 
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdfIntroduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdfShreedeep Rayamajhi
 
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfLESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfmchristianalwyn
 
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsVision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsRoxana Stingu
 
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSTYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSedrianrheine
 
Bio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxBio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxnaveenithkrishnan
 

Recently uploaded (12)

LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSLESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
 
Computer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteComputer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a Website
 
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
 
Presentation2.pptx - JoyPress Wordpress
Presentation2.pptx -  JoyPress WordpressPresentation2.pptx -  JoyPress Wordpress
Presentation2.pptx - JoyPress Wordpress
 
Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024
 
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
 
Zero-day Vulnerabilities
Zero-day VulnerabilitiesZero-day Vulnerabilities
Zero-day Vulnerabilities
 
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdfIntroduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
 
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfLESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
 
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsVision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
 
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSTYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
 
Bio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxBio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptx
 

Programming TCP for responsiveness