Received characters go into a buffer. This way you can do other things while receiving characters. Check with Serial.available() when characters are available and process them before the buffer overflows.
Sending characters also works with a buffer that contains all characters to be sent. If that buffer is full then further output is blocked until all characters are placed into the buffer.
All you have to do is checking for input before characters are lost. And do not try to block the controller by sending too many characters at once.