计算机网络主要由一些通用的、可编程的硬件互连而成,通过这些硬件,可以传送不同类型的数据,并且可以支持广泛和日益增长的应用。
| 分类 | 英文 | 范围 | 区域 |
|---|---|---|---|
| 广域网 | WAN(Wide Area Network) | 几十到几千公里 | 跨省、跨国 |
| 城域网 | MAN(Metro Area Network) | 5KM-50KM | 城市间 |
| 局域网 | LAN(Local Area Network) | 1KM以内 | 地区间 |
第一阶段:ARPANET -> 第三阶段:三级结构互联网 -> 第三阶段:多层次ISP互联网
1980年开始互联网实验 -> 1989年第一个公共网络建立运行 -> 1994年接入国际互联网
分层实现不同的功能:如,保证数据通路顺畅,目的计算机状态,识别目的计算机,数据是否错误。
网络应用数据:视频、文件、游戏,数据可靠通信:数据错误、重复,物理网络接入:光电等物理特性
OSI欲成为全球计算机都遵循的标准
OSI在市场化过程中困难重重,TCP/IP在全球成功运行
OSI最终并没有成为广为使用的标准模型
OSI的专家缺乏实际经验
OSI标准定制周期过长,按OSI标准生产的设备无法及时进入市场
OSI模型设计得并不合理,一些功能在多层中重复出现







速率单位:bps=bit/s
为什么电信拉的100M光纤,测试峰值速度只有12M每秒?
100M/s = 100Mbps = 100Mbit/s
100Mbit/s = (100/8)MB/s = 12.5MB/s。注:1byte = 8bits。
信道是往一个方向传送信息的媒体
一条通信电路包含一个接收信道和一个发送信道
提升信道的利用效率
“帧”是数据链路层数据的基本单位
发送端在网络层的一段数据前后添加特写标记形成”帧”
接收端根据前后特定标记识别出”帧”
另,物理层不关心是否封装成”帧”

