TCP协议

news/2024/5/3 19:08:42/文章来源:https://www.cnblogs.com/bonne-chance/p/16630292.html

TCP协议

TCP(Transmission Control Protocol)协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。 TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。

1. TCP协议格式

如图1所示为TCP协议格式。

  • 源端口

  表示发送端端口号,字段长16位

  • 目的端口

  表示接收端端口号,字段长16位

  • 序列号

  序列号是指发送数据的位置。每发送一次数据,就累加一次该数据字节数的大小,字段长32位

  • 确认应答号

  是指下一次应该收到的数据的序列号。实际上,它是指已收到确认应答号前一位为止的数据。发送端收到这个确认应答号以后可以认为在这个序号以前的数据都已经被正常接收,字段长32位

  • 数据偏移

  该字段表示TCP所传输的数据部分应该从TCP包的哪个位开始计算,当然也可以把它看做TCP首部的长度。该字段长4位,单位为4字节(32位)。不包括选项字段的话,如图1所示TCP首部为20字节长,因此数据偏移字段可以设置为5。反之,如果该字段的值是5,那说明从TCP包的最一开始到20字节为止都是TCP首部,余下的部分为TCP数据。

  • 保留

  该字段主要是为了以后扩展时使用,其长度为4位。一般设置为0,但即使受到的包在该字段不为0,此包也不会被丢弃

  • 控制位

  字段长为8位,每一位从左到右分别为CWR、ECE、URG、ACK、PSH、RST、SYN、FIN。这些控制标志也叫控制位。当它们对应的位上值为1时,则表达含义。

    • CWR(Congestion Window Reduced)

    CWR Flag与后面的ECE Flag都用于IP首部的ECN字段。ECE flag为1时,则通知对方已经将拥塞窗口缩小。

    • ECE(ECN-Echo)

    ECE flag表示ECN-Echo。值为1会通知通信对方,从对方到这边的网络有拥塞。在收到数据包的IP首部中ECN为1时,将TCP首部中的ECE设置为1    

    • URG(Urgent Flag)

    该位为1时,表示包中有需要紧急处理的数据。对于需要紧急处理的数据,会在后面的紧急指针中再进行解释。

    • ACK(Acknowledge Flag)

    该位为1时,确认应答的字段变为有效。TCP规定除了最初建立连接时的SYN包之外该位必须设置为1

    • PSH(Push Flag)

    该位为1时,表示需要将收到的数据立刻传给上层应用协议。PSH为0时,则不需要立即传而是先进性缓存

    • RST(Reset Flag)

    该位为1时,则表示TCP连接中出现异常必须强制断开连接。例如一个没有被使用的端口即使发来连接请求,也无法进行通信。此时就可以返回一个RST设置为1的包。此外,程序宕掉或切断电源等原因导致主机重启的情况下,由于所有的连接信息将全部被初始化,所以原有的TCP通信也将不能继续进行。这种情况下,如果通信对方发送一个设置为1的RST包,就会使通信强制断开连接

    • SYN(Synchronize Flag)

    用于建立连接。SYN为1表示希望建立连接,并在其序列号的字段进行序列号初始值的设定

    • FIN(Fin Flag)

    该位为1时,表示今后不会再有数据发送,希望断开连接。当通信结束希望断开连接时,通信双方的主机之间就可以相互交换FIN位置为1的TCP段。每个主机又对对方的FIN包进行确认应答以后就可以断开连接。不过主机收到FIN设置为1的TCP段以后不必马上回复一个FIN包,而是可以等到缓冲区中的所有数据都因已成功发送而被自动删除之后再发。

  • 窗口大小(Window Size)

  该字段长为16位。用于通知从相同TCP首部的确认应答号所指位置开始能够接收的数据大小(8位字节)。

  • 校验和(Checksum)
  • 紧急指针(Urgent Pointer)
  • 选项(Options)

 

图1:TCP协议格式

 

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL九:MVCC能否解决幻读问题

转载~ 幻读【前后多次读取,数据总量不一致】同一个事务里面连续执行两次同样的sql语句,可能导致不同结果的问题,第二次sql语句可能会返回之前不存在的行。事务A执行多次读取操作过程中,由于在事务提交之前,事务B(insert/delete/update)写入了一些符合事务A的查询条件的记…

C - Candles

题目链接: C - Candles (atcoder.jp) 题目大意: 给你n个蜡烛的坐标,你想点燃其中k个蜡烛,一开始你在坐标0,每次向左或者向右可以移动一格,问点燃k个蜡烛至少需要移动多少步。 分析: 最优的移动的路线可以看作是一个‘U’型再加上一个线段。 以第一个样例为例: 如图所示…

手机PC安装油猴

一、移动端使用油猴脚本移动端可以不使用油猴插件,就可直接安装脚本(需要浏览器支持),这样天然支持油猴脚本的移动浏览器还是很多,比如:书签地球、X浏览去、M浏览器等,但是各个浏览器的支持情况不一样,下面我以**【书签地球】**为例,展示安装使用,此浏览器经过测试对…

DTSE Tech Talk | 云原生架构下的数字身份治理实践

摘要:由华为技术大咖VS派拉软件CTO为大家详解云原生架构下的身份管理平台,构建云安全数字身份入口。 本文分享自华为云社区《DTSE Tech Talk | 第4期:云原生架构下的数字身份治理实践》,作者: 华为云社区精选。 DTSE Tech Talk是华为云开发者联盟推出的技术公开课,解读云…

