前言
随着之前所讲到的可靠数据传输,则我们会由可靠数据传输想到TCP协议,本节就来讲述TCP协议的具体内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、TCP连接
1.面向连接
我们很清楚的知道TCP是面向连接的,那为什么称TCP是面向连接的呢?原因就是TCP在客户端与服务端进行通信的时候会进行三次握手,握手之后就建立一条通信的连接,可用于双方数据的传输,在握手的双方都必须互相发送握手的预备报文段,TCP的连接不是在电路交换中的连接,它不是物理上的连接,而是逻辑上的连接,在我们看来他们之间像是连接上了一条通信的线路,但是在路由器中看来,这只是一些数据包而已。
而TCP连接是怎么建立的呢,发起连接的进程称为客户进程,接收连接的进程称为服务器进程,该客户的客户进程首先通知运输层,想要与服务器上的一个进程建立一条连接,实现这个的代码在之前的博客中已经有实验代码编辑过,是通过套接字接口完成。
clientSocket.connect((serverName,serverPort))
客户与服务器端互相发送三个报文,前两个报文没有有效载荷,简单来说就是没有应用层数据,而第三个报文段,承载有效载荷,这种称之为三次握手。
在建立起第三次连接之后,两方就可以互相发送报文数据了,客户通过套接字接口发送数据流,数据通过这个门后一切都是由TCP建立的连接进行传输,TCP将这些数据引导至发送端数据缓存,这个发送缓存是由三次握手建立起来的,接下来,TCP就会从发送缓存中时不时的随机取出一块数据传输至网络层,当TCP接收端收到数据后,就会将数据放入该TCP连接的接收端数据缓存中。

2.TCP报文段结构
TCP报文段由首部字段和一个数据字段组成。数据字段包含一块应用数据。下图所示:

与UDP一致,TCP报文段包含首部,首部包含源端口号和目的端口号,它被用于多路复用或多路分解。同时TCP也拥有检验和字段。
其中还包括:
- 32位比特的序号字段、32位比特的确认号字段(这里后面会重点讲述),这些字段用来实现可靠数据传输服务。
- 16比特位的接收窗口字段,该字段用于流量控制,用于指示接收方愿意接受的字节数量。
- 4比特的首部长度字段,该字段只是了已32比特的字为单位的TCP首部
TCP协议详解

本文深入解析TCP协议的关键特性,包括连接建立、可靠数据传输、流量控制及连接管理等核心机制。
最低0.47元/天 解锁文章
662

被折叠的 条评论
为什么被折叠?



