3

一、网络基础

1.1 ISO/OSI七层模型

1.1.1 简介

ISO:国际标准化组织
OSI:七层模型组织
IOS:互联网操作系统

七层模型是为了更好的管理数据

clipboard.png

clipboard.png

七层模型中的数据发送是从上层往下层传递,经过物理层协议传输,然后由下层往上层接收,呈U字型。上三层(应用层、表示层、会话层)是最贴近用户的,为用户服务;而下四层(传输层、网络层、数据链路层、物理层)是为数据传递提供服务的。如果不涉及数据传输,则不会经过下四层,如:不联网,下四层就不会介入

1、OSI七层模型只是一种标准,实际在网络传输当中使用的是TCP/IP四层模型
2、OSI七层模型当中,其中上三层是对用户提供服务,下四层才是实际进行数据传递
3、传输单位:

应用层 -- APDU (上三层的单位都没有什么用的,因为没有数据传输)
表示层 -- PPDU
会话层 -- SPDU
传输层 --TPDU(传输层数据单元,以前也叫段)
网络层 -- 报文(包含IP地址,用于公网通信)
数据链路层 --帧(包含Mac地址,用于局域网传递
物理层 ---比特byte

1.1.2 详解

1、物理层
1-1) 比特流的传输 : 最基本的数据传递
1-2) 物理接口 : 网线口、视频口、音频口
1-3) 电气特性 : 网线8根线中的1、3、2、6四根线传输数据
1-4) 最常见的设备 : 网线、网卡

2、数据链路层
2-1) 负责组成帧(组入MAC信息)
2-2) 用MAC地址访问媒介(发送人与接收人)
2-3) 错误检测与修正(检测与修正数据包)

3、网络层
3-1) 负责提供逻辑地址(IP地址, 需要写入发件人IP与收件人IP)
3-2) 选择通路(经过的路径)

4、传输层
4-1) 负责确定传输协议(TCP传输控制协议可靠不会丢、UDP用户数据报协议更快但可能会丢)可靠与不可靠的传输
4-2) 传输前的错误检测
4-3) 流量控制
4-4) 确立端口号, 便于通过IP确定主机后, 通过端口确定交互的服务, IP地址为门牌号, 端口号即为收件人
默认下网页服务端口号为80, 邮件服务端口号为25110, 文件传输端口号为21,每种传输协议,都有65536个端口。

5、会话层
5-1) 对应用会话的管理和同步, 确定网络数据是否要进过远程回话

6、表示层
6-1) 数据的表现形式, 不同数据类型扩展名进行解码编码
6-2) 特定功能的实现, 如加密、压缩

7、应用层
7-1) 为用户提供服务的接口

8、举例场景
用户A需要给用户B发送一份邮件
8-1) 应用层 : 浏览器进入邮箱, 写邮件, 点击发送, 数据将传递至 表示层
8-2) 表示层 : 进行的数据的编码, 而后数据传递至会话层
8-3) 会话层 : 判断数据的发送类型, 是进行网络传输还是进行本地保存, 若是进行传输,传递至传输层。
8-4) 传输层 : 确立协议TCPUDP, 写入邮件的发送及目标端口号, 传递至网络层
8-5) 网络层 : 写入自身及目标IP地址, 传递至数据链路层
8-6) 数据链路层 : 写入源MAC地址与目标MAC地址, 由于IP地址找到局域网, 再通过MAC地址在局域网中找到目标, 传递至物理层
8-7) 物理层 : 数据传输

7 应用层:老板

6 表示层:相当于公司中演示稿老板、替老板写信的助理

5 会话层:相当于公司中收寄信、写信封与拆信封的秘书

4 传输层:相当于公司中跑邮局的送信职员

3 网络层:相当于邮局中的排序工人

2 数据链路层:相当于邮局中的装拆箱工人

1 物理层:相当于邮局中的搬运工人

###1.2 TCP/IP协议四层模型

1.2.1 TCP/IP 四层模型与 OSI 七层模型对应关系

clipboard.png

1-1) 应用层 : 应用层、表示层、会话层
为用户提供所需的各种服务, 例如 FTPTelnetDNSSMTP

1-2) 传输层 : 传输层
负责为应用层实体提供端到端的通信功能, 保证了数据包的顺序传送及数据的完整性, 该层定义了两个主要的协议 : 传输控制协议(TCP)可靠的面向连接,不会丢失,类似打电话,网页、邮件。用户数据报协议(UDP)不可靠的面向无连接,有可能丢失, 类似发短信、QQ

clipboard.png

TCP的三次握手来源于 [两军问题]:

clipboard.png

