TCP: 传输控制协议

news2024/11/24 14:45:59

TCP: 传输控制协议

  • TCP的服务
  • TCP 的首部
  • 小结

本系列文章旨在巩固网络编程理论知识,后续将结合实际开展深入理解的文章。

TCP的服务

T C P和U D P都使用相同的网络层(I P),T C P却向应用层提供与U D P完全不同的服务。
T C P提供一种面向连接的、可靠的字节流服务

  • 面向连接意味着两个使用T C P的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个T C P连接。
  • T C P通过一系列方式来提供可靠性
    • 超时及重传策略
    • 保序
    • 流量控制
  • T C P不在字节流中插入记录标识符,将这称为字节流服务(byte stream service)。

TCP 的首部

T C P数据被封装在一个I P数据报中:
在这里插入图片描述

下图为T C P首部的数据格式。如果不计任选字段,它通常是2 0个字节。
在这里插入图片描述

  1. 每个T C P段都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上I P首部中的源端I P地址和目的端I P地址唯一确定一个T C P连接。即,四元组(s:ip+port, t:ip+port)唯一确定一个TCP连接。有时,一个I P地址和一个端口号也称为一个插口( s o c k e t)。

  2. 序号用来标识TCP报文段中的数据字节流,它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则 T C P用序号对每个字节进行计数。序号是32 bit的无符号数,序号到达2^32-1后又从0开始。

  3. 同步SYN:同步SYN=1表示这是一个连接请求或连接接受报文

  4. 既然每个传输的字节都被计数,确认序号:占4字节,表示接收方期望收到的下一个字节的序列号。因此,确认序号应当是上次已成功收到数据字节序号加 1。只有ACK=1时,确认序号字段才有效。

  5. 发送A C K无需任何代价,因为32 bit的确认序号字段和A C K标志一样,总是T C P首部的一部分。因此,我们看到一旦一个连接建立起来,这个字段总是被设置, A C K标志也总是被设置为1

  6. 推送PSH:接收TCP收到PSH=1的报文段,就尽快地交付接收应用进程

  7. 复位RST:当RST=1时,表明TCP连接中出现严重差错

  8. T C P的流量控制由连接的每一端通过声明的窗口大小来提供

  9. 终止FIN:用来释放一个连接

  10. 检验和:占2字节,检验和覆盖了整个的T C P报文段:T C P首部和T C P数据。这是一个强制性的字段,由发端计算和存储,并由收端进行验证。

  11. 紧急指针:占16位,指出在本报文段中紧急数据共有多少个字节

  12. 选项:长度可变,包括最大报文段长度MSS等

注意:确认序号ack和标志位中的ACK不是一个东西哦!

小结

T C P将用户数据打包构成报文段;它发送数据后启动一个定时器;另一端对收到的数据进行确认,对失序的数据重新排序,丢弃重复数据; T C P提供端到端的流量控制,并计算和验证一个强制性的端到端检验和。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1862232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPOPS-II教程(2): 可复用火箭再入大气层最优轨迹规划问题

