计算机网络基础以及linux面试知识点总结

网络基础和 Linux

一、网络基础

1.网络的基本概念

(1)OSI七层模型和 TCP/IP的五层模型 (掌握)

物理层

​ 物理网络传输的介质 网线 、modem、 光纤等

数据链路层

​ 打包数据 bit组成byte,byte组成帧,Mac地址(每台网络设备网卡-全球唯一的地址) ARP RARP协议

网络层

​ 通过IP地址进行寻址,通过路由找到目标地址

传输层

​ 知道ip和mac就可以传输数据,TCP和UDP,建立一个连接

会话层

​ 建立、管理和维护会话 session

表示层

​ 数据格式转换、数据加密

应用层

​ 为应用提供的服务 App

(2) mac地址-物理地址(了解)

​ mac地址与ip地址的区别?

​ mac地址设备的物理地址,是全球唯一的

​ ip地址外网ip地址不能冲突,不同的局域网中ip可能会重复

(3)三层设备路由器和二层设备交换机的区别?(了解)

​ 三层设备 网络层

​ 二层设备 数据链路层

交换机构建一个局域网,不能保证上外网

路由器(都有交换器的功能LAN口),可以上外网

(4) IP地址一些概念(了解)

​ a、IPV4和IPV6的区别?

​ ipv4 0-255由4段组成一个数 212.12.45.128 42亿

​ ipv6 16位的16进制数8段构成 aaab:1999:0f4f:aaaa:bbbb:cccc:dddd:1111

​ b、ip地址的分类

​ ip构成: 212.12.45.128 网络地址+主机地址

​ A类地址 网络地址最高位必须是0 00000001 - 01111111 1-126

​ 123.4.5.6

​ 子网掩码 255.0.0.0 (通过ip判断是否在同一个网络中)

​ 123.0.3.5 123.6.18.222

​ ==》123.0.0.0 123.0.0.0 一个网络容纳1600多万主机

​ B 一个b类的地址有2个字节表示网络地址,2个字节表示主机地址, 网络地址最高位10开头

​ 默认的子网掩码 255.255.0.0

​ C 3个字节网络+1个字节的主机地址 255.255.255.0

​ D 广播地址 1110开头

​ E 保留地址 11110开头

2.网络的协议(掌握)

(1)什么叫网络协议?

​ 在网络通讯中,通讯的双方约定一种数据定义和解析方式

(2)有哪些网络协议

​ HTTP、 HTTPS、 FTP、TCP 、UDP、SMTP/POP3、DNS 、DHCP、ARP、IP等

(3)网络协议在osi模型中的位置(重点)

​ 应用层 – http telnet ftp dns smtp/pop3、dhcp

​ 传输层 — tcp udp

​ 网络层 — ip icmp(ping)

​ 数据链路层 – arp 、 rarp

​ 物理层 – pam5协议

(4)网络协议的功能(重点)

  • http协议特点

    无状态 服务器默认不会存储http请求的状态信息,开发中使用session或者token

    ​ session创建完成后,服务器需要使用资源维护该session

    ​ 而token创建完服务器不需要维护,从客户端返回只需要按照一定的算法对token进行解密,发现token是合法的,就代表该用户是登录用户,可以进行相应的操作

    无连接 http1.0

  • http1.0 1.1 2.0等区别

    http1.0 使用了短链接 ,传输是文本形式

    http1.1 默认使用长连接,传输也是二进制形式

    http2.0默认使用长连接,传输使用二进制形式,可以异步分段传输

  • tcp长连接和短链接

    tcp长连接就是在三次握手之后传输数据后不断开,可以继续传输数据

    短链接 在传输数据之后立即断开连接,再次传输的时候需要再一次三次握手

    长连接和短链接的优缺点

    在只需要传输一次的时候,使用短链接,不会占用网络或者服务器的资源

    长连接的省略了每次的三次握手四次挥手,省了时间占用了资源

  • http和https协议

    https使用ssl ,使用安全证书(需要购买的),使用公钥和私钥,非对称密码

    http 80端口 https 443端口

    http 不安全 https相对安全

    http相对效率高一些,https相对效率低一些

  • tcp的三次握手和四次挥手(重点)

    tcp协议执行过程

    建立连接(三次握手)

    img

    为什么是三次连接而不是二次连接?

    避免由于网络问题造成的重复连接

    传输数据

    断开连接

    img

  • tcp和udp协议的区别

    tcp 基于可靠连接 ,保证数据的准确性和完整性

    ​ 三次握手和四次挥手

    ​ 效率低一些

    ​ 主要的应用: 文件的传输、 聊天、网页浏览

    udp 不可靠连接,不能保证数据的准确性和完整性

    ​ 直接传输连接

    ​ 效率高一些

    ​ 主要的应用: 视频通话,浏览视频,语音通话

  • ftp 文件传输协议

  • smtp/pop3 邮件发送/接收 javamail

  • dns

    ​ 域名解析协议 在网络访问中,是不能通过域名直接访问到服务器,真正访问服务器只能通过ip地址

    ​ 在通过域名进行访问时,首先把请求发送给dns服务器(域名—ip地址),把IP地址返回,再一次通过ip地址发送请求

  • dhcp

    动态分配ip地址

  • arp协议

    ip地址===》mac地址

    arp攻击

    • ip协议

