目标:
    1:掌握什么是TCP 数据传输方式
    2:理解TCP 通信的模型
    3:说出TCP 数据传输方式是可靠传输的原因(高概率面试题)
    4:说出TCP 与 UDP 数据传输的区别(百分之百面试题)
    5:知道TCP 传输方式的客户端以及用户端的数据传输流程

    一:什么是 TCP 数据传输类型?

    答:TCP 数据传输是传输控制协议,它是面向连接的、可靠的、基于字节流的传输层通信协议,TCP通信模型中,通信之前一定要先建立连接才能发送数据,类似于今天的打电话!

    总结一句话:TCP 就是面向有连接可靠的,基于字节流的传输层通信协议

    注意事项:TCP 数据传输方式是一对一进行数据传输的,这种传输方式不适用于广播信息传递!!

    二: TCP 数据传输方式的通信模型

    image.png

    三:TCP 数据传输方式可靠的原因

    1:采用应答机制,TCP 发送的每个报文段必须要接收到接收数据方的应答才认为这个报文段发送成功

    2:超时重传机制,发送数据方给接收数据方发送数据后会启动计时器,如果超出规定时间后,没有接收到接收数据方的应答,那么传输数据方会重新发送这条数据

    3:错误校核机制,发送数据方发送数据时因为一些不可避免的因素造成数据包顺序错乱,TCP 会进行顺序校核,如果在发送数据的时候,出现了数据包发送重复的现象,TCP会进行去重数据包校核!(TCP底层封装好)

    4:流量控制和阻塞管理机制,流量控制用来避免主机发送数据过快而使接收方来不及完全收下数据的现象

    四:TCP 与 UDP 数据传输方式的不同点

    1:TCP 面向连接 UDP 面向无连接,因为连接会占用系统资源,故 TCP 比 UDP 更占用系统资源
    2:TCP 相较于 UDP 传输是可靠的,因为TCP具有下面几点(UDP没有):
    1:采用应答机制
    2:超时重传(重新传输丢失的数据包)
    3:错误校核(调整数据包的顺序,删除重复的数据包)
    4:流量控制管理


    五:TCP 数据传输方式客户端以及服务端的流程

    数据传输客户端流程:socket(套接字) → connect(与服务端建立连接)→ send【recv】(发送接受数据) → close(关闭套接字)

    数据传输客户端流程:socket(套接字)→ bind(绑定端口)→ listen (监听客户端发来的连接请求)→ accept(接受连接)→ recv【send】(接收发送数据)→ close(关闭套接字)