1-3) 网际互联层 : 网络层
主要解决主机到主机的通信问题, 它所包含的协议涉及数据包在整个网络上的逻辑传输, 该层有三个主要协议 : 网际协议(IP), 互联网组管理协议(IGMP), 互联网控制报文协议(ICMP)如ping命令。

1-4) 网络接口层 : 数据链路层、物理层
负责监视数据在主机和网络之间的交换, 事实上, TCP/IP本身并未定义该层的协议, 而由参与互连的各网络使用自己的物理层和数据链路层协议, 然后与TCP/IP的网络接入层进行连接. 地址解析协议(ARP) 工作在此层, 即OSI参考模型的数据链路层.
地址解析协议(ARP)(数据链路层) : 将IP地址 翻译成物理地址。(路由器只能记录物理地址

arp -a

clipboard.png

1.2.2 数据封装/解封装过程(如图)

clipboard.png

发送是由上至下进行打包, 接收是由下至上进行拆包

1.2.3 TCP/IP 模型与OSI 模型的比较

3-1) 共同点
3-1-1) OSI 参考模型和 TCP/IP参考模型都采用了层次结构的概念
3-1-2) 都能够提供面向连接和无连接两种通信服务机制

3-2) 不同点
3-2-1) OSI 七层, TCP/IP 四层
3-2-2) 对可靠性要求不同(TCP/IP 更高)
3-2-3) OSI 模型是在协议开发前设计的, 具有通用性. TCP/IP 是先有协议集, 然后建立模型, 不适用与非TCP/IP网络
3-2-4) 实际市场应用不同( OSI 模型只是理论上的模型, 并没有成熟的产品, 而TCP/IP已经成为"实际上的国际标准")

1.3 IP地址详解

1、IP包头

clipboard.png

2、IP地址分类

clipboard.png

2-1) IP分为A、B、C、D、E 五大类, 其中DE不对民用组织开放, 不可使用, 因此有效类只有ABC
2-2) 可根据第一位数值判断类别, 1-126A类, 128-172B类, 192-223C
2-3) 127.0.0.1 为本机
2-4) 第一位表示不同网段, 不同网络, 不同网络之间的通信需要使用路由器, 路由器是用来实现跨网络通信的, 同一网络下通信使用交换机即可. 第一位不变情况下, 后三位的变化都代表同一网络下的不同主机
2-5) A 类 : 每个网络中的第一个地址(X.0.0.0)代表网络本身,最后一个地址(X.255.255.255)代表当前网络的广播地址, 不能分配, 最大主机数 : 后三位的次幂, 减 第一和最后一个 , 2^24 -2
2-6) B 类 : 前两位代表网段, 后两位代表网段中的不同主机
2-7) C 类 : 前三位代表网段, 最后一位代表不同主机
2-8) 私有IP : 不需要花钱买, 用来做内网IP, 可有效保护公网IP, 不能直接访问公网, 需要与公网之间进行转换才可访问互联网

1.4 子网掩码

A:
clipboard.png

B:
clipboard.png

C:
clipboard.png

1、ABC类可以用不同的网段个数和主机个数, 是由子网掩码决定

2、标准子网掩码 : A:255.0.0.0 B:255.255.0.0 C:255.255.255.0

3、IP和子网掩码不可单独使用, 必须同时使用

4、合理的子网掩码 : 所有的1必须连续, A 类地址可匹配B类子网掩码

5、广播地址是专门用于同时向网络中所有工作站进行发送的一个地址

clipboard.png

1.5 端口作用

10000以内系统用,10000+用户用

clipboard.png

clipboard.png

netstat -an

> -a: 查看所有连接和监听端口

-n:显示IP地址和端口号,而不显示域名和服务名

1、FTP(文件传输协议):20、21
2、SSH(安全shell协议):22
3、telnet(远程登录协议):23
4、DNS(域名系统):53
5、http(超文本传输协议):80
6、SMTP(简单邮件传输协议):25
7、POP3(邮局协议):110

1.6 DNS的作用

DNS:Domain Name System

clipboard.png

clipboard.png

1.hosts文件:做静态IP和域名对应,优先于DNS.
位置:C:\Windows\System32\drivers\etc\hosts

2.DNS服务的作用:将域名解析为IP地址
过程:客户机向DNS服务器发送查询IP请求
DNS服务器查询到web服务器的ip,告知用户
用户访问web服务器

3.域名空间结构
根域:.(13台服务器)
——>顶级域/一级域:包括组织域和地区域
(组织域:gov政府/edu教育部门/com商业部门/org民间团体/net网络服务机构/mil军事部门 地区域:cn 中国 hk 香港 jp 日本 Uk 英国 au 澳大利亚)
——>二级域:企业或个人自行购买的(imooc /microsoft/ibm/sina)
——>主机名/3级域:申请完二级域后自己定义的(www/news)

