首页 > 其他分享 >嵌入式学习-网络-Day01

嵌入式学习-网络-Day01

时间:2024-10-26 17:20:11浏览次数:3  
标签:addr int Day01 网络 192.168 嵌入式 TCP 接字 字节

嵌入式学习-网络-Day01

1.网络发展史

1.1 局域网(LAN)

1.2 广域网(Wan)

1.3 家庭用网

1.3.1光猫

1.3.2交换机与路由器:

2.IP地址

2.1基本概念

2.2二级划分(ipv4)

2.3特殊地址

2.4子网掩码

2.5三级划分

域名系统

域名结构

3.网络模型

3.1 网络的体系结构

3.2OSI模型

3.3TCP/IP模型

3.4常见网络协议

4.TCP和UDP

TCP:传输控制协议

UDP :用户数据报协议

5. 编程预备知识

5.1 socket套接字

5.1.1socket简介

5.1.2 socket类型

5.2端口号

5.3字节序

5.3.1主机字节序到网络字节序

5.3.2网络字节序到主机字节序

5.4IP地址转换

TCP编程

函数接口

1.socket

2.bind

3.listen

4.accept

5.recv

6.send

7.connect


1.网络发展史

ARPAnet ,即“阿帕网”

不能互联不同类型的计算机和不同类型的操作系统,没有纠错功能

TCP协议分成了两个不同的协议:

用来检测网络传输中差错的传输控制协议TCP

专门负责对不同网络进行互联的互联网协议IP

1.1 局域网(LAN)

局域网的缩写是LAN,local area network,本地的网络,只能实现小范围短距离的网络通信。我们的家庭网络是典型的局域网。电脑、手机、电视、智能音箱、智能插座都连在路由器上,可以互相通信。局域网,就像是小区里的道路,分支多,连接了很多栋楼。

1.2 广域网(Wan)

广域网(Wide Area Network)是相对局域网来讲的,局域网的传输距离比较近,只能是一个小范围的。如果需要长距离的传输,比如某大型企业,总部在北京,分公司在长沙,局域网是无法架设的。广域网,就像是大马路,分支可能少,但类型多,像国道、省道、高速、小道等,连接了很多大的局域网。

这时需要其它的解决方案。

第一,通过因特网,只需要办一根宽带,就实现了通信,非常方便,现在的宽带价格也比较便宜。

第二,通过广域网专线。

所以为了数据安全,不能连接因特网,需要用一条自己的专用线路来传输数据,这条线路上只有自己人,不会有其他人接入,且距离很远,这个网络就叫 “广域网”。

1.3 家庭用网

1.3.1光猫

光猫是一种类似于数字调制解调器的设备,接入的是光纤专线,是光信号。用于广域网中光电信号的转换和接口协议的转换,接入路由器,是广域网接入。一端连接运营商的入户线缆,一般是光纤,一端连接你自己的路由器。是一个运营商到你自己设备的桥梁。

将光线插入左侧的灰色口,右侧网口接网线到路由器即可。

1.3.2交换机与路由器:

交换机:用于局域网内网的数据转发 (转发给多个设备)

路由器:用于连接局域网和外网 (连接局域网的设备)

现在大部分路由器内部都是有交换机, 所以路由器都有交换机的功能。

注意交换机没有IP分配和IP寻址的功能,所以交换机不具备路由器功能。

2.IP地址

2.1基本概念

  • IP地址是Internet中主机的标识
  • Internet中的主机要与别的机器通信必须具有一个IP地址
  • IP地址为32位(IPv4)或者128位(IPv6)
  • 每个数据包都必须携带目的IP地址和源IP地址,路由器依靠此信息为数据包选择路由
  • 表示形式:常用点分十进制形式,如202.38.64.10,最后都会转换为一个32位的无符号整数。

2.2二级划分(ipv4)

ip = 网络号 + 主机号

网络号:表示是否在一个网段内(局域网)

主机号:标识在本网内的ID,同一局域网内不能重复

A:1.0.0.0~126.255.255.255

B: 128.0.0.0 ~ 191.255.255.255

