TCP协议通信的过程

2023-11-15

终端之间的通信 一定是会话与会话 应用与应用之间的通信

端到端的连接是如何实现的?

通过端口 三次握手 实现

TCP的建立 三次握手

通信之前先要建立三次握手,建立成功才能够通信 三次握手就是TCP连接建立的过程

TCP中有六个bite位(指针位),哪一位为1就代表要做这件事

TCP报文交互过程 序列号与确认序列号

三次握手 四次断开 和序列号和确认序列号保证了数据的可靠性和有效传输

序号----本地发送的数据号 -----》对方发送的确认号

确认号---对方发送的序号+1 -----》对方发送的序号+窗口号(载荷长度)

TCP滑动窗口机制 传输的速率保障

滑动窗口的作用:代表接收方缓冲区的大小 代表接收方接收数据的量

滑动窗口 是可变的 会根据网络的状态和接收方的能力进行大小变化

他会先成倍的增长 发生错误在降下来

窗口的大小是对方给的

TCP的关闭 四次挥手

先是TCP发送断开的信息 但是不会立刻断开 连接还在 一直到对方不需要再用到客户端 才会停止连接

UDP和TCP的优缺点

udp传输的快 但是没有办法保证可靠性

TCP能保证可靠性 但是占用了更多的网络资源

网络层

网络层 定义的节点到节点 终端到终端 更有明确的目的性

网络层的ip地址 定义了一个节点 也明确了主机设备在互联网中的唯一性

网络层 会加上本机IP 目的IP 协议号 + 上层数据

协议号 用于区分上层协议 icmp 1 tcp 6 udp 17

源地址 目的地址 协议号 源端口 目的端口 ----五元组 可以确定一条会话

