网络模型协议介绍
网络模型
一、OSI七层模型
OSI Open System Interconnect 开放系统互连模型
作用: 降低网络进行数据通信复杂度 , 方便故障排查
应用层
提供应用程序/软件, 人与网络间的接口
提供数据
表示层
负责数据格式的转换, 比如压缩/解压缩、加密、解密
会话层
建立会话、维持会话、断开会话
会话: 识别客户端的登录身份(是否登录)
传输层
提供端到端的通信, 识别不同的应用程序
端口号 1--65535
作用:识别不同的程序
windows查看端口的命令 > netstat -an
网络层
典型设备: 路由器
提供网络到网络的通信, 网络---网段
提供选路,根据IP地址进行选路
数据链路层
典型设备: 交换机
提供点到点的通信
依靠MAC地址, 物理地址
windows查看MAC地址: ipconfig /all
Linux查看MAC地址: ifconfig, ip addr show
物理层
提供物理链路
二、TCP/IP五层模型
应用层、传输层、网络层、数据链路层、物理层
三、典型协议
应用层
1、http
实现web数据传输, 明文传输
2、https
实现web数据传输, 密文传输
3、ftp
文件传输协议,实现数据共享
4、DNS
实现IP地址、主机名的解析
5、ntp
网络时间协议, 实现时间同步
6、snmp
简单网络管理协议, 实现监控
7、ssh
设备远程连接, 密文传输; 适用于连接服务器
8、telnet
设备远程连接, 明文传输; 适用于在局域网连接网络设备
传输层
一、TCP 传输控制协议
1、面向连接的协议
主机间相互发送数据前,需要建立TCP连接,连接完毕后才会开始发送真实的数据,数据发送完毕后,主机间会断开连接
TCP连接是双向的
三次握手,建立连接
(a) 主机A向主机B发送带有SYN标志的数据,表示请求建立连接
(b) 主机B向主机A发送带有ACK, SYN标志的数据,表示同意建立连接、向A发送建立连接的请求
(c) 主机A向主机B发送带有ACK标志的数据,表示同意与B建立连接
2、可靠的协议
(a) 重传计时器
(b) 滑动窗口机制,流量控制,避免网络堵塞
二、UDP 用户数据报协议
1、无连接的协议
2、不可靠的协议
查看TCP协议相关的端口
[root@shane ~]# netstat -antp
查看UDP协议相关的端口
[root@shane ~]# netstat -anup
网络层
一、IP Internet Protocol 互联网协议
二、ICMP协议
互联网控制消息协议, 测试网络的连通性;
ping工具
ping工具的使用:
-c 指定ping的次数
-s 指定ping数据包大小
[root@shane ~]# ping -s 4000 -c 5 192.168.65.1
三、IGMP协议
实现组播
四、ARP协议
地址解析协议
作用: 根据IP地址获取MAC地址
四、数据封装
应用层: 产生数据
传输层: TCP/UDP报头
源端口, 对于请求数据而言,一般为>1024的随机端口
目的端口
网络层: IP报头
源IP地址
目的IP地址
数据链路层: MAC帧头
源MAC地址
目的MAC地址
五、静态路由
添加路由
route add -net 目的网段 gw 下一跳地址
[root@router-01 ~]# route add -net 192.168.2.0/24 gw 192.168.3.2
[root@router-01 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.2.0 192.168.3.2 255.255.255.0 UG 0 0 0 ens37
192.168.3.0 0.0.0.0 255.255.255.0 U 100 0 0 ens37
开启路由转发功能
[root@router-01 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@router-01 ~]# cat /proc/sys/net/ipv4/ip_forward
1
设置Linux主机默认以字符模式启动
[root@router-01 ~]# systemctl set-default multi-user.target