【技术流吃瓜】python可视化大屏舆情分析“张天爱“事件网友评论

python可视化大屏分析,舆情分析,张天爱事件目录一、事件背景二、微热点分析二、自开发Python舆情分析2.1 Python爬虫2.2 可视化大屏2.2.1 大标题2.2.2 词云图2.2.3 条形图2.2.4 饼图(玫瑰图)2.2.5 地图三、演示视频 一、事件背景 大家好,我是马哥python说。 演员张天爱于2…

2022-08-26 第六小组 高佳誉 学习笔记

前情提要(博主在复习前端知识,所以近几天没有更新博客。相关前端内容可见博主其他随笔) JQurey 重点事件 与JS的区别 选择器思维导图知识点 1. 定义 JQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(框架)于2006年1月由John Resi…

Shopify Spark主题模板配置修改

对于那些正在启动业务的shopify卖家来说,Spark主题是很好的选择,它跨越了你的愿景和市场之间的差距,将美感和必要性结合在一起,这样你就可以用最小的触角将事情进行下去。通过最少的设置,我们设计了一个主题,以帮助你迅速和毫不费力地开店,同时仍然是一个具有惊人风格的…

NC50940 Running Median

For this problem, you will write a program that reads in a sequence of 32-bit signed integers. After each odd-indexed value is read, output the median (middle value) of the elements received so far.题目原题地址:Running Median 题目编号:NC50940 题目类型:对…

项目工期延后有哪些补救措施?

大部分项目经理都面临过项目延期的情况,特别是在软件开发领域,项目延期情况尤为严重。项目管理者的真正挑战,不是发现问题和记录问题,而是预见问题、控制问题和解决问题。 因此当项目出现了延期状况时,我们需要思考有效的”拯救“之策,尽最大可能将未被终止的项目进行调整…

用于知识图嵌入的多尺度动态卷积网络

原文 Multi-Scale Dynamic Convolutional Network for Knowledge Graph Embedding 出版IEEE Transactions on Knowledge and Data Engineering Volume: 34 Issue: 5 01 May 2022申明 版权归原文作者及出版单位所有,如有侵权请联系删除 摘要 知识图是具有不完全或部分信息的大型…

全同态加密-丁津泰:学习

本文学习丁老师写的同态加密的文章,做些笔记。引言同态加密适用于云计算。 因为任意计算都可以由加法和乘法构成,全同态意味着计算函数\(f\)可以是任意计算操作(任意次加法和乘法)。 同态加密,起源于“隐私同态”的概念,但并未给出具体实现;后续提出一些部分同态性的方案…

打了一场模拟赛的心态,总结

今天打了一场模拟赛总结一下: 题目比较简单(我后面一个题目100一个90都是暴力的功/dogen) Frist problem: 总结:一道伪装成5⭐的打卡题目 用时:2~3min 思路:每输入一个字符串判断最后一个字符就可以得知是哪国的人(因为这几个国结尾字母各不相同) Second problem: 总…

AMBA AHB总结

AMBA AHB(高级高性能总线)介绍 一、AHB简介 AHB是为提出高性能可综合设计的要求而产生的新一代AMBA总线。它是一种支持多总线主机和提供高带宽操作的高性能总线。 AMBA AHB实现了高性能,高时钟频率系统的以下特征要求: 突发传输、分块处理、单周期总线主机移交,单时钟沿操…

[XMAN2018排位赛]AutoKey

1、得到USB流量,首先了解AutoKey是什么 自动秘钥密码(Autokey)_不会学习的小菜鸡的博客-CSDN博客_autokey密码 2、安装UsbKeyboardDataHacker.py 工具 GitHub - WangYihang/UsbKeyboardDataHacker: USB键盘流量包取证工具 , 用于恢复用户的击键信息 3、用UsbKeyboardDataHacke…

Promise的基本用法

一.定义: Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。 二.特点: (1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种…

devexpress 22.1.3 PivotGrid 结合.net6 MVC

效果图 主页面zyjkDetection.cshtml@using Health.Model @using Health.Repository; @*For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 *@ @inject HealthDataContext db @{ViewData["Title"] = …

手绘丛林冒险游戏推荐

mac上的一款手绘丛林冒险游戏《Gibbon: Beyond the Trees》推荐给大家,跟着一只迷路的长臂猿展开冒险旅程,进入未知的危险之地。在解放模式下竞速奔向自由,或者进入长达一小时的叙事故事中,体会世界各地野生动物奋斗求生的真实故事。 软件下载地址 《Gibbon: Beyond the Tr…

springboot实现文件下载(打jar包可下载,可解决下载文件损坏)

前端代码:downloadTemplate(){let url = `${window._CONFIG[domianURL]}/invoice/bmsBillRiskverification/downloadTemplate`;window.location.href = url;}后端代码:/*** @param response* @功能描述 下载文件:*/@RequestMapping("/downloadTemplate")public voi…

python 读取json文件

一个jason文件实例————fcc.json { "organization": "freeCodeCamp", "website": "https://www.freecodecamp.org/", "formed": 2014, "founder": "Quincy Larson", "certifications": [ …

Webpack 4

模块打包工具的由来 Web1.0编写静态页面 表单验证和动效Web2.0 之 AJAX管理数据 和用户进行数据交互大前端开发PC 端 移动端 小程序 APP现代 Web 开发“问题”采用模块化开发 使用新特性提高效率保证安全性 实时监听开发过程使用热更新 项目结果打包压缩优化使用 Webpack 实现项…