数据链路层 MAC地址

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TCP协议通信的过程 的相关文章

  • 从 iOS 应用程序上的 UDP 服务器接收数据无法在 Linux 服务器上工作,但可以在 macbook pro 上工作 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 背景 我做
  • 对 C# 中 UDP 协议的套接字感到困惑

    我刚刚开始通过各种 Google 搜索学习套接字 但在弄清楚如何在 C 中正确使用套接字时遇到一些问题 我需要一些帮助 我有一个测试应用程序 Windows 窗体 和一个不同的类 实际上在它自己的 dll 中 但这无关紧要 我有我的套接字代
  • 在 iOS 中跨应用程序(后台/前台或分屏多任务处理)共享 UDP 数据

    我正在编写一个研究应用程序 该应用程序利用通过 UDP 广播数据的特定传感器 有各种商业应用程序使用此传感器 我们希望能够同时运行我们的应用程序和现有应用程序 在过去 iOS 8 及更低版本 我们会在后台运行应用程序来记录数据 并在前台运行
  • Android udp 多播与以太网

    大家好 我正在开发一个使用 udp 多播的项目 我有一台服务器通过以太网电缆发送多播 udp 数据包 我花了几周的时间阅读有关 android 上多播的所有帖子 但我仍然无法在我的 Asus Transformer Tablet 4 1 上
  • 如何使用 ZeroMQ 处理原始 UDP?

    我有一个客户 我无法更改其代码 但我想使用 重新 编写ZeroMQ插座 客户使用原始TCP和原始的UDP插座 我知道我可以使用ZMQ ROUTER RAW对于生的TCP插座 但是原始的怎么样 UDP数据流 ZeroMQ 中对 UDP 的支持
  • UdpClient 在广播地址上接收

    在 c 中 我使用 UdpClient Receive 函数 public void StartUdpListener Object state try udpServer new UdpClient new IPEndPoint IPAd
  • Java UDP中如何获取实际数据包大小`byte[]`数组

    这是我上一个问题的后续问题 Java UDP发送 接收数据包一一接收 https stackoverflow com questions 21866382 java udp send receive packet one by one 正如
  • 数据报总是被完整接收吗?

    大多数数据报接收函数 例如c的recv或read java的DatagramPacket类或python的SocketServer 都包含找出接收数据量的可能性 c int amount recv sock buf n MSG WAITAL
  • Java:使用多个 DatagramSocket 接收 UDP 数据报包

    我正在尝试实现一种将 UDP 数据包发送到多个接收者的方法 我认为这应该是可行的设置setReuseAddress true 在接收 DatagramSocket 实例上 我的问题是 在某些情况下 我需要限制与本地计算机的通信 因此限制本地
  • 具有多个接口的 Python UDP 套接字

    我正在 Windows XP 机器上用 python2 7 编写脚本 本机使用不同的网卡连接到多个网络 我遇到了一个问题 我已将 UDP 套接字绑定到特定接口 我知道您可以通过仅提供网卡现有的 IP 地址来在 Windows 中完成此操作
  • 接收来自 N 个客户端的响应,以回复通过 UDP 的广播请求

    我正在为特定类型的网络多媒体设备实现一种 IP 查找器 我想找出 LAN 中该类型的所有活动设备及其 IP 地址和其他详细信息 设备有自己的设备发现方式 其工作原理如下 客户端通过 UDP 通过 LAN 发送广播请求 目的端口号是固定的 作
  • 如何监听任意端口的广播包?

    使用 NET 如何在任何端口上侦听发送到 255的udp广播数据包 而不需要绑定到特定端口 我自己找到了办法 它是这样工作的 mainSocket new Socket AddressFamily InterNetwork SocketTy
  • 致命错误:netinet/in.h:没有这样的文件或目录

    套接字编程 UDP 服务器 我正在尝试使用 UDP 服务器进行消息加密和解密 代码在这里 https www geeksforgeeks org message encryption decryption using udp server
  • netty 4.x.x 中的 UDP 广播

    我们需要使用 Netty 4 0 0 二进制文件通过 UDP 通道广播对象 Pojo 在 Netty 4 0 0 中 它允许我们仅使用 DatagramPacket 类来发送 UDP 数据包 此类仅接受 ByteBuf 作为参数 还有其他方
  • 数据包丢失和数据包重复

    我试图找出数据包丢失和数据包重复问题之间的区别 有谁知道 数据包重复 是什么意思 和TCP检测到丢失时重传数据包一样吗 No In TCP 数据包 的传递是可靠的 我认为在这种情况下术语数据应该更好 因为它是面向流的协议 数据包丢失和重复是
  • 在 macOS 10.12 上绑定到套接字时出现 NSPOSIXErrorDomain

    我正在玩CocoaAsyncSocket https github com robbiehanson CocoaAsyncSocket在 Swift 中绑定到 UDP 套接字并通过本地网络接收消息 我正在初始化一个套接字 并尝试绑定到一个端
  • 您可以bind()和connect() UDP连接的两端吗

    我正在编写一个点对点消息队列系统 它必须能够通过 UDP 运行 我可以任意选择一侧或另一侧作为 服务器 但这似乎不太正确 因为两端都从另一端发送和接收相同类型的数据 是否可以绑定 和连接 两端 以便它们只能彼此发送 接收 这似乎是一种非常对
  • 为多线程 UDP 客户端执行“close ()”时套接字描述符未释放

    我在下面编写了 UDP 客户端 它基本上生成一个单独的线程来接收数据报 但是数据报仅在主线程中发送 现在 在 Linux 发行版上实例化 udpClient 1 UDP 客户端后按 ctrl D 实现退出循环 围绕 getline 调用 并
  • recvfrom() 中的 addrlen 字段有何用途?

    我在程序中使用 recvfrom 从我在 src addr 中指定的服务器获取 DGRAM 数据 但是 我不确定为什么需要初始化并传入addrlen 我读了手册页 但不太明白它的意思 如果src addr不为NULL 并且底层协议提供了源地
  • 为什么 UDP 服务器中只有一个套接字?

    我正在准备考试 发现了这个问题 典型的 UDP 服务器可以使用单个套接字来实现 解释一下为什么 对于 TCP 驱动的服务器 我发现创建了两个套接字 一个用于所有客户端访问服务器 另一个用于每个客户端的特定 套接字 用于服务器和客户端之间的进