C:192.0.0.0 ~ 223.255.255.255

D: 224.0.0.0~239.255.255.255

E: 240.0.0.0~247.255.255.255

2.3特殊地址

特殊地址不能分配给主机使用

网络地址:用于标识网络的起始地址, 有效网络号+全是0的主机号

192.168.50.132 -》192.168.50.0

128.1.2.3 -》128.1.0.0

12.1.2.3 -》12.0.0.0

广播地址:用于给局域网内所有主机发送数据使用, 有效网络号+全是1的主机号

192.168.50.132 ->192.168.50.255

128.1.2.3 ->128.1.255.255

12.1.2.3 ->12.255.255.255

拓展:

0.0.0.0: 用于服务器中, 0.0.0.0指的是监听本机上所有的IPV4地址

接受来自任意源IP地址的数据包,常用于服务器程序监听所有网络接口的连接请求。

127.0.0.1:回环地址/本机地址,一般用来测试使用,所有发往该类地址的数据包都应该被loop back

原样送回;

练习:C类地址,同一网段最多可以连接多少个主机?? 192.168.1.0

256-2=>254

2.4子网掩码

作用:可以将一个IP划分成网络地址和主机地址

特点:

  1. 子网掩码长度是和IP地址长度完全一样的,32bit的二进制数组成;
  2. 网络号全为1,主机号全为0

C类默认子网掩码:255.255.255.0

B :255.255.0.0

A :255.0.0.0

练习1: 子网掩码255.255.255.0,该网段可以容纳多少台主机?

192.168.0.125 & 255.255.255.0 -》192.168.0.0

子网掩码 & ip地址 = 网络地址

~子网掩码 &ip地址 = 主机地址

2.5三级划分

作用:重新区分网络号和主机号,重新组网。将二级地址变为三级地址。(提高利用率)

举例: 800个电脑 ,在不浪费IP的情况下,如何划分网段?

子网掩码:255.255.252.0

二级地址ip = 网络号 + 主机号

三级地址ip = 网络号 + 子网号 + 主机号

练习1

已知一个子网掩码号为255.255.255.192,问,最多可以连接多少台主机?

2^6 = 64 -2 = 62

练习2

某公司有四个部门:行政、研发1、研发2、营销,每个部门各30台计算机接入公司局域网交换机,如果要在192.168.1.0网段为每个部门划分子网,子网掩码应该怎么设置,每个子网的地址范围分别是什么?(4个部门之间不能通信)

255.255.255.1100 0000

子网掩码:255.255.255.192

192.168.1.00:

192.168.1.1 ~ 192.168.1.62

192.168.1.01:

192.168.1.65 ~ 192.168.1.126

192.168.1.10:

192.168.1.129 ~ 192.168.1.190

192.168.1.11:

192.168.1.193 ~ 192.168.1.254

练习3

有两台电脑主机,在最少浪费IP地址的情况下,将172.16.14.4与172.16.13.2划归为同一网段,则子网掩码应该设置为?

255.255.252.0

0000 1110 0000 0100

0000 1101 0000 0010

域名系统

由于使用IP地址来指定计算机不方便人们记忆,且输入时候容易出错,用字符标识网络中计算机名称方法。

这种命名方法就像每个人的名字,这就是域名(Domian Name)

域名服务器(Domain Name server):用来处理IP地址和域名之间的转换。

域名系统(Domain Name System,DNS):域名翻译成IP地址的软件

一个域名,可以绑定多个ip

域名结构

例如域名 www.baidu.com.cn 从右向左看

cn为高级域名,也叫一级域名,它通常分配给主干节点,取值为国家名,cn代表中国

com为网络名,属于二级域名,它通常表示组织或部门

中国互联网二级域名共40个,edu表示教育部门,com表示商业部门,gov表示政府,军队mil等等

baidu为机构名,在此为三级域名,表示百度

www:万维网world wide web,也叫环球信息网,是一种特殊的信息结构框架。

3.网络模型

3.1 网络的体系结构

  • 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。
  • 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务
  • 网络体系结构即指网络的层次结构和每层所使用协议的集合
  • 两类非常重要的体系结构:OSI与TCP/IP

