1、简述osi七层模型和TCP/IP五层模型
OSI七层墨香模型从上到下依次为:
7 应用层
6 表示层
5 会话层
4 传输层
3 网络层
2 数据链路层
1 物理层
模型共有七层
上三层称之为高层,定义应用程序之间的通信和人机界面。什么意思呢,就是上三层负责把电脑能看懂的东西转化为你能看懂的东西,或把你能看懂的东西转化为电脑能看懂的东西。
下四层称之为底层,定义的是数据如何端到端的传输(end-to-end),物理规范以及数据与光电信号间的转换。
具体说明
应用层
就是应用程序。这一层负责确定通信对象,并确保由足够的资源用于通信,这些当然都是想要通信的应用程序干的事情。
表示层
负责数据的编码、转化,确保应用层的正常工作。
这一层,是将我们看到的界面与二进制间互相转化的地方,
就是我们的语言与机器语言间的转化。
数据的压缩、解压,加密、解密都发生在这一层。
这一层根据不同的应用目的将数据处理为不同的格式,表现出来就是我们看到的各种各样的文件扩展名。
会话层
负责建立、维护、控制会话,区分不同的会话,以及提供单工(Simplex)、半双工(Half
duplex)、全双工(Full duplex)三种通信模式的服务。
传输层
负责分割、组合数据,实现端到端的逻辑连接。数据在上三层是整体的,
到了这一层开始被分割,这一层分割后的数据被称为段(Segment)。三次握手(Three-wayhandshake),
面向连接(Connection-Oriented)或非面向连接(Connectionless-Oriented)的服务,
流控(Flowcontrol)等都发生在这一层。
网络层
负责管理网络地址,支持逻辑寻址和路径选择,,选择传递数据的最佳路径。
。我们所熟知的IP地址和路由器就是工作在这一层。上层的数据段在这一层被分割,封装后叫做包(Packet),
包有两种,一种叫做用户数据包(Datapackets),是上层传下来的用户数据;
另一种叫路由更新包(Route updatepackets),是直接由路由器发出来的,用来和其他路由器进行路由信息的交换。
数据链路层
负责准备物理传输,CRC校验,错误通知,网络拓扑,流控等。我们所熟知的MAC地址和交换机都工作在这一层。
上层传下来的包在这一层被分割封装后叫做帧(Frame)。
定义如何格式化数据以便于进行传输和如何控制对网络的访问
支持错误检测
物理层
就是实实在在的物理链路,负责将数据以比特流的方式发送、接收。
为启动,维护以及关闭物理链路定义了电器规范,机械规范,过程规范和功能规范
TCP/IP 五层模型
Transmission Control Protocol/Internet Protocol 传输控制协议/因特网互联协议
TCP/IP是一个Protocol Stack,包括TCP、IP、UDP、 ICMP、RIP、TELNET、FTP、SMTP、ARP等许多协议
最早发源于美国国防部(缩写为DoD)的因特网的前身 ARPA网项目,1983年1月1日,TCP/IP取代了旧的网络 控制协议NCP,成为今天的互联网和局域网的基石和标 准,由互联网工程任务组负责维护
1、物理层:
负责光电信号传递方式。集线器工作在物理层。以太网协议。
2、数据链路层:
负责设备之间的数据帧的传输和识别。交换机工作在数据链路层。
例如网卡设备的驱动,帧同步,冲突检测,数据差错校验等工作。
3、网络层:
负责地址管理和路由选择。路由器工作在网络层。
4、传输层:
负责两台主机之间的数据传输。
5、应用层:
负责应用程序之间的沟通。网络编程主要针对的就是应用层。
两者共同点
(1)OSI参考模型和TCP/IP参考模型都采用了层次结构的概念。
(2)都能够提供面向连接和无连接两种通信服务机制。
不同点
(1) OSI采用的七层模型,而TCP/IP是五层结构。
(2) TCP/IP参考模型的网络接口层实际上并没有真正的定义,只是一些概念性的描述。
OSI参考模型不仅分了两层,而且每一层的功能都很详尽,
甚至在数据链路层又分出一个介质访问子层,专门解决局域网的共享介质问题。
(3) OSI模型是在协议开发前设计的,具有通用性。
TCP/IP是先有协议集然后建立模型,不适用于非TCP/IP网络。
(4) TCP/IP参考模型的传输层是建立在网络互联层基础之上的,
而网络互联层只提供无连接的网络服务,所以面向连接的功能完全在TCP协议中实现,
TCP/IP的传输层还提供无连接的服务,如UDP
OSI参考模型的传输层是建立在网络层基础之上的,网络层既提供面向连接的服务,又提供无连接的服务,但传输层只提供面向连接的服务。
(5) OSI参考模型的抽象能力高,适合与描述各种网络;
TCP/IP是先有了协议,才制定TCP/IP模型的。
(6) OSI参考模型的概念划分清晰,但过于复杂;
TCP/IP参考模型在服务、接口和协议的 区别上不清楚,功能描述和实现细节混在一起。
(7) TCP/IP参考模型的网络接口层并不是真正的一层;
OSI参考模型的缺点是层次过多,划分意义不大但增加了复杂性。
(8) OSI参考模型虽然被看好,由于没把握好时机,技术不成熟,实现困难;
TCP/IP参考模型虽然有许多不尽人意的地方,但还是比较成功的。
2、总结描述TCP三次握手四次挥手
tcp三次握手:
说明
第一次:Client发送一个SYN段指明Client打算连接的Server的端口,以及初始序号seq
第二次:Server发回包含Server的初始序号的SYN报文段作为应答。同时,将确认序号ACK设置为Client的seq+1以对Client的SYN报文段进行确认。一个SYN将占用一个序号
第三次:Client必须讲确认序号ACK设置为Server的初始序号SYN+1以对Server的SYN报文段进行确认
tcp四次挥手:
说明
第一次:Client发送一个FIN段序号seq以及确认断开连接的ACK
第二次:Server收到Client的FIN和ACK后,返回一个Client的FIN序号seq+1的ACK段
第三次:同时Server还向Client发送一个FIN段序号seq
第四次:Client收到Server的FIN段的seq返回给Server一个确认的ACK的序号seq+1
3、描述TCP和UDP区别
TCP:传输控制协议
这是一个面向连接的传输协议,在发送数据之前,要和对方建立可靠的连接。一个TCP连接必须经过三次握手才能建立,经过四次挥手才能断开。
三次握手:客户端向服务器发送syn请求建立连接;
服务器向客户端发送syn以及ack确定是否建立连接?
客户端向服务器发送ack确定建立连接。
四次握手:客户端向服务器发送fin请求断开连接;
服务器向客户端发送数据包;
服务器向客户端fin以及ack确定是否断开连接;
客户端向服务器发送fin确定断开连接。
UDP:用户数据报协议
这是一个无连接的简单的面向数据报的传输层协议
UDP不提供可靠性,只是把应用程序传给ip层的数据包发送出来,但是不能保证他们到达目的地;由于UDP在传输数据包前不用在客户和服务器之间建立连接,并且没有超时重发机制,所以速度很快。
区别:
1.基于连接与无连接;
2.对系统资源的要求(TCP较多,UDP较少);
3.UDP程序结构较为简单;
4.TCP是流模式(SOCK_STREAM) UDP是数据报模式(SOCK_DGRAM);
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证;
基于TCP的网络协议:
Tlenet:远程登录协议
FTP:文件传输协议
SMTP:简单邮件传输协议
SNMP:简单网络管理协议
HTTP:超文本传输协议
4、总结ip分类以及每个分类可以分配的IP数量
A类地址
范围:0.0.0.0-127.255.255.255,网络数量126(不能是0和127),可分配的ip数量2^24-2,私有地址10.0.0.0/8
B类地址
范围:128.0.0.0-191.255.255.255,网络数量214,每个B可分配的ip数量2^16-2,私有地址172.16.0.0/12(172.16.0.0-172.31.0.0)
C类地址
范围:192.0.0.0-223.255.255.255,网络数量221,每个C可分配的ip数量28-2,私有地址192.168.0.0/16
D类地址
组播地址,范围:224.0.0.0-239.255.255.255
E类地址
保留地址.
5、总结IP配置方法
配置方法:
一、手动配置、自动配置(修改配置文件重启网络服务生效,永久生效)
手动配置:
TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.37.7
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
自动配置(配置文件):
TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=dhcp
重启网络服务生效:
service network restart //重生效
systemctl restart network
一、命令修改(临时生效)
方法一:
ip addr add 192.168.37.100/24 dev ens33 //add 添加 dev 指定网卡
ip addr del 192.168.37.101/24 dev ens33 //del 删除 dev 指定网卡
方法二:(修改了配置文件)
systemctl start NetworkManager
nmcli connection modify ens33 +ipv4.addresses 192.168.37.102/24 //modify 修改 + 增加
方法三:
ifconfig ens160 192.168.37.103/24 //配置接口IP,立即生效,重启失效
ifconfig ens160 192.168.37.104 netmask 255.255.255.0 //配置接口IP,立即生效,重启失效