![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
网络编程
文章平均质量分 85
网络编程基础
拾牙慧者
会点c++、python;
展开
-
后台系统可扩展性学习笔记(五)负载均衡
文章目录Load balancer(负载均衡器)请求传输拆解DNS 负载均衡客户端负载均衡OSI 七层模型回顾2 层、3 层负载均衡3/4 层负载均衡7 层负载均衡在第一节谈到了系统的横向扩展在于从单机扩展到多机,那么面临的第一个问题就是这些机器如何协同工作,即如何调度请求?Load balancer(负载均衡器)多服务器下的请求调度机制称为负载均衡(Load balancing),调度器(Dispatcher)即负载均衡器(Load balancer):负载平衡器的基本功能是能够根据调度算法在原创 2022-04-10 14:14:08 · 868 阅读 · 0 评论 -
HDU计算机网络系统2021复习提纲
目录计算机网络系统的主要功能TCP/IP模型与OSI模型的层次结构及各层功能。(掌握)TCP/IP参考模型各层次所对应的主要设备局域网的体系结构与IEEE.802标准数据链路层的编址方式和主要设备原理数据链路层CSMA/CD的技术原理交换机VLAN原理与划分方法数据链路层数据检错与纠错方法检错法纠错法交换机和路由器的一些常用配置命令 (略)网络拓扑连接线的选择方式IP数据包的主要字段含义与应用(掌握)IP数据包分段与重组(掌握)IP分片网络层目前使用的主要协议IP地址、网关地址、子网掩码的概念IP地址网.原创 2021-06-22 23:35:33 · 1051 阅读 · 1 评论 -
三次握手建立失败的几种情况以及三次握手的理解
上面的图是阻塞式socket进行通信的过程,阻塞的时候是操作系统内核网络协议栈在工作调用 connect 函数将激发 TCP 的三次握手过程,而且仅在连接建立成功或出错时才返回。其中出错返回可能有以下几种情况:1、三次握手无法建立,客户端发出的 SYN 包没有任何响应,于是返回 TIMEOUT 错误。这可能是对应的服务端 IP 写错2、客户端收到了 RST(复位)回答,这时候客户端会立即返回 CONNECTION REFUSED 错误。。这可能是客户端发送连接请求时的请求端口写错。产生 RST 的.原创 2022-01-04 22:37:28 · 7041 阅读 · 1 评论 -
转载|网络编程中阻塞式函数的底层逻辑
逛知乎看到的,觉得写的挺透彻的,转载一下,原文链接:Unix网络编程里的阻塞是在操作系统的内核态创建一个线程来死循环吗?原文以阻塞式的recv函数作为讲解,但是所有阻塞式的api底层逻辑基本相通。下面是正文:作者:张彦飞链接:https://www.zhihu.com/question/492983429/answer/2236327954来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。大家天天都在说阻塞,实际上95%的程序员并没有真正理解阻塞是啥。这里并没有循环转载 2021-11-24 14:24:02 · 378 阅读 · 0 评论 -
Linux网络故障排查命令(ifconfig、ping、telnet、netstat、lsof、nc、curl、tcpdump)
目录ifconfig-s,显示网卡信息的精简列表-a、up、down将IP地址绑定到某个网卡,以及解绑操作pingtelnetnetstatlsofnc模拟一个服务器程序和客户端程序进行通信发送文件curltcpdump参数连接一个正常的监听端口ifconfig该命令用来查看当前系统的网卡和IP地址信息:dyy@dyy-Lenovo-ThinkBook-14-IIL:~$ ifconfigenp1s0: flags=4099<UP,BROADCAST,MULTICAST> mtu .原创 2021-10-31 16:31:12 · 5103 阅读 · 0 评论 -
两种大小端判断的方式
网络通信是按照字节流进行数据交换的,主机根据不同的CPU型号可能是大段存储,也可能是小端存储。而网络字节序在TCP/IP协议中已经规定好了,采用大端的排序方式。所以网络通信中一般将需要传输的整数型值转换成网络字节序。从本机字节序转换成网络字节序:host to net short/long#include <arpa/inet.h>uint32_t htonl(uint32_t hostlong);uint16_t htons(uint16_t hostshort);从网络字节序转原创 2021-10-30 23:03:37 · 2614 阅读 · 0 评论 -
C++网络编程快速入门(四):EPOLL模型使用
目录基本使用方法step1:创建epollfdstep2:将fd绑定到epollfdstep3:调用epoll_wait检测事件epoll_wait与poll、select区别所在水平触发与边缘触发基本使用方法step1:创建epollfd创建一个epollfd,若epoll_create调用成功,则返回一个非负值的epollfd,否则返回-1/* Creates an epoll instance. Returns an fd for the new instance. The ".原创 2021-10-30 21:28:49 · 2171 阅读 · 0 评论 -
socket 端口和地址复用
参考:https://blog.csdn.net/weibo1230123/article/details/79978745https://blog.csdn.net/weixin_42157432/article/details/115560824在linux socket网络编程中,大规模并发TCP或UDP连接时,经常会用到端口复用:int opt = 1;if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (const void *) &原创 2021-10-30 15:01:35 · 4659 阅读 · 0 评论 -
C++网络编程快速入门(三):阻塞与非阻塞式调用网络通信函数
阻塞与非阻塞阻塞模式指的是当前某个函数执行效果未达预期,该函数会阻塞当前的执行线程,程序执行流在超时时间到达或者执行成功后恢复原有流程。非阻塞模式相反,即使某个函数执行结果未达预期,该函数也不会阻塞当前执行线程,而是立即返回。网络socket编程中,常见的connect、accept、send、recv函数均具有阻塞与非阻塞两种调用方式。阻塞与非阻塞socket具有各自适用的场景非阻塞模式一般用于需要支持高并发QPS的场景,但是该模式会让程序执行流和控制逻辑变复杂。阻塞模式逻辑简单,结构简单。s原创 2021-10-30 13:55:19 · 2990 阅读 · 0 评论 -
C++网络编程快速入门(二):Linux下使用select演示简单服务端程序
select参数解释extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout);__nfds:一般设置为所有需要使用select函数检测时间的fd中的最大值+1__readfds:需要监听可读事件的原创 2021-10-28 17:12:38 · 996 阅读 · 0 评论 -
C++网络编程快速入门(一):TCP网络通信基本流程以及基础函数使用
流程概述客户端与服务器之间的网络通信基本原理如下所示,复杂一点的架构可能会添加消息中间件。对于服务端,通信流程如下:1、调用socket函数创建监听socket2、调用bind函数将socket绑定到某个IP和端口号组成的二元组上3、调用listen函数开启监听4、当有客户端连接请求时,调用accept函数接受连接,产生一个新的socket(与客户端通信的socket)5、基于新产生的socket调用send或recv函数开始与客户端进行数据交流6、通信结束后,调用close函数关闭sock原创 2021-10-26 21:32:51 · 6341 阅读 · 0 评论 -
socket编程常见函数使用方法
socket知识有了IP地址,socket可知道是与哪一台主机的哪一个进程通信有了端口号,就知道是这个进程的哪一个套接字进行传输应用进程使用描述符与它的套接字进行通信,也就是说一个进程创建一个套接字时就会返回一个套接字描述符[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lS9HEj1Z-1623160175068)(/home/dyy/.config/Typora/typora-user-images/image-20210608175255443.png)][外链原创 2021-06-14 23:53:47 · 908 阅读 · 2 评论