TCP三次握手和四次挥手

嵌入式的笔试题中涉及到计算机网络时,一般都会考这个问题,本人也写过几次,但都没完完整整地写出来,感觉很失败,所以今天就在这把这两个过程写下来,也算是复习一下。
TCP是面向连接的协议,那就存在连接的建立和释放。
TCP连接的建立过程即为三次握手或三次联络。
TCP连接的释放过程即为四次挥手,也可以看作两个二次挥手。

TCP三次握手

首先说明:
假设主机A运行的是TCP客户程序,B运行TCP服务器程序,并且在三次握手前,B的TCP服务器进程已创建传输控制块TCB,之后一处于LISTEN(收听)状态,等待客户进程连接。
1)A的TCP客户进程首先创建传输控制模块,然后向B发送连接请求报文段,报文首部中的同步为SYN = 1,初始序号seq = x。这时TCP客户进程进入SYN-SENT(同步已发送)状态。
2)B收到连接请求报文段后,如同一连接,则向A发送确认。发送的确认报文段中SYN和ACK位都置1,确认号ack = x+1,初始序号seq = y。这时TCP服务进程进入SYN-RCVD(同步收到)状态。
3)A的TCP客户进程收到B的确认后,然后向B给出确认。确认报文段中ACK置1,确认号ack = y+1,序列号seq = x+1,这时TCP连接建立成功,A进入ESTABLISHED(已建立连接)状态。
B收到A的确认后,也进入ESTABLISHED状态,即三次握手完毕。

TCP四次挥手

TCP四次挥手即TCP的连接释放,需要通过四次数据报的发送来完成,其过程为:
1)A的TCP客户进程发送连接释放报文段,报文段首部FIN置1,序号为seq = u,这是A进入FIN-WAIT-1(终止等待1)状态,并且不再发送数据。
2)B收到连接释放报文段后即发出确认,确认号是ack = u+1,序号为seq=w,这时B进入CLOSE-WAIT(关闭等待)状态。
3)A收到来自B的确认后,就进入FIN-WAIT-2状态,等B发出连接释放报文段,此时B如果没有要向A发送数据,那就型A发送连接释放报文,确认号仍为ack = u+1,这时B进入LAST-ACK(最后确认状态)。
4)A收到B的连接释放报文,发出确认,确认报文段中ACK置1,确认号ack = w + 1,序号seq = u+1,然后A进入TIME-WAIT(时间等待)状态,等待时间结束后,A进入CLOSED状态,B收到A的确认后也进入CLOSED状态,此时整个TCP连接释放过程也就结束了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值