OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // The entity that handles framing writes for a Quic client or server. | 5 // The entity that handles framing writes for a Quic client or server. |
6 // Each QuicSession will have a connection associated with it. | 6 // Each QuicSession will have a connection associated with it. |
7 // | 7 // |
8 // On the server side, the Dispatcher handles the raw reads, and hands off | 8 // On the server side, the Dispatcher handles the raw reads, and hands off |
9 // packets via ProcessUdpPacket for framing and processing. | 9 // packets via ProcessUdpPacket for framing and processing. |
10 // | 10 // |
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 // Sends a ping, and resets the ping alarm. | 444 // Sends a ping, and resets the ping alarm. |
445 void SendPing(); | 445 void SendPing(); |
446 | 446 |
447 // Sets up a packet with an QuicAckFrame and sends it out. | 447 // Sets up a packet with an QuicAckFrame and sends it out. |
448 void SendAck(); | 448 void SendAck(); |
449 | 449 |
450 // Called when an RTO fires. Resets the retransmission alarm if there are | 450 // Called when an RTO fires. Resets the retransmission alarm if there are |
451 // remaining unacked packets. | 451 // remaining unacked packets. |
452 void OnRetransmissionTimeout(); | 452 void OnRetransmissionTimeout(); |
453 | 453 |
| 454 // Called when a data packet is sent. Starts an alarm if the data sent in |
| 455 // |sequence_number| was FEC protected. |
| 456 void MaybeSetFecAlarm(QuicPacketSequenceNumber sequence_number); |
| 457 |
454 // Retransmits all unacked packets with retransmittable frames if | 458 // Retransmits all unacked packets with retransmittable frames if |
455 // |retransmission_type| is ALL_UNACKED_PACKETS, otherwise retransmits only | 459 // |retransmission_type| is ALL_UNACKED_PACKETS, otherwise retransmits only |
456 // initially encrypted packets. Used when the negotiated protocol version is | 460 // initially encrypted packets. Used when the negotiated protocol version is |
457 // different from what was initially assumed and when the initial encryption | 461 // different from what was initially assumed and when the initial encryption |
458 // changes. | 462 // changes. |
459 void RetransmitUnackedPackets(TransmissionType retransmission_type); | 463 void RetransmitUnackedPackets(TransmissionType retransmission_type); |
460 | 464 |
461 // Calls |sent_packet_manager_|'s NeuterUnencryptedPackets. Used when the | 465 // Calls |sent_packet_manager_|'s NeuterUnencryptedPackets. Used when the |
462 // connection becomes forward secure and hasn't received acks for all packets. | 466 // connection becomes forward secure and hasn't received acks for all packets. |
463 void NeuterUnencryptedPackets(); | 467 void NeuterUnencryptedPackets(); |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 scoped_ptr<QuicAlarm> resume_writes_alarm_; | 778 scoped_ptr<QuicAlarm> resume_writes_alarm_; |
775 // An alarm that fires when the connection may have timed out. | 779 // An alarm that fires when the connection may have timed out. |
776 scoped_ptr<QuicAlarm> timeout_alarm_; | 780 scoped_ptr<QuicAlarm> timeout_alarm_; |
777 // An alarm that fires when a ping should be sent. | 781 // An alarm that fires when a ping should be sent. |
778 scoped_ptr<QuicAlarm> ping_alarm_; | 782 scoped_ptr<QuicAlarm> ping_alarm_; |
779 | 783 |
780 QuicConnectionVisitorInterface* visitor_; | 784 QuicConnectionVisitorInterface* visitor_; |
781 scoped_ptr<QuicConnectionDebugVisitor> debug_visitor_; | 785 scoped_ptr<QuicConnectionDebugVisitor> debug_visitor_; |
782 QuicPacketGenerator packet_generator_; | 786 QuicPacketGenerator packet_generator_; |
783 | 787 |
| 788 // An alarm that fires when an FEC packet should be sent. |
| 789 scoped_ptr<QuicAlarm> fec_alarm_; |
| 790 |
784 // Network idle time before we kill of this connection. | 791 // Network idle time before we kill of this connection. |
785 QuicTime::Delta idle_network_timeout_; | 792 QuicTime::Delta idle_network_timeout_; |
786 // Overall connection timeout. | 793 // Overall connection timeout. |
787 QuicTime::Delta overall_connection_timeout_; | 794 QuicTime::Delta overall_connection_timeout_; |
788 | 795 |
789 // Statistics for this session. | 796 // Statistics for this session. |
790 QuicConnectionStats stats_; | 797 QuicConnectionStats stats_; |
791 | 798 |
792 // The time that we got a packet for this connection. | 799 // The time that we got a packet for this connection. |
793 // This is used for timeouts, and does not indicate the packet was processed. | 800 // This is used for timeouts, and does not indicate the packet was processed. |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 | 849 |
843 // True if this is a secure QUIC connection. | 850 // True if this is a secure QUIC connection. |
844 bool is_secure_; | 851 bool is_secure_; |
845 | 852 |
846 DISALLOW_COPY_AND_ASSIGN(QuicConnection); | 853 DISALLOW_COPY_AND_ASSIGN(QuicConnection); |
847 }; | 854 }; |
848 | 855 |
849 } // namespace net | 856 } // namespace net |
850 | 857 |
851 #endif // NET_QUIC_QUIC_CONNECTION_H_ | 858 #endif // NET_QUIC_QUIC_CONNECTION_H_ |
OLD | NEW |