Linux学习5 osi七层模型TCP/IP五层模型 TCP三次握手四次挥手

目录

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

OSI(Open System Interconnection)开放系统网络互联。

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

三次握手:

四次挥手:

3、描述TCP和UDP区别

TCP特性:

UDP特性:

4、网卡绑定bond0的实现


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

OSI(Open System Interconnection)开放系统网络互联。

分层名称Name功能描述
7.应用层Application针对特定应用的协议提供为应用软件而设的接口,以设置与另一软件之间的通信,例如HTTP,FTP,SSH,POP3,MYSQL等
6.表示层Presentation设备固有的数据格式和网络标准数据格式的转换把数据转换为能与接收者的系统格式兼容并适合传输的格式
5.会话层Session通信管理,负责建立和断开通信链接,管理传输层以下的分层。负责在数据传输中设置和维护网络中的电脑设备之间的通信链接
4.传输层Transport管理两个节点之间的数据传输,确保数据在可靠地址传输到目标地址。把传输表头加至数据以形成数据包,表头包含了所使用的协议等,例如传输控制协议TCP等。
3.网络层Network地址管理,路由选择,跨网络决定数据的路径选择和转寄,将网络表头加至数据帧,形成报文。例如互联网协议IP等。
2.数据链路层Data Link互联设备之间传送和识别数据帧负责网络寻址,错误侦测,改错,例如以太网,无线局域网,通用分组无线服务。分为两个子层:逻辑链路控制子层 介质访问控制子层。
1.物理层Physical以0 1代表电压高低负责管理电脑设备的互通,包括针脚,电压,集线器,线缆规范,中继器,网卡,主机接口卡等。


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

TCP首部:ACK,SYN,FIN,

ACK:表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。TCP规定,建立连接后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段。

SYN:在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前面两次握手中SYN才设置为1,带SYN标志的TCP报文段称为同步报文段。

FIN:表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已发送完毕,你可以释放连接了”,带FIN标志的TCP报文段称为结束报文段,finish。

三次握手:

第一次握手:客户端发起访问发送SYN包seq=x到服务器,并进入SYN-SENT状态,等待服务器确认。

第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=x+1),同时自己也发一个SYN包seq=y到客户端,即SYN+ACK包,此时服务器进入SYN-RCVD状态。

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入established状态,完成三次握手。

 握手过程中传送的包里不含数据,三次握手完毕后,客户端和服务器端才正式传输数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP连接都将一直被保持下去。

四次挥手:

与建立连接的“三次握手”类似,断开一个TCP连接则需要“四次握手”。
第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。
第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手


3、描述TCP和UDP区别

TCP特性:

工作在传输层,

面向连接协议,

全双工协议,

半关闭,

错误检查,

将数据打包成段,排序,

确认机制,

数据恢复,重传,

流量控制,滑动窗口,

拥塞控制,慢启动和拥塞避免算法。

UDP特性:

工作在传输层,

提供不可靠的网络访问,

非面向连接协议,

有限的错误检查,

传输性能高,

无数据恢复特性。


4、网卡绑定bond0的实现

含义:将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一个ip地址是不可以的。通过bonding,虚拟一块网卡对外提供连接,物理网卡被修改为相同的MAC地址。

Bonding聚合链路工作模式,0-6mode,

mode=0,即balance-rr,round-robin policy 轮询,聚合口数据报文按包轮询从物理接口转发。

mode=1,即active-backup,active-backup policy 主备策略,只有active状态的物理接口才转发数据报文。

mod=2 ,即: (balance-xor) XOR policy (平衡策略)聚合口数据报文按源目 MAC 、源目 IP 、源目
端口进行异或 HASH 运算得到一个值,根据该值查找接口转发数据报文
mod=3 ,即: broadcast (广播策略)这种模式的特点是一个报文会复制两份往 bond 下的两个接
口分别发送出去,
mod=4 ,即: (802.3ad) IEEE 802.3ad Dynamic link aggregation IEEE 802.3ad 动态链接聚
合)
mod=5 ,即: (balance-tlb) Adaptive transmit load balancing (适配器传输负载均衡)
mod=6 ,即: (balance-alb) Adaptive load balancing (适配器适应性负载均衡)
常用的模式为0 1 3 6
mode 1 5 6 不需要交换机配置,mode 0 2 3 4 需要交换机配置。
给虚拟机centos7添加网卡一块,ip a 查看是否有 eth0,eth1,测试一下命令是否安装,nmcli
[23:30:51 root@Centos7 ~]#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,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:23:fd:ae brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.7/24 brd 10.0.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe23:fdae/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:1e:e4:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:1e:e4:00 brd ff:ff:ff:ff:ff:ff
6: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:d6:d6:73 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.162/24 brd 10.0.0.255 scope global noprefixroute dynamic eth1
       valid_lft 1796sec preferred_lft 1796sec
    inet6 fe80::9279:3deb:ae00:fe6/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

