- 面向字节流
是什么引起了包的乱序和丢失
当时人们设计计算机网络时,没有直接设计跟电信网一样安全可靠
ip协议将包切成一段一段的,通过路由转发,不同的路径到达最后的终点,这其中的过程多多少少会出现丢包,而且不是很安全的情况。
- 自动重传
Go-back-N(回退N):
如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了.这时接收方只能对前两个分组发出确认.发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次
//这里不知道是不是优化了的,sack后,如果重传了3以后,接受方就直接返回ACK=5了(最大的),不用重传3后面的了
注意
- TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的
- TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)
- TCP 可把太长的数据块划分短一些再传送.TCP 也可等待积累有足够多的字节后再构成报文段发送出去
- 每一条 TCP 连接有两个端点
- TCP 连接的端点不是主机,不是主机的IP 地址,不是应用进程,也不是传输层的协议端口.TCP 连接的端点叫做套接字(socket)或插口