TCP的三次握手四次分手详解

 tcp的三次握手详解
1.客户端向服务器端发送连接请求,生成syn=1的状态包和随机顺序包seq=#.syn=1表示请求连接并且进入syn_send状态。
2.服务器接收到syn=1,生成确认包ack_number=seq+1和seq=#随机数顺序包,并且还要回复一个syn=1的同步包,再随机生成顺序包,并发出ack=1确认包,进入syn_recive状态。
3.客户端接收到以后确认ack number的值,回复ack_number=seq+1、ack=1、syn=0并且进入established。
四次断开
1.客户端发送fin包,请求断开。
2.服务器接收后回复ack确认包,而且将断开的信息传送给正在执行的程序。
3.程序执行完以后,服务器发送一个fin包告诉客户端断开,并且结束服务。
4.客户端接收到ack包以后,进入time_wait状态,等待一定时间,防止ack包未到达!然后关闭!
*************
syn(同步报文)
ack(确认)
ack_number(确认号码)
seq(顺序号码)
fin(结束通信)
TCP 通过以下方式提供可靠性:
◆应用程序分割为TCP认为最合适发送的数据块。由TCP传递给IP的信息单位叫做报文段。 
◆当TCP发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能记时收到一个确认,它就重发这个报文段。 
◆当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常延迟几分之一秒。 
◆TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化如果收到报文段的检验和有差错,TCP将丢弃这个报文段和不确认收到这个报文段。 
◆既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能失序,因此TCP报文段的到达也可能失序。如果必要,TCP将对收到的数据进行排序,将收到的数据以正确的顺序交给应用层。
◆既然IP数据报会发生重复,TCP连接端必须丢弃重复的数据。
◆TCP还能提供流量控制,TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。 另外,TCP对字节流的内容不作任何解释。 
重传机制(超时)
流量控制(窗口)
数据分段
校验码
连接的建立与释放

猜你喜欢

转载自blog.csdn.net/return_cc/article/details/73556782