TCP协议

1、简述

        TCP协议是面向传输的、可靠的、基于字节流的传输层协议,属于TCP/IP协议族内的一员。全双工模式进行传输,通信双方均具备独立的收发能力,在进行一次有效连接时,需要进行三次握手与四次挥手。

2、标志性关键字

        SYN:同步关键字,简单理解为请求的含义

        ACK:确认关键字

        FIN:完成关键字

3、通信过程

3.1、三次握手

        以客户端请求服务端为例,在客户端向服务端发送一个数据包时,需要先建立连接,这个过程被称为三次握手。下面是简单过程描述(每次请求会携带序列号来保证请求,此文不赘述)

        1)客户端向服务端发送携带SYN关键字的请求,表示需要开始建立连接

        2)服务端收到SYN请求,会向服务端发送携带ACK、SYN的请求,以表示确认该请求

        3)客户端收到ACK、SYN请求后,发送ACK请求至服务端,表示确认该请求,服务端收到该请求并加以确认,连接建立完成

3.2、四次挥手

        同样以该请求为例,客户端在完成数据包发送后,需要断开连接时,需要双方同时确认连接关闭,这个过程被称为四次挥手

        1)客户端完成数据包发送后,向服务端发送携带FIN关键词的请求,表示数据发送完成,请求断开连接

        2)服务端收到FIN请求后,向客户端发送ACK请求,以表示确认该关闭请求

        3)服务端在完成数据接收后,向客户端发送FIN请求,表示数据接收完成

        4)客户端收到FIN请求后,向服务端发送ACK请求,表示确认该关闭请求,同时进行wait,在规定时间内,未收到服务端的其他请求,连接关闭

4、常见问题

4.1、TCP属于全双工模式,什么是全双工、半双工、单工?

        这是一种通信模式,主要是指通信双方是否具备收发能力,其中

        1)单工:数据只能向一个方向传输,以打印为例,计算机可以向打印机发送数据来进行打印,但打印机则不能向计算机发送数据,若数据发送失败,则需借助驱动等告知计算机(监控信道)

        2)半双工:数据在同一时刻只能向一个方向传输,以对讲机为例,同一频率的同一时刻,只能有一方进行通话

        3)全双工模式:数据在同一时刻可以双向传输,以电话为例,同一时刻可以进行互相通话,具体在TCP中,客户端与服务端均具备独立的收发能力,优势在于逻辑处理简单(通信独立的话,不需要进行其他的处理)

4.2、为什么要四次挥手才能解除连接

        这也是TCP高可靠性的一环,因为在服务端收到客户端FIN请求后,需及时向客户端确认请求ACK,但此时服务端数据可能尚未接收完全,此时发送FIN是不正确的,在完成数据接收后,在发送FIN以保证数据接收正确。同时若将ACK请求延后,又提高了客户端的损耗,也是不适宜的,所以以四次挥手连接来保证数据的正确,并减少损耗。

4.3、为什么要三次握手才能建立连接

        这同样也是TCP可靠性的一环,倘若没有这一步,直接发送数据包,容易出现问题。比如客户端向服务端发送的请求因为种种原因失效了,服务端直接接收到该数据后进行处理是可能出现问题的(短信发送验证码过了好长时间才收到,此时验证码已经失效了,不应再使用了),或者说客户端一直向服务端发送数据,而服务端并没有接收到该数据,会影响客户端相应的处理过程(我不知道你有没有收到验证码,所以我是要继续发呢?还是认为你已经收到了呢?)。以三次握手的模式来确定通信双方同时做好了数据发送与接收的准备,此时再发送数据是比较可靠的(你准备好收验证码了么?准备好了。我也准备好了。开始发送)。

4.4、TCP在网络模型中属于传输层,这里的网络模型是指什么

        网络模型是指网络通信所依赖的各个组件之间的通信规则,网络具体的网络模型有好几种,有TCP/IP四层、五层、OSI七层的,具体不在本文赘述,以TCP/IP网络模型为例,TCP属于传输层协议,具体的分层如下:

        1)物理层:通信电缆、接口等,实际的物理连接

        2)数据链路层:封装与解析物理层传输过来的原始比特数据

        3)网络层:寻址,如IP协议,为数据传输寻找可靠的通信路径

        4)传输层:为数据传输建立连接,常见的如TCP、UDP,数据传输至网络层

        5)应用层:提供网络接口服务,如HTTP、FTP等

4.5、TCP/IP协议族都包含哪些常见协议

         HTTP、HTTPS、FTP、SMTP等应用层协议

        TCP、UDP等传输层协议

        IPV4、IPV6等网络层协议

        APR等链路层协议

  • 24
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值