TCP有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急)
一、建立连接(三次握手)ack在有滑动窗口时为Ack号 = Seq号 + 传递的字节数 + 1
1、第一次握手
客户端 --SYN=1,seq=x(随机)----> 服务端。客户端进入同步已发送状态
(TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号)
2、第二次握手
服务端 --ACK=1,SYN=1,ack=x+1,seq=y(随机)--->客户端。服务器进入同步收到状态
3、第三次握手
客户端--ACK=1,ack=y+1。 客户端进入已建立连接状态
两次握手是否可以:
举例:如果由于网络原因服务器延迟收到连接请求(已经失效的报文),服务器确认连接,进入等待客户端发送信息,
客户端不予理睬。
二、四次挥手
1、第一次挥手
客户端--FIN=1,seq=u(已发送最后一个字节+1)--->服务器。客户端进入终止等待1状态
2、第二次挥手
服务器--ACK=1,ack=u+1,seq=v(随机)-->客户端。
服务器进入关闭等待,客户端进入终止等待2
进入半关闭状态
3、第三次挥手
服务器--FIN=1,ack=u+1,seq=w--->客户端。 服务器进入最后确认状态。
4、第四次挥手
客户端-->ACK=1,ack=w+1,seq=u+1-->服务器。进入时间等待状态。需等待最长报文寿命时间才关闭。
四、TCP和UDP的区别
1、基于连接与无连接;UDP是无连接的,即发送数据之前不需要建立连接
2、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。
5、TCP对系统资源要求较多,UDP对系统资源要求较少。
交换机的基本工作原理:
1、学习。根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,写入MAC地址表中。
2、直接转发。如果交换机根据数据帧中的目的MAC地址在建立好的MAC地址表中查询到了,就对对应端口进行转发。
3、泛洪(flood)。如果数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发,也就是泛洪。
4、对于广播帧和组播帧向所有端口进行转发。
5、更新。MAC地址表会每300s更新一次。