3.2OSI模型

  • OSI模型是一个理想化的模型,尚未有完整的实现
  • OSI模型共有七层
  • OSI现阶段只用作教学和理论研究

应用层:指定特定应用的协议,文件传输,文件管理,电子邮件等

表示层:确保一个系统应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据加密,解密;

会话层:通信管理,负责建立或者断开通信连接

传输层:端口号,数据传输到具体那个进程程序(端到端)

网络层:路由器中是有算法的,ip,(主机到主机)(路由的转发)

链路层:格式变为帧(把数据分成包,一帧一帧的数据进行发送)

物理层:传输的是bit流(0与1一样的数据),物理信号,没有格式

3.3TCP/IP模型

OSI和TCP/IP模型对应关系图

3.4常见网络协议

网络接口和物理层:

PPP:拨号协议(老式电话线上网方式)

ARP:地址解析协议 IP-->MAC

RARP:反向地址转换协议 MAC-->IP

网络层:

IP(IPV4/IPV6):网间互连的协议

ICMP:网络控制管理协议,ping 命令使用

IGMP:网络分组管理协议,广播和组播使用

传输层:

TCP:传输控制协议

UDP:用户数据报协议

应用层:

SSH:加密协议

telnet:远程登录协议

FTP:文件传输协议(TCP)

TFTP:简单文件传输协议(UDP)

HTTP:超文本传输协议(明文发送)HTTPS加密传输

DNS:域名解析协议

SMTP/POP3:邮件传输协议

4.TCP和UDP

TCP:传输控制协议

TCP(Transmission Control Protocol)是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)


适用情况:
 1、适合于对传输质量要求较高,以及传输大量数据的通信。
 2、在需要可靠数据传输的场合,通常使用TCP协议
 3、MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议
 缺点:
 发送量较大,效率低

UDP :用户数据报协议