4.为什么要进行域名分级划分
便于IP地址解析

5.客户—>本地域DNS服务器—>根服务器->CN服务器->COM.CN服务器->IMOOC.COM.CN->客户->web服务器
----递归查询(给结果)---- -------------迭代查询(其他DNS服务器)--------

clipboard.png

clipboard.png

clipboard.png

6.正向:域名到IP ARP
反向:IP到域名 RARP

1.7 网关的作用

clipboard.png

交换机(数据链路层)不认识IP,只认识MAC 地址。局域网中交换数据
路由器:不同网络中进行数据交换。外网转内网,内网转外网。

网关:硬件设备,具有路由功能的机器,可以是路由器,也可以是服务器。
作用:

1.非本网段的数据包交由网关处理
2.内网不能直接访问公网,网关把内网IP与公网IP相互转换。

二、Linux网络配置

2.1 IP地址配置

1、ifconfig:临时配置IP地址(测试时使用),而且可以查看ip地址;(查看当前网络状态) windows :ipconfig
2、setup:永久配置IP地址。 REDHAT公司自己开发的工具
3、修改网络配置文件(标准方式
4、图形界面配置IP地址
5、loopback 127.0.0.0
6、eth0 第一块网卡
7、ifconfig eth0 192.168.254.200 netmask 255.255.255.0
8、setup:远程工具

2.2 使用文件配置IP

clipboard.png

主机名文件信息说明:

vi /etc/sysconfig/network

NETWORKING=yes ---> 不能为no,若为no则网络会不起作用
HOSTNAME=localhost.lcaldomain ---> 主机名,windows中局域网内主机名不能重复,但是linux可以重复。不过,建议改为更好辨认的名称。
注:主机名只有在重启机器后才会生效。
临时修改主机名(重启后失效)的命令:hostname myhost
查看当前主机名的命令:hostname
[root@localhost ~]其中@后面的主机名是在登录的时候确定的,如果修改了主机名,那里是不会改变的,只有重新登录才会改变。

通过这三个文件:

/etc/sysconfig/network-script/ifcfg-eth0
/etc/sysconfig/network
/etc/resolv.conf

可以实现标准的网络配置。

DNS配置文件信息说明:

vi /etc/resolv.conf

nameserver 202.106.0.20 ---> 名字服务器,也就是DNS服务器的IP地址,若有多个,用空格分隔,或者再写一行
search localhost ---> 当在浏览器中没有写全域名时,会使用该域名作为默认域名。例如:浏览器只输入imooc,则会自动变为imooc.local(不常用)

2.3 虚拟机网络参数配置

clipboard.png

(1)配置LinuxIP地址
[root@localhost ~]# setup
修改并配置IP地址
(2)启动网卡
[root@localhost ~] vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT = no
改为 ONBOOT = yes

重启网络服务 service network restart

(3)修改UUID(如果这是一台克隆/复制出来的机子则必须进行这个步骤,否则可以省去)
1)vi /etc/sysconfig/network-scripts/ifcfg-eth0
删除MAC地址行
2)rm -rf /etc/udev/rules.d/70-persistent-net.rules
删除网卡和MAC地址绑定文件
3)重启动系统

(4)设置虚拟机网络连接方式

1.桥接模式:通过物理机的真实网卡进行通信,若选此项,则虚拟机需要配置与物理机相同的网关,缺点是需要占用真实网段的一个IP地址。这种模式更适用于实验,因为这种模式不仅可以与你的物理机可以通信还可以与同一局域网的其他主机通信,还可以访问公网。

2.NAT模式:windows中(物理机中)是以VMware8虚拟网卡进行通信。这种模式只能与你自己的主机通信,不能与局域网的其他主机通信,但是可以通过物理的网卡访问公网。

3.仅主机模式:windows中(物理机中)是以VMware1虚拟网卡进行通信。这种模式只能与你自己的主机通信,不能与局域网的其他主机通信,只能与自己的物理机通信,并且不能上公网。

切记:在选择桥接模式之后,需要选择桥接的网卡(即需要确定虚拟机需要通过哪个真实网卡连接网络),一般的虚拟机都是自动桥接,但是这种方式真的跟不靠谱**,所以你需要自己选择,如果你是通过有线接入网络,则选择有线桥接,若是通过无线接入网络,则通过无线接入。

(5)修改桥接网卡

三、网络命令

3.1 网络查看命令

1)ifconfig: 查看和修改网络状态命令
2)ifdown 网卡设备名 #禁用该网卡设备
ifup 网卡设备名 #启动该网卡设备
3)netstat 选项

        -t  : 列出TCP协议端口
        -u  : 列出UDP协议端口
        -n  : 不使用域名与服务器,而使用IP地址和端口号
        -l  : 仅仅列出在监听状态服务
        -a  : 列出所有的网络连接

