1 简述osi七层模型和TCP/IP五层模型
osi七层模型有如下层次构成:
(1) 物理层:二进制传输,为启动、维护以及关闭物理链路定义了电气规范、机械规范、过程规范和功能规范;
(2) 数据链路层:定义如何格式化数据以便进行传输以及如何控制对网络的访问,支持数据帧校验;
(3) 网络层:路由数据包,选择传递数据包的最佳路径,支持寻址和路径选择;
(4) 传输层:确保数据传输的可靠性;建立、维护和终止虚拟电路;通过错误检测和恢复;信息流控制保障可靠性;
(5) 会话层:建立、管理和终止在应用程序之间的会话;
(6) 表示层:确保接受系统可以读出该数据;格式化数据;协商用于应用层的数据传输语法;提供加密;
(7) 应用层:为应用程序进程(例如,电子邮件、文件传输和终端仿真)提供网络服务;提供用户身份验证;
TCP/IP五层模型由物理层、数据链路层、网络层、传输层和应用层构成;
2 总结描述TCP三次握手四次挥手
TCP三次握手:
(1) 客户端A发送一个初始化报文SYN=1,序列号seq=x,不携带数据;同时TCP客户进程变为SYN-SENT状态;
(2) 服务B收到客户端A发送的初始化报文,将TCP进程变为SYN-RCVD状态;同时回应初始化报文SYN=1,确认ACK=1,序列号seq=y,确认已收到序号为x的报文了ack=x+1;
(3) 客户端A收到服务器A发送的初始化确认报文,将TCP状态变为ESTABLISHED状态;同时对收到的报文做确认,发送ACK=1,seq=X+1,ack=y+1报文;
(4) 服务器B收到客户端A的确认报文后,将TCP进程状态变为ESTABLISHED状态。
TCP的三次握手很好的解决了已失效的连接请求导致的资源消耗占用问题。
TCP四次挥手:
(1) 客户端A发送一个释放连接FIN=1,序列号seq=u的报文;TCP进程状态变为FIN-WAIT-1;
(2) 服务器B收到客户端关闭连接报文后,TCP状态变为CLOSE-WAIT;同时发送ACK=1,序列号seq=v,ack=u+1报文,用于对收到的报文做确认。客户端A收到服务器的确认报文后,TCP进程状态变为FIN-WAIT-2。在这个过程中服务器向客户端方向发送数据的通道是正常的;
(3) 服务器B发送FIN=1,ACK=1,seq=w,ack=u+1的释放连接报文,并将自己的TCP进程状态变为LAST-ACK状态。
(4) 客户端A收到B的释放连接报文,发送ACK=1,seq=u+1,ack=w+1对收到的报文进行确认;此时客户端A的TCP进程进入到TIME-WAIT状态(2MSl,最长报文生存时间)。服务器B在收到对FIN确认的报文后,TCP进程状态变为closed状态。客户端A在等待时间到期后,TCP进程状态也变为closed。
3 描述TCP和UDP区别
TCP和UDP都属于传输层协议,封装在IP协议报文中。TCP的协议编号是6,UDP的协议编号是17。
TCP和UDP的相同点,都是通过源端口号和目的端口号标识一个端到端的连接的,也都支持校验和确认。
TCP和UDP的不同点:UDP的报文头部是固定的8个字节,而TCP的报文头部最小是20字节,最大是可变成的60个字节。因此TCP的报文字段,就比UDP的报文字段多了序列号、ack确认号,头部偏移,滑动窗口等字段。从而可以实现,TCP发送确认机制,达到可靠传输的目的;TCP的窗口机制,可以实现流量控制和拥塞控制等目的。
4 总结ip分类以及每个分类可以分配的IP数量
A类地址,可以分配的IP地址数量是:2^24-2;
B类地址,可以分配的IP地址数量是:2^16-2;
C类地址,可以分配的IP地址数量是:2^8-2;
D类地址,是组播地址;
E类地址,保留使用。
5 总结IP配置方法
5.1 ip address 可用于管理网卡的IP地址;
查看ip地址,语法:
ip address show
配置添加或删除接口IP地址,语法格式:
ip address add/del IP/NETMASK dev IFACE [label LABEL]
【范例】
[root@centos7 ~]# ip addres show
[root@centos7 ~]# ip address add 192.168.30.200/24 dev ens37
[root@centos7 ~]# ip address del 192.168.30.200/24 dev ens37
[root@centos7 ~]# ip address add 192.168.30.200/24 dev ens37 label ens37:0
5.2 nmcli 可用于管理网卡的IP地址;
nmcli命令管理是一个一个的connection,那么connection到底指的是什么?
在NetworkManager中,每一个connection都认为是一个网络接口,基本上可以对应一个网卡。每新增一个connection,都可以称之为增加一个connection的配置文件。事实上,新增connection的时候,NetworkManager会自动创建一个/etc/syconfig/network-scripts/icfg-NAME的配置文件。
因此通过nmcli管理的就是connection的创建,启动,修改,禁用等操作。
【范例】
[root@centos7 Packages]# rpm -ivh bash-completion-2.1-6.el7.noarch.rpm
[root@centos7 ~]# nmcli device disconnect ens37
[root@centos7 ~]# nmcli device connect ens37
[root@centos7 ~]# nmcli connection add autoconnect yes con-name net-1 ifname ens37 type ethernet ipv4.addresses 192.168.30.200/24 ipv4.gateway 192.168.30.1
[root@centos7 ~]# nmcli connection modify net-1 ipv4.method manual
[root@centos7 ~]#nmcli connection delete 712aede2-75f8-39ff-895a-8fe444018c11