|
83 |
TcpSocketBase::TcpSocketBase (void) |
83 |
TcpSocketBase::TcpSocketBase (void) |
84 |
: m_dupAckCount (0), |
84 |
: m_dupAckCount (0), |
85 |
m_delAckCount (0), |
85 |
m_delAckCount (0), |
|
|
86 |
m_nagle (true), |
86 |
m_endPoint (0), |
87 |
m_endPoint (0), |
87 |
m_node (0), |
88 |
m_node (0), |
88 |
m_tcp (0), |
89 |
m_tcp (0), |
|
109 |
m_dupAckCount (sock.m_dupAckCount), |
110 |
m_dupAckCount (sock.m_dupAckCount), |
110 |
m_delAckCount (0), |
111 |
m_delAckCount (0), |
111 |
m_delAckMaxCount (sock.m_delAckMaxCount), |
112 |
m_delAckMaxCount (sock.m_delAckMaxCount), |
|
|
113 |
m_nagle (sock.m_nagle), |
112 |
m_cnCount (sock.m_cnCount), |
114 |
m_cnCount (sock.m_cnCount), |
113 |
m_delAckTimeout (sock.m_delAckTimeout), |
115 |
m_delAckTimeout (sock.m_delAckTimeout), |
114 |
m_persistTimeout (sock.m_persistTimeout), |
116 |
m_persistTimeout (sock.m_persistTimeout), |
|
1296 |
{ |
1298 |
{ |
1297 |
break; // No more |
1299 |
break; // No more |
1298 |
} |
1300 |
} |
|
|
1301 |
|
1302 |
// Nagle's algorithm. Hold off sending if there is unacked data in the |
1303 |
// buffer and the amount of data to send is less than a segment size |
1304 |
if (UnAckDataCount () > 0 && |
1305 |
m_txBuffer.SizeFromSequence (m_nextTxSequence) < m_segmentSize) |
1306 |
{ |
1307 |
NS_LOG_LOGIC ("Invoking Nagle's algorithm. Wait to send."); |
1308 |
break; |
1309 |
} |
1310 |
|
1299 |
uint32_t s = std::min (w, m_segmentSize); // Send no more than window |
1311 |
uint32_t s = std::min (w, m_segmentSize); // Send no more than window |
1300 |
Ptr<Packet> p = m_txBuffer.CopyFromSequence (s, m_nextTxSequence); |
1312 |
Ptr<Packet> p = m_txBuffer.CopyFromSequence (s, m_nextTxSequence); |
1301 |
NS_LOG_LOGIC ("TcpSocketBase " << this << " SendPendingData" << |
1313 |
NS_LOG_LOGIC ("TcpSocketBase " << this << " SendPendingData" << |
|
1732 |
} |
1744 |
} |
1733 |
|
1745 |
|
1734 |
void |
1746 |
void |
|
|
1747 |
TcpSocketBase::SetNagle (bool enable) |
1748 |
{ |
1749 |
m_nagle = enable; |
1750 |
} |
1751 |
|
1752 |
bool |
1753 |
TcpSocketBase::GetNagle (void) const |
1754 |
{ |
1755 |
return m_nagle; |
1756 |
} |
1757 |
|
1758 |
void |
1735 |
TcpSocketBase::SetPersistTimeout (Time timeout) |
1759 |
TcpSocketBase::SetPersistTimeout (Time timeout) |
1736 |
{ |
1760 |
{ |
1737 |
m_persistTimeout = timeout; |
1761 |
m_persistTimeout = timeout; |