网络基础
ISO/OSI七层模型
TCP/IP四层模型
是在 ISO/OSI七层模型
演变而来的
层级 | 作用 |
---|---|
用户层 | 用户接口 |
表示层 | 数据的表现形式、特定功能的实现如-加密 |
会话层 | 对应用会话的管理、同步 |
传输层 | 可靠(tcp)与不可靠(udp)传输、传输前的错误检测、流控 |
网络层 | 提供逻辑地址(IP)、选路 |
数据链路层 | 成帧、用MAC地址访问媒介、错误检测与修正 |
物理层 | 设备之间的比特流的传输、物理接口、电气特性等 |
TCP/IP四层模型
网络接口层:负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。地址解析协议(ARP) 工作中此层,即OSI参考模型的数据链路径层。
Internet层:主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。
传输层:为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP)
TCP为可靠的协议,需要三次握手
UDP为不可靠协议,不需要握手,直接发送数据,更加快速
数据封装过程
数据接收过程
TCP/IP模型与OSI模型的比较
共同点: 都采用了层次结构,都能够提供面向连接和无连接两种通信服务机制
不同点:
- OSI是七层,TCP/IP四层
- 对可靠性要求不同(TCP/IP模型更高)
- OSI模型是在协议开发前设计的,具有通用性。TCP/IP是先有协议集然后建立模型,不适用于非TCP/IP网络
- 实际市场应用不同,OSI模型只是理论上的模型,并没有成熟的产品,而TCP/IP已经成为 实际上的国际标准
IP地址
IP包头
IP地址分类
子网掩码
端口作用
TCP包头
UDP包头
常见端口号
FTP
(文件传输协议): 20
(数据传递)、21
(登录及命令传输)
SSH
(安全shell协议): 22
telnet
(远程登录协议): 23
(默认禁止,明文传输)
DNS
(域名系统): 53
http
(超文本传输协议): 80
SMTP
(简单邮件传输协议): 25
(发信)
POP3
(邮局协议3代): 110
(收信)
查看本机启用的端口 linux与window都可使用
netstat -an
a
: 查看所有连接和监听端口
n
: 显示IP地址和端口号,而不显示域名和服务名
DNS作用
DNS: (Domain Name System)域名系统
在互联网中,通过IP地址来进行通信,但IP地址用数字表示,记忆起来太困难。
人对域名更加敏感,如 http://baidu.com
hosts文件 做静态IP和域名对应
C:WindowsSystem32driversetchosts
hosts文件的优先级是高于DNS解析的
早期Hosts文件解析域名: 名称解析效能下降,主机维护困难
DNS服务: 层次性,分布式
DNS服务作用 将域名解析为IP地址
客户机向DNS服务器发送域名查询请求
DNS服务器告知客户机Web服务器的IP地址
客户机与Web服务器通信
DNS查询过程
DNS查询类型
递归查询:要么做出查询成功响应,要么作出查询失败的响应。一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机
迭代查询:服务器收到一次迭代查询回复一次结果,这个结果不一定是目标IP与域名的映射关系,也可以是其它DNS服务器的地址
网关作用
网关(Gateway) 又称网间连接器、协议转换器。
网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。
网关即可以用于广域网互连,也可以用于局域网互连。
网关是一种充当转换重任的服务器或路由器。
linux网络配置
Linux配置IP地址
ifconfig命令临时配置IP地址
ifconfig
查看与配置网络状态命令
ifconfig eno16777736 192.168.0.200 netmask 255.255.255.0
临时设置eno16777736网卡的IP地址与子网掩码
在实际工作中,很少会使用这各命令来配置IP地址
setup工具永久配置IP地址 (redhat专用,最小化安装时没有这个工具)
setup
service network restart
修改网张配置文件 标准配置方式
网卡信息文件: /etc/sysconfig/network-scripts/ifcfg-eno16777736
[root@centos7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0" 网卡设备名
BOOTPROTO="none" 是否自动获取IP(none, static, dhcp)
HWADDR="00:0C:29:1B:F6:A1" MAC地址
IPV6INIT="no" IPV6未启用
NM_CONTROLLED="yes" 是否可以由Network Mannger图形管理工具托管
ONBOOT="yes" 是否随网络服务启动,eth0生效
TYPE="Ethernet" 类型为以太网
UUID="3c0cd457-326d-498b-a244-fd3fffae9108" 唯一识别码
IPADDR=192.168.1.103 IP地址
NETMASK=255.255.255.0 子网掩码
GATEWAY=192.168.1.1 网关
DNS1=202.106.0.20 DNS
USERCTL=no 不允许非root用户控制此网卡
主机名文件: /etc/sysconfig/network
cat /etc/sysconfig/network
[chencye@localhost ~]$ cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
hostname [主机名]
查看与临时设置主机名
hostname -I
查看IP
DNS配置文件: /etc/resolv.conf
[chencye@localhost ~]$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 101.47.94.12
nameserver 211.162.61.225
虚拟机网络配置
# 修改并配置IP地址
setup
# 启动网卡,把NOBOOT=no改为NOBOOT=yes
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 重启网络服务
service network restart
# 查看网络配置
ifconfig
# 修改UUID,如果为手动安装,则不需要修改;如果是克隆的,则需要修改
# 1) 删除MAC地址行
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 2) 删除网卡和MAC地址绑定文件
rm -rf /etc/udev/rules.d/70-persistent-net.rules
# 3) 重启系统
shutdown -r
# 设置VM虚拟机网络连接方式
# 1) 桥接模式:使用真实网卡,配置简单(方便做实验),但需要占用真实网段中的IP地址
# 2) NAT模式:只能与本机进行通信,不能与局域网机器通信,可以利用真实网卡上网,使用VMware Network Adapter VMnet8
# 3) 仅主机模式:只能与本机通信,不能与局域网或公网机器通信,使用VMware Network Adapter VMnet1
# 修改桥接网卡
# VMware Workstation --> 编辑 --> 虚拟机网络编辑器
linux网络命令
网络环境查看命令
ifconfig
查看与临时配置网络 查看IP地址和子网掩码
ifup [网卡设备名]
启用该网卡
ifdown [网卡设备名]
停用该网卡
netstat 选项
查询网络状态
-t
: 列出TCP协议端口
-u
: 列出UDP协议端口
-n
: 不使用域名与服务名,而使用IP地址和端口号
-l
: 仅列出监听状态网络服务
-a
: 列出所有的网络连接
netstat -rn
列出路由列表,与route
命令使用一样
route -n
查看路由列表,可以看到网关
route add default gw 192.168.0.2
临时添加网关,一般不需要
route del default gw 192.168.0.2
删除网关
在一台服务器里,连内网的网卡是不能设置网关的
nslookup [域名]
翻译对应域名的IP,可以看到本地DNS
nslookup
直接回车后,输入server
,可直接查看到本机DNS
网络测试命令
ping [选项] IP或域名
探测指定IP或域名的网络状况
-c
: 指定ping包的次数
telnet [域名或IP] [端口]
(需要安装)远程管理与 端口探测 命令,明文传输
traceroute baidu.com
路由跟踪,使用的是ICMP(Internet Control Message Protocol)Internet控制报文协议
禁止ping时,显示为***
wget 网络文件地址
下载命令(最小化安装时,没有这个命令)
tcpdump -i eth0 -nnx port 21
针对21端口进行抓包 (最小化安装时,没有这个命令)
-i
: 指定网卡接口
-nn
: 将数据包中的域名与服务转为IP和端口
-X
: 以十六进制和ASCII码显示数据包内容
port
: 指定监听的端口
远程登录工具
SSH协议原理
对称加密算法:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
非对称加密算法:(asymmetric cryptographic algorithm) 又名“公开密钥加密算法”,需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。羽毛球桶两边公钥
ssh 用户名@IP
首次访问会先加载公钥,如果一直连接不成功,可以查看公钥是否正确(~/.ssh/known_hosts
)
scp [-r] 用户名@IP:路径 本地路径
下载文件
scp [-r] 本地路径 用户名@IP:上传路径
上传文件
工具
SecureSRT
收费
Xshell
对个人、教育用户是免费,XShell在商业环境使用下是需要买许可的
WinSCP
文件传输工具