第五章 运输层 ---TCP的运输连接管理:TCP连接建立(三次握手)

TCP的运输连接管理:TCP连接建立

  • 5.8.1 TCP的运输连接管理:TCP连接建立(三次握手)
    • 三个问题
    • TCP使用“三报文握手”建立连接
      • 问题:为什么在最后还要发送一个对服务器的ack确认包呢?能不能用两次握手解决问题?
    • 例题

5.8.1 TCP的运输连接管理:TCP连接建立(三次握手)

第五章 运输层 ---TCP的运输连接管理:TCP连接建立(三次握手)_第1张图片

三个问题

第五章 运输层 ---TCP的运输连接管理:TCP连接建立(三次握手)_第2张图片

TCP使用“三报文握手”建立连接

要有主动连接的TCP客户,和被动连接的TCP服务器
首先,TCP服务器开启监听,对建立连接的请求进行监听;
当TCP客户发起TCP连接请求时,会发送一个SYN包,其中SYN=1表明这是一个TCP连接请求报文段,seq=x作为TCP客户进程的初始序号;(注:SYN等于1时表明该报文段无法携带数据,但要消耗一个序号
TCP服务器接受后,将SYN和ACK全设置为1,表明这是一个TCP连接请求确认报文段,seq设置为y,作为TCP服务器进程的初始序号,ack=x+1这是对客户进程所选择初始序号的确认。
TCP客户进程接受后,再发送一个ACK包作为TCP确认报文段,seq=x+1是因为最开始发送的SYN包中seq=x,ack=y+1是因为回传的包seq=y,因为这没有SYN包的事,所以该报文段可以携带数据,但如果不携带数据,则不消耗序号。
完后双方都进入连接已建立状态,可以进行可靠的数据传输了。
第五章 运输层 ---TCP的运输连接管理:TCP连接建立(三次握手)_第3张图片

问题:为什么在最后还要发送一个对服务器的ack确认包呢?能不能用两次握手解决问题?

不能 若有一滞留数据报在进程中未到达,引起超时重传,当这次的连接完成后,滞留的数据报才到达,服务器收到后,以为是客户又要建立连接,直接进入连接已建立状态,发送确认报文但客户机不理睬,将会浪费这一条通道。
第五章 运输层 ---TCP的运输连接管理:TCP连接建立(三次握手)_第4张图片

例题

第五章 运输层 ---TCP的运输连接管理:TCP连接建立(三次握手)_第5张图片

你可能感兴趣的:(计算机网络,tcp/ip,网络,服务器)