第一个版本在1974年定义,建立在网际层协议(IP)提供的数据包传输技术之上。TCP使程序可以使用连续的数据流进行相互通信。
除非网络原因导致连接中断/冻结,TCP都能保证将数据流完好无缺地传输至接收方,不会发生丢包、重包、乱序问题。
传输文档/文件的协议都使用TCP,包括浏览网页、文件传输、电子邮件的所有主要机制,也是人机间进行长对话的协议的基础之一,如SSH/聊天协议
经过30年的改进,现代TCP相当精良,除了协议设计专家,很少有人能再改进现代TCP栈的性能,就算是消息队列这种对性能要求很高的程序,
也会选择TCP作为传输媒介。
3.1. TCP工作原理:数据包被隐藏在协议层之下,程序只需向目标机器发送流数据,TCP会将丢失的信息重传,保证信息成功到达目标机器
经典定义来自1981年的RFC 793,如何提供可靠连接,基本原理:
下一个数据包序列号就为8224。网络栈无需记录如何将数据流分割为数据包,需要重传,可以使用另一种分割方式,将数据流分为多个新数据包(需要传输更多
字节,可以将更多数据包装入一个数据包),接收方仍然能够正确接收数据包流。
就有可能攻击这个会话了。