计算机网络
计算机网络相关知识
_123杨子江
这个作者很懒,什么都没留下…
展开
-
本人的Linux系统学习
目录2020年6月1、Linux系统常用指令2、命令解析器shell3、Linux下常用快捷键4、linux下的目录结构5、文件和目录操作相关的命令6、用户权限、用户、用户组7、find命令8、grep命令9、find和grep命令结合使用10、Linux中常用的压缩工具11、软件的安装和卸载11.1 在线安装11.2 软件包安装12、VIM13、gcc编译器14、静态库和共享(动态)库15、makefile16、gdb调试17、文件IO2020年6月28日(文件和目录操作)1、文件权限计算方法:2 思考:原创 2020-07-22 17:50:19 · 1170 阅读 · 0 评论 -
HTTP 和 HTTPS 的区别
无论是在校学习还是找工作的时候,老师和面试官都问过同学 HTTP 和 HTTPS 的区别。平时上网的时候也没有关注这个问题,只是知道计算机网络里 HTTP 的概念,所以最近才查资料好好补补这一块。其实这一块的知识延伸很广,如果之前不太了解加密算法和 SSL 协议,可以在学习了这个问题的基础上再做研究。原文链接:https://blog.csdn.net/qq_38289815/article/details/80969419一、HTTP 和 HTTPS 的基本概念二、HTTP 与 HTTPS 的区别转载 2020-07-27 01:13:01 · 175 阅读 · 0 评论 -
正则表达式
目录正则表达式到底是什么东西?入门假如你要找的是 hi 后面不远处跟着一个Lucy,你应该用\bhi\b.*\bLucy\b。更详细地内容请参考:1、[正则表达式30分钟入门教程](https://deerchao.cn/tutorials/regex/regex.htm)2、[正则表达式](https://www.runoob.com/regexp/regexp-intro.html)3、[正则表达式速查表](https://www.jb51.net/tools/regexsc.htm)正则表达式到底是转载 2020-07-19 22:30:19 · 166 阅读 · 0 评论 -
计算机网络(Linux系统)--线程池
来源于视频教学课程1、什么是线程池?是一个抽象的概念, 若干个线程组合到一起, 形成线程池.2、为什么需要线程池?多线程版服务器一个客户端就需要创建一个线程! 若客户端太多, 显然不太合适.什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。实现的时候类似于生产者和消费者.参考博客:https://w原创 2020-07-19 22:17:43 · 231 阅读 · 0 评论 -
XML 简介
以下参考于:XML 简介什么是XMLXML 指可扩展标记语言(EXtensible Markup Language)。XML 是一种很像HTML的标记语言。XML 的设计宗旨是传输数据,而不是显示数据。XML 标签没有被预定义。您需要自行定义标签。XML 被设计为具有自我描述性。XML 是 W3C 的推荐标准。XML 应用于 web 开发的许多方面,常用于简化数据的存储和共享。XML和HTML区别XML 不是 HTML 的替代。XML 和 HTML 为不同的目的而设计:XML.原创 2020-07-18 23:35:08 · 184 阅读 · 0 评论 -
JSON简介
以下参考于:JSON - 简介为什么使用 JSON?对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:使用 XML读取 XML 文档使用 XML DOM 来循环遍历文档读取值并存储在变量中使用 JSON读取 JSON 字符串用 eval() 处理 JSON 字符串与 XML 相同之处JSON 是纯文本JSON 具有"自我描述性"(人类可读)JSON 具有层级结构(值中存在值)JSON 可通过 JavaScript 进行解析JSON 数据可使用 AJAX 进行.原创 2020-07-19 00:23:18 · 313 阅读 · 0 评论 -
HTML简介(三)libevent实现httpserver
接上:HTML简介(一)接上:HTML简介(二)main.c#include <stdio.h>#include <unistd.h>#include <arpa/inet.h>#include <stdlib.h>#include <string.h>#include <signal.h>#include <event2/bufferevent.h>#include <event2/listene原创 2020-07-19 20:51:17 · 444 阅读 · 0 评论 -
HTML简介(二)
接上:HTML简介(一)资源来源于视频教程一、HTTP中的文件类型二、正则表达式三、sscanf函数四、strftime函数五、数据转码六、简单例子0、epoll模型服务器代码1、epoll模型接受请求连接函数2、getline函数3、do_read函数4、http_resquest函数5、发送http响应头函数6、readdir读目录epoll_server.h#ifndef _EPOLL_SERVER_H#define _EPOLL_SERVER_Hin原创 2020-07-19 18:40:02 · 913 阅读 · 0 评论 -
HTML简介(一)
HTML简介(一)目录引言、以下来源于:[HTML 简介](https://www.w3school.com.cn/html/html_jianjie.asp)1.什么是 HTML?2.HTML 标签3.HTML 文档 = 网页一、HTML 简介二、文字和标题标签三、列表标签四、图片标签五、超链接标签六、表格标签七、HTTP协议八、HTTP使用get和post请求数据九、重定向十、web服务器实现十一、简单实例引言、以下来源于:HTML 简介1.什么是 HTML?HTML 是用来描述网页的一种语言。原创 2020-07-19 12:13:53 · 549 阅读 · 0 评论 -
计算机网络(Linux系统)--libevent
以下引用自:https://zhuanlan.zhihu.com/p/87562010一、libevent介绍Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等.原创 2020-07-14 23:39:53 · 216 阅读 · 0 评论 -
计算机网络(Linux系统)--广播和组播
广播广播是指将报文发送到网络中的所有可能的接收者。从原理上这很容易实现:路由器简单地将它接收到的任何广播报文副本转发到除该报文到达的接口以外的每个接口。当多台主机连接到同一个局域网时,广播还能结合链路层特点提供相对更高效的转发策略。组播为了减少在广播中涉及的不必要的开销,可以只向特定的一部分接收方(可以是域内也可以是域间)发送流量,这被称为组播。从根本上说,通过发送方指明接收方,或是通过接收方独立地指明它们的“兴趣”,就可以完成这项工作。然后网络只负责向预期的或感兴趣的收件方发送流量。实现组播.原创 2020-07-14 22:48:14 · 909 阅读 · 0 评论 -
计算机网络(Linux系统)--本地套接字通信
1、IPC 进程间通信(1)pipe管道 半双工 ps_grep(2)fifo有名管道(3)mmap文件映射共享IO --速度最快(4)本地socket套接字 --最稳定(5)信号 --携带信息量最小(6)共享内存(7)消息队列本地套接字是 IPC,也就是本地进程间通信的一种实现方式。除了本地套接字以外,其它技术,诸如管道、共享消息队列等也是进程间通信的常用方法,但因为本地套接字开发便捷,接受度高,所以普遍适用于在同一台主机上进程间通信的各种场景。server.c#include &..原创 2020-07-12 20:38:34 · 494 阅读 · 0 评论 -
计算机网络--(Linux系统)Socket之心跳包实现思路
为什么需要心跳包?1.TCP本身并不提供那么及时的断线检测 断线检测需要轮询发送检测报文,会消耗一定的网络带宽和暂用一定的网络资源。如果把它做成TCP的底层默认功能,那些不需要断线检测的应用程序将会浪费不必要的带宽资源2. TCP的KeepAlive机制可以用来代替心跳包么? TCP有个KeepAlive开关,打开后可以用来检测死连接。通常默认是2小时,可以自己设置。但是注意,这是TCP的全局设置。会影响所有应用程序3.网络上有大量的连接缓存设备 举个例子,A客户连着B服务器,但实际上是.原创 2020-07-12 19:30:19 · 712 阅读 · 0 评论 -
计算机网络--TCP,UDP通信使用场景及区别
https://blog.csdn.net/weixin_42385626/article/details/81983594tcp udp使用场景原创 2020-07-12 11:59:24 · 418 阅读 · 0 评论 -
计算机网络--Linux下select、poll和epoll之间的区别
目录标题1、select——>原理概述:缺点:1、每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大;2、同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大;3、select支持的文件描述符数量太小了,默认是1024。优点:2、poll——>原理概述:缺点:1、大量的fd的数组被整体复制于用户态和内核地址空间之间,而不管这样的复制是不是有意义;2、与select一样,poll返回后,需要轮询pollfd来获取就绪的描述符。优转载 2020-07-11 23:43:42 · 556 阅读 · 0 评论 -
计算机网络--linux下epoll函数详解
目录标题1、epoll基础(1)epoll基础API(2)server(3)client2、epoll进阶(1)事件模型ET模式LT模式基于网络C/S模型的epoll ET触发模式基于网络C/S非阻塞模型的epoll ET触发模式1、epoll基础 epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,原创 2020-07-11 23:33:04 · 277 阅读 · 0 评论 -
计算机网络--linux下poll函数详解
poll函数概述select() 和 poll() 系统调用的本质一样,poll() 的机制与 select() 类似,与 select() 在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll() 没有最大文件描述符数量的限制(但是数量过大后性能也是会下降)。poll() 和 select() 同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。头文件:#转载 2020-07-11 22:00:09 · 990 阅读 · 0 评论 -
计算机网络--linux下select函数详解
select()的使用所需头文件:#include <sys/select.h>#include <sys/time.h>#include <sys/types.h>#include <unistd.h>int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);功能:监视并等待多个文件描述符的转载 2020-07-11 21:19:48 · 777 阅读 · 0 评论 -
计算机网络--IO多路转接
-------来自视频教程原创 2020-07-11 21:05:35 · 273 阅读 · 0 评论 -
Linux系统--socket端口复用
1 - 端口复用端口复用最常用的用途是:防止服务器重启时之前绑定的端口还未释放程序突然退出而系统没有释放端口设置方法:int opt = 1;SO_REUSEADDR,setsockopt(sockfd, SOL_SOCKET, (const void *)&opt, sizeof(opt));注意事项:绑定之前设置端口复用的属性为什么要有这个端口复用呢因为在服务端结束后,也就是第三次挥手的时候会有个等待释放时间,这个时间段大概是1-4分钟,在这个时间内,端原创 2020-07-11 20:33:23 · 970 阅读 · 0 评论 -
计算机网络--Linux下netstat命令详解
1、介绍Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。2、netstat常用命令参数usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--help} netstat [-vnNcaeol转载 2020-07-11 19:57:08 · 401 阅读 · 0 评论 -
计算机网络--半关闭
半关闭当TCP链接中A发送FIN请求关闭,B端回应ACK后(A端进入FIN_WAIT_2状态),B没有立即发送FIN给A时,A方处在半链接状态,此时A可以接收B发送的数据,但是A已不能再向B发送数据。从程序的角度,可以使用API来控制实现半连接状态。#include <sys/socket.h>int shutdown(int sockfd, int how);sockfd: 需要关闭的socket的描述符how: 允许为shutdown操作选择以下几种方式: SHUT_RD(0)原创 2020-07-11 19:16:06 · 333 阅读 · 0 评论 -
计算机网络--TCP连接状态与2MSL
1、TCP连接状态CLOSED:表示初始状态。LISTEN:该状态表示服务器端的某个SOCKET处于监听状态,可以接受连接。SYN_SENT:这个状态与SYN_RCVD遥相呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,随即进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。SYN_RCVD: 该状态表示接收到SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中原创 2020-07-11 19:10:54 · 604 阅读 · 0 评论 -
守护进程,僵尸进程和孤儿进程
 孤儿进程与僵尸进程: 在linux当中,子进程是由父进程创建的,子进程再创建新的进程。子进程的结束和父进程的运行是一个异步的过程,即父进程永远无法预测子进程到底什么时候结束。unix系统提供了一种机制可以让父进程获得子进程结束时的状态信息,也就是说在每个进程退出的时候,内核释放该进程所有的资源,...转载 2019-11-13 20:04:30 · 242 阅读 · 0 评论 -
计算机网络--TCP可靠的传输
TCP提供了可靠的传输服务,这是通过下列方式提供的:分块发送:应用数据被分割成TCP认为最适合发送的数据块。由TCP传递给IP的信息单位称为报文段或段(segment)定时确认重传:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将...转载 2020-05-07 22:41:18 · 400 阅读 · 0 评论 -
计算机网络之远程终端协议TELNET
TELNET 是一个简单的远程终端协议。用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。TELNET 也使用客户服务器方式。在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程。和 FTP 的情况相似,服务器中的主进程等待新的请求,.转载 2020-06-21 11:30:22 · 1059 阅读 · 0 评论 -
计算机网络--动态主机配置协议
1.DHCP的基本介绍(1).DHCP能够为局域网内的主机分配IP地址,采用C/S模式。DHCP协议报文采用UDP进行封装,服务器采用67号端口进行侦听,客户端采用68号端口。2.DHCP的优点(1)即插即用。即在使用了DHCP服务的网络中,终端主机无需配置即可自动获得所需要的网络参数,减轻了网络管理员的压力(2)统一管理。在DHCP的协议中由服务器对客户端的配置信息进行统一的管理。服务器通过侦听客户端的要求给出相应的回复。(3)有效的利用的IP地址资源。服务器可以给客户端一个具体期限的IP地址.转载 2020-06-18 00:37:28 · 727 阅读 · 0 评论 -
计算机网络--文件传输协议FTP
三、文件传输协议:FTP在典型的FTP会话中,用户坐在一台主机(本地主机)前,向一台远程主机上传文件或从远程主机下载文件。为了让用户能访问远程主机的账户,用户必须提供一个用户标识和口令作为FTP命令的一部分,在提供了授权信息后,用户就能从本地文件系统向远程主机文件系统传送文件。过程如下:①、用户提供远程主机的主机名,使本地主机的FTP客户机进程建立一个到远程主机FTP服务器进程的TCP连接②、用户提供用户标识和口令,作为FTP命令的一部分在TCP连接上传送③、一旦该服务器向用户授权,用户就可以.转载 2020-06-17 23:48:39 · 1238 阅读 · 0 评论 -
计算机网络之域名系统DNS
域名服务器因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。因特网上的DNS域名服务器也是按照层次安排的。每一个域名服务器都只对域名体.转载 2020-06-12 16:55:29 · 594 阅读 · 0 评论 -
TCP拥塞控制
一、拥塞控制的一般原理1、产生拥塞的原因:在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。即对资源的需求大于可用资源注意拥塞控制与流量控制的区别:拥塞控制是防止过多的数据注入网络中,使得网络中路由器或链路不致过载,有一个前提是,网络能够承受现有的网络负荷,是一个全局性过程;流量控制是指点对点通信的控制,做的是抑制发送端发送数据的速率,便于接收端来得及接收。2、拥塞控制是一个动态的过程,通常使用网络负载(单位时间输入给网络的分组数量)和吞吐量(单位时间从网络输出的转载 2020-06-11 11:15:19 · 294 阅读 · 0 评论 -
TCP 流量控制
一、为什么需要流量控制?双方在通信的时候,发送方的速率与接收方的速率是不一定相等,如果发送方的发送速率太快,会导致接收方处理不过来,这时候接收方只能把处理不过来的数据存在缓存区里(失序的数据包也会被存放在缓存区里)。如果缓存区满了发送方还在疯狂着发送数据,接收方只能把收到的数据包丢掉,大量的丢包会极大着浪费网络资源,因此,我们需要控制发送方的发送速率,让接收方与发送方处于一种动态平衡才好。对发送方发送速率的控制,我们称之为流量控制。二、如何控制?接收方每次收到数据包,可以在发送确定报文的时候,同转载 2020-06-11 11:10:48 · 591 阅读 · 0 评论 -
计算机网络--TCP滑动窗口
TCP协议作为一个可靠的面向流的传输协议,其可靠性是由流量控制和滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。一、滑动窗口协议1 ) . “窗口”对应的是一段可以被发送者发送的字节序列,其连续的范围称之为“窗口”;2 ) . “滑动”则是指这段“允许发送的范围”是可以随着发送的过程而变化的,方式就是按顺序“滑动”。在引入一个例子来说这个协议之前,我觉得很有必要先了解以...转载 2020-05-07 22:49:10 · 1060 阅读 · 0 评论 -
计算机网络-UDP和TCP首部格式
1、UDP首部格式原文链接:https://blog.csdn.net/HuYingJie_1995/article/details/88763837UDP有两个字段:数据字段和首部字段,首部由八个字节四个字段组成,每个字段长度都是两字节。(1) 源端口:源端口号,对方回信时选用,不需要可全为0;(2) 目的端口:终点交付报文必须使用;(3) 长度:UDP用户数据报长度,最小值为8;(...原创 2020-05-06 19:31:47 · 457 阅读 · 0 评论 -
计算机网络--路由选择协议
转载 2020-04-21 23:51:19 · 276 阅读 · 0 评论 -
计算机网络--路由器
来自:计算机网络(4.18)网络层-路由器的构成1、路由器的结构整个的路由器结构可划分为两大部分:路由选择部分分组转发部分路由选择部分:也叫做控制部分,其核心构件是路由选择处理机。 路由选择处理机的任务是根据所选定的路由选择协议构 造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。分组转发部分由三部分组成:交换结构(switching fabri...原创 2020-04-19 22:21:30 · 984 阅读 · 0 评论 -
计算机网络--虚拟专用网
由于IP地址的紧缺,一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数。考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。假定在一个机构内部的计算机通信也是采用TCP/IP协议,那么从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其IP地址。本地地址——仅在机构内部使用的IP地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。全球...转载 2020-04-18 22:13:45 · 998 阅读 · 0 评论 -
计算机网络--网际控制报文协议ICMP
为了更有效地转发数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP,ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文是装在IP数据报中,作为其数据的一部分。报文格式ICMP报文分为2种:ICMP差错报文终点不可达当路由器主机不能交付数据报时就向源点发送终点不可达报文。源点抑制当路由器或主机不能交付数据报时,就像源点发送终点不可达报文。时...转载 2020-04-15 12:11:44 · 824 阅读 · 0 评论 -
ARP与RARP详细解析
1.基本关系:2.地址解析协议 ARP的实现过程: 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。 每一个主机都设有一个 ARP高速缓存(ARP cache),里面有所在的局域网上的各...转载 2020-04-12 23:28:46 · 2838 阅读 · 0 评论 -
计算机网络之IP地址编址方式
IP 地址的编址方式经历了三个历史阶段:分类、子网划分、无分类。1. 分类由两部分组成,网络号和主机号,其中不同分类具有不同的网络号长度,并且是固定的。IP 地址 ::= {< 网络号 >, < 主机号 >}2. 子网划分通过在主机号字段中拿一部分作为子网号,把两级 IP 地址划分为三级 IP 地址。IP 地址 ::= {< 网络号 >, <...转载 2020-04-11 23:54:22 · 5552 阅读 · 0 评论 -
计算机网络--IP数据报格式
解析(1)版本:占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。(2)首部长度:占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加...转载 2020-03-18 16:31:24 · 1648 阅读 · 0 评论