二、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也是很经常使用的.这样的无连接的协议在很多其它场合为用户提供了便 ...
随机推荐
- java实现单向循环链表
链表图解 带头结点的链表: 不带头结点的链表: 区别 带头结点的链表容易代码实现 不带头结点的容易实现循环链表和双向链表 代码的实现 (增减 删除) 节点实现: public class node { ...
- Hello2020(前四题题解)
Hello,2020!新的一年从快乐的掉分开始…… 我在m3.codeforces.com这个镜像网站中一开始还打不开D题,我…… 还有话说今天这场为什么那么多二分. 比赛传送门:https://co ...
- 1062 最简分数 (20分)C语言
一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0.最简分数是指分子和分母没有公约数的分数表示形式. 现给定两个不相等的正分数 N1/M1和 N2/M2,要求你按从小到大的顺序列出它们之间 ...
- Prometheus基础应用
简介 Prometheus使用扫盲,包含基础的概念和操作说明,基于官网和个人测试. versoin: 2.14 官网 GitHub 安装 prometheus安装运行非常方便,下载后解压,运行根目录下 ...
- 从零开始学asyncio(中)
本篇文章主要是讲解asyncio模块的实现原理. 这个系列还有另外两篇文章: 从零开始学asyncio(上) 从零开始学asyncio(下) 一. asyncio模块简介 asyncio是python ...
- 25.xlrd、xlwt和openpyxl模块的比较和使用
xlrd.xlwt和openpyxl模块的比较:1)xlrd:对xls.xlsx.xlsm文件进行读操作–读操作效率较高,推荐2)xlwt:对xls文件进行写操作–写操作效率较高,但是不能执行xlsx ...
- key_load_public: invalid format
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub
- OpenStack Identity API v3
Table Of Contents OpenStack Identity API v3 What’s New in Version 3.7 What’s New in Version 3.6 What ...
- VMware显示错误:“未能锁定文件 无法打开磁盘 ..\*.vmdk 或者某一个快照所依赖的磁盘。”解决办法
问题描述: 使用VMware时遇到错误:“未能锁定文件 无法打开磁盘 ..\*.vmdk 或者某一个快照所依赖的磁盘.” 问题出现的原因: 虚拟磁盘(.vmdk)本身有一个磁盘保护机制,为了防止多台虚 ...
- Java控制台五子棋(纯算法)
Java五子棋小游戏 本方案是基于控制台写的一个代码 没有花里胡哨的界面,只为研究算法 仅仅用了200行代码 下面是的是运行结果 游戏运行结果 这里我就很简单的复制了一个结果 第9回合,下子方:玩家2 ...