求教一段滑动窗口协议模拟中的代码的含义

 void CSenderDlg::OnTimer(UINT nIDEvent) 
{
    // TODO: Add your message handler code here and/or call default
          //启动网络层数据发送定时器
    switch(nIDEvent)
    {
    case ID_SEND_TIMER:
        if (m_iBuffered < m_SendWndSize)
            PostMessage(NETWORK_LAYTER_READY);
        break;

    default: //case timeout
        int framePos = nIDEvent - ID_TIMER_USER;
        ASSERT(framePos>=0 && framePos<m_SendWndSize);
        ReSendFrame(framePos);
        break;
    }

    CDialog::OnTimer(nIDEvent);
}

这里使用了一个定时器,如果到了时间,缓冲区里的数据不足,那么发送消息,表示自己就绪,否则就重新发送这个帧