问题描述 考虑一类可复用火箭再入大气层最优轨迹规划问题,其动力学方程为 { r ˙ v sin ⁡ γ , θ ˙ v cos ⁡ γ sin ⁡ ψ r cos ⁡ ϕ , ϕ ˙ v cos ⁡ γ cos ⁡ ψ r , v ˙ − F d m − F g sin ⁡ γ , γ ˙ F l cos ⁡ σ m v − ( F g v − v r …

malloc和new的本质区别

目录 一、结论 二、示例 1.实现类T 2.用malloc分配类T的内存空间 3.用new分配类T的内存空间 一、结论 malloc 和 new 都是用于在运行时动态分配内存的机制。但它们之间存在一些本质的区别,主要是在使用方面,现在我们直接说结论,然后在通过…

日光模拟器对显示器光干涉影响

太阳光模拟器应用领域 抬头显示器TFT日光照射仿真太阳光模拟器LED显示器阳光耐候老化测试仪器中的光照实验抬头显示器TFT日光照射仿真太阳光模拟器全光谱阳光太阳辐射环境模拟系统中的光LCD和OLED显示器强光试验太阳光模拟器日光模拟器的光谱匹配度测量方法新型LED太阳模拟器光…

Android音频系统

最近在做UAC的项目,大概就是接收内核UAC的事件,也就是声音相关事件。然后就是pcm_read和AudioTrackr->write之间互传。感觉略微有点奇怪,所以简单总结一下。 1 UAC的简要流程 open_netlink_socket 打开内核窗口,类似于ioctl。…

Verilog的逻辑系统及数据类型(一):四值逻辑系统

目录 1. Verilog采用的四值逻辑系统2.主要数据类型2.1 net(线网)2.2 寄存器类 (register)2.3 Verilog中net和register声明语法2.3.1 net声明2.3.2 寄存器声明 2.4 选择正确的数据类型2.5 选择数据类型时常犯的错误2.5.1 信号类型确定方法总结…

使用 Spring Boot 3.x 与图形学技术,添加电子印章防伪特征

使用 Spring Boot 3.x 与图形学技术,添加电子印章防伪特征 在电子办公和无纸化办公日益普及的今天,电子印章的使用越来越广泛。然而,如何确保电子印章的安全性和防伪能力成为了一个亟待解决的问题。本文将通过 Spring Boot 3.x 和图形学技术,深入探讨如何为电子印章添加防…

速卖通自养号测评:安全高效的推广手段

在速卖通平台上,卖家们常常寻求各种方法来提升商品的曝光、转化率和店铺权重。其中,自养号测评作为一种低成本、高回报的推广方式,备受关注。然而,若操作不当,也可能带来风险。以下是如何安全有效地进行自养号测评的指…

label studio数据标注平台的自动化标注使用

(作者:陈玓玏) 开源项目,欢迎star哦,https://github.com/tencentmusic/cube-studio 做图文音项目过程中,我们通常会需要进行数据标注。label studio是一个比较好上手的标注平台,可以直接搜…

MAB规范(3):Chapter6 Glossary 术语表

第6章 - 术语表 此章不做过多的批注,都是些简单的术语解释。

【算法学习】判断点在多边形内外的算法以及确定内外两点连线与边界的交点

1.前言: 在GIS开发中,经常会遇到确定一个坐标点是否在一块区域的内部这一问题。 如果这个问题不是一个单纯的数学问题,例如:在判断DEM、二维图像像素点、3D点云点等含有自身特征信息的这些点是否在一个区域范围内部的时候&#x…

Java三层框架的解析

引言:欢迎各位点击收看本篇博客,在历经很多的艰辛,我也是成功由小白浅浅进入了入门行列,也是收货到很多的知识,每次看黑马的JavaWeb课程视频,才使一个小菜鸡见识到了Java前后端是如何进行交互访问的&#x…

20240626 每日AI必读资讯

🌍警告!OpenAI宣布全面封锁中国API接入! - 7月9号开始封锁不支持的国家API - 如果在OpenAI不允许的国家使用其 API 将面临封杀 🔗 警告!OpenAI 宣布全面封锁中国 API 接入-CSDN博客 🎵索尼、环球音乐、华…

29-Matplotlib数学表达式

Matplotlib数学表达式 Matplotlib 中的文本字符串都可以使用 Text Markup(一种文本标记语言)显现出来,具体的使用方法是将文本标记符放在一对美元符号$内,语法格式如下: #数学表达式 plt.title(r$\alpha > \beta$…

【c语言】二级指针

1,定义 本质还是从指针的角度去理解,只不过存的指针的值 2,使用方法

小程序的基本使用

【 0 】前言 【 0 】 这个就是js代码的存放地方 app.json // pages/banner/banner.js Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad(options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示…

互联网应用主流框架整合之Spring Boot运维体系

先准备个简单的系统,配置和代码如下 # 服务器配置 server:# 服务器端口port: 8001# Spring Boot 配置 spring:# MVC 配置mvc:# Servlet 配置servlet:# Servlet 的访问路径path: /sbd# 应用程序配置application:# 应用程序名称name: SpringBootDeployment# 配置数据…

云动态摘要 2024-06-25

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新产品更新 Web应用防火墙 - 验证码支持微信小程序接入 阿里云 2024-06-25 支持客户从微信小程序场景下接入,提供人机识别的安全防护。 工业数字模型驱动引擎 - iDME控制台换新升级 华为云…

cropperjs 裁剪/框选图片

1.效果 2.使用组件 <!-- 父级 --><Cropper ref"cropperRef" :imgUrl"url" searchImg"searchImg"></Cropper>3.封装组件 <template><el-dialog :title"title" :visible.sync"dialogVisible" wi…

亚马逊云科技官方活动:一个月拿下助理架构师SAA+云从业者考试认证(送半价折扣券)

为了帮助大家考取AWS SAA和AWS云从业者认证&#xff0c;小李哥争取到了大量考试半价50%折扣券&#xff0c;使用折扣券考试最多可省75刀(545元人民币)。 领取折扣券需要加入云师兄必过班群&#xff0c;在群中免费领取。目前必过班群招募到了超过200名小伙伴&#xff0c;名额有限…

前端自动化

前端自动化的内容 自动化代码检查自动化测试自动化构建自动化部署自动化文档 前端自动化的最佳实践