网络层次划分
计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。

 计算机网络协议同我们的语言一样,多种多样。而ARPA公司与1977年到1979年推出了一种名为ARPANET的网络协议受到了广泛的热捧,其中最主要的原因就是它推出了人尽皆知的TCP/IP标准网络协议。目前TCP/IP协议已经成为Internet中的“通用语言”,下图为不同计算机群之间利用TCP/IP进行通信的示意图。

计算机网络基础知识

在Linux系统中,日志数据主要包括三种类型:
内核及系统日志:这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。
用户日志:用与记录Linux系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
程序日志:有些应用程序会选择由自己独立管理一份日志文件(而不是交给rsyslog服务管理),用于记录本程序运行过程中的各种事件消息。

Linux系统本身和大部分服务器程序的日志文件默认都放在目录/var/log/下,一部分程序公用一个日志文件,一部分程序使用单个日志文件,而有些大型服务器程序由于日志文件不止一个,所以会在/var/log/目录中建立相应的子目录存放日志文件。

常用的日志文件:
/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息、包括启动、1/0错误、网络错误、程序故障等。
/var/log/cron:记录crond计划任务产生的事件信息。
/var/log/dmesg:记录Linux系统在引导过程中的各种事件信息。
/var/log/maillog:记录进入或发出系统的电子邮件活动。
/var/log/lastlog:记录每个用户最近的登录事件。
/var/log/secure:记录用户认证相关的安全事件信息。
/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。
/var/log/btmp:记录失败的、错误的登录尝试及验证事件。

常见的文本处理命令 : cat ,more,less,head, tail ,cut ,sort, uniq,grep

文本排序 :sort
-n :数值排序
-r : 降序
-t :字段分割符

管道和重定向 : > < >> <<

分析日志文件的目的在于通过浏览日志查找关键信息、对系统服务进行调试,已经判断发生故障的原因等。大多数文本格式的日志文件,使用tail、more、less、cat等文本处理工具就可以查看日志内容。

内核及系统日志功能主要由默认安装的rsyslog-5.8.10-8.el6.x86_64软件包提供。rsyslog服务所使用的配置文件为/etc/rsyslog.conf。

系统启动流程 :
POST --- >BIOS(Boot Sequence) -->BootLoader (MBR) -- >Kernel(initrd,initramfs) --> init (/etc/inittab)

/etc/inittab :
设定默认运行级别 :
系统初始化(/etc/rc.d/rc.sysinit)
运行指定级别的访问脚本
/etc/rc.d/init.d
/etc/rc.d/rc#.d
rc0.d -- rc6.d
X+
S+
00-99 : 运行次序

    启动虚拟终端
    启动图形终端

/etc/rc.d/rc.sysinit :
检测并以读写方式重新挂载根文件系统 :
设定主机名:
检测并挂载/etc/fstab中的其他文件系统;
启动swap分区:
初始化外围硬件设备的驱动;
根据/etc/sysctl.conf设定内核参数 ;
激活udev和selinux;
激活过期锁和PID文件;
装载键映射:

内核功能 :
进程管理
内存管理
文件系统
网络功能
硬件驱动
安全机制

守护进程的类型 :
独立守护进程
xinetd : 超级守护进程,代理人
瞬时守护进程:不需要关联至运行级别

核心 : /boot/vmlinux-version
内核模块(ko) : /lib/modules/version/

内核设计 :
单内核
模块化设计

                 微内核

装载模块:
insmod
modprobe

linux 内核网站 :×××w.kernel.org

用户空间访问、监控内核的方式 :
/proc , /sys

伪文件系统 :
/proc/sys :此目录中的文件很多是可读写的
/sys/ : 某些文件可写

设定内核参数值的方法 :
echo VALUE > /proc/sys/TO/SOMEFILE
sysctl -w kernel.hostname
注意 : 能立即生效,但无法永久有效;

永久有效 ,但不能立即生效:/etc/sysctl.conf

修改文件完成之后,执行如下命令可激励生效:
sysctl -p : 
sysctl -a : 显示所有内核参数及其值

内核模块管理 :
lsmod : 查看

modprobe MOD_NAME :装载某模块; 
modprobe -r MOD_NAME :卸载某模块;
modinfo MOD_NAME :查看模块的具体信息;
insmod /PATH/TO/MODULE_FILE : 装载模块
rmmod MOD_NAME 

内核中功能除了核心功能之外,在编译时,大多功能都有三种选择 : 
1、不使用此功能;
2、编译成内核模块;
3、编译进内核;

