I get that if Serial.available is 0 when no data is present. Which means that the While statment and all below it would not even run cause the If statement would be false for no data.
OK, you get one byte, you read it, and four bytes that aren't.
Don't forget, serial is slooooow