TCP详解

TCP是一种可靠的传输协议,通过三次握手建立连接,四次挥手断开连接。三次握手确保了连接的可靠性,而四次挥手则是因为在全双工连接中,两端必须分别关闭,防止数据丢失和旧连接干扰。TCP使用各种定时器如重传、坚持、保活和时间等待来保证数据传输的可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP报头
报头格式如下图:
在这里插入图片描述全称:传输控制协议 (面向连接的可靠传输协议)
作用是:确认 重传 排序 流控

端口号范围:1-1023 静态端口号   1024-65535  动态端口号
 源端口:表示数据从哪个进程来 
 目标端口:表示数据到哪个进程去
 32位序列号;
 4位首部长度:表示该tcp报头有多少个4字节(32个bit)
 6位保留:保留,以防万一
 6位标志位:
          URG: 标识紧急指针是否有效 
          ACK: 标识确认序号是否有效 
          PSH: 用来提示接收端应用程序立刻将数据从tcp缓冲区读走 
          RST: 要求重新建立连接. 我们把含有RST标识的报文称为复位报文段 
          SYN: 请求建立连接. 我们把含有SYN标识的报文称为同步报文段 
          FIN: 通知对端, 本端即将关闭. 我们把含有FIN标识的报文称为结束报文段
16位窗口大小;
16位校验和:由发送端填充,校验形式有CRC校验等,如果校验不通过,则认为数据有问题,这里的校验和不光包括TCP首部,也包括TCP数据部分
16位紧急指针:用来标识哪些数据是紧急数据

详细解释:

  1.源端口和目标端口,各占两个字节,分别写入源端口和目标端口
  2.序号,占4个字节,TCP连接中传送的字节流中的每个字节都按顺序编号
  3.确认号,占4个字节,是期望收到对方下一个报文的第一个数据字节的序号
  4.数据偏移,占4位,它指出TCP报文的数据距离TCP报文段的起始处有多远;
  5.保留,占6位,保留今后使用,但目前应都位0;
  6.紧急URG,当URG=1,表明紧急指针字段有效。告诉系统此报文段中有紧急数据;
  7.确认ACK,仅当ACK=1时,确认号字段才有效。TCP规定,在连接建立后所有报文       的传输都必须把ACK置1;
  8.推送PSH,当两个应用进程进行交互式通信时,有时在一端的应用进程希望在键入一个命令后立即就能收到对方的响应,这时候就将PSH=1;
  9.复位RST,当RST=1,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立连接;
  10.同步SYN,在连接建立时用来同步序号。当SYN=1,ACK=0,表明是连接请求报文,若同意连接,则响应报文中应该使SYN=1,ACK=1;
  11.终止FIN,用来释放连接。当FIN=1,表明此报文的发送方的数据已经发送完毕,并且要求释放;
  12.窗口,占2字节,指的是通知接收方,发送本报文你需要有多大的空间来接受;
  13.检验和,占2字节,校验首部和数据这两部分;
  14.紧急指针,占2字节,指出本报文段中的紧急数据的字节数;
  15.选项,长度可变,定义一些其他的可选的参数。

TCP三次握手

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值