网络基础知识Web/Net
文章平均质量分 92
Web/Net
利白
这个作者很懒,什么都没留下…
展开
-
100 个网络基础知识,看完成半个网络高手
文章来源微信公众号:「Python那些事」1)什么是链接?链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。2)OSI 参考模型的层次是什么?有 7 个 OSI 层:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。3)什么是骨干网?骨干网络是集中的基础设施,旨在将不同的路由和数据分发到各种网络。它还处理带宽管理和各种通道。4)什么是 LAN?LAN 是局域网的缩写。它是指计算机与位于小物理位置的其他网络设备之间的连接。5)什么转载 2020-06-22 09:06:40 · 1266 阅读 · 0 评论 -
DNS解析流程
原创 2018-07-28 17:47:50 · 366 阅读 · 0 评论 -
再次深入理解TCP网络编程中的send和recv
文章来源:点击打开链接http://blog.csdn.net/yusiguyuan/article/details/21439719http://blog.csdn.net/yusiguyuan/article/details/21390177 先明确一个概念:每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的滑动窗口便是依赖于这两个独立的b...转载 2018-06-03 11:10:45 · 4866 阅读 · 2 评论 -
从抓包的角度分析connect()函数的连接过程
文章来源:点击打开链接这篇文章主要是从tcp连接建立的角度来分析客户端程序如何利用connect函数和服务端程序建立tcp连接的,了解connect函数在建立连接的过程中底层协议栈做了哪些事情。tcp三次握手在正式介绍connect函数时,我们先来看一下tcp三次握手的过程,下面这个实验是客户端通过telnet远程登录服务端的例子,telnet协议是基于tcp协议,我们可以通过wireshark抓...转载 2018-05-28 11:22:09 · 5086 阅读 · 0 评论 -
不是技术也能看懂云计算,大数据,人工智能
文章来源:点击打开链接我今天要讲这三个话题,一个是云计算,一个大数据,一个人工智能,我为什么要讲这三个东西呢?因为这三个东西现在非常非常的火,它们之间好像互相有关系,一般谈云计算的时候也会提到大数据,谈人工智能的时候也会提大数据,谈人工智能的时候也会提云计算。所以说感觉他们又相辅相成不可分割,如果是非技术的人员来讲可能比较难理解说这三个之间的相互关系,所以有必要解释一下。 一、云计算最初是实现资源...转载 2018-05-28 11:24:09 · 755 阅读 · 3 评论 -
关于TCP封包、粘包、半包
关于Tcp封包很多朋友已经对此作了不少研究,也花费不少心血编写了实现代码和blog文档。当然也充斥着一些各式的评论,自己看了一下,总结一些心得。首先我们学习一下这些朋友的心得,他们是:http://blog.csdn.net/stamhe/article/details/4569530http://www.cppblog.com/tx7do/archive/2011/05/04/145699.ht...转载 2018-06-01 16:49:57 · 621 阅读 · 0 评论 -
网络服务器开发总结
文章来源:一、概述经过多年网络服务器开发实战,于此总结实践体会。本文涉及到异步连接、异步域名解析、热更新、过载保护与网络模型及协程等,但不会涉及到accept4、epoll等基本知识点。二、可写事件相信大多数初学者都会迷惑可写事件的作用,可能觉得可写事件没有什么意义。但在网络服务器中监听并处理可写事件必不可少,其作用在于判断连接是否可以发送数据,主要用于当网络原因暂时无法立即发送数据时监听。当有数...转载 2018-06-01 16:52:00 · 1050 阅读 · 0 评论 -
linux 系统下使用socket进行本地进程间通信:About AF_LOCAL in Linux
点击打开链接一、Unix domain socket Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。与管道相比,Unix domain sockets 既可以使用字节流,又可以使用数据队列,而管道通信则只能使用字节流。Unix domain sockets的接口和Internet socket很像,但它不使用网...转载 2018-06-19 11:25:09 · 6993 阅读 · 0 评论 -
muduo 网络buffer--为什么 non-blocking 网络编程中应用层 buffer 是必须的(★firecat推荐★)
文章来源:点击打开链接 对于非阻塞IO的网络库来说,buffer几乎是必须的。one loop per thread is usually a good model。event loop 是 non-blocking 网络编程的核心,在现实生活中,non-blocking 几乎总是和 IO-multiplexing 一起使用,原因有两点:没有人真的会用轮询 (busy-pool...转载 2018-06-03 11:09:50 · 942 阅读 · 0 评论 -
收藏的博客 -- 高性能Linux/Windows服务器/C++网络库(★★★★★)
免费的跨平台SSH和SFTP工具:https://www.putty.org/-- Windowshttps://www.chiark.greenend.org.uk/~sgtatham/putty/latest.htmlhttps://www.poderosa-terminal.com/-- Windows/Machttps://filezilla-project.org/...原创 2017-08-08 14:54:12 · 4233 阅读 · 2 评论 -
Nginx/LVS/HAProxy负载均衡软件的优缺点详解
文章来源:http://www.ha97.com/5646.htmlhttp://nginx.org/http://www.haproxy.com/PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下。一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,...转载 2015-10-11 19:59:27 · 970 阅读 · 0 评论 -
《Linux多线程服务端编程:使用muduo C++网络库》学习笔记,★firecat推荐★
4.9 多线程与forkfork()一般不能在多线程中调用,因为Linux的fork只克隆当前线程的thread of ctrl,不克隆其他线程。即,fork之后子进程只有一个线程,其他线程都消失了。 7.2文件传输如果客户端故意只发起连接,不接收数据,那么要么服务器进程的文件描述符耗尽,要么占用很多服务器内存,因为每个连接会建立缓冲区。解决方法是:1、限制服务器的最大并发连接...原创 2018-01-03 15:20:12 · 2983 阅读 · 0 评论 -
TCP通信的三次握手和四次挥手的详细流程(顿悟)
http://www.cnblogs.com/cy568searchx/p/3711670.htmlTCP(Transmission Control Protocol) 传输控制协议三次握手TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(ack转载 2018-01-10 10:17:36 · 21540 阅读 · 1 评论 -
看我怎样模拟3次握手和数据发送(Linux)
http://blog.chinaunix.net/uid-26379600-id-3791210.html来看源代码:#include #include #include #include #include #include #include #include #include #include #include #include #include转载 2018-01-10 16:22:40 · 622 阅读 · 0 评论 -
看我怎样模拟3次握手和数据发送(windows)
http://www.cppblog.com/xvsdf100/archive/2013/06/25/201297.aspx看过很多网络书籍 和 编程书籍,突然发现自己从来没有实现模拟TCP三次握手。就连steven也只是用抓包程序说明一下。我一直觉得实践只检验真理的唯一标准,如是就开始自己试验。我开始准备用原始套接字来解决这个问题,但是微软已经在xp(含XP)以后就不在支持发送原转载 2018-01-10 10:20:09 · 1571 阅读 · 5 评论 -
TCP第三次握手失败怎么办,即最后一次握手失败
http://www.cnblogs.com/heyonggang/p/3386415.html笔试题中经常会遇到这个问题:如果tcp建立连接时第三次握手失败,tcp会做何操作?该问题的本质是判断我们对tcp的状态转换是否能有比较深刻的理解。只要理解了下面的状态转换图,很容易回答上述问题。当失败时服务器并不会重传ack报文,而是直接发送RTS报文段,进入CLOSED状态。这样做的目的是转载 2018-01-10 09:54:53 · 13347 阅读 · 1 评论 -
关于FIN_WAIT1---TCP四次挥手的状态
https://huoding.com/2014/11/06/383前些天,一堆人在 TCPCopy 社区里闲扯蛋,有人提了一个问题:FIN_WAIT1 能持续多久?引发了一场讨论,期间我得到斌哥和多位朋友的点化,受益良多。让我们热热身,通过一张旧图来回忆一下 TCP 关闭连接时的情况:TCP Close看图可知,主动关闭的一转载 2018-01-26 09:39:43 · 2734 阅读 · 0 评论 -
一套海量在线用户的移动端IM架构设计实践分享(含详细图文)
摘要: https://mp.weixin.qq.com/s?__biz=MzI1ODY0NjAwMA==&mid=2247483756&idx=1&sn=a8e3303bc573b1acaf9ef3862ef89bdd&chksm=ea044bf3dd73c2e5dcf2c10202c66d6143ec866205e9230f974fbc0b0be587926699230b6b18#rd转载 2018-01-24 16:18:04 · 16312 阅读 · 3 评论 -
TCP 三次握手原理,你真的理解吗?(阿里技术,推荐一看)
点击打开链接阿里妹导读:最近,阿里中间件小哥哥蛰剑碰到一个问题——client端连接服务器总是抛异常。在反复定位分析、并查阅各种资料文章搞懂后,他发现没有文章把这两个队列以及怎么观察他们的指标说清楚。因此,蛰剑写下这篇文章,希望借此能把这个问题说清楚。欢迎大家一起交流探讨。问题描述场景:JAVA的client和server,使用socket通信。server使用NIO。间歇性得出现client向s...转载 2018-07-05 14:42:00 · 1251 阅读 · 0 评论 -
脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
点击打开链接1、引言网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一。很多读者都知道“三次”和“四次”,但是如果问深入一点,他们往往都无法作出准确回答。本篇文章尝试使用动画图片的方式,来对这个知识点进行“脑残式”讲解(哈哈),期望读者们可以更加简单、直观地理解TCP网络通信交互的本质。另外,社区里的另两篇文章《理论经典:TCP协议的3次握手与4次挥手过程详解》、《理论...转载 2018-07-05 15:01:30 · 391 阅读 · 0 评论 -
脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?
点击打开链接1、引言本文接上篇《脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手》,继续脑残式的网络编程知识学习 ^_^。套接字socket是大多数程序员都非常熟悉的概念,它是计算机网络编程的基础,TCP/UDP收发消息都靠它。我们熟悉的web服务器底层依赖它,我们用到的MySQL关系数据库、Redis内存数据库底层依赖它。我们用微信和别人聊天也依赖它,我们玩网络游戏时依赖它,读者们...转载 2018-07-05 15:02:18 · 423 阅读 · 0 评论 -
开源项目推荐:Electron,使用网页编程的方式构建跨平台的桌面应用
1.官网https://electronjs.org/2.案例https://electronjs.org/appshttps://github.com/vladimiry/ElectronMailUnofficial desktop app for ProtonMailhttps://gitee.com/robergroup/pdman...原创 2019-07-21 21:31:37 · 1868 阅读 · 0 评论 -
TCP、UDP数据包大小的限制
http://blog.sina.com.cn/s/blog_413d250e0102wmq0.htmlTCP报文的最大负载和报文的最小长度MTU:最大传输单元,以太网的MTU为1500BytesMSS:最大分解大小,为每次TCP数据包每次传输的最大数据的分段大小,由发送端通知接收端,发送大于MTU就会被分片。MSS默认最小为536B,最小的MTU576B,MSS = MTU - ...转载 2019-01-10 10:29:51 · 3371 阅读 · 0 评论 -
HTTP返回码中301与302的区别
一.官方说法301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 301 redirect: 301 代表永久性转移(Permanently Moved)。302 redirect: 302 代表暂时性转移(Temporarily Moved )。 二、详细说明字面上的区别就是301是永久重定向,而302是临时重定向。 当然,他们之间也是有共同点的,...原创 2019-01-06 11:10:49 · 10876 阅读 · 0 评论 -
A机器与B机器网络connect成功后,断电时的网络状态?
如果A机器与B机器网络connect成功后从未互发过数据,此时其中一机器突然断电,则另外一台机器与断电的机器之间的网络连接处于哪种状态?笔者实测如下:虚拟机A:CentOS 7,192.168.133.131,TCP Server虚拟机B:CentOS 7,192.168.133.128,TCP Client1、建立连接时:A机器[root@localhost ~]...原创 2019-01-06 10:35:06 · 1845 阅读 · 0 评论 -
TCP三次握手及四次挥手详解及常见面试题
https://blog.csdn.net/ZWE7616175/article/details/80432486TCP的报头: 1. 源端口号:表示发送端端口号,字段长为16位。 2. 目标端口号:表示接收端口号,字段长为16位。 3. 序列号:表示发送数据的位置,字段长为32位。每发送一次数据,就累加一次该数据字节数的大小。 注意:序列号不会从0或1开始,而是在建立连接时由计算机...转载 2018-12-30 11:05:17 · 625 阅读 · 0 评论 -
TCP三次握手原理,以及为什么不能改成两次握手
https://blog.csdn.net/b954960630/article/details/81861579网上 关于 TCP三次握手 的文章有很多,但很多一些部分讲的含糊其辞,所以才重新造了这个轮子,一方面对那些含糊其辞的部分做了解释,另一方面也方便了以后的学习。1、上图的名词解释SYN:同步序号。它表示建立连接。TCP规定SYN=1时不能携带数据,但要消耗一个序号, 因此随...转载 2018-12-30 11:04:12 · 2235 阅读 · 0 评论 -
解析TCP之滑动窗口(动画演示)
https://blog.csdn.net/yao5hed/article/details/81046945概述滑动窗口实现了TCP流控制。首先明确滑动窗口的范畴:TCP是双工的协议,会话的双方都可以同时接收和发送数据。TCP会话的双方都各自维护一个发送窗口和一个接收窗口。各自的接收窗口大小取决于应用、系统、硬件的限制(TCP传输速率不能大于应用的数据处理速率)。各自的发送窗口则要求取决...转载 2018-12-30 10:52:20 · 1124 阅读 · 0 评论 -
socket 什么情况下可读
参考 《UNIX 网络编程卷1》中的《第6章 I/O复用》 一、 满足下列四个条件中的任何一个时,一个套接字准备好读。 该套接字接收缓冲区中的数据字节数大于等于套接字接收缓存区低水位。对于TCP和UDP套接字而言,缓冲区低水位的值默认为1。那就意味着,默认情况下,只要缓冲区中有数据,那就是可读的。我们可以通过使用SO_RCVLOWAT套接字选项(参见setsockopt函数)来设置该...原创 2019-01-04 11:28:20 · 1359 阅读 · 1 评论 -
UDP 调用connect的作用
https://www.cnblogs.com/bleopard/p/4004916.html标准的udp客户端开了套接口后,一般使用sendto和recvfrom函数来发数据,最近看到ntpclient的代码里面是使用send函数直接法的,就分析了一下,原来udp发送数据有两种方法供大家选用的,顺便把udp的connect用法也就解释清楚了。方法一: socket----->sen...转载 2019-01-04 10:53:56 · 1053 阅读 · 0 评论 -
localhost和127.0.0.1的区别
localhost和127.0.0.1的区别bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family = AF_INET; //inet_pton(AF_INET,ip,&servaddr.sin_addr); servaddr.sin_addr.s_addr = htonl(INADDR_ANY);...原创 2018-12-21 18:29:17 · 3001 阅读 · 0 评论 -
看完让你彻底搞懂Websocket原理
http://www.blue-zero.com/WebSocket/ -- 在线测试偶然在知乎(https://www.zhihu.com/question/20215561)上看到一篇回帖,瞬间觉得之前看的那么多资料都不及这一篇回帖让我对 websocket 的认识深刻有木有。所以转到我博客里,分享一下。比较喜欢看这种博客,读起来很轻松,不枯燥,没有布道师的阵仗,纯粹为分享。废话这么多了,...转载 2018-09-19 16:50:03 · 12503 阅读 · 1 评论 -
迈向高阶:优秀Android程序员必知必会的网络基础
http://www.52im.net/thread-1963-1-1.html1、前言网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用的工具类,到后来Google开源的比较完善丰富的Volley,再到如今比较流行的Okhttp、Retrofit。要...转载 2018-09-17 17:35:02 · 586 阅读 · 0 评论 -
Linux netstat命令详解及state的含义
Linux:netstat -nalp|grep 1883 #查看1883端口的连接情况,观察TCP状态图netstat -nalp|grep 1883|wc -l #查看1883端口的客户端连接数ulimit -n 5120000 #修改当前进程的最大文件数tail -f *.log #实时查看日志内容 TCP三次握手的过程如下: 主动连接端发送一个SYN包...原创 2018-09-06 17:39:49 · 15973 阅读 · 1 评论 -
为什么心跳包(HeartBeat)是必须的?
https://blog.coderzh.com/2015/03/05/WhyHeartBeatNeeded/几乎所有的网游服务端都有心跳包(HeartBeat或Ping)的设计,在最近开发手游服务端时,也用到了心跳包。思考思考,心跳包是必须的吗?为什么需要心跳包?TCP没有提供断线检测的方法吗?TCP提供的KeepAlive机制可以替代HeartBeat吗? 由于连接丢失时,TCP不...转载 2018-08-17 11:19:15 · 3987 阅读 · 0 评论 -
Linux tcpdump,我的个人使用实例
我的个人实践如下:Wireshark是Windows下非常简单易用的抓包工具。但在Linux下很难找到一个好用的图形化抓包工具。还好有Tcpdump。我们可以用Tcpdump + Wireshark 的完美组合实现:在 Linux 里抓包,然后在Windows 里分析包。记得先在终端执行命令“ip a”,查看网卡的名称。CentOS 需要确保安装了tcpdump工具 #yum -y...原创 2018-07-26 09:58:59 · 1690 阅读 · 0 评论 -
Linux tcpdump命令详解
Linuxtcpdump命令详解tcpdump使用详解及数据包分析简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉...原创 2017-11-01 16:15:02 · 3641 阅读 · 0 评论 -
《计算机网络》知识总结-8.TCP中什么是滑动窗口技术?为什么要这个?
http://blog.csdn.net/u010833547/article/details/53106629前提在讨论这个问题前,先提出一个问题,假定我现在要A要发送一些数据给B,A要怎么才能保证发送的量B在网络良好的情况下能承受得住呢?答案:A在发送前B要告诉他自己的容量是多少,比如,我给你盛饭,你要先告诉我,你能吃多少饭,我保证不超过你的饭量,这样就不会浪费转载 2018-01-05 15:27:58 · 1078 阅读 · 0 评论 -
tcp之recv/send和滑动窗口知识学习(★firecat推荐,不了解窗口等于不理解TCP,非常重要★)
https://www.cnblogs.com/lisuyun/articles/5803352.html因此我们先了解一下16位的窗口大小究竟有什么作用。窗口分为滑动窗口和拥塞窗口。滑动窗口是接受数据端使用的窗口大小,用来告知发送端接收端的缓存大小,以此可以控制发送端发送数据的大小,从而达到流量控制的目的。那么对于数据的发送端就是拥塞窗口了,拥塞窗口不代表缓存,拥塞窗口指某一...转载 2018-01-05 15:01:46 · 1204 阅读 · 0 评论 -
(传输层)TCP协议
文章来源:http://www.cnblogs.com/kzloser/articles/2582957.html目录首部格式数据单位特定注意自动重传请求ARQ具体实现发送缓存接收缓存滑动窗口确认丢失和确认迟到超时重传时间选择报文段的发送时机运输连接发送TCP请求客户端拥塞处理相关概念避免拥塞具体实现TCP 的转载 2015-08-15 18:02:32 · 638 阅读 · 0 评论