众所周知,就像我们计算机领域中的任何东西一样,计算机网络也是个分层的体系结构,现代提出的结构就两种——OSI和TCP/IP,我们先来剖析并对比一下这两种模型,然后总结一下分层思想中的一些共性。

1 OSI参考模型
1.1 应用层:
用户与网络的界面,FTP,SMTP, HTTP
1.2 表示层(Presentation Layer):
解决用户信息的语法表示问题
数据压缩,加密解密
表示变换
1.3 对话层(Session Layer):
功能:允许不同主机的各个进程之间进行会话,
使用校验点/同步点恢复通信
1.4 传输层:
功能:
1.流量控制
2.差错控制,服务质量,数据传输管理,分组排序
3.复用/分用
指的是
传输单位:
报文段(TCP:Transmission Control Protocol)或用户数据报(UDP:User Datagram Protocol)
使用的协议:
提供的服务:
TCP提供的是有链接、可靠,UDP提供的是无连接,不可靠
提供的是端到端的通信
OSI的传输层仅支持有连接
1.5 网络层:
功能:
路由选择,流量控制,拥塞控制,差错控制,网际互连
传输单位:
数据报
使用的协议:
提供的服务:
支持无连接和面向连接
1.6 链路层:
物理寻址,分帧、差错校验、流量控制、数据重发
链路层协议:SDLC HDLC PPP STP 帧中继
1.7 物理层:
计算机如何连接到通信介质上
机械、电气特性,引脚插头的个数、型号
传输单位是bit
发送机的数据由应用层向下逐层封装,物理层不参与封装
讨论各层功能的时候说的流量控制和拥塞控制,流量控制指的仅仅是通信的两个节点之间不要一方发送太快一方接收太慢,而拥塞控制指的是整个网络负载不要过大
使用的协议 | 功能 (这里的功能其实都是指附加功能,因为首要功能肯定是数据传输啊,得能传数据然后才能说你传数据的时候有没有差错控制流量控制) | 传输单位 | |
应用层 | SMTP、 FTP、 HTTP、 DNS、 Telnet | ||
表示层 | |||
会话层 | |||
传输层 | TCP、 UDP | 流量控制 差错控制 拥塞控制 | |
网络层 | IP | 流量控制 差错控制 拥塞控制 | |
数据链路层 | SDLC HDLC PPP STP 帧中继 | 流量控制 差错控制 成帧 | |
物理层 | 比特 |
OSI发明的意义,就在于提出了服务、协议和接口这三个核心概念。
2 TCP/IP模型:Transmisson Control Protocal/Internet Protocal
TCP/IP是个四层模型,注意王道和好多网课(其实都是抄王道的)上讲TCP/IP是个五层模型,这其实是个折中,为了便于讲解教学才用了五层模型,根据官方RFC文档,TCP/IP分为四层:
2.1 应用层:
为应用提供访问低层服务的能力,定义应用程序用于交换数据的协议FTP文件传输协议:File Transmisson ProtocalTelnet虚拟终端协议:网络新闻传输协议
2.2 传输层:
TCP协议:Transmission Control Protocol
是面向连接的,传输单位TCP,可靠
UDP:User Dataprogram Protocal
无连接,UDP,不可靠
2.3 网络层:
功能:分组、数据打包、路由选择
IP协议:
仅提供无连接+
2.4 网络接口层:
如何将数据包发送到网络介质上,以及如何从网络介质上获取数据包
3 OSI与TCP的对比总结:
OSI和TCP的对比差异,是考试选择题的高频考点。
OSI中链路层才有流量控制的功能,TCP/IP协议中从传输层才开始流量控制。
OSI的传输层只提供有连接的服务,网络层提供面向连接和无连接的服务,TCP/IP的传输层提供面向连接和无连接的服务,网络层提供无连接的服务。
好,然后OSI和TCP/IP这两种模型咱们就剖析完了,然后人类通过提出这两种模型,确立了网络分层体系的一些概念和思想,接下来我们就来讲这些。
4 服务(Service):
服务这个概念,是通过OSI模型提示来的,刚说了OSI提出了服务、协议、接口三个概念。
层与层之间是低层服务于高层的关系,信息在一个结点的层与层之间有逐层封装和逐层拆包的过程,所以我们说层与层之间存在“服务(Service)”。
然后服务有不同种类,一般说有:
- 面向连接和无连接
- 可靠与不可靠
4.1 可靠与不可靠:
一般来说可靠的服务都得有差错控制,流量控制,确认机制,确保不出错。
4.2 面向连接与无连接:
一般来说,面向连接的服务=可靠的服务,无连接的服务=不可靠的服务,几乎是等价的。
你可能会杠精了说咱们现在的计网通信都基于TCP/IP模型,它的网络层提供的是无连接服务,那咱们平时用电脑上网也没觉得哪不可靠呀?哥们你那是应用层实现的可靠性,网络层提供的无连接不可靠的服务,然后应用层提供的可靠性保证,是应用层的功劳,不是你网络层的服务本身可靠。
4.3 有确认与无确认:
无连接的服务可能有确认也可能无确认,但是有连接的服务一定有确认,因为没确认的话你没法保证可靠。
4.4 服务访问点(Service Access Point, SAP):
层与层之间存在服务,那么上层要用下层的服务,应该有个可供访问和调用的接口,这个接口就是服务访问点。
N层的SAP就是N+1层可以访问N层服务的地方
层 | SAP |
---|---|
应用层 | 用户界面 |
传输层 | 端口号 |
网络层 | IP地址 |
数据链路层 | MAC地址(网卡地址) |
物理层 | 网卡接口 |
5 层间通信&对等层间通信:
5.1 层间通信:
发送机,信息自上而下传递,接收机,信息自下而上传递
5.2 对等层间通信:
实通信:
实际上两机之间只有物理层发生了信息交换
虚通信:
其余6层,从抽象上看好像也发生了层间通信,但是他们的层间通信是抽象的,不是实际发生的,是虚通信