CodingLifeDay8:TCP/IP协议

1,分层:物理层→链路层→网络层(IP)→传输层(TCP)→应用层

2,传输层的主要协议:TCP/UDP

      UDP只能确认数据是否有错。发送方无法判断数据是否送达,接收方也无法重新请求数据

3,TCP在不可靠的IP层上提供了一个可靠的传输层。

      三次握手:c_s:syn:客户端请求连接、s_c:syn+ack:服务端允许连接、c_s:ack:客户端确认

      补充:第一次握手完成,服务端确认可以接收信息;第二次握手完成,客户端确认既可以发送信息也可以接收信息;第三次握手完成,服务端确认可以发送信息。三次握手完成,双方都确认了既可以发送信息也可以收到对方的响应,因此一个安全的连接被建立了。     

      四次挥手:c_s:fin:客户端停止数据请求,希望关闭连接、s_c:ack:服务端确认收到关闭连接请求、s_c:fin:服务端确认数据已完全传输、c_s:ack:客户端确认

      补充:第一次挥手完成,客户端结束数据请求,请求停止连接;第二次挥手完成,服务端确认请求,此时服务端继续传输之前请求的尚未完成传输的数据;第三次挥手完成,服务端确认数据传输完毕,发送了一个fin包;第四次挥手完成,客户端确认服务端发出的“数据已完全传输”的信息,之后客户端经过超时等待时间后关闭,服务端在收到客户端发出的ack后立即关闭。

      为什么客户端需要一个超时等待时间?这是因为如果客户端在发送了ack包后就断开连接而服务端因为网络问题没有接收到客户端的ack包,那么服务端会一直停留在最后的确认状态。而事实上服务端在没有收到ack包后会重发fin包,客户端在超时等待时间内如果响应到重发的fin包后就会重发ack包并刷新超时时间,直到在超时等待时间内没有收到fin包。这样的机制有利于在网络不稳定的情况下安全结束连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值