![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
通信协议
文章平均质量分 65
介绍 TCPIP 相关知识。
Ruo_Xiao
己所不欲,勿施于人。
展开
-
DNS 解析顺序是怎样的?
所谓 DNS 缓存是指 DNS 返回正确的 IP 地址之后,系统会将这个结果临时储存起来,并为缓存设定一个失效时间(TTL 值),在TTL失效前,当再次访问这个网站,系统就会直接从 DNS 缓存中将结果返回,而不必再次委托递归服务器进行全球解析查询,加快了 DNS 解析的流程。首先递归服务器会请求根域名服务器,根域名服务器根据域名后缀,告知对应的顶级域名服务器;如果本机和路由器 DNS 缓存中没有该域名的解析记录,浏览器就会向递归服务器发起请求,如果递归服务器缓存有该域名解析条目,返回结果,解析结束。转载 2023-04-18 15:40:46 · 1267 阅读 · 1 评论 -
MAC 认证和 MAC 旁路认证
由于同一个接口下可以有多个用户进行认证,因此这种情况下接口上的所有 MAC 认证用户均使用同一个固定用户名进行认证,服务器端仅需要配置一个用户账户即可满足所有认证用户的认证需求,这适用于客户端比较可信的网络环境。设备在启动了 MAC 认证的接口上首次检测到用户的 MAC 地址以后,即启动对该用户的认证操作。MAC 旁路认证适用于 802.1X 认证环境中,无法安装 802.1X 认证客户端的终端(又称之为哑终端,例如 IP 电话、网络打印机、摄像头),以 MAC 地址作为用户和密码自动接入网络的场景。转载 2023-03-31 09:36:03 · 1814 阅读 · 0 评论 -
无线信道是什么意思,无线网络通道是什么意思?
如果你的路由器非要让你指定,那么你可以随便指定一个,不过建议不要指定前三个,以免和其他路由 wifi 信道冲突,而后记住你的选择而且并用你的无线网卡选择同样的信道与之连接,不过如果你是现在版本的无线网卡,无线网卡都支持自动选择,你可以选择自动而后让你的无线网卡自动与之适配。信道其实可以理解为空间中的不同频段,所有无线设备:手机、电脑、无线路由、收音机等等都混杂在电磁波中,那彼此都对彼此的信号造成了干扰,所以后期规定不同设备只允许用特定的频段,这样大家都互不干扰,“和谐”存在空间中。转载 2023-01-04 09:31:48 · 13492 阅读 · 0 评论 -
集线器、交换机和路由器(图解)
3、A 将源 MAC 地址(AAAA)与网关 MAC 地址(ABAB)封装在数据链路层头部,又将源 IP 地址(192.168.0.1)和目的 IP 地址(192.168.2.2)(注意这里千万不要以为填写的是默认网关的 IP 地址,从始至终这个数据包的两个 IP 地址都是不变的,只有 MAC 地址在不断变化)封装在网络层头部,然后发包。现在每一台电脑,同时有自己的 MAC 地址,又有自己的 IP 地址,只不过 IP 地址是软件层面上的,可以随时修改,MAC 地址一般是无法修改的。转载 2022-11-10 13:53:40 · 7226 阅读 · 21 评论 -
以太网帧最小帧长与最大帧长
假设:A、B 两地之间通过一个单向传送带传递物品,传送带的传输速度是 C (C 代表光速),也就是 20.3cm/ns(每纳秒 20.3 厘米),A 点有个人叫 Marcia,她要把一车荔枝一串一串的发送给B 点的那个人 Allen,现在 Marcia 需要抉择的是:我在传送荔枝给 Allen 的时候,如果 Allen 同时也有荔枝传给我,这个时候就会产生冲突,而冲突会把传送中的荔枝撞碎,破碎的荔枝渣会通过传送带反送给我,我很想知道是哪一串荔枝被撞碎了,如何实现?这也是我们常说的一个碰撞域的直径。转载 2022-11-10 10:14:25 · 4878 阅读 · 0 评论 -
NFV 和 SDN 之间到底有什么关系?
按我个人的观点,NFV 和 SDN 的关系,其实确实不大。现在,随着x86通用服务器硬件能力的不断增强,通信行业开始学习IT行业,引入云计算技术,使用x86通用服务器替换厂商专用服务器,将核心网“云化”。虚拟化技术,就是物理服务器的基础上,通过部署虚拟化软件平台,把计算资源(类似CPU、内存等)、存储资源(类似硬盘)、网络资源(类似网卡)等资源进行统一管理,按需分配。我们的移动通信网络,尤其是核心网,是由很多网元设备组成的。同时,SDN 简化网络配置、节约运维成本的特点,也深受运营商的欢迎。转载 2022-10-18 10:02:09 · 3278 阅读 · 0 评论 -
websocket / 使用 wireshark 分析 websocket 连接过程
一、连接过程时序图二、wireshark 分析上图是一个完整的进行 websocket 连接时产生的数据包。根据时序图可知,前 3 行是 tcp/ip 握手过程,因为可以通过标志来看到,前 3 个标志(Flags)分别为 SYN、SYN ACK、ACK。这是建立 http 请求的需要,和 websocket 没有关系。第 4 条就是 client 主动发给 server 的握手协议了,如下图所示:细心的小伙伴可以发现,这套代码是基于 C++ 版的 websocketpp 实现原创 2020-07-07 11:03:32 · 2670 阅读 · 0 评论 -
通信 / 网络地址转换(NAT)过程
一、英文全称Network Address Translation,二、诞生原因解决因为可用 IP 过少导致有些设备无法连入网络的问题。该技术的核心思想是多个私有网络 ip 通过一个公共 ip 连入网络。三、过程说明为了实现上述思想,需要有个设备进行地址转换并能记录该转换的双方的 ip 和 port ,记录该信息的表被称为 NAT 转换表。(SAW:Game Over!)...原创 2021-01-11 16:24:13 · 943 阅读 · 2 评论 -
通信 / DHCP 四次握手
大致过程如下:张三作为 Client 想要一个 IP 连入局域网,局域网中负责管理 IP 分配的大佬有阿大 、阿二 和阿三。张三刚到新环境,谁都不认识,只能大喊一声:负责分配 IP 的大佬在哪里,我想要一个 IP !三位大佬听见有人呼叫它们,都从自己的本子中抽出一个 IP,并做出标记,避免这段时间内重复分配该 IP ,之后分别大喊到:我在这里,我的 IP 是 xxx(yyy)(zzz) 。三个不同的声音陆续被张三听到之后,张三选择第一个听到的声音的 IP,即:阿大的 IP 。并大喊到:就是你了阿原创 2021-01-11 15:58:50 · 2375 阅读 · 3 评论 -
libwebsockets / vs2019 编译 libwebsockets 4.0 方法
一、准备下载 libwebsockets 4.0 源代码。(下载) 下载 cmake 3.17。(下载) 编译 opensslopenssl-1.0.2u 。(参考) 编译 zlib 1.2.11 (参考)二、设置1、打开 cmake,设置源代码路径和编译之后库文件路径。2、单击 Configure 按钮,按照下图进行配置。3、配置 zlib 和 openssl 相关路径。4、单击 Generate 按钮,生成 vs 工程文件。5、单击 Open Proj..原创 2020-07-03 13:10:14 · 2278 阅读 · 0 评论 -
usockets / 编译 usockets 过程说明
一、vs20171、准备(1)下载 usockets 源代码。https://github.com/uNetworking/uSockets(2)编译 libuv 。https://blog.csdn.net/itworld123/article/details/1072226572、编译(1)打开 vs2017 ,建立空控制台工程。(2)在工程下创建 libuv 和uSockets 两个文件夹。libuv 存放 libuv.lib 和 inlucde 文件夹。..原创 2020-07-09 12:07:30 · 1077 阅读 · 0 评论 -
串行口、并行口
----------------------------------------------- 时间:2018-11-21-- 创建人:Ruo_Xiao-- 邮箱:xclsoftware@163.com---------------------------------------------一、串行口1、定义:数据一个时钟传输一位的通信方式。2、两个线,一根是数据线,一根是时...原创 2018-11-21 20:38:36 · 1434 阅读 · 0 评论 -
串口通信 / 奇校验、偶校验、0 校验和 1 校验
----------------------------------------------- 时间:2019-01-28-- 创建人:Ruo_Xiao-- 邮箱:xclsoftware@163.com---------------------------------------------一、目的 对数据传输的正确与否进行校验。二、方法1、奇校验:让主体...原创 2019-01-28 11:24:27 · 25352 阅读 · 0 评论 -
通信 / 各种协议默认端口汇总
协议名称 默认端口号 HTTP 80 HTTPS 443 FTP 20:数据端口 21:控制端口 POP3 110 SMTP 25 (SAW:Game Over!)原创 2021-01-12 18:19:56 · 1070 阅读 · 0 评论 -
单工、半双工和全双工的区别
----------------------------------------------- 时间:2018-11-06-- 创建人:Ruo_Xiao-- 邮箱:xclsoftware@163.com---------------------------------------------一、单工1、数据只在一个方向上传输,不能实现双方通信。2、栗子:电视、广播。二、半...原创 2018-11-06 21:58:28 · 29794 阅读 · 7 评论 -
通信 / CRC 校验
一、全称Cyclic Redundancy Check,循环冗余校验二、诞生原因在数据传输中,校验传输的数据的准确性必不可少,传统的方法包括 1 校验、0 校验、奇偶校验(详细说明请看这里),这些方法有的只能校验1个位(1、0校验),有的只能校验有限位(奇偶校验),有什么办法可以校验所有的为么?为了解决上述问题,发明了 CRC 校验。三、原理说明本质上说,原理非常简单,就是说我想告诉你 29 这个数字,但是我怕我的话在风中传输错误,所以咱俩约定听到的数字必须能被 10 整除,所以我告诉你原创 2021-02-16 16:22:33 · 458 阅读 · 1 评论 -
串口通讯超时的设置与含义(COMMTIMEOUTS)
----------------------------------------------- 时间:2018-12-26-- 创建人:Ruo_Xiao-- 邮箱:xclsoftware@163.com---------------------------------------------原网址:https://www.cnblogs.com/visionfeng/p/5614066...转载 2018-12-26 10:14:20 · 7206 阅读 · 1 评论 -
串口、COM口、TTL和RS-232的区别详解
----------------------------------------------- 时间:2019-01-28-- 创建人:Ruo_Xiao-- 邮箱:xclsoftware@163.com---------------------------------------------一、主要区别 串口、COM口是指的物理接口形式,而TTL、RS-232、R...原创 2019-01-28 15:46:00 · 7286 阅读 · 0 评论 -
通信 / SSH介绍和使用,SSH key教程
一、SSH1、概述SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。简单说,SSH 是一种网络协议,用于计算机之间的加密登录。最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者 Tatu Ylonen 设计了 SSH 协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为 Linux 系统的转载 2020-05-08 18:36:50 · 388 阅读 · 0 评论 -
通信 / HTTP 详解
一、基本信息1、英文简称HyperText Transfer Protocol2、一种网络协议,在网络中传输的特定格式的字符串。所以该协议并没有强调下层协议的类型,即承载方,所以不必须为 TCP/IP,只要是可靠的协议就行,因为 HTTP 协议通信仅仅是交互特定格式的字符串,只要保质保量能够传输双方的字符串即可,故对底层协议无过多要求。3、一般 HTTP 底层网络使用 TCPIP,提供 HTTP 服务的服务器提供的端口号为 80 。4、HTTP 协议是基于请求 / 响应模型的协议。请求和转载 2020-11-13 07:03:30 · 2021 阅读 · 0 评论 -
通信 / HTTP / 什么是 REST 接口
答案:用URL定位资源,用HTTP描述操作。知乎大神 Ivony 有句话说的好:UR L定位资源,用 HTTP 动词(GET、POST、DELETE、PUT)描述操作。咱们不解释 REST 是哪几个单词的首字母,说了也不知道,翻译成中文就是表现层状态转移,我是弄不懂。在设计 web 接口的时候,REST 主要是用于定义接口名,接口名一般是用名次写,不用动词,那怎么表达“获取”或者“删除”或者“更新”这样的操作呢 —— 用请求类型来区分。比如,我们有一个 friends 接口,对于“朋友”原创 2020-06-09 09:40:16 · 5009 阅读 · 0 评论 -
Http / Put 和 Post 区别
有的观点认为,应该用 POST 来创建一个资源,用 PUT 来更新一个资源;有的观点认为,应该用 PUT 来创建一个资源,用 POST 来更新一个资源;还有的观点认为可以用 PUT 和 POST 中任何一个来做创建或者更新一个资源。这些观点都只看到了风格,争论起来也只是争论哪种风格更好,其实,用 PUT 还是 POST,不是看这是创建还是更新资源的动作,这不是风格的问题,而是语义的问题。在 HTTP 中,PUT 被定义为 idempotent 的方法,POST 则不是,这是一个很重要的区别。Met转载 2021-04-06 11:24:10 · 337 阅读 · 0 评论 -
Http / Get 和 Post 区别
一、前言最近看了一些同学的面经,发现无论什么技术岗位,还是会问到 get 和 post 的区别,而搜索出来的答案并不能让我们装得一手好逼,那就让我们从 HTTP 报文的角度来撸一波,从而搞明白他们的区别。二、标准答案在开撸之前吗,让我们先看一下标准答案长什么样子 w3school: GET 对比 POST。标准答案很美好,但是在面试的时候把下面的表格甩面试官一脸,估计会装逼不成反被*。分类 GET POST 后退按钮/刷新 无害 数据会被重新提交(浏览器应该告知用转载 2021-04-06 11:14:30 · 119 阅读 · 0 评论 -
http / 关于长连接和短链接的理解
HTTP 协议是基于请求 / 响应模式的,因此只要服务端给了响应,本次 HTTP 请求就结束了,也可以理解成 HTTP 是面向请求 / 响应的。TCP 协议是面上连接的。综上,如果 HTTP 请求包是一句话的话,那么 TCP 连接相当于中间的空气,话通过空气振动到达目标人耳朵里,目标人回复一句话。整个过程,也就是一次 HTTP 的请求 / 响应就完成了。至于长连接和短链接,那是底层 TCP 处理的事情,如果完成一次 HTTP 请求和响应之后,TCP 也完成了四次挥手,那么这就是短链接;如果 TC原创 2021-04-20 07:50:21 · 358 阅读 · 0 评论 -
通信 / HTTP Host 请求头的作用
Host 是 HTTP 1.1 协议中新增的一个请求头,主要用来实现虚拟主机技术。虚拟主机(virtual hosting)即共享主机(shared web hosting),可以利用虚拟技术把一台完整的服务器分成若干个主机,因此可以在单一主机上运行多个网站或服务。举个栗子,有一台 ip 地址为 61.135.169.125 的服务器,在这台服务器上部署着谷歌、百度、淘宝的网站。为什么我们访问 https://www.google.com 时,看到的是 Google 的首页而不是百度或者淘宝的首页?转载 2021-03-16 09:31:26 · 367 阅读 · 0 评论 -
通信 / HTTPS 过程详解
一、诞生原因传统的 HTTP 是明文传输数据,容易被黑客截获,甚至产生中间人攻击。二、大致过程client 和 server 确定通信使用的加密算法、数据压缩算法、对称密钥。 双方使用对称密钥进行数据加密传输。由上述描述可知,https 最终使用的依然是对称密钥加密,因为对称加密算法较非对称计算速度快并且本身也足够安全。唯一麻烦的事是双方如何安全地确定对称密钥,在这个过程中需要使用非对称密钥进行过度。三、流程图不考虑 server 校验 client 证书、限制client 连接 .原创 2020-11-15 15:48:47 · 1160 阅读 · 0 评论 -
JSON / 格式详解
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使 JSON成为理想的数据交...转载 2021-02-18 21:24:11 · 451 阅读 · 0 评论 -
json / 简介及结构
1、简介(1)英文全称Javascript object notation(2)含义一种轻量级的数据交换格式。2、数据结构以(key / value)键值对(json object)形式组成 json,一个对象以 “ { ” 开始,以 “ } ” 结束。key 和 value 之间以 “ : ” 分割,多个 “ key / value ” 以 “ ; ” 分割。栗子...原创 2020-03-05 07:55:56 · 436 阅读 · 0 评论 -
JWT 说明
1. JSON Web Token是什么JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为 JSON 对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。2. 什么时候你应该用JSON Web Token下列场景中使用 JSON Web Token 是很有用的:Authorization (授权):这是使用 JWT 的最常见场景。一旦用户登录,后续每个请求都将包含JWT,允许用户访问该令牌允许的路由转载 2021-03-08 20:09:13 · 154 阅读 · 0 评论 -
DNS 流程说明以及相关问题的解析
一、流程流程图如下如图所示,大致就是:浏览器输入地址,然后浏览器这个进程去调操作系统某个库里的 gethostbyname 函数(例如,Linux GNU glibc 标准库的 gethostbyname 函数),然后呢这个函数通过网卡给 DNS 服务器发 UDP 请求,接收结果,然后将结果给返回给浏览器。这张图其实已经讲明白大致的流程,但是细节上可能有些差异。 例如我们在用 chrome 浏览器的时候,其实会先去浏览器的 dns 缓存里头查询,DNS 缓存中没有,再去调用 gethos转载 2021-04-29 13:51:40 · 304 阅读 · 0 评论 -
Ping 原理说明
简单来说,「ping」是用来探测本机与网络中另一主机之间是否可达的命令,如果两台主机之间 ping 不通,则表明这两台主机不能建立起连接。ping 是定位网络通不通的一个重要手段。ping 命令是基于 ICMP 协议来工作的,「 ICMP 」全称为 Internet 控制报文协议( Internet Control Message Protocol)。ping 命令会发送一份 ICMP 回显请求报文给目标主机,并等待目标主机返回 ICMP回显应答。因为 ICMP 协议会要求目标主机在收到消息之后,必须返原创 2021-04-29 11:26:15 · 2339 阅读 · 0 评论 -
TCP/IP / PDU 是什么
PDU,英文全称:Protocol Data Unit,协议数据单元。意义:对等层次传输的基本单元。协议层 PDU (更高) 报文 传输层 段(segment) 网络层 包(package) 数据链路层 帧(frame) 物理层 位(bit) (SAW:Game Over!)...原创 2021-02-16 15:32:27 · 3601 阅读 · 0 评论 -
ftp、sftp、vsftp、ssh、vsftpd、sshd
零、概要总结ftp :文件传输协议,对应 ftp 服务。 sftp:安全文件传输协议, 对应 sftp 服务。 ssh: 一组协议。 vsftp:一个提供 sftp 服务功能的软件。 vsftpd:vsftp 软件的守护进程。 sshd:ssh 服务的守护进程。常见的提供 FTP 服务的软件:proftp、tftp 。常见的提供 SFTP 服务的软件:vsftp、openssh ...转载 2020-04-08 07:37:25 · 1737 阅读 · 0 评论 -
TCPIP / LAN、WAN、、VLAN、WLAN 和 WIFI 的区别和联系
一、LAN英文全称:Local Area Network 。 中文名称:局域网。 定义:指在某一区域内由多台计算机互联成的计算机组。二、WAN英文全称:Wide Area Network 。 中文名称:广域网。 定义:一种跨越大的、地域性的计算机网络的集合。子网可以是局域网也可以是小型的广域网。三、VLAN英文全称:Virtual Local Area Network 。...原创 2020-04-07 18:00:24 · 6035 阅读 · 0 评论 -
VMware / 三种联网方法及原理
一、Brigde - 桥接(默认使用 VMnet 0)1、原理Bridge“桥”就是一个主机,这个机器拥有两块网卡,分别处于两个局域网中,同时在"桥"上运行着程序,让局域网 A 中的所有数据包原封不动的流入 B,反之亦然。这样,局域网 A 和 B 就无缝的在链路层连接起来了。在桥接时,VMWare 网卡和物理网卡应该处于同一 IP 网段 当然要保证两个局域网没有冲突的 IP 。VM...转载 2020-04-04 14:34:48 · 357 阅读 · 0 评论 -
TCP/IP / 网关 IP 和 DNS 服务器 IP 为什么可以一样?
“网关”只是一个概念,只要满足连接两个网络的功能的设备就可以称做为“网关”,比如说路由器。当网关的 IP 和 DNS 服务器的 IP 相同时,说明路由器的功能不仅仅包括了网关、路由,还包括了转发 DNS 请求的功能,即:中继 DNS。这时的路由器仅仅负责转发而已,将请求转发给该片区域的真正的 DNS 服务器,再将结果返回给主机,从而完成 DNS 查询的功能呢。(SAW:Game Ov...原创 2020-04-03 18:25:52 · 3375 阅读 · 3 评论 -
TCP/IP / 网关和路由器的区别
本质上讲,“网关”和“路由器”都是一种概念。对于网关来说,只要实现了连接不同网段的功能的事物,都可以叫做网关。设备:路由器,软件:防火墙,这些只要包含想要的功能都可以称做为网关。对于路由器来说,只要实现了路由寻找和转发都可以称作为路由器。TP - LINK,带有该功能的笔记本都是可以的。网关的功能就是一个网段的...原创 2020-04-03 17:50:56 · 1073 阅读 · 0 评论 -
Linux / TCPIP / 判断 client 已经关闭的方法
一、被动判断1、epoll 模型(1)client 正常关闭。epoll 会收到 EPOLLIN 事件,再通过 recv 返回值是否为 0 来判断 client 是否已经关闭。(2)client 异常关闭。(后续补充)2、select 模型(1)client 正常关闭。(后续补充)(2)client 异常关闭。(后续补充)二、主动判断通过心跳包来判断...原创 2020-03-15 19:42:58 · 538 阅读 · 0 评论 -
recv 和 send 阻塞和非阻塞的区别
目录答案深入说明在 epoll 中的应用答案阻塞,事情干不完就不要回来了! 非阻塞,能干多少就是多少,赶紧回来!深入说明// 将内核接收缓冲区中的数据 copy 到应用层中用户的 buffer 中。int recv(int sockfd, void *buf, size_t len, int flag); // 将应用层中用户的 buffer 中的数据 copy...原创 2020-02-25 21:06:34 · 1875 阅读 · 1 评论 -
TCP/IP / UDP 头
1、总长度, 头 + 数据。2、校验和,对头和数据一同校验。(SAW:Game Over!)原创 2020-02-25 08:46:40 · 146 阅读 · 0 评论