UDP (User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输

适用情况:
1.发送小尺寸数据(如对DNS服务器进行IP地址查询时)
2.在接收到数据,给出应答较困难的网络中使用UDP。
3.适合于广播/组播式通信中。
4.MSN/QQ/skype 等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
5.流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

Dos(拒绝式服务)攻击?

DOS:即 Denial of service,拒绝服务的缩写,拒绝服务,Dos 攻击即攻击者想办法让目标机器停止提供服务或资源访问,这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。

要对服务器实施拒绝服务攻击,主要有以下两种方法:

①迫使服务器的缓冲区满,不接收新的请求;

②使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接,这也是Dos攻击实施的基本思想。为便于理解,以下介绍一个简单的Dos攻击基本过程:攻击者先向受害者发送大量带有虚假地址的请求,受害者发送回复信息后等待回传信息。由于是伪造地址,所以受害者一直等不到回传信息,分配给这次请求的资源就始终不被释放。当受害者等待一定时间后,连接会因超时被切断,此时攻击者会再度传送一批伪地址的新请求,这样反复进行直至受害者资源被耗尽,最终导致受害者系统瘫痪。

5. 编程预备知识

5.1 socket套接字

5.1.1socket简介

1》1982 - Berkeley software Distributions操作系统引入了socket作为本地进程之间通信的接口

2》1986 - Berkeley扩展了socket接口,使之支持UNIX下的TCP/IP 通信

3》现在很多应用(FTP,Telnet)都依赖这一接口

socket

1、是一个编程接口

2、是一种特殊的文件描述符(everything in unix is a file)

3、并不仅限于TCP/IP协议

4、面向连接(Transmission control Protocol - TCP/IP)

5、无连接(User Datagram Protocol -UDP和Inter-network Packet Exchange- IPX

5.1.2 socket类型

流式套接字(SOCK_STREAM)   TCP

提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。

数据报套接字(SOCK_DGRAM)  UDP

提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。

原始套接字(SOCK_RAW)

可以对较低层次协议如IP、ICMP直接访问。

5.2端口号

  • 为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来区分
  • TCP端口号与UDP端口号独立
  • 端口用两个字节来表示 2byte
众所周知端口:1~1023(1~255之间为众所周知端口,256~1023端口通常由UNIX系统占用)
已登记端口:1024~49151    (选1000以上10000以下) 
动态或私有端口:49152~65535

5.3字节序

  1. 字节序是指不同类型的cpu主机,内存存储 "多字节整数" 序列的方式
  2. 浮点类型,字符类型,字符串没有字节序。
  3. 小端序(little-endian) - 低序字节存储在低地址 (主机字节序)
  4. 大端序(big-endian) - 高序字节存储在低地址 (网络字节序)

面试题:写一个函数,判断当前主机的字节序?

#include<stdio.h>
union value
{
    int a;
    char b;
};
int main(int argc, char const *argv[])
{
    //1.指针指向
    int a = 0x12345678;
    char *p = &a;
    printf("%#x\n",*p);

    //2.共用体
    union value val;
    val.a = 0x12345678;
    printf("%#x\n",val.b);

    //3.类型强转
    char b = (char)a;
    printf("%#x\n",b);
    return 0;
}


5.3.1主机字节序到网络字节序

u_long htonl(u_long hostlong);

u_short htons(u_short short);//掌握这个

5.3.2网络字节序到主机字节序

u_long ntohl(u_long hostlong);

u_short ntohs(u_short short);


5.4IP地址转换

typedef uint32_t in_addr_t;
struct in_addr
{
    in_addr_t s_addr;
};

in_addr_t inet_addr(const char *ip);//从人看的IP地址转换为机器使用的32位无符号整数
char *inet_ntoa(struct in_addr in);//从机器到人


代码测试:

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include<stdio.h>

int main(int argc, char const *argv[])
{
    //1.将字符串ip转换成32位无符号整数
    in_addr_t addr  = inet_addr("192.168.50.123");
    printf("%#x\n",addr);

    //2.将32位无符号整数转换为字符串ip
    struct in_addr in;
    in.s_addr = addr;
    char *p = inet_ntoa(in);
    printf("%s\n",p);
    return 0;
}

TCP编程

服务器:
   1.创建流式套接字(socket())------------------------>  有手机
   2.指定本地的网络信息(struct sockaddr_in)----------> 办电话卡
   3.绑定套接字(bind())---------------------------->将电话卡插入手机
   4.监听套接字(listen())---------------------------->待机
   5.链接客户端的请求(accept())---------------------->接电话
   6.接收/发送数据(recv()/send())-------------------->通话
   7.关闭套接字(close())----------------------------->挂机

客户端:
   1.创建流式套接字(socket())----------------------->有手机
   2.指定服务器的网络信息(struct sockaddr_in)------->有对方号码
   3.请求链接服务器(connect())---------------------->打电话
   4.发送/接收数据(send()/recv())------------------->通话
   5.关闭套接字(close())--------------------------- >挂机

函数接口

1.socket

#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>

int socket (int domain,int type, int protocol) ;
功能:创建套接字
参数:
    domain:协议族
        AF_UNIX,AF_LOCAL      本地通信
        AF_INET                ipv4
        AF_INET6               ipv6
    type:套接字类型
        SOCK_STREAM:流式套接字
        SOCK_DGRAM:数据报套接字
        SOCK_RAW:原始套接字
    protocol:协议–填0自动匹配底层,根据type系统默认自动帮助匹配对应协议
    返回值:
        成功      文件描述符
        失败      -1,更新errno

2.bind

#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>

int bind (int sockfd,const struct sockaddr * addr ,socklen t addrlen) ;

功能:绑定
参数:
    socket:套接字
    addr:用于通信结构体(提供的是通用结构体,需要根据选择的通信方式,填充对应
结构体--通信方式由当时socket第一个参数确定)
    addrlen:结构体大小
    返回值:成功0    失败-1,更新errno


通用结构体:
struct sockaddr {
    sa_family_t sa_family;
    char    sa _data [14];
}

ipv4通信结构体:
struct sockaddr_in {
    sa_family_t    sin_family;//协议族
    in_port_t    sin_port;    //端口号
    struct in_addr sin_addr;    //ip地址
};
struct in_addr {
    uint32_t    s_addr;
};

本地通信结构体:
struct sockaddr_in{
    sa_family_t sun_family;    /* AF_UNIX *///协议族
    char    sun_path [108];    /*pathname *///路径
};


3.listen

#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>

int listen(int sockfd, int backlog);
功能:监听,将主动套接字变为被动套接字
参数:
 sockfd:套接字
 backlog:同时响应客户端请求链接的最大个数,不能写0.
  不同平台可同时链接的数不同,一般写5,10个
  返回值:成功 0   失败-1,更新errno  

4.accept

#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
accept(sockfd,NULL,NULL);
阻塞函数,阻塞等待客户端的连接请求,如果有客户端连接,则accept()函数返回,返回一个用于通信的套接字文件;
参数:
   Sockfd :套接字
   addr: 链接客户端的ip和端口号
      如果不需要关心具体是哪一个客户端,那么可以填NULL;
   addrlen:结构体的大小
     如果不需要关心具体是哪一个客户端,那么可以填NULL;
  返回值: 
     成功:文件描述符; //用于通信
失败:-1,更新errno


5.recv

ssize_t recv(int sockfd, void *buf, size_t len, int flags);
功能: 接收数据 
参数: 
    sockfd: acceptfd ;//用于通信的文件描述符
    buf  存放位置
    len  大小
    flags  一般填0,相当于read()函数
    MSG_DONTWAIT  非阻塞
返回值: 
   < 0  失败出错  更新errno
   ==0  表示客户端退出
   >0   成功接收的字节个数

6.send

ssize_t send(int sockfd, const void *buf, size_t len, int flags);
功能:发送数据
参数:
    sockfd:用于通信的文件描述符
    buf:发送内容存放的地址
    len:发送内存的长度
    flags:如果填0,相当于write();

7.connect

int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
功能:用于连接服务器;
参数:
     sockfd:socket函数的返回值
     addr:填充的结构体是服务器端的;
     addrlen:结构体的大小
返回值 
      -1 失败,更新errno
      正确 0 

服务器端:

#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdio.h>
#define N 128
int main(int argc, char const *argv[])
{
    // 1.创建套接字
    int sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd < 0)
    {
        perror("socket err:");
        return -1;
    }
    // 2.填充结构体(ipv4)
    struct sockaddr_in addr;
    addr.sin_family = AF_INET;                          // 协议族ipv4
    addr.sin_port = htons(8888);                        // 端口号(网络字节序)
    addr.sin_addr.s_addr = inet_addr("192.168.50.202"); // ip地址(网络字节序)

    // 3.绑定
    int ret = bind(sockfd, (struct sockaddr *)&addr, sizeof(addr));
    if (ret < 0)
    {
        perror("bind err:");
        return -1;
    }

    // 4.监听
    if (listen(sockfd, 5) < 0)
    {
        perror("listen err");
        return -1;
    }

    // 5.等待连接
    int acceptfd = accept(sockfd, NULL, NULL);
    if (acceptfd < 0)
    {
        perror("accpet err:");
        return -1;
    }
    // 6.接收
    char buf[N] = {};
    ret = recv(acceptfd, buf, N, 0);
    if (ret == -1)
    {
        perror("recv err:");
        return -1;
    }
    printf("recv:%s\n", buf);
    // 7.关闭
    close(acceptfd);
    close(sockfd);

    return 0;
}

注意事项:

1)收发的字节大小注意一致,否则可能越界

