
网络
文章平均质量分 77
墨痕诉清风
始于情,行于心。
展开
-
MacOS设置安装OpenVPN
查看版本验证是否成功。原创 2024-12-28 17:31:41 · 2078 阅读 · 0 评论 -
苹果软件产品使用的 TCP 和 UDP 端口列表(apple、mac)
万维网、FaceTime 通话、iMessage 信息、iCloud、地图、Apple Music、iTunes Store、播客、Mac App Store、备份、日历、WebDAV、隔空播放、、Xcode 服务器(Xcode App、托管和远程 Git HTTP、远程 SVN HTTP)、FaceTime 通话、iMessage 信息、Game Center、照片流。远程帧缓冲区、实时传输协议 (RTP)、实时控制协议 (RTCP)实时传输协议 (RTP)、实时控制协议 (RTCP)原创 2024-09-10 19:55:14 · 1572 阅读 · 0 评论 -
IP地址的最后一位不可以为0或255
一个网段为172.16.0.0,它的掩码是255.255.254.0,那么它的主机可用地址范围是172.16.0.1到172.16.1.254,即172.16.1.0和172.16.0.255这两个地址是。因此,在一般情况下,不应将这些特殊地址分配给主机或路由器。它们是保留的特殊地址,用于网络协议和管理目的。通常情况下,IP 地址的最后一位不能为 0 或 255。这是因为这些特定的 IP 地址有特殊用途。原创 2023-11-29 09:31:55 · 11119 阅读 · 0 评论 -
网络流量传输MTU解析
主机的网络层可以分片,路由器的网络层也可以分片,也就是说路由器的网络接口也有MTU限制,就像木桶理论一样,木桶能装多少水取决于最短的那块,网络通信的路径上决定IP包大小的,取决于源主机、目的主机、路由器中MTU最小的那个。网络层如果发现链路层的MTU小于IP包的大小(网络层可以调用函数获取链路层信息),也并不会立刻开始分片,还需要看IP包的是否允许分片位DF(Don’t Fragment),如果允许分片,就会分成多个ID一样的IP包。最小46byte,最大一般1500byte,这里的最大就是MTU,原创 2023-02-10 17:35:41 · 1787 阅读 · 2 评论 -
Elasticsearch 谷歌插件 Elasticsearch-head 使用
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。-----百度百科。原创 2022-12-27 18:05:14 · 3194 阅读 · 0 评论 -
TFTP协议介绍(细)
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为69。TFTP通常基于UDP协议而实现,但是也不能确定有些TFTP协议是基于其它传输协议完成的。TFTP协议的设计目的主要是为了进行小文件传输,因此它不具备通常的FTP的许多功能,例如,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证。原创 2022-12-02 19:07:52 · 3622 阅读 · 0 评论 -
深入理解 Web 协议:HTTP 2
HTTP 2 连接的建立HTTP 2 中帧和流的关系HTTP 2 中流量节省的奥秘:HPACK 算法HTTP 2 协议中 Server Push 的能力HTTP 2 为什么要实现流量控制?HTTP 2 协议遇到的问题。原创 2022-12-02 18:58:19 · 1223 阅读 · 0 评论 -
HTTP协议中Gzip格式的流量分析与识别
但是,还有很多情况,例如一些非HTTP协议,特别是私有协议中,数据同样采用gzip压缩,但是,流量中并未写明数据是gzip压缩格式,这就给分析带来了困难。在协议分析过程中,经常会发现gzip压缩的数据,例如在HTTP协议中,在HTTP头中会标示,内容编码为gzip、DEFLATE。如何解决这个困难呢?10字节的头,包含幻数、版本号以及时间戳,对应ID1、ID2、CM、FLG、MTIME、XFL、OS;对gzip格式的识别,依靠的就是gzip的起始3字节,因为这三个字节目前是固定的,只有我们在数据流中,原创 2022-11-16 10:38:52 · 1116 阅读 · 0 评论 -
HTTP协议常见请求头响应头解释
HTTP协议常见请求头响应头解释原创 2022-07-25 11:18:33 · 3394 阅读 · 0 评论 -
http请求方法安全性:GET、POST、PUT、PATCH、DELETE、OPTIONS、HEAD、TRACE
目录1. GET2. HEAD3. POST4. PUT5. DELETE6. OPTIONS7. TRACE8. PATCH根据RFC2616第九章说明,http方法的定义有两点:safe and Idempotent,即安全性和幂等性,可以结合这两点对以上方法进行说明1. GET安全、幂等;get请求是用来获取数据的,只是用来查询数据,不对服务器的数据做任何的修改,新增,删除等操作。在这里我们认为get请求是安全的,以及幂等的。安全就是指不影响服务原创 2022-05-09 22:51:48 · 3116 阅读 · 0 评论 -
pop3常用命令记录
目录POP3 命令包括:NC连接POP3 命令包括:USERusername认证用户名。 PASS password认证密码认证,认证通过则状态转换。 APOPname,digest 认可一种安全传输口令的办法,执行成功导致状态转换,请参见 RFC 1321 。 STAT 回送邮箱统计资料,如邮件数、 邮件总字节数。UIDL n ...原创 2022-04-20 16:54:09 · 2218 阅读 · 0 评论 -
tracert命令与ping的区别(ICMP协议)
区别tracert是获得目标ip经过路径的所有地址Ping就是一个测试程序,可以检验本地或目标网络的延迟,如果Ping运行正确,我们大体上就可以排除网络访问层、网卡、路由器等存在的故障减小了问题的范围详细解析Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。 Tracert 工作原理 通过向目标发送不同 IP 生存时间 (TTL) 值的“原创 2021-04-15 14:09:39 · 7841 阅读 · 0 评论 -
icmp协议介绍,type code 对应表
TYPE CODE Description Query Error 0 0 Echo Reply——回显应答(Ping应答) x 3 0 Network Unreachable——网络不可达 x 3 1 Host Unreachable——主机不可达 x 3 2 Protocol Unreachable——协议不可达 x 3 3 Port U...原创 2021-04-08 14:11:49 · 10354 阅读 · 0 评论 -
TCP协议端口状态说明:CLOSE-WAIT、TIME_WAIT 、LISTENING、SYN_SENT、ESTABLISHED、LAST_ACK、CLOSED
从远程TCP等待连接中断请求,主动关闭端接到ACK后,就进入了FIN-WAIT-2 .这是在关闭连接时,客户端和服务器两次握手之后的状态,是著名的半关闭的状态了,在这个状态下,应用程序还有接受数据的能力,但是已经无法发送数据,但是也有一种可能是,客户端一直处于FIN_WAIT_2状态,而服务器则一直处于WAIT_CLOSE状态,而直到应用层来决定关闭这个状态。提供某种服务,侦听远方TCP端口的连接请求,当提供的服务没有被连接时,处于LISTENING状态,端口是开放的,等待被连接。原创 2020-04-30 16:03:53 · 8427 阅读 · 0 评论 -
C/C++ select fd_set解释
win下面FD_SET就是检查SOCKET在数组中是否存在,如果不存在,那么就插入到数组最后。而FD_CLR(fd, set)是把fd后面的东西往前拷贝,然后计数减1.FD_ZERO仅仅是把计数置为0(这个要注意!很明了,一个计数的fd_count,另一个就是SOCKET数组。其中,FD_SETSIZE是64.(具体可以去查看vs的代码)根据IO状态修改fd_set的内容,由此来通知执行了select()的进程哪一socket或文件可读。select()机制中提供一fd_set的。原创 2020-04-30 15:03:30 · 1982 阅读 · 0 评论 -
C/C++socket send函数MSG_NOSIGNAL
【代码】C/C++socket send函数MSG_NOSIGNAL。原创 2020-04-30 14:33:10 · 3467 阅读 · 0 评论 -
C/C++端口复用SO_REUSEADDR(setsockopt参数)
端口复用允许在一个应用程序可以把 n 个套接字绑在一个端口上而不出错。端口复用允许在一个应用程序可以把 n 个套接字绑在一个端口上而不出错。但每个实例绑定的IP地址是不能相同的。1、当有一个有相同本地地址和端口的socket1处于TIME_WAIT状态时,而你启动的程序的socket2要占用该地址和端口,你的程序就要用到该选项。3、SO_REUSEADDR允许单个进程绑定相同的端口到多个socket上,但每个socket绑定的ip地址不同。4、SO_REUSEADDR允许完全相同的地址和端口的重复绑定。原创 2020-04-30 14:07:29 · 7117 阅读 · 1 评论 -
Python客户端syn连接实例
【代码】Python客户端syn连接实例。原创 2020-04-22 18:50:44 · 510 阅读 · 0 评论 -
Linux Epoll ET模式EPOLLOUT和EPOLLIN触发时刻
ET模式称为边缘触发模式,顾名思义,不到边缘情况,是死都不会触发的。EPOLLOUT事件:EPOLLOUT事件只有在连接时触发一次,表示可写,其他时候想要触发,那你要先准备好下面条件:1.某次write,写满了发送缓冲区,返回错误码为EAGAIN。2.对端读取了一些数据,又重新可写了,此时会触发EPOLLOUT。简单地说:EPOLLOUT事件只有在不可写到可写的转变时刻,才会触发一次,...原创 2020-04-12 21:52:23 · 402 阅读 · 0 评论 -
WiresharkTCP的状态 (SYN, FIN, ACK, PSH, RST, URG)
其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,如果只是单个的一个SYN,它表示的只是建立连接。位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)原创 2019-11-13 18:36:27 · 5754 阅读 · 0 评论 -
TCP/IP四层模型及各层协议首部详述(包含IOS7层)
应用层协议需要掌握的是:HTTP(Hyper text transfer protocol)、FTP(file transfer protocol)、SMTP(simple mail transfer rotocol)、POP3(post office protocol 3)、IMAP4(Internet mail access protocol)1.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。IP报文是在网络层传输的数据单元,也叫IP数据报。原创 2019-09-18 15:47:58 · 4631 阅读 · 0 评论 -
以太网帧格式、最少字节介绍(arp)
以太网帧最少是多少个字节,有些人说是46个,有些人说是60个,还有些人说是64个,那么究竟是多少呢?哟哟来告诉你:以太网帧最少是64个字节。因此以太网帧字节的范围是应该是72~1526,但为什么我们通过抓包发现最大的帧为1514呢,而最小的帧为60字节呢?原创 2019-09-12 17:25:52 · 5777 阅读 · 0 评论 -
Python实现FTP服务器和客户端
服务器配置管理稍显复杂,不利于安全,服务器需要开放随机高位端口以便客户端可以连接,因此大多数FTP服务软件都可以手动配置被动端口的范围。FTP只通过TCP连接,FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口)。如果客户端开启了防火墙,或客户端处于内网(NAT网关之后), 那么服务器对客户端端口发起的连接可能会失败。通常21端口是命令端口,20端口是数据端口。服务端配置简单,利于服务器安全管理,服务器只需要开放21端口。安装模块 pyftpdlib。原创 2019-07-29 18:59:22 · 7156 阅读 · 2 评论 -
FTP:文件传输协议(指令及响应代码)
文件传输协议(FTP)使得主机间可以共享文件。 FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。控制连接使用类似 TELNET 协议在主机间交换命令和消息。 FTP 的主要功能如下:提供文件的共享(计算机程序 / 数据); 支持间接使用远程计算机; 使用户不因各类主机文件存储器系统的差异而受影响; 可靠且有效的传输数据。 FT...转载 2019-07-29 17:36:18 · 1391 阅读 · 0 评论 -
python paramiko 模块简介(SSH2协议)
paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一。原创 2019-06-20 15:18:36 · 2816 阅读 · 0 评论 -
物联网协议应用场景
点评:DDS很好地支持设备之间的数据分发和设备控制,设备和云端的数据传输,同时DDS的数据分发的实时效率非常高,能做到秒级内同时分发百万条消息到众多设备。MQTT协议一般适用于设备数据采集到端(Device-》Server,Device-》Gateway),集中星型网络架构(hub-and-spoke),不适用设备与设备之间通信,设备控制能力弱,另外实时性较差,一般都在秒级。CoAP协议是简化了HTTP协议的RESTful API,适用于在资源受限(小型设备)的通信的IP网络。可扩展消息处理现场协议。原创 2019-06-19 10:31:31 · 306 阅读 · 0 评论 -
物联网通信协议——比较-MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP
MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP这几种协议都已被广泛应用,并且每种协议都有至少10种以上的代码实现,都宣称支持实时的发布/订阅的物联网协议,但是在具体物联网系统架构设计时,需考虑实际场景的通信需求,选择合适的协议。在服务策略的帮助下,DDS能够有效地控制和管理网络带宽、内存空间等资源的使用,同时也能控制数据的可靠性、实时性和数据的生存时间,通过灵活使用这些服务质量策略,DDS不仅能在窄带的无线环境上,也能在宽带的有线通信环境上开发出满足实时性需求的数据分发系统。原创 2019-06-19 10:09:35 · 2116 阅读 · 0 评论 -
绘图解谜:公钥、私钥、证书
原文网址:http://www.youdzone.com/signature.html1.鲍勃有两把钥匙,一把是公钥,另一把是私钥。2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。4.鲍勃收信后,用私钥解密,就看到了信...翻译 2019-06-17 18:19:24 · 253 阅读 · 0 评论 -
ZeroMQ接口函数之 :zmq_setsockopt –设置ZMQ socket的属性
Namezmq_setsockopt –设置ZMQ socket的属性SynopsisDescriptionzmq_setsockopt()函数会对socket参数指定的socket进行设置,设置的属性由option_name参数指定,属性值由参数option_value指定。option_len参数指定属性值的数据存储空间的大小。以下的socket属性可以通过zmq_setsockopt()函数进行设置:ZMQ_SNDHWM:对向外发送的消息设置高水位(最大缓存量)ZMQ_SNDHWM属性将会设置sock原创 2019-06-05 20:13:36 · 5668 阅读 · 0 评论 -
Python zmq 讲解
安装 pip install pyzmq-18.0.11.请求应答模式(Request-Reply)(rep 和 req)消息双向的,有来有往,req端请求的消息,rep端必须答复给req端2.订阅发布模式(pub 和sub)消息单向的,有去无回的。可按照发布端可发布制定主题的消息,订阅端可订阅喜欢的主题,订阅端只会收到自己已经订阅的主题。发布端发布一条消息,...原创 2019-06-04 17:17:47 · 8741 阅读 · 0 评论 -
反应堆模式(reactor)
在提到高性能服务器编程的时候肯定有听过reactor模式,如果只是简单的写一个服务器和客户端建立连接的程序来熟悉一下使用socket函数编程,一般这种情况都是同步方式实现的,服务器阻塞等待客户端的连接,期间服务器不能做其他事情。是不是有更好的实现方式,让服务器可以提高效率,这就是反应堆模式要做的。同步方式 之前也说了,同步方式是在阻塞等待,会浪费大量的服务器资源,效率不高,...转载 2019-05-17 16:23:46 · 449 阅读 · 0 评论 -
C/C++ epoll内存计算方法,4G内存服务器epoll并发量最大能达到多少?
默认大小都是87K和16K, 最低是4K和4K, 最高是2M,2M, 实际使用默认值最低也要保留8K,8K.假如网络包的大小都可以控制在8K以下, 假设所有连接的网络都不会拥堵, 或者拥堵时候的总量在8K以下。这个内存是自己写socket程序时候自己控制的, 最低也要4K,4K, 实际使用8K,8K至少.4G/32K=13.1万并发, 这个在生产环境作为一个纯网络层面的内存消耗, 是可以作为参考的.假如使用默认配置, 假如所有连接的网络都出现严重拥堵, 不考虑逻辑上的发送队列的占用,然后是逻辑IO缓冲区。原创 2019-04-14 23:42:41 · 999 阅读 · 0 评论 -
socket epoll网络编程实例
总结了各个博主的经验,写出了简单的demo,实例为ET模式,转载请写明出处,如有宝贵意见请留言。第一版:服务端:#include <stdio.h>#include <sys/epoll.h>#include <stdlib.h>#include <sys/types.h>#include <netinet/in.h...原创 2019-04-14 20:52:27 · 5690 阅读 · 2 评论 -
C/C++进程文件锁 之 fcntl函数的用法总结(非阻塞O_NONBLOCK)
第3个参数lock指向一个希望设置的锁的属性结构,如果锁能被设置,该命令并不真的设置锁,而是只修改lock的l_type为F_UNLCK,然后返回该结构体。l_whence确定文件内部的位置指针从哪开始,l_star确定从l_whence开始的位置的偏移量,两个变量一起确定了文件内的位置指针先所指的位置,即开始上锁的位置,然后l_len的字节数就确定了上锁的区域。与dup函数功能一样,复制由fd指向的文件描述符,调用成功后返回新的文件描述符,与旧的文件描述符共同指向同一个文件。原创 2019-04-14 01:55:28 · 6378 阅读 · 0 评论 -
IO模式设置,阻塞与非阻塞的比较,recv参数对性能的影响—O_NONBLOCK(open使用)、IPC_NOWAIT(msgrcv)、MSG_DONTWAIT
非阻塞IO 和阻塞IO:在网络编程中对于一个网络句柄会遇到阻塞IO 和非阻塞IO 的概念, 这里对于这两种socket 先做一下说明:基本概念:阻塞IO::socket 的阻塞模式意味着必须要做完IO 操作(包括错误)才会 返回。...原创 2019-04-14 01:45:28 · 2335 阅读 · 0 评论 -
关于进程资源限制的getrlimit和setrlimit函数(epoll、服务器经常用)
RLIMIT_LOCKS //进程可创建的flock锁和fcntl租借锁的总数(租借锁是Linux特有的:fcntl可通过F_SETLEASE命令对文件加读或写的租借锁。RLIMIT_NOFILE //进程所能打开(如使用open/pipe/socket)的文件描述符的最大值加1。RLIMIT_NPROC //调用进程的实际用户所能创建进程(在Linux上,更准确的说法是线程)的最大数目。RLIMIT_MSGQUEUE //调用进程的实际用户所能分配的Posix消息队列的最大字节长度。原创 2019-04-13 18:28:51 · 997 阅读 · 0 评论 -
高并发网络编程之epoll(个人遇到最好理解的一篇文章、易懂)
LT 和 ET本质的区别是:LT模式状态时,主线程正在epoll_wait等待事件时,请求到了,epoll_wait返回后没有去处理请求(recv),那么下次epoll_wait时此请求还是会返回(立刻返回了);而ET模式状态下,这次没处理,下次epoll_wait时将不返回(所以我们应该每次一定要处理),可见很大程度降低了epoll的触发次数(记住这句话先)Level_trigge...转载 2019-04-12 22:14:11 · 976 阅读 · 0 评论 -
I/O复用的理解
I/O复用就是单个线程通过记录跟踪每一个Sock(I/O流)的状态来同时管理多个I/O流.假设你是一个机场的空管, 你需要管理到你机场的所有的航线, 包括进港,出港, 有些航班需要放到停机坪等待,有些航班需要去登机口接乘客。你会怎么做?最简单的做法,就是你去招一大批空管员,然后每人盯一架飞机, 从进港,接客,排位,出港,航线监控,直至交接给下一个空港,全程监控。那么问题就来了:·很...原创 2019-04-12 18:08:20 · 372 阅读 · 0 评论 -
Linux下的I/O复用与epoll详解
转载地址:http://blog.chinaunix.net/uid/28541347/sid-193117-list-1.html经典句子:epoll会把他们都监视起来,然后像拨开关一样,谁有数据就拨向谁,然后调用相应的代码处理。前言 I/O多路复用有很多种实现。在linux上,2.4内核前主要是select和poll,自Linux 2.6内核正式引入epoll...转载 2019-04-12 17:44:47 · 353 阅读 · 0 评论 -
通过socket得到远端的IP和连接端口
WindowsTCP:通过socket得到远端的IP和连接端口SOCKET acceptSock;acceptSock = accept(listenSock, NULL, NULL);SOCKADDR_IN sockAddr;int iLen=sizeof(sockAddr);getpeername(acceptSock,(struct ...原创 2019-03-29 18:33:36 · 7104 阅读 · 0 评论