1、简述osi七层模型和TCP/IP五层模型

OSI七层模型

TCP/IP五层模型

2、总结描述TCP三次握手四次挥手

TCP的三次握手

客户A主动向服务器B请求建立连接:

	1、客户A发送一个标识了SYN的数据段,表示期望与服务器B建立连接,此数据段的序列号(seq)为x;客户端进入同步已发送阶段
	
	2、服务器B回复标识了SYN+ACK的数据段,此数据段的序列号(seq)为y,并确认下次序列号为客户A的序列号加1(ack=x+1),以此作为对客户A的SYN报文的确认;服务器进入同步收到阶段
	
	3、客户A发送一个标识了ACK的数据段,此数据段的序列号(seq)为x+1,确认序列号为服务器B的序列号加1(ack=y+1),以此作为对服务器B的SYN报文的确认;客户A进入建立连接状态
	
此时服务器B收到客户A的确认后,也进入已建立连接状态。

TCP的四次挥手

假设客户A与服务器B均处于连接建立状态,客户端主动断开连接:

	1、客户A想终止连接,于是发送一个标识了FIN(终止标识)的数据段,序列号 seq = u;客户端进入终止等待1阶段

	2、服务器B回应一个标识了ACK的数据段,序列号 seq = v,确认序号 ack = u+1,作为对客户A的FIN报文的确认;服务器端进入关闭等待阶段,还会继续发送一些未完成的数据

	3、客户A收到服务器B的确认后,进入终止等待2阶段

	4、服务器B想终止连接,于是向客户A发送一个标识了FIN和ACK的数据段,序列号 seq = w,确认序列号ack=u+1;服务器端进入最后确认阶段

	5、客户A回应一个标识了ACK的数据段,序列号 seq = u+1,确认序号ack = w+1,作为对服务器B的FIN报文的确认;此报文发送后,客户A进入时间等待阶段,过2MSL时间后,进入关闭状态

	6、服务器B收到客户端确认后,也进入关闭状态;

至此,以上四次交互便完成了两个方向连接的关闭。

3、描述TCP和UDP区别


二者均是工作在传输层的协议,以下为主要区别

1、TCP是面向连接的协议,UDP为无连接协议;

2、TCP可实现可靠传输,使用流量控制和拥塞控制;UDP为不可靠传输

3、TCP面向字节流,UDP面向报文

4、TCP适用于要求可靠传输的应用,例如文件传输的场景;UDP适用于实时应用(例如语音,视频等)

4、总结ip分类以及每个分类可以分配的IP数量

	IP地址是由网络号(net ID)与主机号(host ID)两部分组成的。
	IP地址长度为32位,采用x.x.x.x的格式来表示,每个x为8位,每个x的值为0~255

A类地址

	网络ID为前8位,以0为固定开头的地址,主机ID为后24位组成,
	范围:允许有126个网段,每个网段可分配的ip数量2^24-2,允许有16777214台主机
	子网掩码:255.0.0.0
	私有地址:10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址),范围10.0.0.1-10.255.255.254
	保留地址:127.X.X.X是保留地址,也是本机地址,等效于localhost或本机IP。一般用于测试使用。例如:ping 127.0.0.1来测试本机TCP/IP是否正常。

B类地址

	网络ID为前16位,以10为固定开头的地址,主机ID为后16位组成,
	范围:128.0.0.1-191.255.255.254
	数量:允许有16384个网段,每个网段允许有65534台主机
	子网掩码:子网掩码为16位,255.255.0.0
	私有地址:172.16.0.1 - 172.31.255.254是私有地址
	保留地址:169.254.X.X是保留地址。如果IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP

C类地址

	网络ID为前24位,以110为固定开头的地址,主机ID为后8位组成,
	范围:192.0.0.1 - 223.255.255.254
	数量:网络数量2^21,允许有2097152个网段,每个网段可分配的ip数量254台主机
	子网掩码:255.255.255.0
	私有地址:192.168.X.X是私有地址。(192.168.0.1 - 192.168.255.254)

D类地址

	以1110开头的地址,组播地址,范围:224.0.0.1-239.255.255.254

E类地址

	以1111开头的地址,为保留地址,范围:240.0.0.1 - 255.255.255.254

无类地址

	网络ID,主机ID任意位,
	CIDR表示法:无类域间路由)IP/网络ID位数
	netmask:子网掩码,
			功能:确定网络ID的位数,32位二进制,对应IP网络ID位为1,对应IP中主机ID为0 
			
	实例:
			172.16.0.100/16
			192.168.37.7     255.255.255.0

5、总结IP配置方法

1、使用ifconfig命令配置 (临时生效,重启系统或网络服务后失效)

	[root@centos7 ~]#ifconfig ens33 

	ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

					inet 192.168.253.10  netmask 255.255.255.0  broadcast 192.168.253.255

	[root@centos7 ~]#ifconfig ens33 192.168.253.200/24

	[root@centos7 ~]#ifconfig ens33

	ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

					inet 192.168.253.200  netmask 255.255.255.0  broadcast 192.168.253.255

	[root@centos7 ~]#systemctl restart network

	[root@centos7 ~]#ifconfig ens33

	ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

					inet 192.168.253.10  netmask 255.255.255.0  broadcast 192.168.253.255

2、修改配置文件,持久生效

[root@centos7 /etc/sysconfig/network-scripts]#vim ifcfg-ens33 

	TYPE=Ethernet                                                                           

	PROXY_METHOD=none

	BROWSER_ONLY=no

	BOOTPROTO=static

	IPADDR=192.168.253.10

	NETMASK=255.255.255.0

	GATEWAY=192.168.253.2

	DNS1=114.114.114.114

	DEFROUTE=yes

	IPV4_FAILURE_FATAL=no

	NAME=ens33

	UUID=caf9c329-3fca-4d06-ac0a-cb79ecd0c86e

	DEVICE=ens33

	:wq

3、使用ip命令添加IP地址

	[root@centos7~]#ip addr add 172.16.10.100/16 dev ens33

	[root@centos7~]#ip addr del172.16.10.100/16 dev ens33

4、使用nmcli命令添加IP地址

	[root@centos7 ~]#nmcli con add con-name ens33-tmp ifname ens33 type ethernet ipv4.method manual ipv4.addresses 172.16.10.100/16

	Connection 'ens33-tmp' (bfe8bdac-b5a1-445a-86e2-c338a5c4a21f) successfully added.

	[root@centos7 ~]#nmcli con

	NAME      UUID                                  TYPE      DEVICE

	ens33      caf9c329-3fca-4d06-ac0a-cb79ecd0c86e  ethernet  ens33 

	virbr0    4547ebfc-4c09-4243-9f9c-25af8e3b2215  bridge    virbr0

	ens33-tmp  bfe8bdac-b5a1-445a-86e2-c338a5c4a21f  ethernet  --   

	[root@centos7 ~]#nmcli con up ens33-tmp

	[root@centos7 ~]#ip a

	2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

			link/ether 00:0c:29:06:01:c2 brd ff:ff:ff:ff:ff:ff

			inet 172.16.10.100/16 brd 172.16.255.255 scope global noprefixroute ens33

	[root@centos7 ~]#nmcli con up ens33