Linux网络管理

本文详细介绍了Linux网络管理的基础知识,包括计算机网络体系结构中的OSI和TCP/IP模型,重点讲解了UDP/TCP协议,特别是TCP的三次握手和四次挥手过程。此外,还探讨了常用的网络管理命令,如netstat、ss和traceroute,以及wget的使用方法,帮助读者掌握Linux系统的网络管理和诊断技巧。

一、计算机网络体系结构

1.1 OSI七层模型

物理层:传输介质,组网
数据链路层:帧,MAC地址寻址,数据成帧,数据监测,重发 ARP
网络层:将网络地址转化为物理地址,网络地址寻址,路由转发 IP协议
传输层:提供端对端的数据交换,连接端口
会话层:提供点对点的连接
表示层:数据格式化
应用层:应用程序,服务
在这里插入图片描述
1.2 TCP/IP的五层模型

(1)物理层:
物理介质,组网。光钎,双绞线。

(2)数据链路层:
MAC:48位二进制数,12十六进制表示,确定设备位置
数据成帧,封装 以太网包头

(3)网络层:
IP协议: 网络寻址
网络地址,主机地址
IP地址分类: ABCDE
子网划分
子网掩码
与运算
路由
【静态路由:手工路由表
动态路由:路由协议学习 OSPF RIP
默认路由:缺省路由 0.0.0.0】
路由器。网关
ARP 地址解析 ip------->mac

(4)传输层:
端口:数据包区分,IP+端口
UDP:简单,容易实现,不可靠传输
TCP:可靠传输
TCP:报文格式:20字节

(5)应用层:
应用程序
服务
HTTP、FTP、SMTP 在这里插入图片描述

二、UDP/TCP协议

UDP和TCP协议都是传输层的协议,主要作用就是在应用层的数据包标头加上端口号(或者在IP协议的数据包中插入端口号)

  • UDP协议的优点是比较简单,容易实现,但缺点是可靠性差,一旦数据包发出,无法知道对方是否收到。
  • TCP协议可以近似认为是有确认机制的的UDP协议。每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。

2.1 TCP协议的报文格式
在这里插入图片描述

  • 16位源端口号和16位目的端口号
  • 32位序号:一次TCP通信过程中某一个传输方向上的字节流的每个字节的编号,通过这个来确认发送的数据有序,比如现在序列号为1000,发送了1000,下一个序列号就是2000
  • 32位确认号:用来响应TCP报文段,给收到的TCP报文段的序号加1,三握手时还要携带自己的序号
  • 4位头部长度:标识该TCP头部有多少个4字节,共表示最长15*4=60字节。同IP头部
  • 6位保留:6位标志。URG(紧急指针是否有效);ACK(表示确认号是否有效);PSH(提示接收端应用程序应该立即从TCP接收缓冲区读走数据);RST(表示要求对方重新建立连接);SYN(表示请求建立一个连接);FIN(表示通知对方本端要关闭连接)
  • 16位窗口大小:TCP流量控制的一个手段,用来告诉对端TCP缓冲区还能容纳多少字节
  • 16位校验和:由发送端填充,接收端对报文段执行CRC算法以校验TCP报文段在传输中是否损坏
  • 16位紧急指针:一个正是偏移量,它和序号段的值相加表示最后一个紧急数据的下一个字节的序号

2.2 三次握手过程:

所谓三次握手即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务器端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,整个流程如下所示:
在这里插入图片描述1、建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

2、服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

3、客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

2.3 四次挥手过程:

TCP的连接的拆除需要发送四个包,因此称为四次挥手。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

在这里插入图片描述1、客户端请求释放连接,停止发送数据。发送FIN=1,seq=u。进入FIN-WAIT-1;

2、服务器收到释放连接请求。发出确认报文,ACK=1,ack=u+1,seq=v,进入CLOSE-WAIT;

3、客户端收到服务端的确认请求报文,进入FIN-WAIT-2;

4、服务器端发送完数据。发送释放连接请求,FIN=1 ACK=1 seq=w,ack=u+1,服务器进入LAST-ACK;

5、客户端收到服务器端的释放连接请求,发出确认,ACK=1 seq=u+1,ack=w+1,进入TIME-WAIT(2MSL),进入CLOSE;