3.网络常用的命令

ping命令 ping + ip地址或域名 测试是否联通

ipconfig /ifconfig 查看本机的网络基本信息

netstat 查看网络状态

​ mysql 3306

​ tomcat 8080

telnet 远程登录

二、Linux

1.linux基本简介(了解)

linux操作系统,类似windows ,作者linus,开发linux基于unix,基于GPL,开源免费软件, git

unix linux windows solaris mac os 操作系统

基于linux开发 (使用多些)

​ centos7 开源免费

​ debian

​ ubuntu

​ red hat linux 商用版 ,收费(服务费)

​ android

基于windows

​ windows server2008 2016 (使用量不是太多)

为什么在桌面服务端使用linux比windows多?

(1)收费

(2)linux无UI,windows有UI,会占用服务器资源

(3)linux比windows更加安全

linux平台的安装

(1)云服务器安装 阿里云、腾讯云、华为云、网易云等

(2)虚拟机安装 vmware

linux是承担的角色是服务器,自带操作界面(命令模式窗口非常难用,不支持复制粘贴等,没有一些颜色提示等)

使用第三方的客户端远程连接工具

xshell secureCRT putty

linux主要是干什么?

linux主要承担一些服务器的作用, web服务器,数据库服务器,存储服务器,负载均衡器,网关服务器等

2.linux的基本目录结构

windows目录结构是多根的 比如C D E F等

linux目录结构是单根的,没有盘符概念,一切皆文件 根目录就是 /

image-20220110154504733

  • 系统启动需要的目录:

boot: 存放的启动linux的使用的内核文件,包括一些连接文件和镜像文件

lib/lib64: 存放基本代码库(c/c++库),类似windows里的dll文件。几乎所有的应用程序都会依赖这些共享库

sys:linux2.6内核存放一些新的文件系统sysfs

etc: 存放所有系统需要的配置文件和子目录列表,修改文件可能会造成有些软件或系统不能正常启动

  • 指令(命令)

bin : 存放最常用的程序和命令

sbin: 只能是超级管理员root可以使用的程序或命令

  • 外部设备

dev: /device(设备) 存放的linux的外部设备 光驱、硬盘、u盘、打印机等等,设备《==》文件,不能直接访问

media: 挂设外设,自动挂载,需改对应配置,把挂载的命令放在一个启动的配置文件中

mnt: 挂载外设,手动挂载,设备挂载以后可以通过这个目录进行访问,u盘可以进行读写,系统重启后挂载失效

  • 账户有关

    root: 类似于home,主要存放是超级管理员的家目录

home: 用户的家目录,没创建一个新用户都会有自己的home目录

usr: 用户默认安装的应用程序或文件都放在这个目录下,类似windows中 program files

  • 临时文件

lost+found :是空的,系统非正常关机存一些临时的文件

tmp:临时文件夹,可以存放一些用户的临时数据,缓存,可以删除的

run: 是一个临时的文件系统,存放系统启动以来的一些信息,当系统重启时,这个目录有可能被清空

  • 运行过程中需要

var: 存放一些经常修改的数据,比如程序运行时的日志文件,也可以放一些网站html页面等等 var/www/html/index.html

proc:管理内存空间,虚拟的目录,系统内存内容的映射,可以通过访问这个目录来获取系统信息

  • 扩展的目录

opt:可以安装一些软件的目录

srv:存放自己去安装的服务程序启动需要的数据 ,linux新内核版本使用目录,不习惯使用这个目录

3.linux常用命令(重点掌握)

image-20220109171753746

可以通过2种方式查看命令详细解释

man ls

ls --help

掌握方式:

​ 1.必须动手练

​ 2.通过思维导图加强记忆

面试官会问题:

1.用过linux没有?

2.你能说几个linux的常用命令吗

3.比如删除一个文件使用什么命令?

4.tar命令是什么意思?

(1) 目录或文件相关的命令

cd pwd ls ll mkdir touch rm cp mv

rm -rf r是递归删除,f是强制删除(不需要询问)

rm -rf / 删库跑路

more和less的区别

head和tail的区别

硬链接和软连接的区别

硬链接只能用在文件上,不能用在目录上,

