Test 6
# 1、总结描述TCP三次握手四次挥手
## 三次握手
TCP是传输层协议,面向连接,保证数据的可靠传输。
~~~bash
第一次握手:发送端首先发送一个带有SYN=1标志,序列号为seq=x的数据包给接收方,并进入SYN_SENT状态,发送请求连接等待服务器确认,此时服务端由被动地CLOSED状态变成LISTEN状态
第二次握手:接收方收到发送方的的数据报文以后,回传一个带有SYN=1 ACK=1标志且发送一个seq=y ack=x+1数据包传递确认信息,表示收到了seq=x 的发送包,希望发送方发送seq=x+1的数据包。保证发送方的数据可以有效地发送给接收方。此时的发送方状态变成SYN-SENT同步已发送状态务端变成SYN-RCVD同步收到状态
第三次握手:发送方收到接收方发来的包,发送一个ACK=1 seq=x+1 ack=y+1的数据包 。保证接收方的数据可以有效地发送到发送方。连接建立成功。发送方和接收方都成为ESTAB-LISHED状态
~~~
## 四次挥手
~~~bash
第一次挥手:发送方发送一个FIN=1 seq=u,用来关闭发送方到接收方的数据传送,发送方进入FIN_WAIT_1状态。
第二次挥手:接收方收到发送方的报文后,接收方发送一个ACK=1 seq=v ack=u+1 表示已经收到发送方的挥手请求,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。发送方已经没有数据要发送了,但是接收*发送数据,发送方依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。待接送方发送完数据就完成了发送方到接收方的挥手请求
第三次挥手:接收方发送 FIN=1 ACK=1 seq=w ack=u+1用来关闭接收方到发送方的数据传送,发送方进入FIN_WAIT_2状态。由于在半关闭状态,接收方很可能又发送了一些数据,此时,接收方就进入了LAST-ACK(最后确认)状态,等待发送方的确认。
第四次挥手:发送方收到接收方发来的数据报文后,发送方进入TIME_WAIT状态,接着发送一个ACK=1 seq=u+1 ack=w+1 给接收方,确认序号为收到序号+1, 双方进入CLOSED状态,完成四次挥手
~~~
# 2、描述TCP和UDP区别
| | UDP | TCP |
| ------------ | ------------------------------------ | ------------------------------------ |
| 是否连接 | 无连接 | 面向连接 |
| 是否可靠 | 不可靠连接,不使用流量控制和拥塞控制 | 可靠连接,使用流量连接和拥塞控制 |
| 连接对象个数 | 支持一对一,一对多,多对多,多对一 | 一对一 |
| 传输方式 | 面向报文 | 面向字节流 |
| 首部开销 | 首部开销小,仅仅8个字节 | 首部开销最小20个字节,最大60个字节 |
| 适应的场景 | 视频会议 直播 Ip电话 | 适用要求可靠的传输的应用,如文件传输 |
# 3、总结ip分类以及每个分类可以分配的IP数量
~~~bash
网络ID 主机ID
A类 1~126 每个网段可有的主机2^24-2 范围:1.0.0.1-126.255.255.254
B类 128~191 每个网段可有的主机2^16-2 范围:128.0.0.1-191.255.255.254
C类 192~223 每个网段可有的主机2^8-2 范围:192.0.0.1 - 223.255.255.254
D类 224~239 是多播地址。 范围:224.0.0.1 - 239.255.255.254
E类 240 未使用 范围:240.0.0.1 - 255.255.255.254
私有IP(不直接用于互联网,在局域网使用,公网地址世界唯一)
10.0.0.0 10.255.255.255
172.16.0.0 172.31.255.255
192.168.0.0 192.168.255.255
特殊地址:
169.254.x.x 主机使用DHCP分配的,但是却分配不到,系统给的
0.0.0.0 所有不清楚的主机和目标网络
255.255.255.255 限制广播地址
0.0.0.0
0.0.0.0不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络
本机回环地址,主要用于测试。
127.0.0.1~127.255.255.254
224.0.0.0到239.255.255.255
组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址
多用于一些特定的程序以及多媒体程序
169.254.x.x
如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主
机分配这样地址
~~~
# 4、总结IP配置方法
~~~bash
静态Ip地址的配置:
第一步:
[root@localhost ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet net.ifnames=0 "
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
第二步:
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done
第三步:
[root@centos7 pam.d]#cd /etc/sysconfig/network-scripts/
[root@centos7 network-scripts]#cat ifcfg-eth0
BOOTPROTO="static"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=10.0.0.17
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
===========================================================================
动态Ip地址的配置方法用DHCP服务器获取:
[root@centos7 pam.d]#cd /etc/sysconfig/network-scripts/
[root@centos7 network-scripts]#cat ifcfg-eth0
BOOTPROTO="dhcp"
NAME="eth0"
DEVICE="eth0"
~~~
# 5、使用nmcli实现bonding
~~~bash
准备两张网卡。因为目标是坏了一张网卡依然可以工作。
#创建一个名字叫 mybond0的bond
[root05:12 PMcentos8]#nmcli connection add con-name mybond0 ifname bond0 type bond ipv4.method manual ipv4.addresses 10.0.0.100/24
Connection 'mybond0' (3e7d1d3f-0615-475d-ac78-8c30c52f0c77) successfully added.
#将eth1网卡命名为 mybond0-eth1添加到bond中
[root05:24 PMcentos8 /etc/sysconfig/network-scripts]#nmcli connection add con-name mybond0-eth1 ifname eth1 type bond-slave master bond0
Connection 'mybond0-eth1' (d8ac4db5-9c62-440a-88fc-80b61457d77a) successfully added.
[root05:27 PMcentos8 /etc/sysconfig/network-scripts]#nmcli connection
NAME UUID TYPE DEVICE
eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0
mybond0 3e7d1d3f-0615-475d-ac78-8c30c52f0c77 bond bond0
mybond0-eth1 d8ac4db5-9c62-440a-88fc-80b61457d77a ethernet eth1
#将eth0网卡命名为 mybond0-eth0添加到bond中
root05:29 PMcentos8 /etc/sysconfig/network-scripts]#nmcli connection add con-name mybond0-eth0 ifname eth0 type bond-slave master bond0
Connection 'mybond0-eth0' (fb22a8c7-ece4-4436-9239-a1dc7acb137b) successfully added.
#清除上次实验的eth0
root05:31 PMcentos8 /etc/sysconfig/network-scripts]#nmcli connection delete eth0 #删除了mybond-eth0才可以顶上去
Connection 'eth0' (5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03) successfully deleted.
[root05:34 PMcentos8 ~]#cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:41:8d:34
Slave queue ID: 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:41:8d:2a
Slave queue ID: 0
#两张网卡绑定在bond上了,查看一下
[root05:34 PMcentos8 ~]#nmcli connection
NAME UUID TYPE DEVICE
mybond0 3e7d1d3f-0615-475d-ac78-8c30c52f0c77 bond bond0
mybond0-eth0 fb22a8c7-ece4-4436-9239-a1dc7acb137b ethernet eth0
mybond0-eth1 d8ac4db5-9c62-440a-88fc-80b61457d77a ethernet eth1
[root@ ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether 00:0c:29:d4:60:b6 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
link/ether 00:0c:29:d4:60:b6 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:d4:60:b6 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute bond0
valid_lft forever preferred_lft forever
inet6 fe80::4cb:a977:92b7:fddf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
#测试:
~~~