
通信
文章平均质量分 87
常用通信协议学习
HMJ_
生命不止,学习不息。
展开
-
TCP KEEP-ALIVE和TCP_USER_TIMEOUT机制
正常通信的情况下,send函数发送成功会返回发送数据的字节数。当有错误发生时,send返回-1,全局变量errno被设置。很多情况下,send返回-1是由于连接被对端关闭(对端发送了RST或者FIN包),这种情况errno会被设置为ECONNRESET(Connection reset by peer)。可是在对端的网线被拔、网卡被卸载或者禁用的时候,对端没有机会向本地操作系统发送TCP RST或者FIN包来关闭连接。这时候操作系统不会认为对端已经挂了。所以在调用send函数的时候,返回的仍然是我们指定转载 2021-05-15 17:29:47 · 3021 阅读 · 0 评论 -
使用wireshark分析HTTPS数据包
概要本文的主要内容是使用wireshark分析https数据流,因为https使用SSL或TLS加密,因此要先使用中间人技术获取通信使用的加密密钥,然后通过wireshark工具导入数据包,再导入密钥进行解密即可看到原始的数据流;如果你想实时看到解密数据,推荐使用Charles或者fiddle工具进行中间人代理分析;该文主要目的是为记录一种通过wireshark分析https数据流的方式;Executive SummaryThis tutorial is designed for securit转载 2021-05-08 09:45:39 · 6502 阅读 · 1 评论 -
浅谈Charles抓取HTTPS通信内容原理
问题最近对http通信及https通信有点兴趣,但是因为https的不透明性,因此想了解其内容有点麻烦,但是既然是客户端->服务端之间加密, 我自己是客户端就肯定可以获取到通信内容,不然浏览器也不会能显示。两款常用的分析https通信内容的软件就是Charles和Fiddler, 两者都差不多都是作为中间人代理通信,所以通信内容对齐透明。原理在关于HTTPS,你需要知道的全部中,分析了HTTPS的安全通信过程,知道了HTTPS可以有效防止中间人攻击。但用过抓包工具的人都知道,比如Charles,转载 2021-04-23 10:13:29 · 270 阅读 · 0 评论 -
socks代理转http代理
问题公司最近加强了网络管理, 工作时间内好多网站都被禁止访问, 主要我们工作的过程中有时候需要挑选器件访问淘宝, 被限制访问就很麻烦;方案我在设置了一个socks类型的代理服务, 用于作为正常访问的跳转台. 但是还是存在问题, ie浏览器和一些软件不支持设置特定类型代理; 因此我们就需要引入额外的工具来帮助我们的软件能正常访问淘宝等网站, 解除工作时间的访问限制(咨询过网管, 他们放行特定ip的申请太繁琐, 而且审批也浪费时间).下载Privoxy并安装.下载连接:Link 这是source原创 2021-03-16 12:27:12 · 1917 阅读 · 0 评论 -
通过4G模块定位设备
问题最近考虑到设备定位功能的改进, 考虑到成本与定位精度的要求, 单独加GPS模块不太适用于我们, 因此将定位的功能希望通过基站定位实现, 达到模块多用;结果更换模块最简单的办法就是将4G模块改为含定位功能的模块, 不过要额外增加GNSS天线等, 4G模块的价格也会升高, 而且室内信号差因为这些这种方法就暂时不考虑了.移远定位服务其次就是通过移远模块自带的AT进行基站定位, 本质就是调用移远的IOT云服务进行基站定位.要先在移远物联网云服务平台申请token, 然后在模块中通过以下AT指令获取原创 2020-12-08 16:49:09 · 10352 阅读 · 3 评论 -
MAC地址随机化介绍
Apple’s newest beta version of iOS 14 has a setting that will change the way people connect and stay connected to Wi-Fi networks. While other operating systems, including Android 10, already had this feature, it has much broader implications for Apple devi转载 2020-10-19 10:20:46 · 10563 阅读 · 0 评论 -
IP组播(多播)简介
组播、单播和广播的定义单播、组播和广播都是IP报文网络传输的三种模式,它们的定义如下:单播 是主机间一对一的通讯模式,网络中的设备根据网络报文中包含的目的地址选择传输路径,将单播报文传送到指定的目的地,只对接收到的数据进行转发,不会进行复制。它能够针对每台主机及时的响应,现在的网页浏览全部都是采用单播模式。广播 是主机间一对所有的通讯模式,设备会将报文发送到网络中的所有可能接收者。设备简单地将它收到的任何广播报文都复制并转发到除该报文到达的接口外的每个接口。广播处理流程简单,不用选择路径。组播 是原创 2020-09-23 19:59:53 · 3044 阅读 · 0 评论 -
TCP传输中粘包/拆包问题
目录简介产生原因解决方法1. 改成短连接2. 封装成帧参考文章简介TCP 传输中,客户端发送数据,实际是把数据写入到了 TCP 的缓存中,粘包和半包也就会在此时产生。客户端给服务端发送了两条消息ABC和DEF,服务端这边的接收会有多少种情况呢?有可能是一次性收到了所有的消息ABCDEF,有可能是收到了三条消息AB、CD、EF。上面所说的一次性收到了所有的消息ABCDEF,类似于粘包。如果客户端发送的包的大小比 TCP 的缓存容量小,并且 TCP 缓存可以存放多个包,那么客户端和服务端的一次通信就可能原创 2020-09-16 09:44:28 · 441 阅读 · 0 评论 -
博客自定义域名
背景很久之前卖了域名,之前一直解析到自己的vps上。最近经常访问自己的csdn博客,而csdn的博客域名太难记了,而且想要专有域名需要开通csdn会员才能使用,并且格式是xxx.blog.csdn.com比较长,使用也不方便。于是想到用自己买的域名解析到自己CSDN的博客。方案一开始想的是通过阿里云(万网,即你购买域名的服务商)设置解析值,直接解析到csdn博客,看了下解析设置的界面,发现有个显性URL重定向的解析选项,可是只能是有备案号且解析商是万网的网站。因此通过只能其它网站重定向csdn博客了原创 2020-08-04 21:12:20 · 939 阅读 · 1 评论 -
pelco-d 协议指南
Pelco-D 是一种用在CCTV产业上颇受欢迎的PTZ(Pan水平/Tilt竖直/Zoom放大)相机控制协议。Pelco-D的格式Pelco-D包含7字节(本文中所有字节数据都是16进制,除非特别声明)Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Sync Camera Address Command 1 Command 2 Data 1 Data 2 Checksu原创 2020-07-28 17:11:54 · 12910 阅读 · 6 评论 -
http chunked
问题这几天在对接协议的时候发现对接服务器所给的回复有些奇怪,http头中没有Content-Length字段,仔细看了下返回的数据,其中多了Transfer-Encoding: chunked字段,用Python测试解析接口正常,于是明白是没有http的一种传输数据的方式。结果查了下关于Transfer-Encoding的介绍:Transfer-Encoding 消息首部指明了将 entity 安全传递给用户所采用的编码形式。Transfer-Encoding是一个逐跳传输消息首部,即仅应用于两个原创 2020-07-28 15:22:21 · 762 阅读 · 0 评论 -
TCP协议详解
转自:(传输层)TCP协议,挺详细的关于TCP协议的介绍首部格式图释:各个段位说明:源端口和目的端口: 各占 2 字节.端口是传输层与应用层的服务接口.传输层的复用和分用功能都要通过端口才能实现 序号: 占 4 字节.TCP 连接中传送的数据流中的每一个字节都编上一个序号.序号字段的值则指的是本报文段所发送的数据的第一个字节的序号 确认号: 占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号 数据偏移/首部长度: 占 4 位,它指出 TCP 报文段的数据起.转载 2020-06-13 09:36:35 · 2811 阅读 · 0 评论 -
TCP协议详解
本文转自:(传输层)TCP协议[转发仅作保存备份,推荐原文观看]首部格式图释:各个段位说明:源端口和目的端口: 各占 2 字节.端口是传输层与应用层的服务接口.传输层的复用和分用功能都要通过端口才能实现 序号: 占 4 字节.TCP 连接中传送的数据流中的每一个字节都编上一个序号.序号字段的值则指的是本报文段所发送的数据的第一个字节的序号 确认号: 占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号 数据偏移/首部长度: 占 4 位,它指出 TCP ..转载 2020-06-09 11:03:11 · 372 阅读 · 0 评论 -
socket连接过程中,异常断开(服务关闭和网线断开)的处理
场景嵌入式设备经常用到tcp通信,设备端内部负责维护一个长连接的socket,来与服务端通信,但是有时候网络环境会发生波动导致网络异常,这时候就需要设备有一个断线重连机制。有时候客户端和服务端之间未做应用层心跳保活,无法修改服务端内容,这时候就需要设备自己检测网络是否正常了。方案当服务端关闭服务或者服务端异常退出时,我们通过recv和send的返回值能判断链接已经关闭,这时候就可以进入重连流程了。但是如果连接过程中网络断开(不一定是设备端网络断了,可能是路由器,可能是远端服务器),我们recv和sen原创 2020-06-01 14:58:37 · 17875 阅读 · 0 评论 -
Wireshark中[TCP Window Full] 和 [Zero Window]帧的含义
TCP/IP协议为流控制协议,TCP窗口是其中一个重要的概念。在TCP接受和发送端都有缓存区,用户缓存数据,当缓存区满的时候就不能在向缓存区中写入数据了。发送缓存区满表现为send的返回值不再是指定的字节数,而小于该值的一个值;而接收缓存区满表现为对端发送收到影响。[TCP Window Full] :服务端向客户端发送的一种窗口警告,表示已经发送到数据接收端的极限了。[TCP Window Update]:缓冲区已释放为所示的大小,因此请恢复传输。[Zero Window] :客户端向服务端发送的一原创 2020-05-14 13:56:46 · 16414 阅读 · 3 评论 -
Socket编程教程
socket编程是嵌入式开发的基本功,理解并熟练应用socket是很重要的,一段时间不写相关的代码的难免会有所遗忘,前几天重写时回顾了下,找到一篇不错的教程,分享一下:socket是什么套接字有哪些类型面向连接和无连接的套接字到底有什么区别OSI网络七层模型简明教程TCP/IP协议族IP、MAC和端口号Linux下的socket演示程序Windows下的socket演示程序使用...原创 2020-05-06 15:51:58 · 522 阅读 · 0 评论 -
Http简易客户端实现思路
最近一个项目需要使用http协议,但是设备空间有限,curl库放不下了,因为所需要的功能很简单,所以就了解一下http协议内容相关流程,自己写了一个针对于业务的http client实现,在协议实现的过程中,对curl库中一些设置也有了更直观的理解;业务中的需求:实现http的get、post、put请求;实现长连接和短链接两种形式;实现http digest ,basic token认...原创 2020-04-30 16:23:30 · 404 阅读 · 0 评论 -
libcurl的使用
一、LibCurl基本编程框架libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。想要知道更多关于libcurl的介绍,可以到官网http:...转载 2020-03-23 11:11:34 · 519 阅读 · 0 评论 -
http put和post的区别
PUT POST RFC-2616 clearly mention thatPUTmethod requests for the enclosed entity be stored under the suppliedRequest-URI. If the Request-URI refers to an already existing resource – an update ...转载 2020-03-23 11:04:25 · 526 阅读 · 0 评论 -
WLAN入门到精通
前一段时间学习无线网络相关知识,看到了华为论坛的一个系列帖子,最近看完了,觉得不错,对无线交互的整个过程有个相近的介绍,适合初学者去学习理解。-------------------------------------------------------------------------------------------------------------------------------...转载 2020-01-19 13:14:04 · 2530 阅读 · 0 评论 -
CME & CMS ERROR错误代码
Error Description4G通信模块指令错误码描述CME ERROR's (GSM Equipment related codes)CME ERROR: 0 Phone failureCME ERROR: 1 No connection to phoneCME ERROR: 2 Phone adapter link reservedCME ERROR: 3 Ope...转载 2019-11-11 13:47:38 · 5492 阅读 · 0 评论 -
Radiotap头信息解析
在Linux系统中用wireshark或tcpdump抓无线网卡数据包,每一数据帧前面都有一个叫radiotap的协议头,它包含了信号强度、噪声强度、信道、时间戳等信息。radiotap比传统的Prism或AVS头更有灵活性,成为ieee802.11事实上的标准。支持radiotap的系统较多,如Linux、FreeBSD、NetBSD、OpenBSD,还有Windows(需使用AirPcap)。...转载 2019-05-05 17:04:44 · 665 阅读 · 0 评论 -
WiFi接入原理
WiFi接入原理工作站(STA,即无线客户端)首先需要通过主动/被动扫描发现周围的无线服务,再通过认证和关联两个过程后,才能和接入点(AP,Access Point)建立连接,最终接入无线局域网。参考:Kelvel2012 DoubleLi Wayne-Woo Wayne-Woo Wayne-Woo1. 扫描(Scanning)无线客户端有两种方式可以获取到周围的无线...转载 2019-05-08 17:40:21 · 21854 阅读 · 7 评论 -
WPA Information Element介绍
The Wi-Fi/802.11 standard introduced two new Information elements to cater to the new WPA/WPA2 encryption scheme. They are the WPA (Wireless Protected Access) and RSN (Robust Security Network) Informa...翻译 2019-05-08 18:07:18 · 1784 阅读 · 1 评论 -
RSN Information Element介绍
专业词汇参考: 中国通信标准化协会_通信词典The RSN information element was brought out by the IEEE 802.11i Task Group. RSN stands for Robust Security Network and it made AES cipher mandatory with the use of Robust Se...翻译 2019-05-08 18:37:09 · 4398 阅读 · 0 评论 -
802.11控制帧和管理帧要素说明
控制帧主要用于协助数据帧的传递,可用于管理无线媒介的访问、提供MAC层的可靠性。以下只讲帧类型,不讲帧结构。1.1 RTS帧:用来取得媒介的控制权,用于传送分段帧,分段由网卡驱动程序中的RTS threshold阀值确定。 1.2 CTS帧:用于回复RTS帧,没有RTS就没有CTS。 1.3 ACK帧:MAC及任何数据的传送(包括一般传送,RTS/CTS交换之前的帧、帧片段)所需要的肯定...转载 2019-05-09 11:22:48 · 2430 阅读 · 0 评论 -
CWAP – MAC Header : Frame Control
As shown in the below figure, 802.11 MAC header has 9 major fields2 Byte –Frame Control 2 Byte –Duration/ID 4×6 Byte –Address 1 – 4 2 Byte –Sequence Control 2 Byte –QoS control 4 Byte –...转载 2019-05-07 13:48:03 · 907 阅读 · 0 评论 -
802.11 学习记录
无线局域网组成示例主要名词解释Access Point(AP)接入点,多指无线访问接入点,即通常所说的路由器。Station(STA)站点,泛指无线接入设备,如笔记本电脑、平板电脑、手机等。Basic Service Set(BSS)所有无线设备(STA)关联到一个访问点(AP)上,它们构成一个基础服务集合。在集合中,访问点控制和主导整个BSS中的全部数据的传输...原创 2019-05-15 09:35:40 · 589 阅读 · 0 评论 -
使用AirCrack破解wifi密码(wpa/wpa2)
本文使用的是Kali Linux,该系统主要以渗透测试及’破解wifi密码’闻名。如果你使用Macbook,看这里:使用macbook破解WPA/WPA2 wifi密码要求:安装有Kali Linux的计算机 支持监控模式的网卡,笔记本电脑一般都支持 字典文件 时间和耐心这种攻击需要字典文件,一个好的字典至关重要。我以Kali Linux自带的rockyou字典为例,位于/us...转载 2019-05-13 08:42:18 · 13147 阅读 · 0 评论 -
FTP主动模式和被动模式
基础知识: FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口,一个数据端口和一个命令端口(或称为控制端口)。通常21端口是命令端口,20端口是数据端口。当混入主动/被动模式的概念时,数据端口就有可能不是20了。完备的定义请参考RFC文档:Link主动模式FTP: 主动模式下,FTP客户端从任意的非特殊的端口(N > 1023)...转载 2019-07-03 18:48:40 · 284 阅读 · 0 评论 -
LINKTYPE_IEEE802_11_PRISM
Packet structure+-------------+| Msgcode || (4 Octets) |+-------------+| Msglen || (4 Octets) |+-------------+| Device name || (16 Octets) |+------------++-----------+----------...转载 2019-05-05 16:56:16 · 296 阅读 · 0 评论