​ ln aa.txt bb 创建一个硬链接bb类似于克隆aa.txt,当aa.txt被删除后,bb仍然可以使用,aa.txt bb是使用的同一个id

软连接可以用在文件上,也可以用在目录上 ,可以方便的创建一个软连接代表一个比较深的目录,使用上更方便

​ ln -s aa.txt bb 创建一个软链接bb指向aa.txt,当aa.txt被删除后,bb失效

(2)用户和用户组(用户或权限的集合)

useradd 添加一个新的用户,默认不会创建新的目录,密码等,需要加参数

adduser 添加一个新的用户,会创建新的目录,设置密码,配置一些信息等

userdel

usermod

passwd 用户名 密码 给当前用户设置密码

/etc/passwd 记录了所有的用户

groupadd

groupdel

/etc/group 记录了所有的组

sudo命令 让普通用户可以操作root用户命令(默认是不能操作)

/etc/sudoers

root ALL=(ALL) ALL

lanqiao ALL=(ALL) ALL

让用户lanqiao可以使用root用户才能使用的命令

比如启动防火墙

systemctl start firewalld //启动防火墙 ,root可以直接执行,但普通用户不能直接执行

在lanqiao用户下 使用sudo systemctl start firewalld (就可以执行)

su lanqiao 切换用户 su(switch user)

(3)文本编辑器 vi vim(类似windows的记事本,可以编辑修改等文本内容)
  • 命令模式

    进入的时候默认就是命令模式, 通过一些快捷方式进行一些操作

    dd 删除当前行

  • 编辑模式

    可以通过a i o等进入编辑模式,就可以修改文本内容

  • 底行模式

​ 在编辑模式中按esc键退出,再按: 进入底行模式

​ :wq 保存退出

​ :q 不保存退出

​ :q! 强制退出

​ :wq!保存强制退出

​ :/find +要搜索的内容

​ :set nu 显示行号

img

(4)权限

dr-xr-xr-x

​ d表示文件类型 d指的文件夹 -指的是文件 l指的是连接

​ rwxr-xr-x是由9个字符构成 ,3个是一组 由rwx-4种组成 , r可读 w可写 x可执行 -无权限

​ 头3个 rwx 代表当前用户可读可写可执行

​ 中间3个 r-x 代表当前用户所在的组的其他用户 可读不可写可执行

​ 最后3个r-x 代表其他用户组的用户所拥有的权限 可读不可写可执行

linux设计的权限的时候可以用1-7的数字来表示各种权限的集合

1 --x

2 -w-

3 -wx

4 r–

5 r-x

6 rw-

7 rwx

chmod rwxrwxrwx aa.txt

chmod 777 aa.txt

chmod 457 aa.txt

chown 更改所有者

chgrp 修改文件所属的组

(5)解压缩

tar.gz压缩文件类似于windows的zip文件

tar -czvf 压缩文件

tar -xzvf 解压文件

-c 压缩

-x 解压

-z gzip格式压缩

-v 显示详细的信息

-f 指定文件

(6)查找文件

find *.java

(7) 进程管理

ps -ef | grep redis

ps -aux|grep redis

强制关闭进程

kill -9 进程的id

4.linux安装软件

安装jdk

安装tomcat

安装mysql

安装oracle(太复杂)

(1)安装方式
  • 压缩包 下载压缩包后解压即可使用 tomcat
  • rpm安装 类似windows软件的安装程序 jdk
  • yum源安装 在线安装

wget

rpm -h xxxx.rpm

yum list installed | grep java

yum -y install java-1.8.0-openjdk.x86_64

5.linux集群和负载均衡(偏运维)

负载均衡:

​ 硬件方式 :F5(负载均衡设备,性能很好,但很贵)

​ 软件方式: linux自带lvs (linux visual server) ,nginx实现负载均衡

lvs实现负载均衡方式:

nat方式

ip管道方式

dr直连方式

6.Docker容器(偏运维)

什么是docker ,理解是一个小型的vm,可以在一个服务器上部署多个

微服务–》docker上,可以独立运行

在docker安装mysql,几分钟就可以搞定

使用镜像安装,类似用ghost文件安装系统

(1)安装

yum -y install docker

(2) 查看docker版本

docker -v

(3)启动docker

systemctl start docker

(4)查看docker的镜像

docker images

(5)查找镜像

docker search mysql

(6)下载镜像

docker pull mysql:5.7下载5.7版本

docker pull mysql 下载最新版本

(7)运行镜像

docker run -d --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 mysql5.7

(8) 查看docker中运行的进程

docker ps -a

(9)删除进程

docker rm 进程id

(10)重启docker

systemctl restart docker

docker的编排

docker compose

k8s kubernates 统一管理docker 让docker启动,监控docker,关闭等等

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值