第五周(0922~0926)
2021/9/24 23:15:41
本文主要是介绍第五周(0922~0926),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
第五周
1、简述osi七层模型和TCP/IP五层模型
2、总结描述TCP三次握手四次挥手
3、描述TCP和UDP区别
4、网卡绑定bond0的实现
第五周 (一)简述osi七层模型和TCP/IP五层模型 OSI 模型解释,这个模型主要用于教学
Layer No. | Layer Name | Description |
7 | Application | 由标准通信服务和应用程序组成,为应用程序提供服务 |
6 | Presentation | 确保信息以机器能理解的形式传递给接收机器,数据格式化、数据加密 |
5 | Session | 管理协作计算机之间的连接和终止 、用来建立、管理和维护会话 |
4 | Transport | 管理数据的传输, 还确保接收的数据与传输的数据相同建立、管理并维护端到端的连接 |
3 | Network | 管理网络间的数据寻址和传送,IP选择以及路由选择 |
2 | Data Link | 处理跨网络媒体的数据传输,提供介质访问和链路管理 |
1 | Physical | 定义网络硬件的特性,信号传输方式。 |
OSI | TCP/IP |
由ISO(国际标准组织)开发 | 它是由高级研究项目机构网络(ARPANET)开发的。 |
OSI模型明确区分了接口、服务和协议。 | TCP/IP在服务、接口和协议之间没有任何明确的区别。 |
OSI是指开放系统互连。 | TCP是指传输控制协议。 |
OSI使用网络层定义路由标准和协议。 | TCP/IP仅使用Internet层。 |
OSI遵循一种垂直的方法。 | TCP/IP遵循水平方法。 |
OSI层有七层。 | TCP/IP有四个层。 |
在OSI模型中,传输层只是面向连接的。 | TCP/IP模型的一层既是面向连接的,也是无连接的。 |
在OSI模型中,数据链路层和物理层是分开的。 | 在TCP中,物理链路和数据链路都被组合成一个单一的主机到网络层。 |
会话层和表示层是OSI模型的一部分。 | 在TCP模型中没有会话和表示层。 |
它的定义是在互联网出现之后。 | 它是在互联网出现之前定义的。 |
OSI报头的最小大小是5字节。 | 最小的头大小是20字节。 |
状态 | 状态解释(最常见交互模型C/S 客户端与服务器端) | 适用范围 | 状态比喻 |
CLOSED | 没有任何连接状态 | 三次握手 连接 交往 | 两个都是单身,假设男生是客户端,女生是服务端,暂时都没想法 |
LISTEN | 侦听状态,等待来自远方TCP端口的连接请求 | 女生最近有意向谈恋爱,于是开启了心门,愿意接收男生的交往信息 | |
SYN-SENT | 在发送连接请求后,等待对方确认 | 男生对于有意向的女生,发了信息,请求交往,等待女神回信中 | |
SYN-RECEIEVD | 在收到和发送一个连接请求后,等待对方确认 | 女生收到了男生的请求,回了信息,但不确定男生是否收到,等待中 | |
ESTABLISHED | 表示传输连接建立,双方进入数据传送状态 | 连接态 | 男生收到了女神的消息,进入亢奋阶段; 女生得到男生的回信,知道他的心意没变,也开始有些激动; 男女各自进入high的状态 |
FIN-WAIT-1 | 主动关闭,客户端已发送关闭连接请求,等待对方确认 | 四次挥手 关闭 分手 | 男生提出分手,征求女生同意,等待对方同意自己的请求 |
CLOSE-WAIT | 被动关闭,收到对方发来的关闭连接请求,并确认 | 女生收到了男生的分手请求,觉得这男的也不咋地,直接回复同意 | |
FIN-WAIT-2 | 主动关闭,主机已收到对方关闭传输确认,等待对方发送关闭传输连接请求 | 男生收到女生同意分手的消息,继续等待女方反应 | |
LAST-ACK | 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失 | 女生郑重正式告知男生关系结束 | |
TIME-WAIT | 完成双向传输连接关闭,等待所有分组消失 | 男生收到正式告知后,回复,好,再也不见。 | |
CLOSING | 双方同时尝试关闭传输连接,等待对方确认 | 偶发双向请求关闭 | 男女双方同时提出不再相处,很少见的情况 |
TCP说明 | UDP说明 |
它是一个面向连接的协议 | 它是无连接协议 |
TCP以字节流的形式读取数据,消息被传输到段边界 | UDP报文包含一个接一个发送的报文 它还检查到达时间的完整性 |
TCP消息通过因特网从一台计算机到另一台计算机 | 它不是基于连接的,所以一个程序可以向另一个程序发送大量的数据包 |
TCP将数据包按照特定的顺序重新排列 | UDP协议没有固定的顺序,因为所有的数据包都是相互独立的 |
TCP速度较慢 | UDP是更快的错误恢复不尝试 |
报头大小为20字节 | 标题大小为8字节 |
TCP是重量级的 TCP需要三个包来建立套接字连接,然后才能发送任何用户数据 | UDP是轻量级的 没有跟踪连接、消息排序等功能 |
TCP进行错误检查和错误恢复 | UDP进行错误检查,但错误报文将被丢弃 |
有确认部分 | 无确认部分 |
使用握手协议,如SYN,SYN-ACK,ACK | 没有握手(无连接协议) |
TCP是可靠的,因为它保证数据传送到目的路由器 | 在UDP中不能保证数据的传送到目的地 |
TCP提供了广泛的错误检查机制,因为它提供了流控制和数据确认 | UDP方法主要用于时间敏感的应用程序,以及回答来自较大客户端的小查询的服务器 |
它有助于你在不同类型的计算机之间建立连接 | UDP是兼容的包通过广播发送在整个网络和多播发送 |
独立于操作系统运行,可独立操作 | 它还被用于域名系统、IP语音和在线游戏 |
支持许多以及多种路由协议 | |
它使组织之间能够互连 |
TCP优势 | UDP优势 |
它有助于你在不同类型的计算机之间建立连接 | 从不限制您使用基于连接的通信模型,分布式应用程序的启动延迟很低 |
它独立于操作系统运行,可独立操作 | UDP数据包的接收者使它们不受管理,这也包括块边界 |
它支持许多及多种路由协议 | 广播和组播传输也可用于UDP |
它使组织之间能够互连 | 小额交易(DNS查找) |
TCP/IP模型具有高度可伸缩的客户机-服务器体系结构 | 适用带宽密集型的应用程序 |
TCP劣势 | UDP劣势 |
在没有明确询问所有正在运行的数据之前,TCP永远不会结束传输 | 一个报文可能不会被发送或两次发送,也可能是按次序送达,不过得不到任何指示 |
不能用于广播或多播传输 | 路由器对UDP很无奈,如果发生冲突,它们不会重新传输 |
TCP没有块边界,所以您需要创建自己的块边界 | UDP没有拥塞控制和流控制,所以如何实现是用户应用程序的来完成 |
TCP提供了许多您不想要的特性 这可能会浪费带宽、时间或精力 | UDP有时会遭受更严重的包丢失 |
TCP适用场景 | UDP适用场景 |
适用于要求可靠传输的应用,例如文件传输。 | 适用于实时应用,例如:IP电话、视频会议、直播等。 |
[root@centos6 ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 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 qlen 1000 link/ether 00:0c:29:ea:d3:35 brd ff:ff:ff:ff:ff:ff inet 10.0.0.100/24 brd 10.0.0.255 scope global eth0 inet6 fe80::20c:29ff:feea:d335/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:ea:d3:3f brd ff:ff:ff:ff:ff:ff inet 172.16.1.100/24 brd 172.16.1.255 scope global eth1 inet6 fe80::20c:29ff:feea:d33f/64 scope link valid_lft forever preferred_lft forever
网卡的配置,eth0 与eth1 基本上差不多
[root@centos6 ~]# cat /tmp/ifcfg-eth1.ori DEVICE=eth1 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=172.16.1.100 NETMASK=255.255.255.0 [root@centos6 ~]#
修改后的配置:
[root@centos6 network-scripts]# cat ifcfg-bond0 DEVICE=bond0 TYPE=Bond BONDING_MASTER=yes BONDING_OPTS="miimon=100 mode=1" ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=10.0.0.155 NETMASK=255.255.255.0 GATEWAY=10.0.0.252 [root@centos6 network-scripts]# cat ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes MASTER=bond0 SLAVE=yes [root@centos6 network-scripts]# cat ifcfg-eth1 DEVICE=eth1 TYPE=Ethernet ONBOOT=yes MASTER=bond0 SLAVE=yes修改完成后,重启网络
service network restartCentos 7 nmcli的方式实现bond 修改之前:
[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:0c:29:4e:c3:dd brd ff:ff:ff:ff:ff:ff inet 10.0.0.151/24 brd 10.0.0.255 scope global noprefixroute dynamic eth0 valid_lft 5443173sec preferred_lft 5443173sec inet6 fe80::fd7d:d853:fd57:25dc/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:4e:c3:e7 brd ff:ff:ff:ff:ff:ff inet 10.0.0.153/24 brd 10.0.0.255 scope global noprefixroute dynamic eth1 valid_lft 5443173sec preferred_lft 5443173sec inet6 fe80::afb6:852f:eaec:38d1/64 scope link noprefixroute valid_lft forever preferred_lft forever修改过程:
nmcli con show
[root@centos7 ~]# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup Connection 'bond0' (3f1d31aa-525f-4e54-855c-8b5a75c95812) successfully added.
[root@centos7 ~]# nmcli con add type bond-slave ifname eth0 master bond0 Connection 'bond-slave-eth0' (2e9caaec-8ba8-4f0c-b222-230912819d09) successfully added. [root@centos7 ~]# nmcli con add type bond-slave ifname eth1 master bond0 Connection 'bond-slave-eth1' (6f01745a-1897-4566-a54c-5c73ec6d50a8) successfully added.
[root@centos7 ~]# nmcli con up bond-slave-eth0 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/19) [root@centos7 ~]# nmcli con up bond-slave-eth1 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/20) [root@centos7 network-scripts]# nmcli con up bond0 Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/21)修改后的状态: 对比了一下 centos 7 使用nmcli自动生成的配置文件,会有额外的选项 centos 6 手工创建编写的配置文件,感觉更简约一些
这篇关于第五周(0922~0926)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现