随机推荐

  • 压缩解压缩工具(gzip/gunzip、bzip2/bunzip2、zip/unzip、xz)和打包命令(tar)

    压缩 解压 打包命令 gzip gunzip命令 1 用途 注意 2 命令的使用格式 3 gzip和gunzip实例 bzip2 bunzip2命令 1 用途 注意 2 命令使用 3 bzip2和bunzip2实例 zip unzip命令
  • Linux系统Bash shell里解决中文输入和显示乱码的问题

    在VMWARE虚拟机里安装了CentOS6 5 由于工作性质 需要在shell里输入汉字 以及显示汉字 在网上搜索了很多设置方法 但都不管用 比如 vi etc sysconfig i18n 修改 LANG zh CN UTF 8 或者无论
  • [GKCTF 2021]easynode

    GKCTF 2021 easynode 知识点 js 弱类型 ejs 原型链污染 解题 源码 const express require express const format require string format const se
  • PyCharm中按住Alt键,可以选择一个指定列表,然后对这个数列进行操作,比如删除,增加等等...

  • jenkins学习笔记第七篇HTML Publish Report

    上一篇讲解了下载HTML Publisher Plugin 插件后 在项目构建发布HTML Report 项目执行后可以在构建里看到HTML Report 但是打开jenkins的报告是不会展示出原本的样式格式 因为jenkins将这些cs
  • js虚拟代理实现图片的预加载

    h1 虚拟代理实现图片的预加载 h1 p 在Web开发中 图片预加载是一种常见的技术 如果直接给某个img标签节点这只src属性 由于图片过大或者网络不佳 图片的位置往往有一片 空白 常见的做法是先用一张loading图片占位 然后用异步的
  • STM32f103 串口接收不定长数据

    推荐方法三 方法1 串口接受数据 定时器来判断超时是否接受数据完成 方法2 DMA接受 IDLE中断 实现思路 采用STM32F103的串口1 并配置成空闲中断IDLE模式且使能DMA接收 并同时设置接收缓冲区和初始化DMA 那么初始化完成
  • Windows平台下 USRP E310 基础环境配置

    原创声明 作者 Billyme 詩 博客园 https www cnblogs com billyme CSDN https blog csdn net horizon08 Github https billyas github io 本文
  • anaconda安装jieba(被折腾了很久)终于搞定

    今天打算在anaconda下安装jieba 总感觉直接pip install jieba可以轻松搞定 最后发现too young to simple 我首先使用pip install jieba或者conda install jieba 或
  • Intent隐式启动 AndroidManifest.xml 中的intent-filter

    隐式启动Activity的intent到底发给哪个activity 需要进行三个匹配 一个是action 一个是category 一个是data 可以是全部或部分匹配 同样适用于Service和BroadcastReceiver 下面是以A
  • SQL中的脏读、不可重复读、幻读

    一 数据库事务隔离级别 数据库事务的隔离级别有4个 由低到高依次为Read uncommitted Read committed Repeatable read Serializable 这四个级别可以逐个解决脏读 不可重复读 幻读 这几类
  • dw创建站点本地服务器,在Dreamweaver建立本地虚拟机站点

    这次给大家讲解一下在Dreamweaver cs6里建立本地虚拟机站点 步骤 1 首先要知道电脑安装的虚拟机的重要信息 虚拟机首页地址 127 0 0 1 ocalhost 要设置好虚拟机上的文档地址为d www地址 这样我们教材上讲的内容
  • MySQL02

    MySQL基础回顾 1 数据库概念 数据库 存储数据的仓库 逻辑概念 并未真实存在 数据库软件 真实软件 用来实现数据库这个逻辑概念 数据仓库 数据量更加庞大 更加侧重数据分析和数据挖掘 供企业决策分析之用 主要是数据查询 修改和删除很少
  • Several Machine Learning Problems

    Classification Classification algorithms are algorithms that learn topredict theclass orcategory of an instance of data
  • 不是具体的python序列类型的是_python的序列类型不包括

    Python中除了字符串以外 还有哪些常用的序列类型呢 题主欢迎来到CSS布局HTML 序列类型除了题主提到的 字符串 外 常用的还有 列表 list 元组 tuple range 对象 参考 题主有时间可以看一下Python官网Built
  • CTF-WEB(攻防世界题目-新手区)

    CTF WEB 新手区 view source robots backup Cookie disabled button weak auth simple php get post xff referer webshell waf simp
  • 技术服务线上沙龙——WebGL三维空间分析线上问题整理

    12月20日 超图集团质控与支持中心组织了岁末冲刺技术服务福利第三弹 WebGL三维空间分析 在讲解过程中就不断有朋友们在留言区提问 后面有朋友们提出将问题整理为文档 方便大家后续查看 于是 技术支持的同事们打铁趁热 将线上关注度较高的问题
  • 视频图像去雨论文数据集主页整理总结

    概述 近年来 计算机视觉快速发展 在各领域取得了较大的进展 尤其是随着深度学习的提出 计算机视觉再封闭和受限环境下都有着不错的表现 但是 面对开放和恶劣环境下 依然存在这巨大的挑战 常见的就是恶劣天气 对于户外的视觉系统 包括自动驾驶 视频
  • python编辑器IDLE的使用说明

    1 idle快捷键说明 alt n 返回之前输入过的上一个命令 alt p 下一个命令 ctl n 创建新的py文件 运行是F5 参考博客 https blog csdn net Dreamy LIN article details 794
  • TCP协议通信的过程

    终端之间的通信 一定是会话与会话 应用与应用之间的通信 端到端的连接是如何实现的 通过端口 三次握手 实现 TCP的建立 三次握手 通信之前先要建立三次握手 建立成功才能够通信 三次握手就是TCP连接建立的过程 TCP中有六个bite位 指