6、服务器端收到客户端的ACK=1之后,直接进入CLOSE。

三、网络管理命令

3.1 netstat
用于显示各种网络相关信息,如网络连接,路由表,接口状态,无效连接,组播成员等。

(1)选项:
-a:列出系统中所有连接
-t:列出TCP连接
-u:列出UDP连接
-l:列出所有正在监听的服务
-n:用端口显示服务,而不是服务名
-p:显示服务的进程ID PID
-s:按协议统计
-c:每隔固定时间执行命令
-r:路由信息

(2)示例:
在这里插入图片描述
Proto:数据包的协议,分为TCP和UDP
Recv-Q:表示收到的数据已经在本地接收缓存,但是还没有被进程取走的数据包数量
Send-Q:对方没有收到的数据包,或者没有ACK回复的,还在本地缓冲区的数据包数量
Local Address:本地IP:端口,通过端口可以知道本机开启了哪些服务
Foreign Address:远程主机:端口,即远程哪个IP使用哪个端口连接到本机
State:连接状态,主要是已经建立连接(ESTABLISED)和监听(LISTEN)两种状态
PID/Program name:主要是进程ID和进程命令

在这里插入图片描述
Proto:协议,一般为unix
RefCnt:连接到此Socket的进程数量
Flags:连接标识
Type:Socket访问类型
State:连接状态,已经建立连接(ESTABLISED)和监听(LISTEN)两种状态
I-Node:程序文件的Inode号
Path:Socket程序的路径,或者相关数据的输出路径

[root@localhost ~]# netstat -a ##列出所有端口,包括监听的和未监听的

[root@localhost ~]# netstat -t ##列出所有的tcp协议的端口

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 48 192.168.1.12:ssh 192.168.1.1:59681 ESTABLISHED
tcp 0 0 192.168.1.12:ssh 192.168.1.1:59710 ESTABLISHED
查找特定程序运行的端口:
在这里插入图片描述

[root@localhost ~]# netstat -r ##查看本机路由信息

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
default 192.168.1.2 0.0.0.0 UG 0 0 0 eth0

3.2 ss
用于显示当前网络接口状态

(1)选项:
-t:tcp协议的连接
-u:udp协议的连接
-l:监听状态的连接
-a:所有状态的连接
-p:显示PID
-m:显示连接使用的内存信息
-e:显示扩展信息
-n:数字格式显示

(2)示例:
[root@localhost ~]# ss -a ##显示所有连接

State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::ssh ::: *
LISTEN 0 128 :ssh :
LISTEN 0 100 ::1:smtp :::

LISTEN 0 100 127.0.0.1:smtp :
ESTAB 0 0 192.168.1.12:ssh 192.168.1.1:59681
ESTAB 0 0 192.168.1.12:ssh 192.168.1.1:59710

[root@localhost ~]# ss -ta ##查看所有TCP协议的连接

State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::ssh ::: *
LISTEN 0 128 :ssh :
LISTEN 0 100 ::1:smtp :::

LISTEN 0 100 127.0.0.1:smtp :
ESTAB 0 0 192.168.1.12:ssh 192.168.1.1:59681
ESTAB 0 0 192.168.1.12:ssh 192.168.1.1:59710

3.3 traceroute与mtr:
获取当前主机到目标主机所经过的路由(网关)

(1)traceroute:
[root@localhost ~]# traceroute 192.168.1.12
traceroute to 192.168.1.12 (192.168.1.12), 30 hops max, 60 byte packets
1 192.168.1.12 (192.168.1.12) 0.022 ms 0.005 ms 0.005 ms

