| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 当UDP协议客户端给TCP协议服务器发数据会发生什么 -> 正文阅读 |
|
[网络协议]当UDP协议客户端给TCP协议服务器发数据会发生什么 |
咱先试试正常的TCP与TCP的通信 使用Wireshark去抓ubuntu中我自己写的一个局域网服务器的包 可以看到三次握手四次挥手 以及 传输数据与ACK应答的过程 ? 那么? 当TCP服务器与UDP通信 会发生什么呢 ? ?可以看到 TCP服务器终端这边没有任何的相应(因为TCP服务器这里在accept那阻塞) 但是UDP客户端里还是收到了来自服务器ip地址的回信 回信协议就是ICMP 该回信回复了该消息不可到达 但是 既然服务器正在accept阻塞 我的代码此时也没有开多进程多线程 那么是谁在给UDP客户端发送错误? 答:服务器主机或者路由器发送的ICMP,ICMP是一个网络层协议,他被用于路由器或主机的控制消息,而这里发给该UDP协议的消息为“数据没有被送达” 又有新的问题了 我在该UDP上已经指定了接收端的IP以及端口 也都正确,为什么会没有送达呢? 答:TCP与UDP因为协议不同 使用的端口实际上也不同 尽管他们的数字都是相同的 通过解包该ICMP包 我们能看到Type为3 Code为3 对照ICMP消息类型表可知: ?实际上产生不可到达的错误的真实原因 居然真的不是协议不可到达 而是端口不可达 ? 那么我在很短的时间内 不断地用UDP客户端发数据给TCP服务器会怎么样可以看到 主机只发送了一次ICMP包 因为ICMP同样有承担着防御、抵制攻击的功能 如果有个坏蛋就不断的用错误信息给服务器发送数据,每次错误ICMP都回复一次,那么主机将会浪费大量的CPU资源在此上面,主机卡死只是时间的问题。 ? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:35:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |