TCP协议详解
tcp服务的特点
传输层协议主要有两个:TCP和UDP协议。
TCP协议特点
1:面向连接 建立连接,也就意味着要先分配必要的内核资源,以管理连接状态和连接上的数据传输。TCP连接是全双工通信,双方数据读写通过一个连接实现。数据交换完成之后,必须断开连接,因为要释放系统资源。
TCP连接正因为是一对一的 ,所以不适合广播和多播。
2:字节流和数据报的区别: 简单来说,字节流就是通信双方不执行相同次数的读写,操作。
数据报,正是发送多少个数据报,接受端就需要读取多少个数据报 字节流的形成正是因为,有读写缓冲区的存在,当写操作执行时,TCP模块将数据放到发送缓冲区,当真正开始发送数据的时候,在发送缓冲区中等待发送的数据会被分割成多个TCP报文段,从而写操作次数和发送端发送的报文次数不同, 接受端也是类似情况,所以最终,读写次数不同。
UDP是数据报的形式,写多少,发多少。
3: 可靠传输 : TCP采取发送应答机制,(发送数据必须受到应答) 超时重传机制(发送报文之后启动定时器,规定时间没有收到应答,重发) 重排整理机制
UDP和IP协议一样,不可靠服务,它们都需要上层协议来处理数据确认和超时重传。
tcp转态转移图
其实也可以是3次握手,,, fin_wait_2状态是在接受到ACk确认消息之后才发生的状态,,,
延迟确认