[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (14.215.177.39), 30 hops max, 60 byte packets
1 192.168.1.2 (192.168.1.2) 0.237 ms 0.145 ms 0.142 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 *^C

(2)mtr:
-r:以报告模式显示
-s:用来指定ping数据包的大小
-n:no-dns不对IP地址做域名解析
-a:来设置发送数据包的IP地址
-i:使用这个参数来设置ICMP返回之间的要求默认是1秒
-4:IPv4
-6:IPv6

[root@localhost ~]# mtr 192.168.1.12
在这里插入图片描述
[root@localhost ~]# mtr -r 192.168.1.12
HOST: localhost.localdomain Loss% Snt Last Avg Best Wrst StDev

  1. 192.168.1.12 0.0% 10 0.1 0.1 0.0 0.1 0.0

3.4 wget:
是一个从网络上自动下载文件的自由工具。下载数据的时候使用的协议可以是http,https,ftp三种协议。使用此命令时的输出信息中可以看到本地下载使用的是什么协议

(1)选项:
-r:当用wget下载目录时,需要用到此选项,表达递归下载目录及其子目录。如果下载文件时,加上-r选项,那么远程主机上的目录结构就会下载到本地
-c:支持断点续传,即使我们的ctrl+c了wget命令,再次使用wget -c仍然是接着上次的进度开始下载
-O filename:表示将远程的文件下载到本地后,重新命名为filename
-q(- -quiet)wget执行时不输出任何提示信息
-t num:表示当出现网络不好等情况后,wget重试的次数。默认的为20次,若num为0或inf时,表示重试无限次
-b:后台下载

(2)示例:
<1>[root@localhost ~]# wget https://cn.wordpress.org/latest-zh_CN.tar.gz
–2019-08-19 14:35:22-- https://cn.wordpress.org/latest-zh_CN.tar.gz
Resolving cn.wordpress.org… 198.143.164.252
Connecting to cn.wordpress.org|198.143.164.252|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 11825460 (11M) [application/octet-stream]
Saving to: “latest-zh_CN.tar.gz”

3% [===> ] 360,030 6.87K/s eta 29m 46s
## 以上的例子是从网络下载一个文件并保存在当前目录,在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。

<2>[root@localhost ~]# wget -O wordpress.zip https://cn.wordpress.org/latest-zh_CN.tar.gz
–2019-08-19 14:44:43-- https://cn.wordpress.org/latest-zh_CN.tar.gz
Resolving cn.wordpress.org… 198.143.164.252
Connecting to cn.wordpress.org|198.143.164.252|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 11825460 (11M) [application/octet-stream]
Saving to: “wordpress.zip”

0% [ ] 0 --.-K/s
##以上例子为使用wget -O下载并以不同的文件名保存

<3> 使用wget - -limit -rate限速下载
命令: wget - -limit-rate=300k https://cn.wordpress.org/latest-zh_CN.tar.gz
##当执行wget的时候,默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其他文件时就有必要限速了。

标题基于Spring Boot的音乐播放网站设计与实现研究AI更换标题第1章引言介绍音乐播放网站的研究背景、意义、国内外现状及论文方法与创新点。1.1研究背景与意义阐述音乐播放网站在当今数字化时代的重要性与市场需求。1.2国内外研究现状分析国内外音乐播放网站的发展现状及技术特点。1.3研究方法以及创新点概述论文采用的研究方法及在设计与实现上的创新点。第2章相关理论与技术基础总结音乐播放网站设计与实现所需的相关理论和技术。2.1Spring Boot框架介绍介绍Spring Boot框架的基本原理、特点及其在Web开发中的应用。2.2音乐播放技术概述概述音乐播放的基本原理、流媒体技术及音频处理技术。2.3数据库技术选型分析适合音乐播放网站的数据库技术,如MySQL、MongoDB等。第3章系统设计详细介绍音乐播放网站的整体设计方案。3.1系统架构设计阐述系统的层次结构、模块划分及各模块的功能。3.2数据库设计介绍数据库表结构、关系及数据存储方式。3.3界面设计用户界面的设计原则、布局及交互方式。第4章系统实现详细介绍音乐播放网站的具体实现过程。4.1开发环境与工具介绍开发所需的软件、硬件环境及开发工具。4.2核心功能实现阐述音乐播放、搜索、推荐等核心功能的实现细节。4.3系统测试与优化介绍系统测试的方法、过程及性能优化策略。第5章研究结果与分析呈现音乐播放网站设计与实现的研究结果。5.1系统功能测试结果展示系统各项功能的测试结果,包括功能完整性、稳定性等。5.2用户反馈与评价收集并分析用户对音乐播放网站的使用反馈与评价。5.3对比方法分析将本设计与实现与其他类似系统进行对比分析,突出优势与不足。第6章结论与展望总结音乐播放网站设计与实现的研究成果,并展望未来发展方向。6.1研究结论概括音乐播放网站设计与实现的主要成果及创新点。6.2展望指出当前研究的不足,提出未来改进方向及可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值