文章目录
- 一、熟悉实验室运行环境
- 1 - 登录
- 2 - 熟悉Linux环境
- 3 - 远程登录
- 4 - 使用Git
- 二、网络延迟
- 三、网络应用
- 四、HTTP
- 五、Network Port
- 六、TCP Protocol
- 七、实验室系统
- 1 - LDAP
- 2 - Kerberos
- 3 - Ansible
- 八、Linux运行环境和Nginx
- 1 - 安装Ubuntu22.04.3LTS版本
- 2 - 安装Nginx
- 3 - 访问nginx默认页面
- 4 - 挂载个人主页
一、熟悉实验室运行环境
1 - 登录
登录账号
登录个人账号,可以通过图形界面和命令两种方式。
- 图形界面:当前用户
logout
,切换用户,如果备选用户中没有自己的用户名,点击not listed
,之后输入用户名和密码登录即可。 - 命令:使用
su your_username
方式,回车输入密码即可切换。
修改密码
- 操作步骤
输入kpasswd
命令,之后输入old password
,回车后输入两次相同的new password
,即可改密成功。
- 心得体会
Linux中修改密码的其他命令还有 passwd
。
Kpasswd和passwd的区别:
- kpasswd是Kerberos提供的口令,passwd是Linux系统口令。
- 使用passwd可以同时更改Linux口令和Kerberos口令(具体取决于 PAM 模块的配置方式),kpasswd只修改Kerberos口令。
2 - 熟悉Linux环境
Linux中提供给用户许多命令,大致可以分为以下几类,我整理了一份思维导图,如下。
此外,还可以去往菜鸟教程—Linux命令大全查看更多Linux命令!
3 - 远程登录
使用格式
ssh username@ip
可以以 username 远程登录到所在主机上。
如果使用 ssh 连接不上,那么可能的原因有很多,以下是我猜测发生了IP对应主机可能的原因:
- 无网络(使用
ping
命令可以查看) ssh
服务未在运行- ssh 端口(22)未开放
4 - 使用Git
Git是一款分布式版本控制工具,用于敏捷高效的管理项目,协同开发。下面我将介绍一下 Git
的简单使用流程。
.gitignore
文件用于定义哪些文件不需要交给 Git 管理,文件名是固定的,不可修改。
二、网络延迟
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延。
- <1> 发送时延
是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间,发送时延 = 数据帧长度(b) / 信道带宽(b/s)
- <2> 传播时延
是电磁波在信道中传播一定的距离需要花费的时间,传播时延 = 信道长度(m) / 电磁波在信道上的传播速率(m/s)
- <3> 处理时延
主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部、从分组中提取数据部分、进行差错或查找适当的路由等等。
- <4> 排队时延
分组在经过网络传输时,要经过许多的路由器。但分组在进入路由器后要现在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。
D
p
r
o
p
=
(
1000
∗
8
)
/
(
1
∗
1024
∗
1024
)
≈
0.0076
s
=
7.6
m
s
D_{prop} = (1000*8) /( 1*1024*1024) \approx 0.0076s = 7.6ms
Dprop=(1000∗8)/(1∗1024∗1024)≈0.0076s=7.6ms
D
p
r
o
c
=
1
m
s
D_{proc} = 1ms
Dproc=1ms
D
q
u
e
u
e
=
5
m
s
D_{queue} = 5ms
Dqueue=5ms
D
t
r
a
n
s
=
(
2000
∗
1
0
3
)
/
(
2
∗
1
0
8
)
=
0.01
s
=
10
m
s
D_{trans} = (2000*10^3)/(2*10^8) = 0.01s = 10ms
Dtrans=(2000∗103)/(2∗108)=0.01s=10ms
D
n
o
d
a
l
=
2
∗
(
D
p
r
o
p
+
D
p
r
o
c
+
D
q
u
e
u
e
+
D
t
r
a
n
s
)
=
47.2
m
s
D_{nodal} = 2*(D_{prop}+D_{proc} +D_{queue}+D_{trans} )=47.2ms
Dnodal=2∗(Dprop+Dproc+Dqueue+Dtrans)=47.2ms
三、网络应用
Web(C / S 模式)
:edge 浏览器、Chrome 浏览器
聊天软件:QQ、Wechat
视频软件:Tencent Video,iQiYi
游戏:Honor of Kings
四、HTTP
- Yes.Response Time: Tue, 07 Mar 2008 12:39:45.
- Last-Modified: Sat, 10 Dec2005 18:27:46
- Accept-Bytes: 3874B
<!doc
- Yes.According to the keyword Connection:Keep-Alive.
五、Network Port
HTTP:80
HTTPS: 443
SSH: 22
TELNET: 23
FTP: 21
DNS: 53
六、TCP Protocol
GBN和SR的主要区别
区别 | GBN | SR |
---|---|---|
缓冲区 | 丢弃了接收端窗口内所有无序的数据包,所以不需要有一个缓冲区来存储接收端窗口内的无序数据包。 | 由于避免了重传许多不必要的数据包,所以接收端需要对无序的数据包进行缓冲。 |
实现的复杂性 | GBN协议采用累积确认的方法。因为接收方是按顺序接收数据包的,所以任何错误到达的数据包都将被接收方丢弃。 | SR协议避免了GBN协议以同时设置发送方窗口和接收方窗口大小相同为代价,重传到达接收方的正确数据包。 |
网络效率 | 当窗口大小和带宽的乘积延迟很大,一个数据包在错误可能导致GBN重新发送大量的数据包 | 许多正确的数据包的顺序在这个过程中不需要重传。 |
七、实验室系统
1 - LDAP
LDAP(Lightweight Directory Access Protocol 轻量级目录访问协议)是一种定义如何访问目录服务(directory service)的通信协议[5]。
客户端通过 TCP/IP
或其他面向连接的传输服务,连接到服务器并向其提问;服务器提供答案或客户端可以获取更多信息的位置(可以是另一个 LDAP 服务器)的指针。
2 - Kerberos
Kerberos 是由麻省理工(MIT)开发的一套基于加密票据(Ticket)的身份认证系统[6]。它主要由三个部分组成:KDC(Key Distribution Center,钥匙发布中心)、客户端和服务端,其中,KDC 又包括三个部分:数据库、验证服务器(AS:Authentication Server)和票据发放服务器(TGS:Ticket Granting Server)。
3 - Ansible
Ansible 是一款高效的机群管理工具[7]。它采用 ssh
的机制,不必在被控主机上安装任何特殊的软件,只需将控制主机设置好,便能远程对被控机群做统一配置和管理,使用简便,功能强大,易于扩展。
以我个人的理解,Ansible 与分发工具
rsync
有些像,可以实现在多台集群之间分发文件。
八、Linux运行环境和Nginx
1 - 安装Ubuntu22.04.3LTS版本
首先到Ubuntu官网点击我去往Ubuntu官网,下载该版本的 iso
映像文件。
之后,使用VMware创建使用该镜像的虚拟机。
安装成功后,需要注意的是设置root
用户的初始密码,执行如下命令:
sudo passwd
输入当前用户的密码,之后再输入并确认新密码即可。
2 - 安装Nginx
Nginx 是是一个开源的,支持高性能、高并发的 Web 服务和代理服务软件。
在传统的Web项目中,并发量小,用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户。
nginx特点是占有内存少,并发能力强
,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
下面介绍如何在Ubuntu22.0.4中安装NGINX。
- 1.官网下载 nginx 并通过XFTP上传到Linux中
这是nginx官网,可以点击这里去下载nginx安装包:nginx官方下载地址,下载成功后得到这样一个压缩包。
通过xshell加XFTP上压缩包上传到 /opt/software 目录下:
- 2.解压
执行解压命令,将nginx解压到 /opt/module 目录下,并将文件重命名为nginx:
tar -xzvf nginx-1.20.2.tar.gz -C /opt/module/
- 3.安装需要的软件(gcc、openssl等)
因为编译nginx需要使用 gcc 编译器,所以我们需要安装 gcc 和一些其他相关软件,那么到底需要哪些软件?
首先我们进入到刚刚 nginx 解压的目录:
cd /home/jhguo/opt/module/nginx-1.20.2/
之后我们可以通过下面的命令来检测:
./configure
之后安装下面所需要的依赖:
sudo apt-get install gcc -y
sudo apt-get install libpcre3-dev -y
sudo apt-get install zlib1g zlib1g-dev -y
sudo apt-get install openssl libssl-dev -y
- 4.安装nginx
进入到nginx安装目录下,并执行编译和安装命令
cd /opt/module/nginx
./configure # Check needed module again.
make
make install
至此,我们的nginx就安装好了,注意,安装成功后,我们的nginx并不是在解压后的目录,而是默认在 /usr/local/nginx 目录下
,接下来就是启动和停止nginx服务器。
3 - 访问nginx默认页面
进入到nginx目录:
cd /usr/local/nginx/
启动nginx:
sudo sbin/nginx
nginx默认端口是80,因此要将这个端口开放。
访问IP
来查看 nginx 是否启动成功。
在 Windows 访问成功!
停止nginx:
sudo sbin/nginx -s stop
4 - 挂载个人主页
- 1.上传dist目录
上传个人主页文件 index.html
(已在写文章前编写),上传到Linux系统中的一个目录即可,这里我是放在了 /home/jhguo/opt/files/network_app_sec/hw/hw1 目录下:
- 2.修改nginx的配置文件 nginx.conf
首先还是进入到nginx目录下的conf目录:
cd /usr/local/nginx/conf/
编辑nginx.conf文件,将dist目录路径放在root后面即可:
sudo vim nginx.conf
因为监听 1024 以下的端口需要 root 权限,因此我后面将80改为了8080.
启动nginx:
sudo /usr/local/nginx/sbin/nginx
现在,我们就可以通过 主机ip+nginx端口访问我们的个人主页了!