网络管理总结

  在学习Linux的快两个月时间的这个阶段,我们学习到了网络的相关知识,哇,原来我们上网是需要这么多步骤的,玩了这么久的电脑,打开过无数网站还只是停留在以为打开网站只需要点点鼠标的层面,惭愧惭愧。学习了一周,终于了解了一些网络的基层结构和一些网络协议,下面是对这一周所学知识的一些总结,加强记忆和理解。还停留在以为打开一个网站只是动动鼠标层面的同学们注意了,别再说自己玩了多久的电脑啦,其实你对计算机一无所知(怕不怕),快来学习吧!

先来简单介绍下要在网络上发送数据需要的地址和步骤(这只是简化的草图)

网络管理总结

具体信息如下:

简单的网络物理硬件:计算机,交换机,路由器,连接线,RJ-45连接口,这样就具备联网的物理基础啦

第一步:了解OSI模型

OSI模型即开放式通信系统互联参考模型,是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI

OSI模式的功能:降低复杂性、标准化接口、简化模块化设计、确保技术的互操作性、加快发展速度、简化教学,既然是框架和模型,那么不可避免的的就是分层次,分层次的缘由就是易于管理,便于每个层次的修改和使用,所以我们的OSI就分了七个层次:网络管理总结

应用层:

1.为应用程序进程提供网络服务(如:电子邮件,视频语音聊天等)

2.提供用户身份验证

表示层:

1.确保接收系统可以读出该数据

2.格式化数据

3.构建数据

4.协商用于应用层的数据传输语法

5.提供加密

会话层:

1.建立,管理和终止在应用程序之间的会话

传输层:

1.确保数据传输的可靠性

2.建立,维护和终止虚拟电路

3.通过错误检测和恢复

4.信息流控制来保障可靠性

网络层:

1.路由数据包

2.选择传递数据的最佳路径

3.支持逻辑寻址的路径选择

数据链路层:

1.访问介质,访问接口接收数据,进行格式化判断,并进行错误检测

2.定义如何格式或数据以使进行传输以及如何控制对网络的访问

3.支持错误检测

物理层:

1.二进制传输

2.为启动,维护以及关闭物理链路定义了电气规范,机械规范,过程和功能规范

【下层为上层提供服务,所以在上层是可以查看到下层信息的】

然后,了解一下数据的封装过程:(原来数据是这样在网络上传输的)

网络管理总结 

由计算机发送的数据每经过一层都会加上每一层的报头(HDR),这样才能被识别 到达目的地会进行解封装,过程和封装相似,一层一层去掉每一层封装。

 

第二步:了解下TCP/IP协议栈,并与OST进行对比

TCP:Transmission Control Protocol/Internet Protocol传输控制协议/因特网互联协议

TCP/IP是一个Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多协议最早发源于美国国防部(缩写为DoD)的因特网的前身ARPA网项目,1983年1月1日,TCP/IP取代了旧的网络控制协议NCP,成为今天的互联网和局域网的基石和标准,由互联网工程任务组负责维护,共定义了四层,ISO参考模型的分层有对应关系

网络管理总结

这里我们重点了解下 传输层和网络层,比较重要。

传输层中有两个重要的协议(TCP协议和UDP协议)

两个协议的区别重点在于TCP协议可靠安全效率不太高,而UDP协议则是效率高不注重安全,目前使用TCP协议更多一点,

TCP协议特性:

工作在传输层面向连接协议

全双工协议

半关闭

错误检查

将数据打包成段,排序

确认机制

数据恢复,重传

流量控制,滑动窗口

拥塞控制,慢启动和拥塞避免算法

TCP包头:

网络管理总结

源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个
序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从 0 开始
确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送发:我希望你(指发送方)下次发送的数据的第一个字节数据的编号是这个确认号
数据偏移:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。该字段的单位是32位(即4个字节为计算单位),4位二进制最大表示15,所以数据偏移也就是TCP首部最大60字节

URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效
ACK:表示是否前面的确认号字段是否有效。ACK=1,表示有效。只有当ACK=1时,前面的确认号字段才有效TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段
PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留TCP接收缓冲区中
RST:如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段
SYN:在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段

FIN:表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段

tcp协议port(端口号):传输层通过端口号来确定应用层,应用层的每个服务或者应用都有对应的端口号,找到端口号就找到了所对应的应用。如下图:

网络管理总结

计算机间建立连接过程:(这里叫三次握手,挺友好的一个名字)

网络管理总结