[23:33:10 root@Centos7 ~]#nmcli
eth1: 已连接 to Wired connection 1
        "Intel 82545EM"
        ethernet (e1000), 00:0C:29:D6:D6:73, 硬件, mtu 1500
        ip4 默认
        inet4 10.0.0.162/24
        route4 0.0.0.0/0
        route4 10.0.0.0/24
        inet6 fe80::9279:3deb:ae00:fe6/64
        route6 fe80::/64
        route6 ff00::/8

virbr0: 已连接 to virbr0
        "virbr0"
        bridge, 52:54:00:1E:E4:00, 软件, mtu 1500
        inet4 192.168.122.1/24
        route4 192.168.122.0/24

[23:39:59 root@Centos7 ~]#nmcli connection
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  664b226f-e716-3271-bfc3-9bf0b26a542f  ethernet  eth1   
virbr0              54c7fb85-b5b3-4186-a911-02642ee8912b  bridge    virbr0 
eth0                4503cc22-9a52-43fb-22f0-2f1c09aaab49  ethernet  --    

预计规划给虚拟网卡ip为:10.0.0.100,并另外在centos8机器ping此ip。表现为不可访问,因为现在还未配置bonding,等在centos7上配置完毕后,就自然会ping通。

[07:32:21 root@Centos8 ~]#ping 10.0.0.100
PING 10.0.0.100 (10.0.0.100) 56(84) bytes of data.
From 10.0.0.8 icmp_seq=1 Destination Host Unreachable
From 10.0.0.8 icmp_seq=2 Destination Host Unreachable
From 10.0.0.8 icmp_seq=3 Destination Host Unreachable
From 10.0.0.8 icmp_seq=4 Destination Host Unreachable
From 10.0.0.8 icmp_seq=5 Destination Host Unreachable
From 10.0.0.8 icmp_seq=6 Destination Host Unreachable
From 10.0.0.8 icmp_seq=7 Destination Host Unreachable
From 10.0.0.8 icmp_seq=8 Destination Host Unreachable
From 10.0.0.8 icmp_seq=9 Destination Host Unreachable

bonding 在centos7配置命令如下:

# 添加 bonding 接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup
ipv4.method manual ipv4.addresses 10 .0.0.100/24
# 添加从属接口
nmcli con add type bond-slave ifname eth0 master bond0
nmcli con add type bond-slave ifname eth1 master bond0
# 注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
# 要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
# 启动绑定
nmcli con up mybond0
[23:40:09 root@Centos7 ~]#nmcli connection add con-name mybond0 ifname bond0 type bond mode active-backup ipv4.method manual ipv4.addresses 10.0.0.100/24 
连接 "mybond0" (7146d83d-64d7-4024-be95-f613f728565f) 已成功添加。

[23:45:14 root@Centos7 ~]#nmcli connection 
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  664b226f-e716-3271-bfc3-9bf0b26a542f  ethernet  eth1   
mybond0             7146d83d-64d7-4024-be95-f613f728565f  bond      bond0  
virbr0              54c7fb85-b5b3-4186-a911-02642ee8912b  bridge    virbr0 
eth0                4503cc22-9a52-43fb-22f0-2f1c09aaab49  ethernet  --    

[23:46:55 root@Centos7 ~]#cd /etc/sysconfig/network-scripts/
[23:47:29 root@Centos7 network-scripts]#ls
ifcfg-eth0     ifdown-eth   ifdown-post    ifdown-TeamPort  ifup-eth   ifup-plip    ifup-sit       init.ipv6-global
ifcfg-lo       ifdown-ib    ifdown-ppp     ifdown-tunnel    ifup-ib    ifup-plusb   ifup-Team      network-functions
ifcfg-mybond0  ifdown-ippp  ifdown-routes  ifup             ifup-ippp  ifup-post    ifup-TeamPort  network-functions-ipv6
ifdown         ifdown-ipv6  ifdown-sit     ifup-aliases     ifup-ipv6  ifup-ppp     ifup-tunnel
ifdown-bnep    ifdown-isdn  ifdown-Team    ifup-bnep        ifup-isdn  ifup-routes  ifup-wireless

