
网络
文章平均质量分 74
chuixue24
这个作者很懒,什么都没留下…
展开
-
Wireshark分析tcp交互过程
Tcp段长度464字节,seq=2610,ack=1338,next_seq=3074。Tcp段长度494字节,seq=1099,ack=352,next_seq=1593。Tcp段长度523字节,seq=576,ack=176,next_seq=1099。Tcp段长度176字节,seq=352,ack=1593,next_seq=528。Tcp段长度为175字节,seq=1,ack=576,next_seq=176。Tcp段长度为575字节,seq=1,ack=1,next_seq=576。原创 2023-11-08 15:24:54 · 1500 阅读 · 0 评论 -
中国 互联网络信息中心
cnnic。原创 2022-12-26 11:59:37 · 638 阅读 · 0 评论 -
Linux上TCP的几个内核参数调优
Linux提供了一大堆内参参数供我们进行调优,其默认设置的参数在很多情况下并不是最佳实践,所以我们需要潜心研究,找到最适合当前环境的组合。转载 2022-09-13 14:53:14 · 1392 阅读 · 0 评论 -
ifconfig命令查看网卡配置与网络状态信息
在Linux终端中我们输入ifconfig命令之后,就会立即显示本机当前的网卡配置与网络状态等信息。一般来说我们主要查看的就是网卡名称以及ip地址。但实际它的信息量远不止这些,下面我们分别来看看具体都有哪些信息。为了更好的解释,这里我们以ens160网卡为了解释以下所有的返回信息的含义。ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500解释:网卡设备ens160,UP:表示“接口已启用”; BRO转载 2022-05-12 11:37:15 · 6851 阅读 · 0 评论 -
什么是域名分片
队头阻塞因为 HTTP 规定报文必须是“一发一收”,这就形成了一个先进先出的“串行”队列。队列里的请求没有轻重缓急的优先级,只有入队的先后顺序,排在最前面的请求被最优先处理。以学校打卡上课为例:在即将上课期间,大家都在打卡上课,但是由于此时前面两个同学打卡失败,导致一直在等待其被修复,最后大家都上不了课。由于“一发一收”规定,所以队头阻塞无法解决,只能缓解学校里可以再多买几台打卡机放在门口,这样大家可以不用挤在一个队伍里,分散打卡,一个队伍偶尔阻塞也不要紧,可以改换到其他不..转载 2022-04-24 09:46:22 · 1379 阅读 · 0 评论 -
Chrome开发者工具network标签页里的transferred over network和resources loaded by the page的区别
如下图所示:network底部有1.1 MB transferred over network和5.1 MB resources loaded by the page. 这两个大小有何区别?有中文博客介绍说transferred over network是通过网络加载的资源尺寸,而resources loaded by the page不仅包含前者,也包含直接从浏览器缓存里加载的资源尺寸。这种说法不完全准确,更精确的说法是,resources loaded by the page统计的是前端转载 2022-03-30 15:22:18 · 2786 阅读 · 0 评论 -
《趣谈网络协议》数据中心相关知识总结
1 数据中心数据中心里面是服务器。服务器被放在一个个叫作机架(Rack)的架子上面。数据中心的入口和出口是路由器,称为边界路由器(Border Router),且为了高可用,边界路由器会有多个,为了当一个运营商出问题的时候,还可以通过另外一个运营商来提供服务,边界路由器会连接多个运营商网络。数据中心往往就是路由协议中的自治区域(AS),通过BGP协议,获取内外互通的路由信息。数据中心里面往往有非常多的机器,当塞满一机架的时候,需要有交换机将这些服务器连接起来,可以互相通信。这些交换机往往是转载 2022-03-29 11:08:21 · 1566 阅读 · 0 评论 -
《趣谈网络协议》微服务相关协议总结
1 RPC协议综述:ONC RPC为例RPC需要解决五个问题:如何规定远程调用的语法?如果传递参数?如何表示数据?(前三个问题统称为协议问题)如何知道一个服务端都实现了哪些远程调用,从哪个端口可以访问这个远程调用?(服务发现问题)发生了错误、重传、丢包、性能等问题怎么办?(传输问题)协议问题语法问题:RPC调用标准如下比如基于RPC协议实现的NFS(Network File System,网格文件系统)可以在本地mount一个远程的目录到本地的一个目录,从而使得本地的用户在这个目录里面写.转载 2022-03-28 18:25:57 · 442 阅读 · 0 评论 -
五大IO模型
对程序员而言,I/O操作是程序中最常见的操作之一。比如说磁盘文件的读写、数据的网络传输等等。程序=数据结构+算法,其中数据元素的获取就必须通过I/O操作来完成。在当今这个数据大爆炸时代,I/O问题尤其突出,很容易成为一个性能瓶颈。然而很多程序员甚至是高级程序员对I/O操作只是停留在会用的阶段,遇到相应的业务场景只是去COPY一段代码,小型项目这样当然没问题,对于I/O密集型的项目,如果理解不深,有可能会造成严重的问题。实际工作中我也是这样,经常在网上找一段代码不去分析他的原理,从而走了不少弯路。作为Ja.转载 2022-03-11 15:39:46 · 340 阅读 · 0 评论 -
TCP选项之SO_LINGER的作用与意义
SO_LINGER作用设置函数close()关闭TCP连接时的行为。缺省close()的行为是,如果有数据残留在socket发送缓冲区中则系统将继续发送这些数据给对方,等待被确认,然后返回。利用此选项,可以将此缺省行为设置为以下两种:a.立即关闭该连接,通过发送RST分组(而不是用正常的FIN|ACK|FIN|ACK四个分组)来关闭该连接。至于发送缓冲区中如果有未发送完的数据,则丢弃。主动关闭一方的TCP状态则跳过TIMEWAIT,直接进入CLOSED。网上很多人想利用这一点来解决服务器上转载 2022-01-22 16:07:26 · 1083 阅读 · 0 评论 -
TCP常用优化参数
1. 端口监听1.1 SO_REUSEADDR(端口重用) 服务端主动断开连接以后,需要等 2 个 MSL 以后才最终释放这个连接,重启以后要绑定同一个端口,默认情况下,操作系统的实现都会阻止新的监听套接字绑定到这个端口上。 TCP 连接由四元组唯一确定。{local-ip-address:local-port , foreign-ip-address:foreign-port} TCP 要求这样的四元组必须是唯一的,但大多数操作系统的实现要求更加严格,只要还有连接在使用这个本地端口,转载 2022-01-22 16:05:24 · 459 阅读 · 0 评论 -
神秘的40毫秒延迟与 TCP_NODELAY
写 HTTP Server,不可免俗地一定要用 ab 跑一下性能,结果一跑不打紧,出现了一个困扰了我好几天的问题:神秘的 40ms 延迟。1现象现象是这样的,首先看我用 ab 不加 -k 选项的结果:[~/dev/personal/breeze]$ /usr/sbin/ab -c 1 -n 10 http://127.0.0.1:8000/styles/shThemeRDark.cssThis is ApacheBench, Version 2.3 <$Revision: 6556.转载 2022-01-22 15:57:20 · 1077 阅读 · 0 评论 -
详解Socket编程---TCP_NODELAY选项
Nagle算法描述Socket编程中,TCP_NODELAY选项是用来控制是否开启Nagle算法,该算法是为了提高较慢的广域网传输效率,减小小分组的报文个数,完整描述:该算法要求一个TCP连接上最多只能有一个未被确认的小分组,在该小分组的确认到来之前,不能发送其他小分组。这里的小分组指的是报文长度小于MSS(Max Segment Size)长度的分组(MSS是在TCP握手的时候在报文选项里面进行通告的大小,主要是用来限制另一端发送数据的长度,防止IP数据包被分段,提高效率,一般是链路层的传转载 2022-01-22 15:42:35 · 6441 阅读 · 1 评论 -
浅谈tcp socket的backlog参数
最近看netty源码碰到ChannelOption.SO_BACKLOG参数,通过跟踪代码发现其实是用于设置底层tcp socket的backlog参数,由于不了解这个参数,有必要彻底的理解一下。底层backlog参数主要用于底层方法int listen(int sockfd, int backlog), 在解释backlog参数之前,我们先了解下tcp在内核的请求过程,其实就是tcp的三次握手:1、client发送SYN到server,将状态修改为SYN_SEND,如果server转载 2022-01-21 20:17:23 · 378 阅读 · 0 评论 -
backlog参数对TCP连接建立的影响
曾经有人问我套接字编程中listen的第二个参数backlog是什么意思?多大的值合适?我不假思索地回答它表示服务器可以接受的并发请求的最大值。然而事实真的是这样的吗?TCP通过三次握手建立连接的过程应该都不陌生了。从服务器的角度看,它分为以下几步将TCP状态设置为LISTEN状态,开启监听客户端的连接请求 收到客户端发送的SYN报文后,TCP状态切换为SYN RECEIVED,并发送SYN ACK报文 收到客户端发送的ACK报文后,TCP三次握手完成,状态切换为ESTABLISH.转载 2022-01-21 19:04:31 · 417 阅读 · 0 评论 -
TCP-Backlog
TCP backlog 队列设计初衷是为了缓存服务器无法立即处理的握手请求先回顾一下三次握手的过程:图片来源于网络,侵删从服务器的视角来看,需要接受两个数据包(首个SYN,最后一个ACK)TCP backlog创建了两个队列来负责缓存已经收到的首个SYN和已经握手完成待应用层接收的连接负责缓存SYN的队列叫SYN QUEUE负责缓存已完成连接叫ACCEPT QUEUE举例子来说明:如果坐火车来说明的话,在春运时,火车站人满为患,进入火车站分为两步:进入候车室(SYN QUEUE) 进入转载 2022-01-21 18:54:43 · 1064 阅读 · 0 评论 -
TCP连接的相关问题
Q1:TCP报文长度是在TCP三次握手中那一次确定的?这个是关于TCP报文的最大报文段长度mss的相关问题。在TCP连接的前两次握手中(SYN报文中),通信双方都会在选项字段中告知对方自己期待收到最大报文长度(mss值),以双方两个SYN报文中最小的mss最为本次数据传输的mss值。通信双方以“协商”的方式来确定报文长度的,前两次握手是告诉对方自己的mss值,在第三次握手确定mss值Q2:TCP报文长度是由什么确定的?这个跟具体传输网络有关,以太网的MTU为1500字节,Internet的MTU转载 2022-01-21 18:51:06 · 297 阅读 · 0 评论 -
socket套接字中的缓冲区
TCP套接字的数据收发无边界。服务器端即使调用1次write函数传输40字节的数据,客户端也有可能通过4次read 函数调用每次读取10字节。但此处也有一些疑问,服务器端一次性传输了40字节,而客户端居然可以缓慢地分批接收。客户端接收10字节后,剩下的30字节在何处等候呢?是不是像飞机为等待着陆而在空中盘旋一样,剩下30字节也在网络中徘徊并等待接收呢?实际上, write 函数调用后并非立即传输数据, read函数调用后也并非马上接收数据。更准确地说,如|到5-2所示, write函数调用瞬间,原创 2021-12-02 15:35:23 · 2286 阅读 · 0 评论 -
java的IO模型
IO模型 IO模型就是说用什么样的通道进行数据的发送和接收,Java共支持3种网络编程IO模式:BIO,NIO,AIO。BIO(Blocking IO) 同步阻塞模型,一个客户端连接对应一个处理线程 BIO代码示例:package com.tuling.bio; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class SocketS原创 2021-11-04 13:36:26 · 649 阅读 · 1 评论 -
TCP三次握手和四次挥手
计算机网络——HTTP的三次握手与四次挥手原理 :计算机网络——HTTP的三次握手与四次挥手原理_http握手_庄小焱的博客-优快云博客原创 2021-03-22 14:53:45 · 151 阅读 · 0 评论 -
ajax请求状态码一直是pending
最近遇到一个问题:一个业务中用到了分布式锁,是用redis实现的。在业务请求中,正常流程或异常流程都有解锁代码。有一个取消按钮,点击取消按钮可以取消本次业务,之前是没有解锁代码的。在取消请求中加上解锁代码以后,每次发起请求到后端返回成功解锁信息,要用到到1分钟左右(测试环境),本地测试是1到5秒左右。一开始解决这个问题的思路是,查看解锁代码是否有问题,这有涉及到redis,所以又查看redis的配置是否出错。为了验证redis是否有问题,写了一个测试代码,也是解锁,测试了几次,解锁耗时是14毫秒。那原创 2020-12-21 18:01:31 · 3575 阅读 · 1 评论 -
《Dubbo进阶二》——RPC协议之网络传输原理
一 RPC协议的网络传输一个RPC协议又通信模块、报文编码和序列化三个模块组成,其中通信模块实现了RPC的网络传输。网络传输的稳定性和性能直接影响RPC服务的稳定性和性能。网络传输框架组成io模型 (1)BIO:同步阻塞 (2)NIO:同步非阻塞(Netty) (3)AIO:异步非阻塞 连接方式 (1)长连接(Netty) (2)短链接 线程分类(每个线程都有配有线程池) (1)IO线程 (2)服务端业务线程 (3)客户端调度线程 (4)客户端结果exchange线程 (5转载 2020-08-27 12:50:27 · 353 阅读 · 0 评论 -
nacos的1.1.3版本java客户端导致TIME_WAIT状态tcp连接太多
参考文章:https://www.jianshu.com/p/d782f663ac72bug信息:https://github.com/alibaba/nacos/issues/20181.1.3版本:修改为1.2.1后:原创 2020-08-27 12:44:57 · 1592 阅读 · 0 评论 -
HTTP Client中ConnectTimeout、SocketTimeout、ConnectionRequestTimeout区别
ConnectTimeout: 链接建立的超时时间;SocketTimeout:响应超时时间,超过此时间不再读取响应;ConnectionRequestTimeout: http clilent中从connetcion pool中获得一个connection的超时时间;转载 2020-08-14 16:13:09 · 1866 阅读 · 0 评论 -
win10修改ip或dns弹出“出现了一个意外”对话框解决办法
这种情况,请用cmd来设置ip地址和dns:netsh interface ip set address “以太网” static 10.243.1.11 255.255.255.0netsh interface ip set dns "以太网" static dns原创 2020-04-07 09:21:36 · 2902 阅读 · 0 评论 -
FTP主动模式(Port)和被动模式(Passive)的区别
1、FTP的PORT(主动模式):PORT中文称为主动模式,工作的原理: FTP客户端(1024以上端口)连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户...转载 2020-03-27 15:19:28 · 4093 阅读 · 0 评论 -
windows下使用 curl -d 发送数据
在windows下使用curl发送请求,-d后边带参数,参数要用双引号,不能用单引号,用单引号,数据中的字段可能会被识别为命令而报错。使用单引号进行发送报错,改用双引号成功执行:...原创 2020-02-17 11:32:35 · 1666 阅读 · 0 评论 -
彻底明白ip地址,区分localhost、127.0.0.1和0.0.0.0
通俗的了解IP地址是什么对于IP地址,大家并不陌生,特别是在网络访问中我们会经常使用到(平时对域名如百度的www.baidu.com的访问,本质就是对域名所绑定的IP地址的访问),那么IP地址是什么呢?首先,我们要知道网络中的相互访问其实就是在进行两者间的数据传递。就如同送快递一样,快递发出只有知道你的住址信息,才能将快递送到你的手中。而在网络访问时,只有知道你在网络中的地址信息,才能将数据...转载 2020-01-17 13:53:29 · 446 阅读 · 0 评论