bootloader protocol

Can someone point me to where I can find the actual protocol used by the IDE and bootloader when programming a sketch? I assume it involves the IDE sending a data packet with specific header string, then waiting for a given time period or an acknowledge from the bootloader, then repeating.

I've found buckoo info on how to program the chips, use the bootloader, burn the bootloader, on and on, plus the source code for the bootloader, but not a simple explanation of the protocol used. It must be somewheres. ????

TIA.

Google the STK500 protocol. Optiboot uses a stripped down version of it.

Thanks, that helps a little. I downloaded appnote AVR068: STK500 Communication Protocol, and comparing with the Bootloader source code in file ATmegaBOOT_xx8.c, it looks like the bootloader uses a lot simpler protocol. I guess I'll just have to muddle through the C source to understand whats actually going on. Thanks.