网络知识(简述)
三次握手,四次挥手,为什么要四次挥手(确保数据能够完整传输,主动方和被动方):
TCP连接建立——使用三次握手建立连接
1、客户端发送请求【寻址请求】(syn)
2、服务器端收到报文请求,回应客户端【确认请求】(syn+ack)
3、客户端收到服务端的报文进行回应。【连接请求】
三次握手完成,TCP客户端和服务端成功地建立连接,可以传输数据。
TCP终止一个连接——四次握手
1、数据验证请求码
2、传输结束标记
3、确认结束标记
4、连接断开标记
先由客户端向服务器端发送一个FIN,请求关闭数据传输。
当服务器接收到客户端的FIN时,向客户端发送一个ACK,其中ack的值等于FIN+SEQ
然后服务器向客户端发送一个FIN,告诉客户端应用程序关闭。
当客户端收到服务器端的FIN是,回复一个ACK给服务器端。其中ack的值等于FIN+SEQ
TCP与UDP基本区别
1.基于连接与无连接
2.TCP要求系统资源较多,UDP较少;
3.UDP程序结构较简单
4.TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
5.TCP保证数据正确性,UDP可能丢包
6.TCP保证数据顺序,UDP不保证
长连接短连接操作过程
短连接的操作步骤是:
建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接(如:http)
长连接的操作步骤是:
建立连接——数据传输...(保持连接)...数据传输——关闭连接(如:tcp)
什么是TCP粘包,拆包
接收端只收到一个数据包,由于TCP是不会出现丢包的,所以这一个数据包中包含了发送端发送的两个数据包的信息,这种现象即为粘包
接收端收到了两个数据包,但是这两个数据包要么是不完整的,要么就是多出来一块,这种情况即发生了拆包和粘包
滑动窗口?
窗口的移动。。。。
。。。。。。。。。。。。待完善。。。。。。