鞍山市城乡建设局网站,wordpress音频插件,建设部促进中心网站,如何在微信上做广告什么是TCP tcp是一个面向连接的、可靠的、基于字节流的传输层通信协议 面向连接#xff1a;TCP连接是一对一的#xff0c;不能实现一对多或多对一#xff0c;TCP在通信前要首先建立连接#xff0c;连接成功后才能开始进行通信可靠的#xff1a;TCP连接要保证通信过程的可靠…什么是TCP tcp是一个面向连接的、可靠的、基于字节流的传输层通信协议 面向连接TCP连接是一对一的不能实现一对多或多对一TCP在通信前要首先建立连接连接成功后才能开始进行通信可靠的TCP连接要保证通信过程的可靠性所谓可靠性是指TCP能够检查比特错误并纠正比特错误同时能够对丢包、失序情况作出一定的应对。基于字节流
为什么需要TCP 由于下层网络层IP层不保证网络包的交付、按序交付和数据的完整性因此需要TCP协议在运输层保证数据传输的可靠性。 TCP报文头格式 各字段作用 序列号连接建立时该值是随机初始化的。其后在数据传输过程中TCP 连接中传送的数据流中的每一个字节都编上一个序号而序号字段的值则指的是本报文段所发送的数据的第一个字节的序号以保证数据传输过程中不乱序。用来解决网络包的失序问题。确认应答号指期望收到对方的下一个报文段的数据的第一个字节的序号发送端在收到确认应答后可认为在该序号之前的数据都已经被接收端正常接收。用以解决网络丢包的问题。控制位 ACK该位为1时确认应答号有效SYN该位为1连接建立号建立TCP连接所使用特殊字段该位为1表示希望建立连接FIN同SYN字段的作用是TCP断开连接时需要的特殊字段该位为1表示希望断开连接RST该位为1表示出现异常情况需要强制断开连接源端口与目的端口用于告诉TCP协议应该把网络数据包交给哪个进程首部长度指出TCP报文的首部长度单位为4字节取值范围为0~15故而TCP报文段的首部长度最大为60字节固定字段为20字节因此选项部分最大为40字节 如何确定一个TCP连接
一个TCP四元组可以确定一个TCP连接其四元组组成为 其中源地址与目的地址在IP头部中作用是将数据包通过IP协议发送给主机 而源端口与目的端口存在于TCP头部中作用是告诉TCP协议应该把报文发送给哪个进程 TCP建立连接的过程
TCP在通信前需要首先通过三次握手建立连接之后才能进行通信其过程如下 第一次握手客户端发送SYN报文段在tcp头部中置SYN1并随机初始一个seq序号但不携带任何数据。表示客户端要建立连接。第二次握手服务端收到客户端发来的链接请求后在tcp头部中置SYN1也随机初始化一个服务端的序号seq放入tcp头部同时置ACK1对客户端也响应一个确认号ack放入头部该阶段同样不携带数据。表示服务端同意建立连接。第三次握手客户端收到服务端的同意链接请求报文此时服务端已经做好了要连接并发送数据的准备要对服务端发送一个确认报文。在tcp头部中置ACK1但SYN0且此后的数据传输过程中SYN都等于0同时对服务端的序号响应一个确认号在该阶段客户端可以携带数据发送给服务端。 参考4.1 TCP 三次握手与四次挥手面试题 | 小林coding (xiaolincoding.com)