首页 > 其他分享 >TCP协议详解

TCP协议详解

时间:2024-07-20 21:55:14浏览次数:7  
标签:协议 报文 TCP --- 详解 序列号 连接

TCP协议是一种传输控制协议,一种面向连接可靠传输协议。

TCP协议建立的链接是双向连接。

双向连接:在数据传输之前,收发双方需要预先建立一条逻辑通路。

无面向连接。 序列号SN 确认序列号AN 6 位标志位(URG、ACK、PSH、RST、SYN、FIN) URG---告诉对方有紧急数据在报文中 PSH---只要PSH出现,不管缓存区有没有满,都要立马把所有数据上传 SYN--- 同步位 --- 是在 TCP 三次握手建立通道时的标记 ACK--- 确认位 --- 当该标记位置为 1 时,确认序列号有意义 FIN--- 代表释放 TCP 连接 RST---用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求 TCP 分段:因为 IP 分片后, TCP 协议无法保证数据的可靠性传输;故而使用 TCP 协议进行封装的文件不允 许进行 IP 分片,而又因为 MTU 存在,需要将大文件分为小文件,该操作由 TCP 协议完成。 MSS---最大传输段===MTU-IP头部-TCP头部 在TCP协议中,每一个报文都需要有序列号信息可靠性 1.确认机制 ---- 每收到一个 TCP 数据段,都需要发送一次确认报文。 2.重传机制 ---- 超时重传 ,当一个数据段中的某个报文丢失,发送端会主动重新发送一次该报文。 3.排序机制 ---- 传输数据段时,被分为多个报文,从不同路径传输,最终达到目的地的顺序会被打乱, 需要根据序列号字段进行重新排序。 4.流控机制(滑动窗口机制):可以通过调节窗口大小( Windows )来对流量进行控制。

面向连接(三次握手,四次挥手)

三次握手

四次挥手

标签:协议,报文,TCP,---,详解,序列号,连接
From: https://blog.csdn.net/2302_77094126/article/details/140487875

相关文章

  • Redis详解
    Redis(RemoteDictionaryServer)是一种开源的内存数据结构存储系统,作为NoSQL数据库的一种,Redis因其高性能和丰富的数据类型被广泛应用于缓存、会话管理、实时分析等场景。一、Redis简介1.1什么是Redis?Redis是一个开源的、基于内存的数据结构存储系统。它支持多种数据结构,如......
  • HttpHeaders类详解,这一篇就够了
    目录一.总述二.案例展示三.set方法和add方法的区别1.set方法:2.add方法:区别总结:总结一.总述在Java中,HttpHeaders是一个用于表示HTTP请求或响应头的类,它属于java.net.http包,从Java11开始引入。这个类提供了一种方便的方式来操作HTTP消息头,包括添加、删除和获......
  • Java 代理模式详解
    Java代理模式详解1.代理模式代理模式是一种比较好理解的设计模式。简单来说就是我们使用代理对象来代替对真实对象(realobject)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。代理模式的主要作用是扩展目标对象的功能,比如说在目......
  • Android开发 - xmlns命名空间中tools详解
    xmlns:tools是什么命名空间tools可以告诉AndroidStudio,哪些属性在运行的时候是被忽略的,只在设计布局的时候有效。比如我们要让android:text属性只在布局预览中有效。tools可以覆盖android的所有标准属性,将android:换成tools:即可。同时在运行的时候就连tools:本身都是被忽略......
  • 中介者模式详解:概念、优点及实例
    目录中介者模式中介者模式结构中介者模式适用场景中介者模式优缺点练手题目题目描述输入描述输出描述题解中介者模式中介者模式是一种行为设计模式,能让你减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。......
  • C语言-“关系”,“条件”,“逻辑”操作符详解
    目录关系操作符 “==”与“=”的区别 多个关系运算符不宜连用多个关系运算符判断值是否在中间的写法条件操作符逻辑操作符逻辑取反操作符:!逻辑与运算符:&& 逻辑或运算符:||练习:闰年的判断短路 关系操作符c语言用于比较的表达式,称为“关系表达式”(relational......
  • dpvs 调整tcp mss
    修改tcpoptions中mss值src/ipvs/ip_vs_proto_tcp.c因为tcp头部options中不同kind顺序是随机的,所以需要遍历找到kind值是mss2和length值是4,再修改后面的mssvalue。staticvoidtcp_out_adjust_mss(intaf,structtcphdr*tcph){unsignedchar*ptr;intlength;......
  • 【I²C协议】STC89C51单片机IIC通信(代码+原理)
    STC89C51单片机IIC通信什么是I²C协议特点构成通信协议开始信号、结束信号、应答信号数据传输代码示例什么是I²C协议IIC,即I²C,全称Inter-IntegratedCircuit,字面上的意思是集成电路之间,它其实是I²CBus简称,所以中文应该叫集成电路总线,是由PHILIPS公司在80年......
  • Java中的枚举详解
    文章目录概述使用枚举枚举的实现枚举的性能枚举与常量枚举集合类枚举与泛型枚举与反射概述枚举在Java中是一种特殊的类,用来定义一组固定的常量。它在Java5中引入,提供了一种类型安全的方式来定义和使用常量集合。尽管enum看起来像是新的数据类型,但它实际上是一个受限......
  • 【Python】使用库 -- 详解
    库就是别人已经写好了的代码,可以让我们直接拿来用。一个编程语言能不能流行起来,一方面取决于语法是否简单方便容易学习,一方面取决于生态是否完备。所谓的“生态” 指的就是语言是否有足够丰富的库,来应对各种各样的场景。在实际开发中,也并非所有的代码都自己手写,而是要充分利......