2)服务器端收发用的是accepfd ,不要写成用于通信的sockfd

标签:addr,int,Day01,网络,192.168,嵌入式,TCP,接字,字节
From: https://blog.csdn.net/Xiaomo1536/article/details/143256514

相关文章

  • 网络安全基础要点知识介绍
    文章目录网络安全网络安全问题概述两类密码体制数字签名鉴别报文鉴别实体鉴别密钥分配对称密钥的分配公钥的分配互联网使用的安全协议运输层安全协议参考文献网络安全网络安全问题概述计算机网络的通信面临两大类威胁:被动攻击和主动攻击。被动攻击:指攻击者从网络上......
  • 实用 | 满满的干货,网络安全知识学起来(非常详细)零基础入门到精通,收藏这一篇就够了
    随着“互联网+”时代的到来,人们的生活变得更加便利,与此同时,生活中各种诈骗短信、垃圾邮件、钓鱼网站也随之而来,导致我们个人信息泄露,甚至财产损失。网络是把双刃剑,如何安全使用成了关键。那么网络安全知识,你知道多少呢?网络安全常见问题隐患01网络病毒攻击02网络黑客入......
  • 如何成为一名网络安全工程师?(非常详细)零基础入门到精通,收藏这一篇就够了
    在5G互联网高度发达的今天,网络安全被提升到国家战略,信息网络安全问题引发了社会各界的广泛关注,越来越多的网络安全类人才受到各大公司的青睐。如果你的逻辑分析能力足够强,同时还有IT领域工作经验,并且对网络安全工程师这个职业感兴趣的话,不妨现在就开始规划一下你的职业发展......
  • 专有网络VPC实践之【网络规划】
    当您需要使用专有网络VPC来部署您的业务,您可以结合现有业务的规模和未来的扩展预期来对VPC进行网络规划,满足当前业务需求并保障业务持续稳定的同时能够平稳高效地实现业务拓展诉求。合理的网络规划需要考虑安全隔离、高可用容灾、运营成本等多方面因素,保障业务稳定性与网络的......
  • 计算机网络整体认识,尝试以最少的时间让你知道计网(只要问一下自己就可以知道什么是计网
    文章目录前言一、计算机网络是什么二、物理层三、数据链路层(使用MAC地址)四、网络层(使用IP地址)五、传输层(TCP/IP、UDP)六、应用层(HTTP、FTP、SMTP、DNS)下面是我对计网的浅识认知,单纯是个人经验,有不足的地方可以在评论区中指正,我看到后会进行修正。我的目的是以最少的篇......
  • 网络安全主要内容(非常详细)零基础入门到精通,收藏这篇就够了
    1.什么是网络安全?网络安全是指保护计算机网络及其相关系统、设备和数据免受未经授权的访问、使用、泄露、破坏或干扰的一种措施或实践。它包括保护网络中的硬件、软件和数据免受各种威胁和攻击,以确保网络的机密性、完整性和可用性。2.网络安全内容网络安全的内容包括了......
  • 2024网络安全现状,一个(黑客)真实的收入
    一个黑客年薪是多少呢?外界普遍认为黑客是高收入群体,那么你想过黑客是怎么赚钱的吗?黑客分为白帽黑客和黑帽黑客,处于黑白两道的黑客会的技术都有些相似,但是却是对立的,白帽做网络安全,修补漏洞。黑帽各种破坏,挖数据,攻击漏洞。===白帽收入稳定由于白帽黑客是正规稳定的职业,通......
  • Python网络爬虫入门指南
    Python网络爬虫入门指南网络爬虫(WebCrawler),又称为网络蜘蛛(WebSpider),是一种自动化程序,能够遍历互联网上的网页,收集并提取所需的数据。Python作为一种功能强大且易于学习的编程语言,非常适合用于编写网络爬虫。本文将带你了解Python网络爬虫的基本概念、主要库及其使用方法......
  • 网络安全——防火墙技术
    目录前言基本概念常见防火墙技术防火墙的主要功能防火墙的不足之处相关题目1.组织外部未授权用户访问内部网络2.DMZ区3.包过滤防火墙和代理服务防火墙前言这是在软件设计师备考时编写的资料文章,相关内容偏向软件设计师基本概念防火墙技术是网络安全领域中的一项关......
  • 配置WSL2实现与宿主机的网络互通
    前言 WSL1是基于代理的虚拟化技术,它通过将Linux系统调用转换为Windows系统调用来实现与Windows内核的交互。WSL2则使用了真正的虚拟机技术,它在Windows主机上运行一个轻量级的Linux内核。WSL2无法访问Windows的localhost网络是由WSL2的网络架构所致。WSL2......