如何手动编译内核 :
make gconfig :Gname桌面环境使用,需要安装图形开发库组:GNAME Software Development
make kconfig :KDE桌面环境使用,需要安装图形开发库

make menuconfig :
make 
make modules_install
make install

screen命令 :
screen -ls  : 显示已经建立的屏幕
screen :直接打开一个新的屏幕
                    Ctrl +a .d: 拆除屏幕
screen -r ID : 还原某屏幕
exit :退出

二次编译时清理 ,清理时,如果有需要,箐备份配制文件.config: 
make clean
make mrproper

/etc/inittab的任务
1、设定默认运行级别;
2、运行系统初始化脚本;
3、运行指定运行级别对应的目录下的脚本;
4、设定Ctrl+Alt+Del组合键的 操作;
5、 定义UPS电源在电源故障 / 恢复时执行的操作;
6、定义虚拟化终端(2345级别);
7、启动图形终端(5级别);

RHEL5 , RHEL 6 :
upstart --> init
/etc/inittab
/etc/init/*.conf

mount
-n : 挂载

cat /proc

内核初始化 :
硬件探测
装载驱动
挂载根文件系统(rootfs)
启动用户空间中的第一个进程init

 在Linux内核中,根据日志消息的重要程度不同,将其分为不同的优先级别(数字等级越小、优先级越高、消息越重要)

0 EMERG(紧急):会导致主机系统不可用的情况。
1 ALERT(警告):必须马上采取措施解决的问题。
2 CRIT(严重):比较严重的错误。
3 ERR(错误):运行出现错误。
4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。
5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。
6 INFO(信息):一般信息。
7 DEBUG(调试):程序或系统调试信息等。

 内核及大多数系统消息都被记录到**公共日志文件/var/log/messages中**,而其他一些程序消息被记录到各自独立的日志文件中,此外日志消息还能够记录到特定的存储设备中,或者直接发送给指定用

 对于rsyslog服务统一管理的大部分日志文件,使用的日志记录格式基本上都相同。以公共日志/var/log/messages文件的记录格式,其中每一行表示一条日志消息,每一条消息都均包括以下四个字段。

时间标签:消息发出的日期和时间。
主机名:生成消息的计算机的名称。
子系统名称:发出消息的应用程序的名称。
消息:消息的具体内容。

01、网络层次划分
为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer)。其中第四层完成数据传送服务,上面三层面向用户。

  除了标准的OSI七层模型以外,常见的网络层次划分还有TCP/IP四层协议以及TCP/IP五层协议,它们之间的对应关系如下图所示:

计算机网络基础知识

02、OSI七层网络模型
TCP/IP协议毫无疑问是互联网的基础协议,没有它就根本不可能上网,任何和互联网有关的操作都离不开TCP/IP协议。不管是OSI七层模型还是TCP/IP的四层、五层模型,每一层中都要自己的专属协议,完成自己相应的工作以及与上下层级之间进行沟通。由于OSI七层模型为网络的标准层次划分,所以我们以OSI七层模型为例从下向上进行一一介绍。
计算机网络基础知识

1)物理层(Physical Layer)

该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层记住两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器。

2)数据链路层(Data Link Layer)

数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;

数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。

有关数据链路层的重要知识点:

  1> 数据链路层为网络层提供可靠的数据传输;

  2> 基本数据单位为帧;

  3> 主要的协议:以太网协议;

  4> 两个重要设备名称:网桥和交换机。

3)网络层(Network Layer)

网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。路径选择、路由及逻辑寻址;

网络层中涉及众多的协议,其中包括最重要的协议,也是TCP/IP的核心协议——IP协议。IP协议非常简单,仅仅提供不可靠、无连接的传送服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP。

有关网络层的重点为:

  1> 网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;

  2> 基本数据单位为IP数据报;

  3> 包含的主要协议:

  IP协议(Internet Protocol,因特网互联协议);

  ICMP协议(Internet Control Message Protocol,因特网控制报文协议);

  ARP协议(Address Resolution Protocol,地址解析协议);

  RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。

  4> 重要的设备:路由器。

4)传输层(Transport Layer)

  第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。

  传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。
  网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。
  有关网络层的重点:
  1> 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
  2> 包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);
  3> 重要设备:网关。
5)会话层

  会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。

6)表示层

  表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。

7)应用层

  为操作系统或网络应用程序提供访问网络服务的接口。

  会话层、表示层和应用层重点:

  1> 数据传输基本单位为报文;

  2> 包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)。

03、IP地址

1)网络地址

  IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络。

2)广播地址

  广播地址通常称为直接广播地址,是为了区分受限广播地址。

  广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的所有主机都能收到该广播消息。

3)组播地址

  D类地址就是组播地址。

  先回忆下A,B,C,D类地址吧:

  A类地址以0开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255;

  B类地址以10开头,前两个字节作为网络号,地址范围是:128.0.0.0~191.255.255.255;

  C类地址以110开头,前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255。

  D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);

  E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。

  注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。

4)255.255.255.255

  该IP地址指的是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另外一个网段192.168.1.5/30也能收到该数据报;若发送受限广播数据报,则不能收到。

  注:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器。

5)0.0.0.0

  常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。

6)回环地址

  127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。

7)A、B、C类私有地址

  私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。

  A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255

  B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255

  C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.25503
IP地址
1)网络地址

  IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络。

2)广播地址

  广播地址通常称为直接广播地址,是为了区分受限广播地址。

  广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的所有主机都能收到该广播消息。

3)组播地址

  D类地址就是组播地址。

  先回忆下A,B,C,D类地址吧:

  A类地址以0开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255;

  B类地址以10开头,前两个字节作为网络号,地址范围是:128.0.0.0~191.255.255.255;

  C类地址以110开头,前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255。

  D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);

  E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。

  注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。

4)255.255.255.255

  该IP地址指的是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另外一个网段192.168.1.5/30也能收到该数据报;若发送受限广播数据报,则不能收到。

  注:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器。

5)0.0.0.0

  常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。

6)回环地址

  127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。

7)A、B、C类私有地址

  私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。

  A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255

  B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255

  C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255

04、子网掩码及网络划分

什么是子网掩码?

  子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进制地址,其每一个为1代表该位是网络位,为0代表主机位。它和IP地址一样也是使用点式十进制来表示的。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。

  在计算子网掩码时,我们要注意IP地址中的保留地址,即“ 0”地址和广播地址,它们是指主机地址或网络地址全为“ 0”或“ 1”时的IP地址,它们代表着本网络地址和广播地址,一般是不能被计算在内的。

05、RP/RARP协议
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此***者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。

06、路由选择协议
常见的路由选择协议有:RIP协议、OSPF协议。

  RIP协议 :底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。

  OSPF协议 :Open Shortest Path First开放式最短路径优先,底层是迪杰斯特拉算法,是链路状态路由选择协议,它选择路由的度量标准是带宽,延迟。

07、UDP协议
UDP用户数据报协议,是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。
  UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。
  每个UDP报文分UDP报头和UDP数据区两部分。报头由四个16位长(2字节)字段组成,分别说明该报文的源端口、目的端口、报文长度以及校验值。UDP报头由4个域组成,其中每个域各占用2个字节,具体如下:
  (1)源端口号;
  (2)目标端口号;
  (3)数据报长度;
  (4)校验值。
  使用UDP协议包括:TFTP(简单文件传输协议)、SNMP(简单网络管理协议)、DNS(域名解析协议)、NFS、BOOTP。

  TCP 与 UDP 的区别:TCP是面向连接的,可靠的字节流服务;
UDP是面向无连接的,不可靠的数据报服务。

08、DNS协议
DNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务,可以简单地理解为将URL转换为IP地址。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,在Internet上域名与IP地址之间是一一对应的,DNS就是进行域名解析的服务器。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。

09、NAT协议
NAT网络地址转换(Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的***,隐藏并保护网络内部的计算机。

10、DHCP协议
DHCP动态主机设置协议(Dynamic Host Configuration Protocol)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

11、HTTP协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
  HTTP 协议包括哪些请求?

  GET:请求读取由URL所标志的信息。

  POST:给服务器添加信息(如注释)。

  PUT:在给定的URL下存储一个文档。

  DELETE:删除给定的URL所标志的资源。

  HTTP 中, POST 与 GET 的区别

  1)Get是从服务器上获取数据,Post是向服务器传送数据。

  2)Get是把参数数据队列加到提交表单的Action属性所指向的URL中,值和表单内各个字段一一对应,在URL中可以看到。

  3)Get传送的数据量小,不能大于2KB;Post传送的数据量较大,一般被默认为不受限制。

  4)根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。

转载来源 : IT行业技术圈
https://mp.weixin.qq.com/s/N3wVEox5zKvqgSJaOMktAw