文字描述一哈:客户A向服务器B发送一个建立连接请求(SYN=1 seq=x表示包的序列号 )自己进入SYN-SENT状态,服务器则一直处于监听LISTEN状态,收到客户A的请求后,回复给客户A一个确认信息(ACK=1代表收到了请求,SYN=1表示服务器也想和客户A建立连接,ack=x+1表示收到了客户A发送的包,希望下次收到第x+1个包)然后进去SYN-RCVD状态,客户A收到后进入ESTAB-LISHED状态,再发送给服务器确认信息(ACK=1,seq=x+1包序列号)进入到ESTAB-LISHED    这样连接就建立完成了!!

断开连接的过程:四次挥手

网络管理总结

文字描述:客户A要和服务器分手发送分手请求(FIN=1)进入FIN-WAIT-1状态,服务器B收到请求后回复(ACK=1,ack=u+1确定收到)客户A收到后进入FIN-WAIT-2状态,此时,服务器也确定和客户A分手,发送分手请求(FIN=1,ACK=1)进入到LAST-ACK状态,客户A收到后进入TIME-WAIT状态,(这里客户A会等待2个MSL时长,过后进入CLOSED状态)发送确认信息ACK=1,服务器收到后进去CLOSED状态。

状态信息:
CLOSED 没有任何连接状态
LISTEN 侦听状态,等待来自远方TCP端口的连接请求
SYN-SENT 在发送连接请求后,等待对方确认
SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
ESTABLISHED 代表传输连接建立,双方进入数据传送状态
FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认
LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
CLOSING 双方同时尝试关闭传输连接,等待对方确认

TCP确认机制并不是一个确认一次,那样效率太低了,所以TCP确认机制是一段确认一次。

UDP协议特性:

工作在传输层
提供不可靠的网络访问
非面向连接协议
有限的错误检查
传输性能高
无数据恢复特性

网络管理总结

UDP的包头里没有确认号序号啊等功能,只有源端口和目的端口,所以UDP协议只管发不确认,所以效率高但安全性差。

网络层:

网络层中有几个重要的协议,ARP协议,IP协议。

先来介绍ICMP协议,全称Internet Control Message Protocol,互联网控制消息协议,其实网络层也被分为很多小层,ICMP协议就处在比较上层的位置。

ICMP:控制消息,网路装备(ping命令就是ICMP协议)
type:8 请求
type:0回应

重点来介绍下ARP协议:

ARP:地址解析协议(通过IP地址广播找MAC地址),只针对本网段的进行广播,找到目标会把目标的MAC地址存到自己的ARP表中,但是长时间不用的话,会被删除,也可以手动指定

查看ARP表的相关命令:

