网络
文章平均质量分 84
qq_46522785
这个作者很懒,什么都没留下…
展开
-
快速过一遍Webpack4核心知识
1、webpack和webpack-dev-server区别webpack 每次会生成一个bundle.js文件,webpack-dev-server不会,只是将打包结果放在内存中,并不会写入实际的bundle.js,在每次webpack-dev-server接收到请求时,都将内存中的打包结果返回给浏览器。2、webpack-cli安装后可以直接在控制台调用webpack命令3、url-lo...原创 2020-03-22 10:06:16 · 328 阅读 · 0 评论 -
TCP可靠传输实现原理
预备知识:TCP报文格式字段1、分为首部和数据两部分,二十个字节固定首部; 2、分析: 1)两个字节源端口、两个字节目的端口; 2)四个字节序号(报文段序号)、四个字节确认号(期望收到对方下一个报文段的第一个数据字节的序号); 3)四位数据偏移、六位保留、六位控制位:紧急URG、确认ACK、推送PSH、复位RST、同步SYN、终止F...原创 2020-03-21 19:49:06 · 355 阅读 · 0 评论 -
tcp的拆包和粘包
简介拆包和粘包是在socket编程中经常出现的情况,在socket通讯过程中,如果通讯的一端一次性连续发送多条数据包,tcp协议会将多个数据包打包成一个tcp报文发送出去,这就是所谓的粘包。而如果通讯的一端发送的数据包超过一次tcp报文所能传输的最大值时,就会将一个数据包拆成多个最大tcp长度的tcp报文分开传输,这就叫做拆包。一些基本概念MTU泛指通讯协议中的最大传输单元。一般用来说明T...原创 2020-03-21 19:47:59 · 353 阅读 · 0 评论 -
强大的HTTP协议测试工具Postman ,了解一下?
Postman是一个API管理应用程序,具有测试功能,允许您将集合同步到云,以便随时访问数据,或与整个开发团队共享。1.构建HTTP请求以测试API并将它们组织成集合在Postman主窗口中,您可以使用Builder工具创建HTTP请求并定义自定义测试方案。该应用程序允许您存储它们供以后使用,因此您可以快速创建各种情况并收集在开发过程中非常有用的API响应。HTTP请求可以组织成集合并分组到文...原创 2020-03-21 19:46:50 · 510 阅读 · 0 评论 -
TCP与UDP挖掘机(二)套接字选项
套接字选项用于IP层的套接字选项(IPPROTO_IP)参数 解释IP_ADD_MEMBERSHIP 加入组播(广播)组。每个套接字最多可以连接一组IP_ADD_MEMBERSHIPS组。IP_ADD_SOURCE_MEMBERSHIP 加入特定于源的组播组。每个套接字最多可以连接一组IP_MAX_MEMBERSHIPS组。IP_BLOCK_SOURCE 阻止从给定源到给定多播组的数据...原创 2020-03-21 19:45:45 · 345 阅读 · 0 评论 -
FTP协议数据包命令含义详解
本节我们掌握FTP协议的数据包格式,为编码实现奠定基础。我们先看看控制命令的格式。当用户端通过控制命令通道想服务器端发送数据后,服务器端一定会产生回复。回复主要有三个目的,首先是让客户端确定服务端收到了消息,其次是通知客户端请求是否能被接收,第三通知客户端当前服务器的状态。数据包格式的组成特点是数字与文本信息相混合。服务器返回给客户端的数据包中一定包含回复码,该数值用来通知客户端数据包的格式和内...原创 2020-03-21 19:45:01 · 717 阅读 · 0 评论 -
Packet Checksum Recalculation
This afternoon, I was just going to demonstrate my packet modifying program to the customer, when I found that transport layer checksum values of all TCP/UDP packets were incorrect.I was upset. Why d...原创 2020-03-21 19:43:58 · 222 阅读 · 0 评论 -
Nginx + FastCgi + Spawn-fcgi + c 的架构尝试
Nginx + FastCgi + Spawn-fcgi + c 的架构尝试Php写的很有段时间了,最近看公司一些关键的后端CGI都是用C写的,以lighthttp 最为server 。忽然也有种学习用C写CGI的想法。虽然php结合php-fpm的fastcgi模式也有不错的性能,反正多学一种东西又有和不可以呢?何况,某些情况下C的性能还是php无法比拟的。先有必要有这样第一个认识:ngxi...原创 2020-03-21 19:43:11 · 265 阅读 · 0 评论 -
TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法
实际问题初步查看发现,无法对外新建TCP连接时,线上服务器存在大量处于TIME_WAIT状态的TCP连接(最多的一次为单机10w+,其中引起报警的那个模块产生的TIME_WAIT约2w),导致其无法跟下游模块建立新TCP连接。TIME_WAIT涉及到TCP释放连接过程中的状态迁移,也涉及到具体的socket api对TCP状态的影响,下面开始逐步介绍这些概念。TCP状态迁移面向连接...原创 2020-03-21 19:42:10 · 734 阅读 · 0 评论 -
端口与进程
端口与进程TCP 的包是不包含 IP 地址信息的,那是 IP 层上的事,但是有源端口和目的端口。就是说,端口这一东西,是属于 TCP 知识范畴的。我们知道两个进程,在计算机内部进行通信,可以有管道、内存共享、信号量、消息队列等方法。而两个进程如果需要进行通讯最基本的一个前提是能够唯一的标识一个进程,在本地进程通讯中我们可以使用「PID(进程标识符)」来唯一标识一个进程。但 PID 只在本...原创 2020-03-21 19:41:14 · 875 阅读 · 0 评论 -
Python 网络编程3:tcp客户端与tcp服务器以及下载器
一、TCP介绍1.1、TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。1.2、TCP通信需要经过 创建连接、数据传送、终止连接 三个步骤。1.3、TCP通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,“打电话”,而D...原创 2020-03-21 19:40:09 · 201 阅读 · 0 评论 -
TCP、UDP以及TCP滑窗,它们的区别
我们已经讲解了物理层、连接层和网络层。最开始的连接层协议种类繁多(Ethernet、Wifi、ARP等等)。到了网络层,我们只剩下一个IP协议(IPv4和IPv6是替代关系)。进入到传输层(transport layer),协议的种类又开始繁多起来(比如TCP、UDP、SCTP等)。这就好像下面的大树,根部(连接层)分叉很多,然后统一到一个树干(网络层),到了树冠(传输层)部分又开始开始分叉,而每...原创 2020-03-21 19:38:41 · 157 阅读 · 0 评论 -
使用nc & pv测试发送速度
最近写了一个用于测试网络速度的发包工具,再工具发布之前,我使用nc配合pv对工具进行了测试,即确认工具发送的数据流量和nc/pv接收到的是一致的,确认工具是按设定参数发送数据。先说一下发送数据的工具的工作原理对于TCP,参数为每次写入的数据块的大小,以及数据块的数量,比如每次写入1M,共发送1000个,这样就发送了1G的数据。工具是服务端,收到客户端的任意数据后开始发送,所以可以配合nc使用,...原创 2020-03-21 19:38:08 · 472 阅读 · 0 评论 -
TCP理论带宽计算
TCP理论上的有效带宽计算(即每秒可以传输多少负载数据)以千兆网为例,首先要明确千兆网的速度为1000Mbps,即每秒可传输1000M个bit,且这儿1M = 1000 K = 1000000。那么千兆网的速度就是125MB/s,即每秒传输125000000个字节。(如果按MiB计算,就是119MiB/s)在TCP/IP网络,一般使用以太网传输,在以太网中传输的是以太网帧。而TCP段是封装在I...原创 2020-03-20 21:28:27 · 5581 阅读 · 0 评论 -
《TCP/IP协议 详解》思考总结 · TCP上篇
前言开始这篇文章之前,我非常的紧张,因为要写好这个TCP协议说实话并不简单。作为TCP/IP协议簇最为核心的部分,《TCP/IP协议 卷一》花了整整八章的篇幅去介绍它。如何在保证正确的前提之下,合理有序的写出一些有意义的内容,这是一个很大的挑战。整个看书学习的过程,实际也是一种享受。在了解TCP的各项策略时,你可以通过书本了解到前辈设计时的所思所想。如何在无连接不可靠的IP网络上实现一个可靠有...原创 2020-03-20 21:27:12 · 304 阅读 · 0 评论 -
《TCP/IP协议 详解》思考总结 · TCP下篇
前言这篇文章是整个读书总结系列的最后一篇,有关TCP我想总结的内容都会在这篇文章结束。当然这并不是TCP的全部,总共的五篇文章都只是计算机网络的基础。枯燥而又繁杂的知识点只是进入网络领域的入场券,学会理解了基础才可能继续往下深耕。作为上篇的承接,下篇我们开始着手认识TCP的拥塞避免策略。对于传统的TCP而言,拥塞的判断完全依赖于丢包的情况,这样判断的理由是基于对现实网络情况的总结经验。我们会考...原创 2020-03-20 21:25:52 · 358 阅读 · 0 评论 -
gcc 编译器的 std=c99 选项
最近在学习关于 Linux 下的网络编程相关的知识,以前对这方面没有什么了解。跟着教程写完了代码,然后使用 gcc 进行代码编译,然后编译报错了。gcc tcpclient.c -o tcpclient.c:10:5: error: ‘for’ loop initial declarations are only allowed in C99 modefor (int i = 0; i &l...原创 2020-03-20 21:19:23 · 6892 阅读 · 0 评论 -
TCP 协议的三次握手
TCP 三次握手是一个很经典的问题,这里简单的整理一下 TCP 可以成功完成三次握手的流程。Socket API 的流程在进行 Socket 编程的时候,服务器端通常使用 socket、bind、listen 这三个 API 函数创建一个被动套接字,然后通过 accept 函数等待客户端的连接,调用 accept 函数后,程序会进行阻塞等待。客户端通过 socket、connect 两个 A...原创 2020-03-20 21:18:24 · 315 阅读 · 0 评论