【计算机网络】 TCP协议头相关知识点

文章目录

    • TCP协议头

TCP协议头

我们来看一下TCP协议头里都有什么东西,研究一下为什么TCP协议是可靠的呢

在这里插入图片描述

TCP协议可靠是因为在协议头里带着一些校验的数据

首先是源端口和目的端口,这两个是UDP中也有的,但是UDP中只有这两个,没有后面的校验数据,接着是序号(seq)和确认号(ack),他们两个是配合使用的,比如说发送端发送了一个序号为1的seq,然后接收端回一确认号为2的ack,就证明说收到了seq为1的这个包,可以继续发送seq等于2的包,这样可以保证数据可靠,序号还能保证顺序不乱。然后是首部长度,为的是把tcp协议头从整个数据包中取出来,保留位就是没使用,接下来是标志位,标志位都是和其他位置的数据配合使用的,他仅代表这个功能在这个包里在使用,具体是什么要上别的位置中找。URG紧急指针标志位、他跟后面的紧急指针是配合使用的,紧急指针就是要在接收时将这里的数据立刻处理。ACK和确认号配合使用,PUSH就是说当前包优先级比较高,但是还没有紧急指针那么高。RST就是重置标志位,如果这个标志位为1,那就是说要重新连接一下,可能当前连接有点问题。SYN是建立连接标志位,建立连接发的包就是SYN包。FIN就是断开连接标志位,断开连接发的包就是FIN包。之后是窗口,这个就是滑动窗口大小,滑动窗口在以后我们会讲。校验和跟IP中的一样,将所有数据按照一套算法算出来一个数,然后接收端用相同算法也算一下,看是否相等,保证我们数据在传输过程中没有被篡改。最后可变部分的原理和IP部分也基本一样。

在开发过程中,我们要坚持一个不信任原则,不管是在哪一层,干什么都要对数据进行校验,因为在任何时候我们的数据都有可能被他人访爆。

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

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

相关文章

【多线程】线程池的简单实现与线程池的拒绝策略

目录 一、为什么使用线程池 二、标准库中的线程池 三、线程池的简单代码实现 四、标准库中线程池的构造方法解读 五、拒绝策略 一、为什么使用线程池 如果有多个线程,一个一个的去创建则需要从就绪状态被调度到运行状态不断切换然后死亡,这样的情况…

基于Linux的智能家居(工厂模式)

目录 1.项目概述 2.程序框架 3.函数准备 3.1需要函数知识点 3.2编码提醒 4.代码 5.注意事项 1.项目概述 控制端有两个,语音串口UART和Tcp通讯。 执行端有IO输出和IO输入。 2.程序框架 程序分为3部分-------------1.输入控制 2.输出设备 3.主函数-多线程…

h5上传图片并裁剪

本文主要实现,h5通过input上传图片后,利用cropperjs进行裁剪,获取指定尺寸 1 安装cropperjs npm install cropperjs 2 具体实现 home.jsx 代码中的result模块用来展示最终的裁剪结果;mask用作页面最上层蒙层,用来裁…

文件上传漏洞案例

目录 1.案例一 1)案例源码 2)创建web.php文件 3)使用抓包软件 2.案例二 1)案例代码 2) 案例分析 3)copy命令生成图片马 4)上传图片马到服务器 5)解析 文件图片 3.案例三 …

计算机系统的基本概念

计算机系统的基本概念 本文主要以hello.c这个程序的整个生命周期来简单了解一下计算机系统结构的基本概念。 #include <stdio.h>int main() {printf("hello, world\n");return 0; }gcc hello.c -o hello ./hello hello, world此刻&#xff0c;hello.c源程序…

【瑞萨零基础入门】瑞萨MCU零基础入门系列教程(更新连载中)

瑞萨MCU零基础入门系列教程 前言 得益于瑞萨强大的MCU、强大的软件开发工具(e studio)&#xff0c;也得益于瑞萨和RA生态工作室提供的支持&#xff0c;我们团队编写了《ARM嵌入式系统中面向对象的模块编程方法》&#xff0c;全书37章&#xff0c;将近500页: 讲解面向对象编程…

访问局域网内共享文件时报错0x80070043,找不到网络名

我是菜鸡 此篇只为分享一个我遇到的很简单的但是排查了好久的小问题。 我的网络环境是在校园网内&#xff0c; 自己的办公电脑设置了固定IP&#xff1a;10.11.128.236&#xff0c;同事电脑IP为&#xff1a;10.11.128.255 本人需要访问同事在局域网内分享的文件&#xff0c;…