编程语言中”\“一般为转义字符
“\n”、”\t”等控制字符
“\“、”\“
物理层只管传输比特流,无法控制是否出错
数据链路层负责起”差错监测”的工作
00110010 1 0 + 0 + 1 + 1 + 0 + 0 + 1 + 0 = 3
00111010 0 0 + 0 + 1 + 1 + 1 + 0 + 1 + 0 = 4
一种根据传输或保存的数据而产生固定位数校验码的方法
检测数据传输或者保存后可能出现的错误
生成的数字计算出来并且附加到数据后面
模”2”除法是二进制下的除法
与算术除法类似,但除法不借位,实际是”异或”操作
1.选定一个用于校验的多项式G(x),并在数据尾部添加r个0
2.将添加r个0后的数据,使用模”2”除法除以多项式的位串
3.得到的余数填充在原数据r个0的位置得到可校验的位串
例子:使用CRC计算101001的可校验位串
发送端:
G(x) = x3 + x2 +1 => 二进制位串:1101,最高阶为3
G(x) = 1 x3 + 1 x2 + 0 x1 + 1 x0
101001 => 101001000
101001 => 101001000经过模”2”除法得到的余数为:001
最终得到可校验位串为:101001000 => 101001001
接收端:
接收端接收的数据除以G(x)的位串,根据余数判断出错:101001001 / 1101
余数为0表示校验通过CRC的错误检测能力与位串的阶数r有关,r为1校验能力最差
数据链路层只进行数据的检测,不进行纠正
MTU
最大传输单元(Maximum Transmission Unit)
数据链路层的数据帧也不是无限大的
数据帧过大或过小都会影响传输的效率
总时延 = 发送时延 + 排队时延 + 传播时延 + 处理时延
以太网MTU一般为1500字节
路径MTU由链路中MTU的最小值决定
MAC地址(物理地址、硬件地址
第一个设备都拥有唯一的MAC地址
MAC地址共48位,使用十六进制表示
以太网(Ethernet)是一种使用广泛的局域网技术
以太网是一种应用于数据链路层的协议
使用以太网可以完成相邻设备的数据帧传输
一台Linux服务器用来做服务端
一台Windows电脑用来进行推流
可以使用拉流测试网站进行测试直播是否成功
在OBS官网下载即可
SRS是一个流媒体直播集群,高效、稳定、易用,简单而快乐。
1.首先安装Git
(centos)
yum install -y git(Ubuntu)
apt install git2.使用Git拉取SRS
git clone https://github.com/ossrs/srs3.下载完成后进入rs/trunk目录
cd srs/trunk4.编译SRS
./configure && make5.编译完成之后运行SRS
./objs/srs -c conf/srs.conf接下来就可以进行推流了
推流URL地址(服务器地址):trmp://你的ip地址/live
串流秘钥(Stream):livestrema
观看地址:rtmp://你的ip地址/live/livestrema
2.解压到指定目录,将bin文件目录添加到path路径(电脑-属性-高级系统设置-环境变量-path-新建)
3.cmd输入:ffmpeg -version显示以下界面表示安装成功:
ffmpeg -i (要转换的视频文件路径) -profile:v baseline -level 3.0 -s 1920x1080 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls (转出的m3u8文件路径)如mp4转m3u8
ffmpeg -i G:\sp\1.mp4 -profile:v baseline -level 3.0 -s 1920x1080 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls G:\sp\1\1.m3u8
1.检查是否安装Mysql
rpm -qa | grep mysql2.新建一个临时文件,使用wget下载Mysql安装包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz3.安装Mysql
解压安装包:
tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz4.移动该文件到/usr/local/mysql
执行移动命令:
mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql5.在/usr/local/mysql目录下创建data目录
mkdir /usr/local/mysql/data6.更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
useradd mysql
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql7.编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql补充说明:
此时可能会出现错误:

出现该问题首先检查该链接库文件有没有安装使用 命令进行核查
rpm -qa|grep libaio运行命令后发现系统中无该链接库文件
yum install libaio-devel.x86_64安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误:

执行如下命令后,再次运行数据库的初始化命令:
yum -y install numactl8.运行初始化命令成功后,输出日志如下:

记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。
9.编辑配置文件my.cnf,添加配置如下
vi /etc/my.cnf
修改内容如下:
[mysqld]
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感,敏感为
lower_case_table_names=1启动mysql服务器
/usr/local/mysql/support-files/mysql.server start显示如下结果,说明数据库安装成功
如果出现如下提示信息
Starting MySQL... ERROR! The server quit without updating PID file
查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令
#查询服务
ps -ef|grep mysql
ps -ef|grep mysqld
#结束进程
kill -9 PID
#启动服务
/usr/local/mysql/support-files/mysql.server start
10.添加软连接,并重启mysql服务
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart11.登录mysql,修改密码(密码为步骤5生成的临时密码)
mysql -u root -p
Enter password:
mysql>set password for root@localhost = password('yourpass');
12.开放远程连接
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;
13.设置开机自动启动
1、将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
chmod +x /etc/init.d/mysqld
3、添加服务
chkconfig --add mysqld
4、显示服务列表
chkconfig --list
]]>找到:
Options indexes FollowSymLinks
改为:
Options FollowSymLinks2.Apache添加多端口
编辑http.conf文件
在Listen 80处另起一行输入
Listen 8080 (监听8080端口)在httpd.conf文件最后一行添加:注:默认的80路径为/var/www/html/,我这是在这个下面的文件夹下添加test文件夹为测试
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName localhost:8080
DocumentRoot "/var/www/html/test/″
<Directory "/var/www/html/test/">
Options FollowSymLinks IncludesNOEXEC
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>3、重启Apache
4、把8080(监听的端口)开放防火墙
2.找到#LoadModule rewrite_module modules/mod_rewrite.so
改为
LoadModule rewrite_module modules/mod_rewrite.so3.找到
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
改为
AllowOverride All重启Apache
cd /usr/local/apache/bin/
./apachectl restart
]]>1、增加下面内容
AddType application/x-httpd-php .php .phtml #以php结尾的,交给php处理
AddType application/x-httpd-php-source .phps
找到DirectoryIndex index.html #添加index.php
DirectoryIndex index.html index.php重启Apache
cd /usr/local/apache/bin/
./apachectl restart
]]>rpm -qa |grep httpd查询PHP是否安装(三种命令)
whereis php
php -v
rpm -qa | grep php查询MYsql是否安装
ps -ef | grep mysql卸载Apache命令
rpm -e --nodeps httpd查询Apache安装目录
find / -name apache;
]]>下载PHP安装包并上传到服务器(新建一个文件夹用来存放)
1.安装PHP依赖
yum install gcc libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
2.开始安装PHP
解压安装包
tar -zxf php-7.0.30.tar进入目录
cd php-7.0.30
复制编译代码
Apache使用非源码编译需要在安装httpd-devel包,否则会缺失aoxs文件夹
./configure \
--prefix=/usr/local/php/php7.0.3 \
--with-apxs2=/usr/local/apache/bin/apxs \
--enable-fpm \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache编译并安装:
make && make install编译完成之后,需要添加PHP命令到环境变量里
vi /etc/profile在文件末尾加入并保存:
PATH=$PATH:/usr/local/php/php/7.0.30/bin
export PATH要使改动立即生效执行
source /etc/profile查看PHP 版本
php -v[root@iZj6c42f8w148ft2yuv3aeZ apache]# php -v
PHP 7.0.30 (cli) (built: Nov 18 2019 23:54:17) ( ZTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
]]>