netstat -tuln 查看开了哪些端口 从而判断开了哪些服务

其中ESTABLISHED 中的 Foreign Address 表示的是已经和本机建立链接的主机,可以通过管道符进行查看数量
netstat -an | grep ESTABLISHED | wc -l 统计estabished状态的连接数 看有谁链接到我们的服务器上
远程连接后,一定要注意正确关闭远程链接,而不能直接把ssh关了,用logout关闭即可
netstat -rn 列出网关

3.route 命令
#查看路由列表(可以看到网关)
#route add default gw 192.168.1.1(一般不用)
#临时设定网关

注意
1).在一台服务器里,连内网的网卡是不能设置网关的,只有连接外网的网卡才能设置,而且这个网关是由运营商设置好 它告诉我们 我的下一级网络地址。
2).随便设置一个网关是不行的,因为与外网通信时,要把消息转发到网关,网关负责把内网IP转换成功公网IP,随便设置则将找不到这个网关,导致呈现网络连接失败状态。

clipboard.png

4.域名解析命令
1)nslookup [主机名或IP]
#进行域名与IP地址解析

3.2 网络测试命令

1.测试网络的连通性

ping [选项] ip或域名
选项:

-c:次数

2.telnet IP
(明文传递,很不安全,现基本上已被ssh代替)做端口探测和windows一样

3.traceroute ip或域名

路由跟踪命令,查看中间所经过的节点,故障定位。

4.wget URL:下载命令

5.tcpdump:抓包命令
举例:tcpdump -i eth0 -nnX port 21 抓取eth0网卡上的数据包,以16进制拆分数据包,(但是用port 21可以只拆分21端口)

四、远程登录工具

4.1 SSHE协议

1) 对称加密算法
采用单钥密码系统的加密方法, 同一个秘钥可以同时用作信息的加密和解密, 这种加密方法称为对称加密, 也称为单秘钥加密。

clipboard.png

缺点 : 加密解密使用相同密码, 需要告知对方密码, 等同于将自身多年习惯密码告知对方. 例如邮箱等密码, 造成威胁。

2) 非对称加密算法(asymmetric cryptographic algorithm)
又名 "公开秘钥加密算法" , 需要 公开秘钥(publickey) 和私有秘钥(privatekey)

clipboard.png

linux 中为 gpg工具, windows 中为 pgp工具

过程原理, A 需要发送数据包给 B
2-1-1) A 根据自己密码A 生成 公钥A 和私钥A
2-1-2) B 根据自己密码B 生成 公钥B 和私钥B
2-1-3) A 向 B 寻要 公钥B, 再结合自身的公钥A 对数据包进行加密, 并发送给B
2-1-4) B 收到数据包之后, 可根据自身密码B 和 私钥B 对数据包进行解密且成功
2-1-5) 此时, A 也可以根据自身密码A 结合 私钥A 对已加密的数据包进行解密
至此, 避免了泄露 A 自身的密码

3) SSH安全外壳协议
在非对称加密算法之上演变而来,密码足够复杂强壮可降低暴力破解的成功性,SSH 保护数据传递过程中的安全, 但若在传递之前中病毒则不可避免
通用的远程管理协议

clipboard.png

3-1) 过程原理, A 需要发送数据包给 B
3-1-1) A 持有 公钥A 和 私钥A
3-1-2) B 持有 公钥B 和 私钥B
3-1-3) A 向 B 寻要 公钥B, 再结合自身的 公钥A 对数据包进行加密, 并发送给B
3-1-4) B 收到数据包之后, 可根据自身 私钥B 对数据包进行解密

4) SSH 命令
4-1) ssh 用户名@ip
远程管理制定Linux服务器
4-1-1) 经过远程之后, 在家目录中的 .ssh 文件夹 know_hosts文件中保存着 连接成功的目标信息
地址 加密算法 公钥
4-1-2) 若目计算机进行了重装系统, 或地址被另一台机器占用, 此时 已下载的公钥无法使用, 使用vi 对改行进行删除, 当再次连接时, 会再次提示是否进行下载公钥
4-2) scp [-r] 用户名@ip:文件路径 本地路径
网络复制命令, 下载文件 或加-r 下载文件夹
4-3) scp [-r] 本地文件 用户名@ip:上传路径
网络复制命令, 上传文件 或加-r 上传文件夹
此为linuxlinux之间进行文件传输的最简单方式

参考教学视频:Tony老师Linux网络管理


Bohr
6.5k 声望3.3k 粉丝