目录
网络流程图:
1.OSI七层模型
1981年 IOS (国际化标准组织)提出了OSI七层模型
OSI七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
特点: 下层只和上层有来往关系, 不可跨层传输
应用层:针对应用约定的标准 HTTP(超文本传输协议)、Telnet(远程协议)
表示层:约束数据格式,负责格式转化,加密。解密。
会话层:建立、维护、管理(解除)会话,数据的传输通道。
传输层:约定数据采用何种方式进行传递
- TCP协议:传输控制协议,实现数据的可靠传输
- UDP协议:用户数据报协议,实现数据的快递传输,不可靠
网络层:提供逻辑地址(IP地址,用于在网络中标识每一台设备,作用于网络间的通信,提供路由和选路)
数据链路层:提供MAC(物理)地址,每个MAC地址写在网卡上
物理层:约定接口类型,传输速度
2.数据包的传输过程
ARP协议
如何获取mac地址:先发送一个ARP请求,发送给每一个主机,这成为广播,给予ARP层回应以单播的形式返回
案例:
小明:我是小明,谁是小红,我的mac地址是sdfsdfs213
arp发送广播:每个人开始拆包,其他人:是找小红的,不是找我的,不管它
小红:拆开一看,是找我的,回复:小明,我是小红,我的mac地址是dfgert213
进行数据传输
3.TCP/IP:传输控制协议
TCP\IP模型
应用层:将OSI上三层融合,用于产生需要传递的数据
传输层、网络层
链路层(网络接口层):将OSI下两层融合
当通过http发起一个请求时,应用层、传输层、网络层和链路层的相关协议依次对该请求进行包装并携带对应的首部,最终在链路层生成以太网数据包,以太网数据包通过物理介质传输给对方主机,对方接收到数据包以后,然后再一层一层采用对应的协议进行拆包,最后把应用层数据交给应用程序处理。
网络通信就好比送快递,商品外面的一层层包裹就是各种协议,协议包含了商品信息、收货地址、收件人、联系方式等,然后还需要配送车、配送站、快递员,商品才能最终到达用户手中。
一般情况下,快递是不能直达的,需要先转发到对应的配送站,然后由配送站再进行派件。
配送车就是物理介质,配送站就是网关, 快递员就是路由器,收货地址就是IP地址,联系方式就是MAC地址。
快递员负责把包裹转发到各个配送站,配送站根据收获地址里的省市区,确认是否需要继续转发到其他配送站,当包裹到达了目标配送站以后,配送站再根据联系方式找到收件人进行送件。
4.HTTP协议
超文本传输协议 (Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通 信的规则,通过因特网传送万维网文档的数据传送协议,于1990年提出
是一个基于TCP/IP通信协议来传递数据(HTML文件,图片等)
HTTP是一个属于应用层的协议
常见状态代码:
200 OK:客户端请求成功
403 Forbidden:服务器收到请求,但是拒绝提供服务,没有权限
404 Not Found:请求资源不存在,输入了错误的URL,没有找到,路径不对
比如:HTTP/1.1 200 OK
5.UDP协议
UDP是一个无连接的简单的面向数据报的传输层协议
UDP的特性:
- 面向无连接:不用先与对方建立连接,不握手。因此传输速度很快
- 不可靠的:没有确认机制,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地
- UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之内
因为它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响
UDP一般用途:
- 即时通信:(qq聊天)对数据准确性和丢包要求比较低,但速度必须快
- 在线视频:速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的
- 网络语音电话:语音数据包一般比较小,需要高速发送,偶尔断音或串音也没问题
物理地址:mac地址,全球唯一,mac由6段16进制数组成,每段有2个16进制数
ARP:arp协议作用 (地址解析协议)
ARP地址解析协议用于将网络地址(IP地址32位)转化为物理地址(MAC地址48位)。ARP协议是属于"数据链路层 or 网络层"的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核(如驱动)必须知道目的端的硬件地址才能发送数据
ICMP:Internet控制报文协议
ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
6.网卡
lo网卡 :本地回环网卡,本机上的服务自己访问自己时用的
网卡里面信息:ip 地址、子网掩码、广播地址、mac地址
网卡相关的服务NetworkManager,network
NetworkManager用于nmtui图形化配置网卡,可以用于产生网卡配置文件
network,启动网卡服务
网卡配置文件目录/etc/sysconfig/network-scripts
下以ifcfg-开头的表示网卡参数文件
[root@localhost ~]# systemctl status NetworkManager
[root@localhost ~]# systemctl status network
6.1.查看网卡信息
查看网卡信息:
[root@localhost ~]# ifconfig //需要安装net-tools
[root@localhost ~]# ip a
6.2.启动网卡
启动:(ens33是网卡名)
[root@localhost ~]# ifconfig ens33 up //方式一
[root@localhost ~]# ifup ens33 //方式二
6.3.关闭网卡
关闭网卡:
[root@localhost ~]# ifconfig ens33 down //方式一
[root@localhost ~]# ifdown ens33 //方式二
6.4.临时IP
现有业务服务不能中断的时候,会选择使用临时IP
设置临时IP:
[root@localhost ~]# ip a a 192.168.221.137/24 dev ens33 //add添加
删除设置的临时IP:
[root@localhost ~]# ip a d 192.168.221.137/24 dev ens33 //del删除
7.修改主机名
方式一:
[root@localhost ~]# hostname //查看主机名
[root@localhost ~]# hostnamectl set-hostname soso666 //主机名
方式二:
[root@localhost ~]# vi /etc/hostname //编辑配置文件
soso666
[root@localhost ~]# reboot
[root@soso666 ~]#
8.配置本地解析
写法:ip 主机名
[root@soso666 ~]# vi /etc/hosts //添加如下内容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.246.130 soso666 soso //添加解析
9.tcpdump抓包
tcpdump是一款强大的网络抓包工具,运行在Linux平台上。熟悉tcpdump的使用能够帮助我们分析、调试网络数据。(在实际工作中,需要以root权限去执行该命令)
9.1.常用命令选项
选项 | 解释 |
---|---|
-i | 指定监听网络接口 |
-n | 进行ip和端口名称的转换,一个n不要ip解析到域名,将协议转换为端口 |
-w | 将捕获到的信息保存到文件中,且不分析和打印在屏幕 |
-r | 从指定的文件中读取数据,一般是-w保存的文件 |
-v | 输出稍微详细的信息 |
-V | 输出详细的报文信息 |
9.2.安装tcpdump工具
[root@tcpdump-server ~]# yum install -y tcpdump
实验环境
准备两台机器(两台机器均关闭防火墙和selinux)
192.168.80.128 ----tcpdump-server
192.168.80.129 ----test-server
六个标记
SYN(synchronous建立联机)
ACK(acknowledgement 确认) 用.表示
PSH(push传送)
FIN(finish结束)
RST(reset重置)
URG(urgent紧急)
Sequence number(顺序号码)
监听网卡端口为80的应用发出和接收的所有http协议包
[root@tcpdump-server ~]# tcpdump -i ens33 port 80 -vv -nn
[root@test-server ~]# curl http://192.168.80.128 //测试
监视ens33网卡上源地址192.168.80.129的所有网络包
[root@tcpdump-server ~]# tcpdump -i ens33 src 192.168.80.129
[root@test-server ~]# ssh 192.168.80.128 //测试
监视ens33网卡上目的地址是192.168.80.129的所有网络包
[root@tcpdump-server ~]# tcpdump -i ens33 dst 192.168.80.129
查看ICMP通信包
[root@tcpdump-server ~]# tcpdump -i ens33 icmp -vv -nn
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
00:55:58.756161 IP (tos 0x0, ttl 64, id 33221, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.80.129 > 192.168.80.128: ICMP echo request, id 1139, seq 1, length 64
00:55:58.756254 IP (tos 0x0, ttl 64, id 11681, offset 0, flags [none], proto ICMP (1), length 84)
192.168.80.128 > 192.168.80.129: ICMP echo reply, id 1139, seq 1, length 64
echo request:请求包
echo reply:回复包
抓tcp的输出到文件中
[root@tcpdump-server ~]# tcpdump -i ens33 tcp -vv -nn -w tcp.txt
//抓包tcp--在文本模式下
//访问本机测试抓包输出
[root@tcpdump-server ~]# ls
anaconda-ks.cfg tcp.txt //抓包生成的文件,不能用vim查看
[root@tcpdump-server ~]# tcpdump -r tcp.txt //读生成的文件
或者导入到wireshark中进行分析
需要重新抓包一次并保存。