网络协议和管理

网络拓扑结构

总线型网络:
    当网络之中的两台主机间想要通讯数,借助CSMA/CD(多路访问载波侦听冲突检测机制)进
    行通讯
星型网络(HUB星型结构)
环形拓扑网络(令牌环网,主机之间通过持有令牌进行通讯)

OSI七层模型(国际标准化组织定义的网络通讯协议)

应用层
    定义多种传输协议,以及用户身份的验证,如http,dns,mysql
表示层
    格式化数据(封装相对应的MAC地址)
    构建数据
    提供各种加密机制
会话层
    建立,管理和终止应用程序之间的会话
传输层
    确保数据传输的可靠性(TCP UDP)
网络层

数据链路层
    定义如何格式化数据,以进行传输,属于这个阶段的是以太网
物理层
    为网络之间的通讯提供硬件保障,属于这个阶段的多是一些物理上的硬件设施,如网线等

TCP/IP四成模型

应用层
    对应七层模型中的应用层,表示层,会话层
传输层
网络层
数据链路层

网桥:

作用:用来隔断各种冲突域,但是不能够隔离广播域
代表:交换机,其中带有路由的交换机叫做三层交换机

路由:

作用:可以用来隔断广播域和加固安全,不然在网络中的广播太多会导致带宽的速度下降,
而且没有任何安全性。各台主机之间可以跨路由通讯,但是在网络之中并没有那么多的广播
占用带宽
跨路由通讯的过程(主机A到主机B):
    主机A首先要知道访问主机B的IP地址,MAC不知道并不要紧。当A主机拿到B主机的IP的地
    址之后,会将本主机的子网掩码和对方的IP进行与运算,用来判断主机B是否和本主机处在
    一个网段之中,如果不是那么会将数据进行转发到默认网关

    在将数据发往网关的时候,主机A会通过ARP请求得到默认网关的MAC地址,并且将发送给
    主机B的数据包在数据链路层进行封装,封装完成之后会发送给默认网关

    当路由收到主机A发送的数据包,发现封装的MAC地址和当前路由的MAC地址一样,便开
    始解封装。解封装后得到主机B的IP地址,发现主机B的IP地址和自己并不在一个网段中,
    所以就会在路由表中检查是否有相对应主机B所在的网络地址,如果有便将数据在次封装,
    并在封装的时候加上路由的MAC地址和主机B所在路由的MAC地址,最后发送给主机B所在
    的路由

    当主机B所在的路由收到主机A所在的路由发送的数据包时,发现数据包的上写的MAC地址
    与其匹配,那么便开始解封装,但是解封装之后发现目的的IP地址并不是默认网关的地址,
    于是便在其本网段之内发送ARP请求,将得到主机B的MAC地址重新封装到数据包中

    主机B得到本机路由发来的数据包时,会进行解封装,解封装之后发现数据对应的IP地址是
    本机的IP,就再次解封装,并且得到数据和主机A的MAC地址

注:在跨路由通讯的过程中,目的地的IP地址始终是保持不变的,只有目的MAC地址发生变
化
分类:
    主机路由
    网络路由
    默认路由
注:可用route命令定义是哪一种路由,并且精度越高,优先级越高,主机路由的优先级最高
,可用-n选项查看当前系统的路由

传输层的两大协议:

TCP协议:是面向连接的协议,两台主机在通讯时,首先建立稳定的连接在通讯,简称TCP
的三次握手
常见的TCP端口:   
    80:http
    telnet:23
    ftp:21
    ssh:22
    mysql:3306
    dns:53(区域传送)
    nfs:2049
注:常见端口号在/etc/serices中显示

滑动窗口:
    当TCP在进行三次握手时,回向客户端发送相应的握手包,握手包的可能会有很多个,但
    是要根据接收端能够接收的包来进行传送,所以在传送时这个窗口的大小不确定。
流量控制:
    当tcp在进行三次握手时,接收端返回的ACK确认包中会告诉发送端,自己一次能够接收多
    大的数据流量。当发送端收到之后会根据接收端告诉的数据大小给接收端发送数据。