arp -n:查看arp表中ip信息 (ip neigh

iarp -d ip地址:删除arp表中的ip地址的信息

arp [HW] -s:设置静态地址(不会被自动删除),标志是Flags Mask 会变成了CM

反向ARP:通过MAC地址,查找IP地址(用于一些无硬盘的机器,开机有MAC地址但是没有IP地址)

IP PDU包头:

网络管理总结

版本:  占4位,指 IP 协议的版本目前的IP协议版本号为4
首部长度:  占4位,可表示的最大数值是15个单位,一个单位为4字节,因此IP 的首部长度的最大值是60字节
区分服务:  占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过.后改名为区分服务.只有在使用区分服务(DiffServ)时,这个字段才起作用.一般的情况下都不使用
总长度:  占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节.总长度必须不超过最大传送单元 MTU
标识:  占16位,它是一个计数器,通常,每发送一个报文,改值会加1, 也用于数据包分片,在同一个包的若干分片中,该值是相同的
标志(flag):  占3位,目前只有后两位有意义
DF: Don‘t Fragment,中间的一位,只有当 DF=0 时才允许分片
MF: More Fragment,最高位,MF=1表示后面还有分片。MF=0 表示最后一个分片
片偏移:  占12位,指较长的分组在分片后,该分片在原分组中的相对位置.片偏移以8个字节为偏移单位
(分片:Fragmented)
生存时间:  占8位,记为TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值,TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为64.发送 ICMP 回显应答时经常把 TTL 设为最大值 255
TTL time to live: linux默认64 Windows默认128 表示能通过最大的路由器数目
协议:  占8位,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程, 1表示为ICMP 协议, 2表示为 IGMP 协议, 6表示为 TCP 协议, 17表示为UDP 协议
首部检验和:  占16位,只检验数据报的首部不检验数据部分.这里不采用 CRC 检验码而采用简单的计算方法
源地址和目的地址:都各占4字节,分别记录源地址和目的地址

其中片偏移是以8个字节为单位:所以如果设置一个3000字节的大包(包的范围是60-1516),IP PDU报头示例

网络管理总结

网络层也是通过编号来识别上层传输层使用的是TCP协议还是UDP协议,TCP的编号是6,UDP的是17

网络管理总结

i

p地址:

每台主机(计算机,网络设备,外围设备)必须具有唯一的地址
IP地址由两部分组成:IP地址=网络ID+主机ID
网络ID:标识网络,每个网段分配一个网络ID
主机ID:标识单个主机,由组织分配给各个设备
IP地址格式:
IP地址是一个32位二进制数:10101100 00010000 10000000 00010001(172.16.128.17)
IP地址分类:
公式:
网络数=2^可变网络ID数
主机数=2^主机ID数-2

A类
0xxxxxxx.a.b.c 前八位位网络ID,后24位为主机ID
网络数=(00000000 01111111)0-127 其中0和127不可用 所以可用范围为1-126
主机数=2^24-2(其中0xxxxxxx.0.0.0和0xxxxxxx.255.255.255不可用)
1-126.a.b.c
B类
10xxxxxx.xxxxxxxxx.b.c前16位为网络ID,后16位为主机ID
网络数=2^14
主机数=2^16-2
前八位:10000000 10111111 128-191
128-191.xxxxxxx.b.c
C类
110xxxxx.xxxxxxxx.xxxxxxxx.c前24位位网络ID,后8位为主机ID
网络数=2^21
主机数=2^8-2
前八位:11000000 11011111 192-223
192-223.xxxxxxxx.xxxxxxxx.c
D(多播)
1110
224-239
E(备用)
240-254

公共IP地址:由管理组织分配的地址,每个是全世界唯一的地址(如果能拥有一个公共IP地址,那就厉害了!)

A类1.0.0.0到9.255.255.255  11.0.0.0到126.255.255.255

B类128.0.0.0到172.15.255.255    172.32.0.0到191.255.255.255

C类192.0.0.0到192.167.255.255   192.169.0.0到223.255.255.255

私有IP地址:

A类10.0.0.0到10.255.255.255 共254个网段*(0-255有256个网段,10.0.0.0和10.255.255.255不可用,为特殊网段)

B类172.16.0.0到172.31.255.255 共16个网段

C类192.168.0.0到192.168.255.255 共256个网段

特殊地址:

0.0.0.0:位置地址

0.0.0.0不是一个真正意义上的IP地址。它表示一个集合:所有不清楚的主机和目的网络

255.255.255.255 限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机

127.0.0.1~127.255.255.254:本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为”127.0.0.1″的 数据包

224.0.0.0到239.255.255.255 组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器

224.0.0.5:指OSPF 路由器,地址多用于一些特定的程序以及多媒体程序

169.254.x.x:如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主机分配这样地址

子网掩码:

也是32位,与IP地址一一对应,对应的网络ID为1,主机ID为0

无类域间路由(CIDR)CIDR表示法:ip/网络ID位数=id/(32-主机ID位数)【举例:172.17.0.100/16的子网掩码为 255.255.0.0】

子网掩码的8位:

00000000  0
10000000  128
11000000  192
11100000  224
11110000  240
11111000  248
11111100  252
11111110  254
11111111  255

划分子网:将一个大网络(主机ID位多)划分成多个小(主机ID位多)的网络,网络ID向主机ID借位,网络ID变多,主机ID变少

 划分子网数=2^网络ID向主机ID借的位数
 损失IP=2*(划分子网数-1)

【例题:(根据上述公式)

172.200.249.200/22  划分16子网(2^4)
1 每个子网络netmask
255.255.255.192
netid网络ID位 26(22+4)
2 每个子网络的主机数
2^(32-26(=22+4))-2=62
3 最小子网的netid

172.200.111110 (01.11) 001000  ()里的为网络ID向主机ID借的位数 要最小子网的网络ID的话就借的位全为0,要最大的则全为1
172.200.248.0/26
4 最大子网的IP范围

172.200.111110 (11.11)000001-172.200.111110 (11.11)111110(注意2进制的转化)
172.200.251.193-172.200.251.254】

划分超网:将多个小网合并为一个大网,主机id向网络id借位

跨网络通信:路由
路由分类:
主机路由(精准)
网络路由(一般)
默认路由(0.0.0.0)
优先级:精度越高,优先级越高

路由表构成:
多个路由记录组成
每个路由记录由4项组成部分
1目标    主机地址     网络地址    未知地址 0.0.0.0
2 netmask 子网掩码
3 接口interface ,发往目标,从哪个接口发出去
4 网关gateway:下一个路由器的邻近本路由器的接口的IP

如果是一个比较大的网络,其中有许多路由器,那么路由表中不能存放所有的路由信息,那么就由路由协议来解决,软件通过路由协议(互相学习)生成路由表。

DHCP协议:动态主机配置协议(发广播到网络中求分配给一个可用IP)

4个步骤:

DHCP DISCOVER: 0.0.0.0 255.255.255.255  

DHCP OFFER: DHCP SERVER–>IP

DHCP REQUEST

DHCP ACK:

(IP地址 netmask子网掩码 dns协议 gatway网关  租期)这些都自动分配好了

配置网络(理论知识学过,终于到了动手的时候了!!)

基本网络配置:将Linux主机接入到网络,需要配置网络相关设置。

一般包括如下内容:

主机名
IP/netmask
路由:默认网关
DNS服务器

网络配置方式(常用的命令)

静态指定: ifcfg: ifconfig, route, netstat  ip: object {link, addr, route}, ss, tc  system-config-network-tui (setup)
配置文件
CentOS 7:网络配置工具
nmcli, nmtui, nm-connection-editor 

动态分配:DHCP: Dynamic Host Configuration Protocol

网络接口识别并命名相关的udev配置文件:/etc/udev/rules.d/70-persistent-net.rules

查看网卡:
dmesg |grep –i eth
ethtool -i eth0
卸载网卡驱动:
modprobe -r e1000
rmmod e1000
装载网卡驱动:
modprobe e1000

ifconfig命令
ifconfig [interface]
# ifconfig -a
# ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address …
# ifconfig IFACE IP/netmask [up]
# ifconfig IFACE IP netmask NETMASK

注意:立即生效

route命令:

查看:route -n
添加:route add【举例:# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0 】

删除:route del【举例: # route del -net 192.168.0.0 netmask 255.255.255.0】

netstat命令

常用组合:-tan, -uan, -tnl, -unl
显示路由表:
netstat {–route|-r} [–numeric|-n]
-r: 显示内核路由表

-n: 数字格式

网络配置文件:

IP、MASK、GW、DNS相关配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件:
/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE:
说明参考  /usr/share/doc/initscripts-9.49.30/sysconfig.txt 
DEVICE:此配置文件应用到的设备
HWADDR:对应的设备的MAC地址
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
NM_CONTROLLED:NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no

配置选项模式:

ONBOOT:在系统引导时是否激活此设备
TYPE:接口类型;常见有的Ethernet, Bridge
UUID:设备的惟一标识
IPADDR:指明IP地址
NETMASK:子网掩码
GATEWAY: 默认网关
DNS1:第一个DNS服务器指向
DNS2:第二个DNS服务器指向
USERCTL:普通用户是否可控制此设备
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许
dhcp server分配的dns服务器指向信息直接覆盖至
/etc/resolv.conf文件中

原创文章,作者:Ganten,如若转载,请注明出处:http://www.178linux.com/85943

(0)
GantenGanten
上一篇 2017-09-02
下一篇 2017-09-02

相关推荐

  • PXE自动化安装系统

    PXE自动化安装的流程: 开机自检 > 加载ROM中的bios代码 > 检查设备启动顺序,由于PXE自动安装是基于网卡作引导的,所以,会选择网卡 > 网卡中会有PXE的模块,从dhcp服务器获取ip地址 掩码 网关 dns 重要的是tftp服务器的地址 从tftp服务器需要获取的bootloder的文件名的信息 > 从tftp中加载p…

    Linux干货 2015-08-11
  • TCP/IP五层模型

    1、简述osi七层模型和TCP/IP五层模型 网络的七层模型是由OSI和CITT一起制定的开放系统互连参考模型: TCP/IP 五层模型可以分为:应用层,传输层,网络层,数据链路层,物理层。 2、简述ip route家族命令 语法:ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT={link ,addr,rout…

    2018-01-05
  • 文件系统知一二

    文件系统知一二 What?文件系统是什么?     我们经常说文件系统,那么文件系统是什么东西呢?    计算机的文件系统是一种存储和组织计算机数据的组织结构。 常见的文件系统有哪些?           &n…

    Linux干货 2016-03-09
  • N25 – week 3 blog

    本周的blog开始使用了代码语言格式,我原本以为自然的才是最好的,orginal的才是最美的,但是我错了。。。我发现同学们都在各种markdown,各种排版。我说过我早已过了care这些的年纪,但是我不能脱离群体单独存在,所以我底下了傲娇的头。 本周开始blog标题改为英文,逼格满满,麦满分~ 下面开始第$wk_num周的作业 [root@dhcp-10-1…

    Linux干货 2016-12-19
  • 第九周

    统计可登录shell与不能登陆shell的个数 2. 写一个脚本 3.写一个脚本    4、写一个脚本,完成如下功能 脚本能够接受一个参数。 (1) 如果参数1为quit,则显示退出脚本,并执行正常退出。 (2) 如果参数1为yes,则显示继续执行脚本。 (3) 否则,参数1为其它任意值,均执行非正常退出。    5、…

    Linux干货 2016-12-26
  • Stream EDitor ( Blog 6)

    文本流编辑器,行编辑器sed详解

    Linux干货 2017-11-27