TCP/IP与OSI模型异同
资料为个人总结以及网上相关资源得出。
组织结构
OSI模型
7个层次分别是应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。划分原则是:
- 网络中个节点都有相同的层次
- 不同节点的同等层具有相同的功能
- 同一节点内的相邻层之间通过接口通信
- 每一层使用下一层提供的服务,并向其上层提供服务
- 不同节点的同等层按照协议实现对等层之间的通信
OSI优点
- 简化了相关的网络操作
- 提供设备间的兼容性和标准接口
- 促进标准化工作
- 结构上可以分割
- 易于实现和维护
OSI各层功能物理层
利用传输介质为数据链路提供物理连接,实现比特流的透明传输,尽可能屏蔽掉来自传输介质和物理设备的差异性。“透明”传输指的经实际电路传送后的比特流没有发生变化。
详情物理层结构见计算机网络___数字调制与多路复用(物理层)
数据链路层
为网络层服务,解决的是相邻两个节点之间的通信问题,传送的协议单元PDU是数据帧( 将比特组合成字节,再将字节组合成帧),该层的作用主要是通过校验,确认和反馈重发等手段,将不可靠的物理链路转换成对网络层来说无差错的数据链路。此外,数据链路层还要协调收发双方的数据传输速率,即进行流量控制。传输过程是发送方将数据封装成帧并发送,如果服务可靠,接收方通过发送应答帧确认正确收到每个数据帧。而对于广播网络,还需要考虑如何控制访问共享信道。
网络层
传送的协议数据单元是数据包或者分组。功能主要是解决如何使数据包或分组通过各个节点传送的问题,即选择路径,路由与转发。该层控制数据链路层与传输层之间的信息转发,建立,维持和终止网络的连接。还有拥塞控制,由于出现过量的分组而引起网络性能下降的现象称为拥塞。允许异构网络相互连接成为互联网络。数据链路层一般解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信。既要支持无连接的服务,也要支持有连接的服务。
网络所提供的服务质量问题也是网络层的问题(延迟,传输时间,抖动等等)。
传输层
传输层是真正的端到端的层。功能是将数据正确的传送给应用程序,提供可靠的端到端的数据传输,包括差错控制和流量控制问题。传输层的协议数据单元是报文。
OSI模型下3层的主要任务是数据通信,上3层的任务是数据处理,而传输层位于OSI模型第四层,因此该层是通信子网与资源子网的接口与桥梁,起到承上启下的作用。
确定向会话层提供哪种服务:
- 无差错的端到端逻辑信道
- 传输独立的报文,不保证交付顺序
- 向多个目的地发送广播报文,主要是UDP传输层
对于osi只提供面向连接的服务。
会话层
功能是管理和协调不同主机各种进程之间的通信,包括对话控制(记录该由谁来传递数据),令牌管理(禁止双方同时执行同一个关键操作),同步功能(在一个长传输过程中设置一些断点,以便在系统奔溃之后还能恢复到崩溃前的状态继续进行),即负责建立,管理和终止应用程序之间的对话。用户可以按照单工,半双工,全双工的方式建立会话。当用户奖励会话时,用户必须提供他们想要链接的原曾地址,而这些地址与物理地址和网络层的逻辑地址不一样,他们是专门为用户设计,便于记忆。
表示层
定义信息传输的语法和语义。
- 用抽象的方式定义用于交换的数据的结构
- 数据加密
- 数据压缩
应用层
包含用户需要的各种协议。他是计算机用户以及各种应用程序和网络之间的接口。
HTTP:超文本传输协议;
FTP:文件传输
SMTP,POP3:电子邮件
BBS:talnet(远程终端服务)
传输层协议TCP
TCP:可靠的、面向连接的
字节流:发送端将上层输入的字节流放入独立的报文中,接收端将收到的报文重组成输出的字节流(交给上层)。
流量控制;拥塞控制;
每一条TCP连接只能有两个短剑,每一条TCP连接只能是点对点的,即(一对一)。
执行过程:TCP
通过字节流传输,即TCP
将应用程序看成是一连串的无结构的字节流。每个TCP
套接口有一个发送缓冲区,如果字节流太长时,TCP
会将其拆分进行发送。当字节流太短时,TCP
会等待缓冲区中的字节流达到一定程度时再构成报文发送去,TCP
发给对方的数据,对方在收到数据时必须给矛确认,只有在收到对方的确认时,本方TCP
才会把TCP
发送缓冲区中的数据删除。而UDP
传输报文的方式是由应用程序控制的,应用层交给UDP
多长的报文,UDP
照样发送,既不拆分,也不合并,而是保留这些报文的边界,即一次发送一个报文。
传输层协议UDP
用户数据报协议:不可靠的无连接协议。
适合不需要TCP
的顺序化或流量控制、而希望自己实现的应用,如网络文件系统NFS
。
适合快速交付数据比准确交付数据更重要的应用,如DNS
支持一对一,一对多,多对一和多对多的交互通信。
OSI的特性:3个核心概念
服务(语义):某一层做了什么,而不是上层实体如何访问这一层或者这层如何工作。
接口 (语法):作用是描述上层实体如何访问本层。接口定义是:定义某层实体对于上一层提供的原语操作。
协议:两个系统同层的对等实体进行通信所必须遵守的规则。
OSI模型的缺点
- 有两层(会话层和表示层)几乎是空的,而另外一层(数据链路层)功能太多
- 服务定义和协议过于复杂,很难实现,操作上低效
- 一些功能,例如编址、流量控制、差错控制,在多个层次重复出现
TCP/IP模型
基于无连接的分组交换网,定义正式的包格式和IP协议。其任务是将IP包交付给预定到达的目的主机
网络层:支持无连接不可靠传输
传输层:TCP与UDP都可行。
传输中路由选择,避免拥塞。
一共分为四层:应用层,传输层,网际层,链路层。
链路层(link):又称为网络接口层,主要负责网络发送和接受ip数据报。
网际层:又称为互联层。也成为ip层,最要的是ip协议。主要负责相邻节点之间,数据分组的逻辑地址寻址与路由。主要包含的协议有:
- 网际协议
- 网际控制报文协议
- 地址解析协议
- 逆向地址解析协议
传输层:又称为运输层。TCP,UDP协议。
TCP/IP的缺点
- 服务、接口和协议没有明确区分
- 不是一个通用的模型
- “链路层” 并不是实际的一层
- 没有区分出物理层和数据链路层
- 个别协议因为应用广泛而很难被替换,如
Telnet
介于这两种模型,理想中的混合模型出来了:
OSI环境中的数据传输
- 对等层:在通信过程中,发送方和接受方处于相同层次的两个层。协议只发生在对等层。
- 协议数据单元:对等层次之间传输的数据单位。物理层的PDU是数据位(Bit),数据链路层的PDU是数据帧,网络层的PDU是数据包,传输层的PDU是报文,其他更高层次的PDU是数据。
- 对等层通信:每一层都必须进行通信。
OSI参考模型每一个层次接收到上层传递过来的数据洪湖都要将本层的控制信息加入数据单元的头部,特别是数据链路层还需要再尾部加信息,这个过程叫做封装。
模拟数据流动:
当一台主机需要传送用户的数据的时候,数据首先通过应用层的接口进入应用层。在应用层,用户数据被加上应用层的的报头,形成应用层的协议数据单元,然后被递交到下一层表示层。表示层不会注意应用层的数据格式,而是把整个应用层递交的数据包看成一个整体进行封装,即加上表示层的报文头,然后递交到会话层。会话层加上自己的包头,再将数据传输到传输层,传输层加上报头,传输到网络层。
而网络层对于发送的消息长度有限制,将上层输入的消息划分成较短的单元(分组或包),在每个包前面加上第3层头部, 确定要使用那条输出线路,然后将包交给数据链路层。数据链路层给网络层递交的数据加上数据链路层的报头和报尾形成一帧数据。最后到物理层,物理层以透明比特流的方式传输到目的主机的物理层。
目的主机进行数据的读取时,即解封。与上述过程相反,每一层拆掉源主机对等层的报头或者报尾。
一般来说,物理层,数据链路层和网络层大部分可以由硬件实现,而传输层,会话层,表示层,应用层等高层基本上是通过软件实现。互联网通信子网中的重要设备路由器主要负责判断网络地址和选择路由路径的功能,所以他是网络层的工作设备。
TCP/IP的环境数据运输与OSI类似。
异同:TCP
UDP
IP
的作用范围
TCP(传输控制协议)和UDP(用户数据报协议)协议作用域进程之间的通信;IP协议作用于主机之间的通信。
拥塞控制和流量控制
拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
TCP的连接和建立都是采用客服服务方式。
主动发起连接建立的应用进程叫做客服。
被动等待连接建立的应用进程叫做服务器。
运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输连接的建立和释放都能正常地进行。
三次握手建立TCP连接
客服发出连接请求,服务器确认,客服确认。后面就可进行数据传输。
四次挥手断开TCP连接
- 客户端进程发出连接释放报文,并且停止发送数据。
- 服务器收到连接释放报文,发出确认报文。
- 服务器将最后的数据发送完毕后,就向客户端发送连接释放报文。
- 客户端收到服务器的连接释放报文后,必须发出确认。