【网络协议&编程技术】
本专栏主要讨论网络协议和相关的编程技术。
paradox_1_0
自由、努力、向上。
展开
-
Linux tcp 网络常见报错及分析
Linux 网络常见报错及分析被来是想将报错和监控拆开的,但是发现两者几乎是耦合的,通过监控项才能发现错误,定为错误的原因时也要依赖监控项。索性就将两者合并到了一起。对于很多的报错,实际上你即使看到报错的信息也不清楚到底是那里报错了,或者模棱两可,甚至是误导。最好的方式是 “Show me the code” 。在此,简单介绍一下与网络相关的调试、查看方法,当然也包括了报错相关的内容。查看网络的状态有很多中方法,如之前介绍的网络状态查看命令 netstat VS. ss,也即使用 netl.原创 2020-09-02 13:17:15 · 1299 阅读 · 0 评论 -
QUIC 协议原理分析. 了解学习篇
作者介绍:lancelot,腾讯资深研发工程师。目前主要负责腾讯 stgw(腾讯安全云网关)的相关工作,整体推进腾讯内部及腾讯公有云,混合云的七层负载均衡及全站 HTTPS 接入。对 HTTPS,SPDY,HTTP2,QUIC 等应用层协议、高性能服务器技术、云网络技术、用户访问速度、分布式文件传输等有较深的理解。本文将主要介绍 QUIC 协议产生的背景和核心特性。写在前面如果你的...原创 2020-04-25 00:39:49 · 744 阅读 · 0 评论 -
关于UDP可靠传输的一些思考和总结
有空来论坛走走,发现讨论udp可靠传输又热了起来,有人认为udp高效率,有人认为udp丢包重传机制容易控制,还有朋友搞极限测试,当然也有人推销自己的东西,这里写一点我个人的看法。 udp可靠传输其实非常非常的简单,我最开始接触udp可靠传输大约是在2005年,因为那时候开发FtpAnywhere,由于路由的映射和网关nat处理方面,认为udp具有天生优势,因此开始编写自己的udp可靠传输协议...转载 2020-04-08 17:06:48 · 546 阅读 · 0 评论 -
基于feng streaming server 搭建Android直播测试平台
由于Android 不像iPhone有http live streaming的端到到方案(方便提供海量服务),使用开源feng(https://github.com/lscube/feng, 支持mp4(H264+AAC))搭建一个RTSP/RTP直播服务器用来测试,feng相对于darwin、live555等流媒体服务器的优势很容易增加新的媒体文件解析器,按照其中demux_avf.c结构利用f...转载 2020-04-02 14:40:17 · 235 阅读 · 0 评论 -
原始套接字 IP_HDRINCL
原始套接字可以访问ICMP和ICMP等协议包,可以读写内核不处理的IP数据包。可以创建自定义的IP数据包首部。一句话,使用原始套接字可以:编写基于IP协议的通讯程序。 1.创建原始套接字具体格式如下:int sockfd;sockfd = socktet(AF_INET, SOCK_RAW, IPPROTO_ICMP);第一个参数:协议族 AF_INET 代表TCP/IP协议第二个参数:...原创 2020-04-02 01:08:01 · 425 阅读 · 0 评论 -
C++高性能服务框架revover:rudp总体介绍(可靠UDP传输)
在revolver框架中实现了一个高效可靠的RUDP通信方式,这个通信方式是基于UDP实现一种模拟TCP传输数据的行为。在很多实际应用中,udp/TCP都不是最好的通信方式,例如:点对点文件传输、视频数据高速传输、服务器之间大数据备份同步、高实时rts操作类网游等。TCP和UDP在一定程度上是无法满足此类要求。故revolver实现了一套可靠UDP的传输方式。我们先来看看它的传输效率,以下是WIN...转载 2020-03-30 16:38:30 · 1546 阅读 · 0 评论 -
ICMP报文如何通过NAT来地址转换
在搭建NSX环境的过程,起先没有在Edge路由器上设置NAT,导致VM无法访问外网。经查阅资料后发现,需要配置NAT,配置完SNAT后,比较疑惑的是没有配置DNAT,响应包是怎么把数据包中目的...转载 2020-03-26 16:31:41 · 2090 阅读 · 0 评论 -
HTTP协议——Get与Post的区别
Get 和 Post 是从客户端浏览器向服务器发送数据参数的 HTTP 方法。这些参数可以是表单的输入、搜索标签的查询等。每当网页需要响应给用户相应的响应,或者我们甚至将其称为用户交互网页,这些 HTTP 方法就扮演了一个重要的角色,为服务器提供用户特定的输入。但是你可能想知道为什么我们需要两个不同的方式来发送输入内容。为了回答这个问题,理解这些方法的工作原理是很重要的,这样你就可以更好的理解实际...转载 2019-12-26 17:00:47 · 116 阅读 · 0 评论 -
TCP的异常释放和SO_LINGER套接字选项
1.TCP的异常关闭正常终止一个连接的方法是发送一个FIN报文。有时也称为有序释放,因为所有排队数据都发送完之后才发送FIN,正常情况下没有任何数据的丢失。但也可能发送一个复位报文段而不是FIN来释放一个连接。有时称这位异常释放(abortive release)。异常终止一个连接对应用程序来说有两个优点:丢弃任何待发送数据并立即发送复位报文段 RST的接收方会区分另一端执行的是异常...原创 2019-12-11 16:13:18 · 719 阅读 · 0 评论 -
DPDK 全面分析
高性能网络技术随着云计算产业的异军突起,网络技术的不断创新,越来越多的网络设备基础架构逐步向基于通用处理器平台的架构方向融合,从传统的物理网络到虚拟网络,从扁平化的网络结构到基于 SDN 分层的网络结构,无不体现出这种创新与融合。这在使得网络变得更加可控制和成本更低的同时,也能够支持大规模用户或应用程序的性能需求,以及海量数据的处理。究其原因,其实是高性能网络编程技术随着网络架构的演进不断...转载 2019-12-07 15:20:19 · 302 阅读 · 0 评论 -
Ubuntu下netlink套接字测试实例
此项目在Linux ubuntu 4.4.0-21-generic实际环境中正常运行。1.sender.c用户态netlink程序#include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <string.h>#include <linux/netl...原创 2019-11-01 21:03:20 · 689 阅读 · 0 评论 -
windows系统api之由域名获取IP地址
#include<WinSock2.h>#include<assert.h>#include<WS2tcpip.h>#include<stdio.h>#pragma comment(lib, "ws2_32.lib")const char *domain = "www.baidu.com";int main(){ int n...原创 2019-09-18 10:08:10 · 1043 阅读 · 0 评论 -
windows下高性能网络通信模型IOCP
#pragma once#include<Windows.h>#include<WinSock2.h>#include<stdio.h>#include<process.h>#include<vector>#pragma comment(lib,"ws2_32.lib")//端口号#define SERVER_PORT...原创 2019-08-31 10:17:52 · 302 阅读 · 0 评论 -
socket端口复用相关要点和用途简单总结
1.端口复用相关点多个应用复用端口,只有最后一个绑定的socket可以接受数据,所有socket都可以发送数据 使用端口复用技术时,所有的socket都开启端口复用,才可以实现端口复用 端口映射:把标准端口的流量映射到其他端口上 SO_EXECLUSIVEADDRUSE选项开启,可以禁止端口复用2.端口复用常用的用途 应该是防止服务器重启时之前绑定的端口还未释放或者程序突然退出而...原创 2019-08-09 17:02:50 · 711 阅读 · 0 评论 -
PID为0的系统空闲进程连接状态为TIME_WAIT
如果您使用命令提示符执行命令查看网络连接情况,您会发现,PID为0的System Idle Process(系统空闲进程)将会出现很多网络端口占用情况。下面是一个示例:Proto Local Address &nbs...转载 2019-05-30 18:22:08 · 4039 阅读 · 0 评论