TCP provides a reliable connection. That is, unlike most other parts of the Internet Protocol suite (such as ICMP, Internet Control Message Protocol, or UDP, User Datagram Protocol), TCP establishes a connection between the local and remote site. Once the connection has been successfully established, groups of bytes of data are acknowledged by sending a sequence number back to the sending site. If the sending site does not receive an acknowledgement quickly enough, it will resend the data. If the sending site has resent the same data several tim es unsuccessfully, it will send an error to the application saying that the connection has been broken.