注意1、IP层只能提供尽最大能力努力服务,TCP下面的网络所提供的是不可靠的传输
解决方法我们用可靠传输协议,出现差错的时候让发送方重传出现错误的数据,
在接收方来不及接收数据时,降低发送方发送数据的速度。
两个相关协议及可靠的TCP的运输连接
1、停止等待协议(通过用超时重传来实现可靠传输)
2、连续ARQ协议(滑动窗口)
TCP可靠的传输连接
运输层相关信息(可靠传输的原理、运输连接管理)
1、服务器端做好准备(创建传输控制块TCB、准备接收客户进程的连接请求、服务器端进程处于LISTEN(收听)状态,等待客户端的连接)
2、客户端发送连接请求(创建传输控制块TCB、同步位SYN=1,初始序号seq=x。TCP客户端进入SYN_SENT(同步已发送)状态)
3、服务器做出响应(SYN、ACK置1,确认号x+1,初始***seq=y。TCP服务器进程进入SYN_RECV(同步收到)状态)
4、客户端给出确认(ACK置1,ack=y+1,seq=x+1(客户端进入连接建立))
5、服务器收到客户端的连接确认,也进入已建立连接

为什么客户端最后还要发送一次确认
主要是为了防止已失效的连接请求保温段突然有传送到服务器。

四次挥手
运输层相关信息(可靠传输的原理、运输连接管理)
1、客户端向服务器发送连接释放(FIN 1,seq=u,客户端进入(FIN_WAIT1)终止等待1
2、服务器发送确认(ACK 1,seq=v,ack=u+1,服务器进入CLOSE_WAIT关闭等待(a到b的连接释放)
3、客户端收到服务器的确认进入(FIN_WAiT2
4、服务器发送连接释放(ACK 1,FIN 1 ,seq=w,ack=u+1)(服务器进入LAST_ACK(最后确认))
5、客户端收到服务器的连接释放,发送确认信息(ACK 1 ,seq=u+1,ack=w+1)(服务器进入时间等待(TIME_WAIT)
6、服务器收到最后确认结束,客户端等待两秒后进入关闭状态

为什么客户端在TIME_WAIT状态必须等待2MSL的时间呢

因为客户端的发送ack能够到达服务器,假设丢失,服务器重传释放连接请求,则客户端就能在2MSL内接受到这个请求,则客户端就可以重新发送一次确认。

相关文章:

  • 2021-07-10
  • 2021-12-14
  • 2022-12-23
  • 2021-08-26
  • 2021-04-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-21
  • 2021-10-12
  • 2021-11-24
  • 2021-10-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案