二、UDP
1 端口号
在计算机网络和电磁信号理论中,对共享同一通信信道的多个信号进行区分是个常见的问题。多路复用(multiplexing)就是允许多个会话共享同一介质或机制的一种解决方案。
使用不同的频率来区分无线电信号是一个著名的发现。
每个udp数据包分配一对无符号16位端口号,0到65536。源端口标识了源机器上发送数据包的特定进程或程序,而目标端口则标识了目标ip地址上进行该会话的特定应用程序。
在IP网络层上,唯一可见的就是向特定主机传输的数据包。
2 套接字
网络操作背后的系统调用都是围绕着套接字(socket)进行的。套接字是一个通信端点,操作系统使用整数来标识套接字,而Python用socket.socket对象来更方便地表示。
该对象内部维护了操作系统标识套接字的整数(可以用fileno()方法查看)。每当调用socket.socket对象的方法请求使用该套接字的系统调用时,该对象都会自动使用内部维护的套接字整数标识符。
2.1 混杂客户端与垃圾回复
客户端面对任何可以向其发送udp数据包的终端都是脆弱 的。这与中间人攻击不同,中间人是取得网络控制权后从非法地址发送伪造数据包,这种通信只能通过加密保护。
像这种不考虑地址是否正确,接收并处理所有收到的数据包的网络监听客户端在技术上叫做混杂客户端。有时会故意用,进行网络监控时,需要监控到达某一接口的所有数据包。
只有编写良好的优秀加密方法,才可以保证程序与正确的服务器通信。无法做到时有两个方法:
1.设计或使用在请求中包含唯一标识符或请求ID的协议,在 响应中重复特定的请求的唯一标识符或请求ID。如果响应包含了需要的ID,就表示该响应确实来自服务器。只要ID取值范围足够大,攻击者就无法在短时间内简单地把可能包含准确的ID的数据包都试一遍。
2. 可以检查相依数据包的地址与请求数据包的地址是否相同,也可以用connect()来阻止其他地址向客户端发送数据包。
二、UDP的更多相关文章
- stm32+lwip(二):UDP测试
我是卓波,很高兴你来看我的博客. 系列文章: stm32+lwip(一):使用STM32CubeMX生成项目 stm32+lwip(二):UDP测试 stm32+lwip(三):TCP测试 stm32 ...
- W5500EVB UDP模式的测试与理解-新华龙电子
WIZnet 之前已经介绍过W5500EVB 在TCP模式下的两种(Server及Client)数据传输的实现过程,那么传输控制协议中,UDP也是非常常用的,这种无连接的协议在更多场合为用户提供了便捷 ...
- 【LINUX/UNIX网络编程】之使用SOCKET进行UDP编程
先看任务需求: 实验二 UDP数据发送与接收 [实验目的] 1.熟练掌握套接字函数的使用方法. 2.应用套接字函数完成基本UDP通讯,实现服务器与客户端的文件传送 [实验学时] 4学时 [实验内容] ...
- UDP广域网,局域网通信-原理分析,穿透技术
一.UDP局域网通信. 这个比较简单,关于局域网中的2台或者更多的计算机之间的UDP通信,网络上一大把,直接复制粘贴就可以使用,原理也非常简单.所以,本文不做详细介绍. 二.UDP广域通信(包括路由器 ...
- C#UDP广域网,局域网通信-原理分析
一.UDP局域网通信. 这个比较简单,关于局域网中的2台或者更多的计算机之间的UDP通信,网络上一大把,直接复制粘贴就可以使用,原理也非常简单.所以,本文不做详细介绍. 二.UDP广域通信(包括路由器 ...
- 面试:TCP和UDP协议
目录 TCP 协议 UDP协议 TCP和UDP的区别 TCP和UDP的使用场景 一 TCP协议 1.TCP的头部格式 理解TCP协议,首要的就是TCP协议的头部格式 · Source P ...
- iOS 网络编程 TCP/UDP HTTP
一.HTTP协议的主要特点: 1. CS模式 2. 简单快速:只需要传送请求方法和路径.(常用方法有GET,HEAD,POST) 3. 灵活:任意对象都可以,类型由Content-Type加以标记 4 ...
- 总结day25 ---- udp 初识, 和tcp 进阶
前情提要 一: tcp 和udp 的区别 # tcp # # 面向连接的 可靠的 全双工的 流式传输 # # 面向连接 :同一时刻只能和一个客户端通信 # # 三次握手.四次挥手 # # 可靠的 :数 ...
- c++ 网络编程(一)TCP/UDP windows/linux 下入门级socket通信 客户端与服务端交互代码
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9601511.html c++ 网络编程(一)TCP/UDP 入门级客户端与服务端交互代码 网 ...
- W5500EVB UDP模式的測试与理解
之前的博文中已经介绍过W5500EVB 在TCP模式下的两种(Server及Client)传输数据的实现过程,那么传输控制协议中,UDP也是很经常使用的.这样的无连接的协议在很多其它场合为用户提供了便 ...
随机推荐
- Maven 生命周期的概念(指令默认顺序执行)
生命周期的概念 IDEA中使用maven构建项目都集中放到了窗口右侧"Maven Projects"中,点击该区域可以直观的看到,maven中几个常用指令都归类为LifeCycle ...
- 「洛谷P3469」[POI2008]BLO-Blockade 解题报告
P3469[POI2008]LO-Blockade 题意翻译 在Byteotia有n个城镇. 一些城镇之间由无向边连接. 在城镇外没有十字路口,尽管可能有桥,隧道或者高架公路(反正不考虑这些).每两个 ...
- 手把手带你了解消息中间件(2)——RabbitMQ
RabbitMQ官网: http://www.rabbitmq.com/ Erlang官网:https://www.erlang.org 友情提示:RabbitMQ基于Erlang语言开发的,要想使用 ...
- docker+mysql 更改配置后重启不了的解决方案
docker+mysql 更改配置后重启不了的解决方案 前提:在最近的项目中,决定将项目改造成数据库读写分离的架构,于是擅自更改生产环境的数据库的配置文件my.cnf,由于我是用docker进行部署的 ...
- Win10系统下MySQL压缩版安装配置教程
MySQL分为安装版和压缩.为了以后MySQL出问题想重装时的各种不必要的麻烦,我个人推荐压缩版MySQL.下面进入教程: 进入官网下载MySQL压缩包,并解压如下 配置环境变量---将bin文件的目 ...
- [Debug]IOS微信浏览器不支持form表单的target=_blank
测试代码如下 <?php echo '<meta name="viewport" content="width=device-width,minimum-sc ...
- Netty快速入门(09)channel组件介绍
书接上回,继续介绍组件. ChannelHandler组件介绍 ChannelHandler组件包含了业务处理核心逻辑,是由用户自定义的内容,开发人员百分之九十的代码都是ChannelHandler. ...
- C语言之函数用法总结
C语言函数概述: 构成C语言程序的基本模块,模块化编程的最小单位. 函数调用的基本方式: 函数调用时的数据传递: 函数调用的过程: 函数原型与函数定义的区别: 函数封装: 1.外界对函数的影响仅限于入 ...
- graphviz 的使用教程
node 节点属性如下 : Name Default Values color black node shape color comment any string (format-dependen ...
- Akka Java 文档 -- 容错
[转自: http://blog.csdn.net/zjw10wei321/article/details/46911825] 容错 实际中的故障处理 容错案例图解 容错案例所有源码 创建新的监管策略 ...