TCP/IP
TCP:
传输控制协议(传输层协议),全双工。提供面向连接的、可靠的字节流服务。即客户端和服务端交换数据前,必须先在双方建立TCP连接之后才能传输数据 ,并提供超时重发、丢弃重复数据、检验数据、流量控制等功能,保证数据能从一端传递到另一端。
TCP三次握手:
- 第一次握手:主机A通过向主机B发送一个同步序列号标志位的数据段(SYN)给主机B,向主机B请求建立连接,通过这个数据段,主机A告诉主机B两件事:我要和你通信。你可以用哪个序列号作为起始数据段来回应我。
- 第二次握手:主机B收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段回应主机A,也告诉主机A两件事:我已经收到请求,你可以传输数据了。你要用那个序列号作为起始数据段来回应我。
- 第三次握手:主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B的数据段:我已经收到回复,现在准备传输数据了。
SYN这个标志位在三次握手时被职位1,握手完成后置位0。
为什么是三次握手:https://blog.csdn.net/Shuffle_Ts/article/details/93778635
TCP四次挥手:
- 第一次挥手:当主机A完成书传输后,将控制位FIN置位1,提出停止连接的请求
- 第二次挥手:当主机B收到FIN后对其做出响应,确认这一方向上的TCP连接将关闭,将ACK置为1
- 第三次挥手:由B端再提出反方向的关闭请求,将FIN置为1
- 第四次挥手:主机A对主机B的请求进行确认, 将ACK置为1,双方向的关闭结束
为什么是四次挥手:tcp是全双工,客户端要关闭,服务端也要关闭。https://blog.csdn.net/Shuffle_Ts/article/details/93909003
UDP:
用户报文协议(传输层协议),不提供可靠性,只是负责吧应用程序传给IP层的数据发出并能不保证能够传递完成。由于传输数据前没有建立连接和保证超时重发等功能,所以传输速度很快。
TCP和UDP的区别:
- 基于连接和无连接的
- 对系统资源的要求(TCP较多,UDP较少)
- UDP结构简单
- 流模式和数据报模式
- TCP保证数据正确性,UDP可能丢包
- TCP保证数据顺序,UDP不保证