ES索引修改mappings与重建reindex详解之修改字段类型

文章目录 概要一、创建索引1.1、获取mappings 二、新增字段修改mappings三、修改OR删除mappings已有字段3.1、创建新索引&#xff0c;将要改字段加进去3.2、同步数据3.3、删除原索引并对新索引重命名3.4、同步数据的技巧 四、参考文献 概要 elasticsearch一直在使用&#xff0…

【Python爬虫实战】爬虫封你ip就不会了?ip代理池安排上

前言 在进行网络爬取时&#xff0c;使用代理是经常遇到的问题。由于某些网站的限制&#xff0c;我们可能会被封禁或者频繁访问时会遇到访问速度变慢等问题。因此&#xff0c;我们需要使用代理池来避免这些问题。本文将为大家介绍如何使用IP代理池进行爬虫&#xff0c;并带有代…

波奇学C++:多态知识点

多态中函数的重写&#xff08;基类指针访问派生类函数&#xff09;&#xff0c;只重写函数的实现&#xff0c;而不重写声明。 class Person { public:virtual void fun(int i 0){cout << "Person"<<" "<<i;} }; class Student:public …

命令执行漏洞(附例题)

一.原理 应用有时需要调用一些执行系统命令的函数&#xff0c;如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等&#xff0c;当用户能控制这些函数的参数时&#xff0c;就可以将恶意系统命令拼接到正常命令中&#xff0c;从而造成命令执行攻击。 二.利用条…

Linux平台如何实现采集音视频数据并注入轻量级RTSP服务?

技术背景 好多开发者&#xff0c;问我们最多的问题是&#xff0c;为什么要设计轻量级RTSP服务&#xff1f;轻量级RTSP服务&#xff0c;和RTSP服务有什么区别&#xff1f; 针对这个问题&#xff0c;我们的回答是&#xff1a;轻量级RTSP服务解决的核心痛点是避免用户或者开发者…

dll修复精灵,dll修复工具下载方法分享,mfc140u.dll缺失损坏一键修复

今天&#xff0c;我将为大家分享一个关于mfc140u.dll的问题。首先&#xff0c;我想问一下在座的网友们&#xff0c;有多少人知道mfc140u.dll是什么&#xff1f;又有多少人知道它的作用以及如何解决这个问题呢&#xff1f;在接下来的演讲中&#xff0c;我将详细介绍mfc140u.dll的…

transition-group过渡动画

安装lodash库 cnpm install lodash -S 安装lodash-type cnpm install types/lodash -D <template><div><button click"random">random</button><transition-group move-class"mmm" class"wraps" tag"div&qu…

C#使用proto

写多了go代码&#xff0c;被go mod tidy惯坏了&#xff0c;还以为全天下的都很好用呢&#xff0c;结果发现并不是这样。尤其是项目组的proto还是又封了个工具直接就能跑得&#xff0c;导致以为没那么复杂的事情变得复杂了起来。是有两套生成的规则&#xff0c;时间有点晚&#…

vue-router路由守卫

vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航分为&#xff1a;全局的&#xff0c;单个路由独享的和组件级的。 一、全局路由守卫1、全局前置守卫 beforeEach 在全局前置守卫中&#xff0c;我们可以访问到即将要进入的路由对象 to&#xff0c;以及当前的路由…

虹科分享 | 解决外科医生的担忧:AR让技术自己开口说话

在手术室中&#xff0c;分心可能导致严重错误和伤害&#xff0c;这凸显了在手术过程中减少对外科医生干扰的重要性。对于外科医生来说&#xff0c;在长时间的手术过程中&#xff0c;引入新技术设备时需要考虑多种因素。根据Vuzix对500多名外科医生的综合调查显示&#xff0c;使…

LeetCode 865. Smallest Subtree with all the Deepest Nodes【树,DFS,BFS,哈希表】1534

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

MFC中的Button修改颜色的方法

添加工具箱下面的MFC Button Control控件&#xff08;不使用普通的Button控件&#xff09;&#xff1b;给按键添加变量&#xff1a;m_MFCButton1&#xff0c;变量类型&#xff08;默认&#xff09;为&#xff1a;CMFCButton&#xff1b;testDlg.cpp中初始化中添加如下代码&…

GO语言常用标准库 fmt

GO语言常用标准库 fmt 1. fmt fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。 1.1.1. 向外输出 标准库fmt提供了以下几种输出相关函数。 Print Print系列函数会将内容输出到系统的标准输出&#xff0c;区别在于Print函数直…