[23:47:30 root@Centos7 network-scripts]#cat ifcfg-mybond0 
BONDING_OPTS=mode=active-backup
TYPE=Bond
BONDING_MASTER=yes
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=mybond0
UUID=7146d83d-64d7-4024-be95-f613f728565f
DEVICE=bond0
ONBOOT=yes

[23:51:46 root@Centos7 network-scripts]#nmcli connection add type bond-slave ifname eth1 master bond0
连接 "bond-slave-eth1" (980a75e5-04e2-4931-bb9f-fbc8db8ee846) 已成功添加。
[23:52:59 root@Centos7 network-scripts]#nmcli connection add type bond-slave ifname eth0 master bond0
连接 "bond-slave-eth0" (22fa4265-c664-4482-9559-b0a3dd55784f) 已成功添加。

[23:53:06 root@Centos7 network-scripts]#nmcli connection 
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  664b226f-e716-3271-bfc3-9bf0b26a542f  ethernet  eth1   
mybond0             7146d83d-64d7-4024-be95-f613f728565f  bond      bond0  
virbr0              54c7fb85-b5b3-4186-a911-02642ee8912b  bridge    virbr0 
bond-slave-eth0     22fa4265-c664-4482-9559-b0a3dd55784f  ethernet  --     
bond-slave-eth1     980a75e5-04e2-4931-bb9f-fbc8db8ee846  ethernet  --     
eth0                4503cc22-9a52-43fb-22f0-2f1c09aaab49  ethernet  --    

[23:54:00 root@Centos7 network-scripts]#ls
ifcfg-bond-slave-eth0  ifdown-bnep  ifdown-post      ifdown-tunnel  ifup-ippp   ifup-ppp       ifup-wireless
ifcfg-bond-slave-eth1  ifdown-eth   ifdown-ppp       ifup           ifup-ipv6   ifup-routes    init.ipv6-global
ifcfg-eth0             ifdown-ib    ifdown-routes    ifup-aliases   ifup-isdn   ifup-sit       network-functions
ifcfg-lo               ifdown-ippp  ifdown-sit       ifup-bnep      ifup-plip   ifup-Team      network-functions-ipv6
ifcfg-mybond0          ifdown-ipv6  ifdown-Team      ifup-eth       ifup-plusb  ifup-TeamPort
ifdown                 ifdown-isdn  ifdown-TeamPort  ifup-ib        ifup-post   ifup-tunnel

[23:57:07 root@Centos7 network-scripts]#nmcli connection up bond-slave-eth0

[23:57:07 root@Centos7 network-scripts]#nmcli connection up bond-slave-eth1
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)

[00:02:02 root@Centos7 network-scripts]#nmcli connection up mybond0 
连接已成功激活(master waiting for slaves)(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/6)



From 10.0.0.8 icmp_seq=472 Destination Host Unreachable
From 10.0.0.8 icmp_seq=473 Destination Host Unreachable
From 10.0.0.8 icmp_seq=474 Destination Host Unreachable
From 10.0.0.8 icmp_seq=475 Destination Host Unreachable
64 bytes from 10.0.0.100: icmp_seq=476 ttl=64 time=0.558 ms
64 bytes from 10.0.0.100: icmp_seq=477 ttl=64 time=0.563 ms
64 bytes from 10.0.0.100: icmp_seq=478 ttl=64 time=0.220 ms
64 bytes from 10.0.0.100: icmp_seq=479 ttl=64 time=0.325 ms
64 bytes from 10.0.0.100: icmp_seq=480 ttl=64 time=0.339 ms

连接数多了一个mybond0,并进入网卡文件夹可以看到有个mybond0的虚拟仓网卡,并查看内容。添加网卡到bond0,并且额外生成了两个配置文件。再分别up启用两个从属网卡,先启动eth0时会端口ssh,需要重连ip选择10.0.0.100,再连接后再启用 eth1,再启用主网卡即可。

再查看bond状态,cat /proc/net/bonding/bond0

[00:21:24 root@Centos7 ~]#cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:d7:7e:da
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:d7:7e:e4
Slave queue ID: 0

删除bond0,依次执行后再重新连接ssh。

nmcli connection delete mybond0

nmcli connection delete bond-slave-eth0

nmcli connection delete bond-slave-eth1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值