计算机网络OSI与TCP/IP参考模型
一、分层思想
1.1 分层原因
分层原因:将复杂的流程分解为几个功能相对单一的子过程
1.2 分层作用
1)使整个流程更加清晰,复杂问题简单化
2)更容易发现问题并针对性的解决问题
二、OSI七层参考模型
国际标准化组织(ISO)1984年颁布了开放系统互连(OSI)参考模型。一个开放式体系结构将架构分为七层,由高到低依次为:Application(应用层)、Presentation(表示层)、Session(会话层)、Transport(传输层)、Network(网络层)、DataLink(数据链路层)和Physical(物理层)。
OSI七层模型 | 功能 | 对应的网络协议 | TCP/IP四层概念模型 |
---|---|---|---|
应用层 | 文件传输,文件管理,电子邮件的信息处理——apdu | HTTP、TFTP, FTP, NFS, WAIS、SMTP | 应用层 |
表示层 | 确保一个系统的应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据的解密和加密,最小单位——ppdu | Telnet, Rlogin, SNMP, Gopher | |
会话层 | 负责在网络中的两节点建立,维持和终止通信,在一层协议中,可以解决节点连接的协调和管理问题。包括通信连接的建立,保持会话过程通信连接的畅通,两节点之间的对话,决定通信是否被终端一斤通信终端是决定从何处重新发送,最小单位——spdu | SMTP, DNS | |
传输层 | 定义一些传输数据的协议和端口。传输协议同时进行流量控制,或是根据接收方接收数据的快慢程度,规定适当的发送速率,解决传输效率及能力的问题——tpdu | TCP, UDP | 传输层 |
网络层 | 控制子网的运行,如逻辑编址,分组传输,路由选择最小单位——分组(包)报文 | IP, ICMP, ARP, RARP, AKP, UUCP | 网络层 |
数据链路层 | 主要是对物理层传输的比特流包装,检测保证数据传输的可靠性,将物理层接收的数据进行MAC(媒体访问控制)地址的封装和解封装,也可以简单的理解为物理寻址。交换机就处在这一层,最小的传输单位——帧 | FDDI, Ethernet, Arpanet, PDN, SLIP, PPP,STP。HDLC,SDLC,帧中继 | 数据链路层 |
物理层 | 定义物理设备的标准,主要对物理连接方式,电气特性,机械特性等制定统一标准,传输比特流,因此最小的传输单位——位(比特流) | IEEE 802.1A, IEEE 802.2到IEEE 802. |
应用层、表示层、会话层为高三层,是面向用户的
网络层、数据链路层、物理层为低三层,是面向硬件的
传输层起承上启下的作用
端到端是传输层,点到点是网络
三、TCP/IP参考模型
3.1 TCP/IP参考模型与OSI模型的区别
OSI参考模型与TCP/IP模型都采用了分层体系结构,将庞大而复杂的问题转化为着干个较小且易于处理的子问题。不同的是OSl参考模型划分7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP参考模型最多划分了5个层次,分别是物理层,数据链路层、网络层、传输层和应用层,将OSI参考模型中的高三层合并为一层统称应用层。在层次结构上,两者都采用了分层体系结构,但是TCP/IP参考模型比OSI参考模型更简化。
3.2 TCP/IP协议族的组成
模型层 | 协议 |
---|---|
物理层 | IEEE802.3有线局域网(以太网) IEEE802.11无线局域网标准 |
数据链路层 | Point-to-Point Protocol |
网络层 | IP (ICMP IGMP ARP RARP) |
传输层 | TCP UDP |
应用层 | HTTP FTP TFTP SMTP SNMP DNS |
物理层:
- IEEE802.3有线局域网(以太网)
- IEEE802.11无线局域网标准
数据链路层:
- 点对点协议(Point-to-Point Protocol) PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。
网络层:
IP协议:(Internet Protocol,网际协议),而 IP 又由四个支撑协议 组成:
-
ARP(地址解析协议): 是根据IP地址获取物理mac地址的协议
-
RARP(逆地址解析协议): 是根据物理mac地址获取IP地址的协议
-
ICMP(网际控制报文协议):ping 网络连通性检测
-
IGMP(网际组管理协议):一个组播协议,该协议运行在主机和组播路由器之间
单播:1对1发消息
组播:只对一部分人发消息
广播:对所有人发消息
传输层:
-
TCP :传输控制协议 可靠协议 (安全性高,速度慢)
-
UDP:用户数据报协议 不可靠协议(安全性不高,速度快)
应用层:
-
HTTP(超文本传输协议):是一个简单的请求-响应协议,现在主要的场景是web服务,就是网页的传输,默认使用tcp的80端口
-
HTTPs:是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,默认使用tcp的443端口
当当买书,铁路网http
-
FTP文件传输协议:FTP(file File Transfer Protocol)提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限,默认使用tcp的20,21端口
-
TFTP简单文件传输协议:是一个小而易于实现的文件传送协议,TFTP只支持文件传输,不支持交互,没有庞大的命令集。也没有目录列表功能,以及不能对用户进行身份鉴别,默认使用udp的69端口
-
SNMP简单网络管理协议:是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,默认使用udp的161端口
-
SMTP简单邮件传输协议:一组用于从源地址到目的地址传送邮件的规则,并且控制信件的中转方式,用于邮件的发送,默认使用tcp的25端口
-
POP3邮局协议版本3:用于邮件的接收,默认使用tcp的110端口
-
telnet远程登陆协议:一种字符模式的终端服务,可以使用户通过网络进入远程主机或网络设备,然后对远程主机或设备进行操作,默认使用tcp的23端口
-
ssh安全的远程登陆协议,默认使用tcp的22端口ssh
-
DNS 域名解析系统:将域名和IP地址相互映射,默认使用tcp和udp的53端口 www.baidu.com ip地址 dns udp tcp 程序 进程: 运行中的程序
0-65535
- DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,默认使用udp的67和68端口。分配ip地址
四、关于端口号:
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:216)个,端口是通过端口号来标记的,端口号只有整数,范围是从0 到 65535(2^16 -1)。
周知端口:
周知端口是众所周知的端口号,范围从0到1023,就像其中80端口分配给WWW服务,21端口分配给FTP服务等。
注册端口:
端口1024到 49151,分配给用户进程或应用程序。这些进程主要是用户选择安装的一些应用程序,而不是已经分配好了公认端口的常用程序。这些端口在没有被服务器资源占用的时候,可以用用户端动态选用为源端口。
动态端口:
动态端口的范围是从49152到 65535。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。
五、数据的封装
数据包在发送之前会如何封装
比如小红要打开百度网站时它的一个数据是如何处理的呢?小红用手机打开浏览器输入www.baidu.com这个网站去访问百度的服务器,我们手机会将报文进行一个封装再发送到百度的服务器上获取对应的数据,而我们的百度服务器收到这个封装了的报文,它会进行解封装查看里面的信息是否对应,如果对应则接收,并且会封装对应的数据报文给小红的手机回应。
5.1 数据为何要封装
数据在转发的过程中首先会对数据进行封装,封装后在进行转发。那么为何要对数据进行封装呢?比如我们写信,是不是会有对应的信件格式,比如开头写对方的称呼,接下来的问候语,中间的内容,后面的落款写的自己的名字日期等,这种规定的格式,大家都遵守这个格式,才能读懂。写好了信,我们是不是要在信封外面写好收件人姓名,收件人地址,然后在交给邮局,邮局会运输到收件人的城市,而到达了对应的城市是不是还需要派送,再经过派送到达收件人手里。在我们上述的例子中是不是要经过三个层次,第一层发件人与收件人之间约定的信件格式,第二层是邮局会运输到对应的城市,第三层是信件到达了对应的城市再经过派送,送达收件人手里,这类似我们的数据封装过程。
5.2 详细封装过程
应用层封装:
应用层是最原始的Data,需要经过一层层的封装,再进行转发到对应的设备上。
传输层封装:
在传输层会将Data分割成一段一段的叫做数据段,传输层的协议有TCP与UDP,如果使用的是TCP协议会为每个数据段都添加上TCP头部。添加TCP报头是为了减少数据传递的过程中出现传错的概率,比如你要传递一条信息或者视频,那么这条信息分解成二进制则是巨量的,所以为了减少传输过程中的传错,添加TCP头部,如果传错也还有重传机制,是为了保证信息稳定的传递。
网络层封装:
在网络层,会对上层的数据段封装一个新的报文头部IP报头,且IP报头内会有IP地址。IP地址是一个逻辑地址,用来提供网络路径寻址作用,且IP报头中有源IP地址与目的IP地址,转发时设备会查看目的IP地址来寻址,转发到正确的设备上。
数据链路层封装:
数据链路层,会对上层报文封装一个新的mac头部和二层帧尾部,mac头部包含源目mac地址,转发时设备会查看目的mac地址来寻址,转发到正确的设备上。
物理层:
物理层将二进制的比特流转换为电信号通过传输介质在网络中转发。
总结:
数据在发送之前会对原始数据进行封装,首先封装TCP报头,然后在封装IP报头,然后在封装mac报头,最后将bit转换为电信号通过传输介质进行传输。数据封装是由上往下。
5.3 数据的解封装
设备收到报文解封装
我们设备在发送数据之前会进行封装,而当设备正确的数据包会进行解封装。解封装是从下往上进行解封装。
- 3.1详细解封装过程
物理层:
先将数据转换为bit流,再上送到数据链路层。
数据链路层:
首先会查看目的mac是不是自己,是自己则进行解封装,上送到网络层。
网络层:
到了网络层,会查看目的IP是否是自己,在进行处理,如果目的IP地址是自己则再进行解封装。
传输层:
到了传输层,查看目的端口号,通过目的端口号在上送到对应的应用。
应用层:
对比特流进行解码,得到用户所需的数据。
总结:
转发数据之前会对数据进行封装,设备收到之后会对数据进行解封装,而数据的封装是从上往下,数据的解封装是从下往上的。
六、 单工半双工和全双工有何区别和联系
- 单工数据传输只支持数据在一个方向上传输;在同一时间只有一方能接受或发送信息,不能实现双向通信,举例:电视,广播。
- 半双工数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;在同一时间只可以有一方接受或发送信息,可以实现双向通信。举例:对讲机。
- 全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力;在同一时间可以同时接受和发送信息,实现双向通信,举例:电话通信。