浅谈TCP连接的创建和销毁过程

本文详细介绍了TCP连接的创建和销毁过程,包括TCP协议的基本概念、分组结构、连接的三次握手建立过程和四次挥手拆除过程。在连接建立中,通过三次握手确保双方的发送和接收能力,防止已失效的连接请求导致错误连接。而在连接拆除时,四次挥手允许服务端在客户端关闭后发送剩余数据,TIME-WAIT状态用于确保所有分组都被确认,避免异常关闭。
摘要由CSDN通过智能技术生成

1. 概述

本文主要讲述的内容主要包含以下部分

  • TCP的概念
  • 连接的建立过程
  • 连接的拆除过程

2. TCP协议

我们首先要明确一点,这里讨论的TCP协议并不是指TCP/IP协议簇,而是单指TCP协议,即Transmission Control Protocol,指传输控制协议,位于传输层(OSI七层模型的第四层,或是TCP/IP四层协议的第三层)

都应该清楚,传输层负责报文从进程到进程的传递,也可以说是从端口到端口的协议,所以TCP协议也属于一种端对端的协议。常用的端口号有:

  • 20:FTP(文件传输协议)的数据传输
  • 25:SMTP(简单邮件传输协议)
  • 53:DNS(域名系统)
  • 80:HTTP(超文本传输协议)
  • 111:RPC(远程过程调用)

TCP是一个面向流的协议,允许发送进程以字节流的方式传递数据,同样地,接收方也以字节流的方式接收数据,这就存在了一个抽象的“管道”,管道的建立与拆除,就对应着TCP连接的创建和销毁,在接下来我们就来详细讲解这一过程

3. TCP分组

在讲解具体的过程之前,先来做一些准备工作。首先,TCP是一个全双工的通信协议,也就是连接的双方都能够发送和接收数据,这些数据,也就是字节,TCP会对其进行编号,这是因为TCP需要保证接收数据的顺序。编好号之后,TCP会为发送的每一个段分配一个序号,实际就是段中第一个字节的编号

发送的段,在TCP中也叫做分组,分组首部(首部不包含数据)的格式是如下这样的:TCP分组
源端口、目的端口、序号和校验和的概念相信应该大家都能理解,这里就不再展开了,数据偏移、保留部分、紧急指针、选项,以及填充部分相对来说不太重要,感兴趣的可以自行了解。剩余相对重要的确认号、控制位(URG/ACK/PSH…)和窗口中,我们这里指讲和本文相关的前两种

如果了解过数据链路控制的相关知识,应该会知道ack的概念,就相当于我们这里的确认号,指的是我们期待接收到的分组的序号,因为我们发送的每一个分组都是为了期待对方给我们回应,为了避免接收到不正确的数据,就使用确认号机制

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值