TCP的三次握手:
    前提:假设客户端和服务器端都处于CLOSE状态
    1,客户端主动给服务端发送握手包,并且在握手包上附加上序列号。发送完成之后,客户
    端会变成SYN-SENT状态
    2,服务端收到客户端发送的握手包时,会将的状态变成LISTEN状态,并给客户端发送确
    认包,并在确认包上附加确认包的序列号,而且还会把客户端发送的捂手包同时发送回去
    ,并且在握手包的序列号上加1。并且将自己的状态变成SYN-SENT状态
    3,客户端收到服务端发送的确认包之后,会给向客户端再次发送握手包和确认包,并且在
    确认包的序列号上加1,并且将自己的状态变成EATAB状态
    4,当服务端收到客户端发送的握手包和确认包之后,会将自己的状态变成EATAB状态
    5,当客户端和服务端都变成EATAB状态时,两台服务器之间开始进行区域传送   
TCP的四次挥手:
    前提:假设两个客户端都在进行连接状态,并且没有突然断网的情况,客户端主动和服务
    器断开连接
    1,客户端向服务器端主动发送分手包,并在分手包上加上序号,发送完成之后,客户端进
    入FIN-WAIT1状态
    2,服务器端收到客户端提出的分手包之后,进入CLOSE WAIT状态,并向客户端发送确
    认包,并在确认包的序列号标识成分手包的序列号加1。服务端发送完确认包之后会再次向
    客户端发送自己的分手包和确认包,并在分手包上加上序列号。最终将自己转变成LAST-AC
    K状态。
    3,客户端收到服务端的确认包和确认号之后,会将自己的状态变成FIN-WAIT2状态,并且
    最后等待客户端把剩余的数据传送完成,客户端会有一个TIME-WAIT的时间,这个时间是
    两倍的数据时长,用来确定数据是否传输成功。当传输成功时,客户端会向服务器端发送
    确认包,最后转变成CLOSE状态
    4,服务器端收到客户端最终的确认包之后,最终会将自己的状态转变成CLOSE状态

注:服务端和客户端在传输过程中所处的各种状态叫做有限状态机

UDP协议:
    特点:UDP协议在传输过程中不会有相应的三次握手,所以它在传输过程中速度相对于
    TCP的速度更快,但是稳定性相对较差,并且不识别数据包的先后顺序,多用来传输视屏
    的语音等

网络层(ENTERNET层):

作用:通过ARP地址解析,将主机的物理地址转变成逻辑地址,并且会附加上对应的地址
协议,目前常用的有IPv4和IPv6,其中在每台电脑上都会存在一个ARP的缓冲表,且这个缓
存表会存储在内存中,重启后会失效。当电脑在网络中通讯时,有些***会将自己的MAC替
换成别人的MAC地址,这样可以监听当前主机和另外一台主机的通讯
显示:可以用PING命令来显示主机的物理地址和逻辑地址(默认的是ICMP协议,并且有发
送包和返回包)
注:可以用arp -n 来查看逻辑地址和物理地址的对应关系

IP报头:

IP报头总共有32个字节

标识:在传输数据的过程中,一个TCP报文可能太大,导致一次无法传输成功,那么TCP便
会把一个打的报文打断成许多小的数据报文进行发送,在每个小的TCP报文中加入排号。对
方收到对应的数据报文时,会针对相应的排号进行数据的再次组装

IP地址的分类:

A类IP:
    0.0.0.0-127.255.255.255(其中0.0.0.0和127.0.0.0属于不可用的IP地址,私有IP是 
    1.10.0.0.0-10.255.255.255)
B类IP:
    128.0.0.0-191.255.255.255(私有IP是 172.16.0.0-172.37.255.255)
C类IP:
    192.0.0.0-223.255.255.255(私有IP是 192.168.0.0-192.168.255.255)

注:其中IP地址要和子网掩码相配合使用,一个A类网由于拥有的主机数太多,可以划分成多
个子网,但是子网需要消耗IP地址,划分每个子网需要消耗2个IP地址,其中每个子网都会有
专属于这个子网的子网掩码。其中子网之间进行通讯时,会将自己的子网掩码和对方的IP地
址进行相与,而且并不关心对方的IP的子网掩码
网络地址:用IP地址和子网掩码相与,便可得到的网络地址
广播地址(IP地址的最后一位):子网掩码的是1对应的IP地址不变,子网掩码是0的对应的
IP地址变成1

给主机配置临时的IP地址:ifconfig eth0 192.168.1.10 netmask 255.255.255.0 
给主机配置临时网关:route add default gw 192.168.1.1 

主机和本地解析器:

主机的解析名存放在/etc/hosts中
DNS解析器,在主机访问互联网中域名的时候需要进行名称解析