当前位置: 首页 > news >正文

网络通信1-传输层

tcp的三次握手:
TCP(传输控制协议)的三次握手是建立一个可靠的连接的过程。这个过程中涉及到的主要参数包括:

  1. 序列号(Sequence Number, SEQ):

    • 在第一次握手中,发起方(客户端)发送一个带有初始序列号(ISN, Initial Sequence Number)的SYN(同步)报文段给接收方(服务器)。这个序列号是一个随机数,用于数据包的排序和确认。
  2. 确认号(Acknowledgment Number, ACK):

    • 接收方在第二次握手中返回一个SYN-ACK报文段,其中包含自己的初始序列号,并且设置确认号为收到的序列号加1(即客户端ISN+1),表示希望下一个收到的数据包的序列号。
    • 发起方在第三次握手中发送一个ACK报文段,其确认号为服务器端ISN+1,确认收到了服务器的SYN-ACK。
  3. 标志位(Flags):

    • SYN: 同步标志,在第一次和第二次握手时被设置,表示请求建立连接。
    • ACK: 确认标志,在第二次和第三次握手时被设置,表示对之前接收到的数据包进行确认。
    • FIN: 结束标志,虽然不是三次握手的一部分,但在连接关闭时会用到。
  4. 窗口大小(Window Size, WIN):

    • 这个值表示接收方愿意接受的数据量大小。它告诉对方自己能够处理多少字节的数据,从而防止拥塞。窗口大小可以在每次握手以及后续的数据传输中动态调整。
  5. 校验和(Checksum):

    • 用于验证TCP头部及数据部分的完整性。如果校验和不正确,那么该数据包将被丢弃。
    • 具体:发送方计算后放在tcp的头部并发送给接收方;接收方根据报文情况计算出校验和与TCP头部的校验和比对。
  6. 紧急指针(Urgent Pointer):

    • 指示紧急数据的最后一个字节的位置。如果设置了URG标志,这个字段才有效。
  7. 选项(Options):

    • TCP头部可以包含可选参数,如最大段大小(MSS, Maximum Segment Size)、窗口缩放等,这些通常出现在SYN报文中以协商通信参数。
http://www.lryc.cn/news/449488.html

相关文章:

  • 【JAVA源码授权】
  • tauri开发软件中,使用tauri自带的api用浏览器打开指定的url链接
  • OpenCV-图像拼接
  • C++【类和对象】(取地址运算符重载与实现Date类)
  • oracle 数据库中的异常和游标管理
  • 关于python 日志设定为INFO 但是DEBUG仍旧写入的问题
  • TypeScript 语法基础 第一部分 类型
  • GO Serial 学习与使用
  • 安卓app开发系列之-常用工具与库
  • 视频汇聚EasyCVR视频监控平台调取接口提示“认证过期”是什么原因?
  • uniapp视频禁止用户推拽进度条并保留进度条显示的解决方法——方案二
  • mysql复合查询 -- 多表查询(介绍,笛卡尔积,使用),自连接(介绍,使用)
  • 【个人笔记】数据一致性的解决方案
  • 【WPF】多屏幕展示
  • vue admin 若依框架 解决无权限时进入死循环的问题 auths
  • kubernetes存储入门(kubernetes)
  • 局部代理有什么好处?为什么不使用全局代理?
  • ssm模糊知识点整合
  • 2、Spring Boot 3.x 集成 Feign
  • 深度学习-图像处理篇-5ResNet和ResNeXt
  • 类的关联、依赖、聚合和组合关系的思考(一)
  • 云舟观测:集成开源Grafana Faro构建前端页面性能监控平台
  • c# 子类继承父类接口问题
  • Vue 中自定义指令的探索与实践
  • Vue3通过$emit实现子向父传递数据
  • 代码随想录算法训练营第十四天|递归 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度
  • Spark 任务与 Spark Streaming 任务的差异详解
  • Git提示信息 Pulling is not possible because you have unmerged files.
  • python编程开发“人机猜拳”游戏
  • 丹摩智算平台部署 Llama 3.1:实践与体验