1.TCP是通过什么来保证可靠性?
①.应用数据被分割成合理的长度
②.超时重发,当TCP发出一个段后,它启动一个定时器,等待目标端收到这个报文段,如果不能及时确认,就重新发送。
③对于收到的请求,给出确认响应,当TCP收到另一端的数据,他将发送一个确认,这个确认是对包做完整校验再发送
④校验包出错,丢弃报文段,不给出响应,TCP超时会重发。
⑤对失序数据进行重新排序,然后才交给应用层:既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。
如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。
⑥对于重复数据,能够丢弃重复数据
⑦可以提供流量控制,TCP连接的每一方都有固定大小的缓冲空间,只允许另一端发送接收端缓冲区所能接纳的数据,防止较快主机致使较慢主机的缓冲区溢出。
TCP提供的是一种面向连接的,可靠的字节流服务
面向连接:意味着两个使用TCP的应用在彼此交换数据前必须先建立一个连接,在连接中仅两方彼此通信。