1、总结描述TCP三次握手四次挥手
三次握手
首先,客户端与服务器均处于未连接状态,并且是客户端主动向服务器请求建立连接:客户端将报文段中的SYN=1,并选择一个seq=x,(即该请求报文的序号为x) 将这个报文发送到服务器。此时,客户端进入同步已发送状态(SYN-SEND).SYN报文段不能携带数据,但是要消耗掉一个序号。服务器收到请求报文后,若同意建立连接,则回复报文中,SYN=1,ACK=1,并选择一个seq = y,且报文中确认号为x+1,序号为y .此时服务器进入同步已接收状态(SYN-RCVD)客户端收到服务器的同步确认后,对服务器发送确认的确认。将ACK=1,确认号为y+1,而报文首部的序号为x+1,将该报文发出后,客户端进入已连接状态(ESTABLISHED)。服务器收到客户端的确认后,也进入已连接状态。
四次挥手
现假设客户端与服务器均处于连接建立状态,客户端主动断开连接:
1.客户端向服务器发送FIN报文:FIN=1,序号seq=上一个最后传输的字节序号+1=u,发送后,客户端进入FIN-WAIT-1状态。
2.服务器接收到该报文后,发送一个确认报文:令ACK=1,确认序号ack = u+1,自己的报文序号seq=v,发送后,服务器进入CLOSE-WAIT状态。
3.此时TCP连接进入连接半关闭状态,服务器可能还会向客户端发送一些数据。
4.客户端收到来自服务器的确认之后,进入FIN-WAIT-2状态。等待服务器发送连接释放报文。
5.如果服务器已经没有要发送的数据,则释放TCP连接,向客户端发送报文:令FIN=1,ACK=1,确认号ack =u+1,自己的序号seq = w(w可能等于v也可能大于v),服务器进入LAST-ACK状态。
6.客户端收到服务器的连接释放报文后,对该报文发出确认,令ACK=1,确认号ack=w+1,自己的序号seq=u+1,发送此报文后,等待2个msl时间后,进入CLOSED状态。
7.服务器收到客户端的确认后,也进入CLOSED状态并撤销传输控制块。
客户端状态变化:未连接----->SYN-SEND----->ESTABLISHED----->FIN-WAIT-1----->FIN-WAIT-2----->TIME-WAIT----->CLOSED
服务器状态变化:未连接----->SYN-RCVD----->ESTABLISHED----->CLOSE-WAIT----->LAST-ACK----->CLOSED
2、描述TCP和UDP区别
TCP特性:
工作在传输层
面向连接协议
全双工协议
半关闭
错误检查
将数据打包成段,排序
确认机制
数据恢复,重传
流量控制,滑动窗口
拥塞控制,慢启动和拥塞避免算法
UDP特性:
工作在传输层
提供不可靠的网络访问
非面向连接协议
有限的错误检查
传输性能高
无数据恢复特性
3、总结ip分类以及每个分类可以分配的IP数量
A类:
0 0000000 - 0 1111111.X.Y.Z ==> 0-127.X.Y.Z
网络ID位是最高8位,主机ID是24位低位
网络数:126=2^7(可变是的网络ID位数)-2
每个网络中的主机数:2^24-2=16777214
默认子网掩码:255.0.0.0
私网地址:10.0.0.0
B类:
10 000000 - 10 111111.X.Y.Z==>128-191.X.Y.Z
网络ID位是最高16位,主机ID是16位低位
网络数:2^14=16384
每个网络中的主机数:2^16-2=65534
默认子网掩码:255.255.0.0
私网地址:172.16.0.0-172.31.0.0
C类:
110 0 0000 - 110 1 1111.X.Y.Z ==> 192-223.X.Y.Z
网络ID位是最高24位,主机ID是8位低位
网络数:2^21=2097152
每个网络中的主机数:2^8-2=254
默认子网掩码:255.255.255.0
私网地址:192.168.0.0-192.168.255.0
D类:组(多)播,1110 0000 - 1110 1111.X.Y.Z ==> 224-239.X.Y.Z
E类:保留未使用,240-255
4、总结IP配置方法
永久配的配置ip
进入 /etc/sysconfig/network-scripts目录
使用vim打开ifcfg-XXX开头的文件
文件内容对照如下:
ip分配方式有2种:
1。dhcp方式
只需要bootproto对应字段的值写为DHCP协议即可,自动获取对应的ip
2。手工分配
需要修改bootproto=static
然后在文件最后面追加以下内容之中的一种
两种风格:
(1) TARGET via GW
如:10.0.0.0/8 via 172.16.0.1
(2) 每三行定义一条路由
ADDRESS=192.168.0.12
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
下面添加dns字段
DNS1=223.5.5.5
DNS2=223.6.6.6
5、使用nmcli实现bonding
#添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup
#添加从属接口
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0
#注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
#要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0 nmcli con up bond-slave-eth1
#启动绑定
nmcli con up mybond0