层名 | 功能 | 网络协议 | TCP/IP四层概念模型 |
应用层 | 文件传输,电子邮件,文件服务,虚拟终端 作用:控制应用程序; 备注:为应用程序提供网络服务; | TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等 | 应用层 |
表示层 | 数据格式化,代码转换,数据加密 作用:格式化数据; 备注:可以提供加密服务; | Telnet, Rlogin, SNMP, Gopher | |
会话层 | 解除或建立与别的接点的联系 作用:控制会话,建立管理终止应用程序会话; 备注:负责会话建立; | SMTP, DNS | |
传输层 | 提供端对端的接口 备注:负责网络传输和会话建立; | TCP,UDP TCP:transmission control protocol 传输控制协议 UDP:user data protocol 用户数据报协议 | 传输层 |
网络层 | 为数据包选择路由 作用:定义一个逻辑的寻址,选择最佳路径传输,路由数据包; 设备:路由器 备注:实现寻址 | IP,ICMP,OSPF,EIGRP,IGMP | 网络层 |
数据链路层 | 传输有地址的帧以及错误检测功能 作用:定义如何格式化数据,支持错误检测; 设备:以太网交换机; 备注:交换机通过MAC地址转发数据,逻辑链路控制; | SLIP,CSLIP,PPP,MTU | 数据链路层 |
物理层 | 以二进制数据形式在物理媒体上传输数据 作用:定义一些电器,机械,过程和规范,如集线器; PDU(协议数据单元):bit/比特 注意:没有寻址的概念; | ISO2110,IEEE802,IEEE802.2 |
目录
参考文章:https://blog.csdn.net/zhangyi_1027/article/details/80022493
一、网络为何分层
现实中我们常吃的汉堡为什么要分层,众所周知汉堡属于快餐系列,那为什么汉堡要分层呢?当然是为了制作简单啦。烤面包的人烤面包,炸鸡腿的人炸鸡腿,最后由专门的人组装起来,方便快捷。还有就是我们写过很多的程序c语言或者java,如果没有函数,一股脑的将所有语句写在主函数里,会导致代码极其混乱,一个错误会导致千千万万个错误,但是有了函数就不一样了,这个函数出错了只需要改这个函数即可,并不会影响其它的函数,此时函数在这里就相当于分层了。
类比网络,假设此时有:(1)语言层:汉语、英语;(2) 通信设备层:电话、手机。此时A和B可以通过电话用汉语达成协议,A和B可以通过手机用汉语达成协议,A和B可以通过电话用英语达成协议,B和C也可以通过电话或者手机用汉语或者英语达成协议…此时改变语言层也能顺利达成协议,改变通信设备层也能顺利达成协议。
可见,网络分层使得层与层之间互不影响,便于维护。
二、TCP/IP协议
TCP/IP协议:IP层传输单位是IP分组,属于点到点的传输;TCP层传输单位是TCP段,属于端到端的传输
三、网络分层
1、OSI
开放系统互连参考模型为实现开放系统互连所建立的通信功能分层模型,简称OSI参考模型。
其目的是为异种计算机互连提供一个共同的基础和标准框架,并为保持相关标准的一致性和兼容性提供共同的参考。
这里所说的开放系统,实质上指的是遵循OSI参考模型和相关协议,能够实现互连的具有各种应用目的的计算机系统。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
2、OSI七层模型
层名 | 背景与作用 |
应用层 | 作用: 负责提供数据接口标准,提供的服务包括文件的传输,文件的管理以及电子邮件的信息处理 |
表示层 | 背景: 现在我能保证应用程序自动收发包和寻址了。但是我要用Linux给window发包,两个系统语法不一致,就像安装包一样,exe是不能在linux下用的,shell在window下也是不能直接运行的。于是需要 |
会话层 | 背景: 现在我们已经保证给正确的计算机,发送正确的封装过后的信息了。但是用户级别的体验好不好?难道我每次都要调用TCP去打包,然后调用IP协议去找路由,自己去发?当然不行,所以我们要建立一个自动收发包,自动寻址的功能。于是,发明了会话层。 作用: 会话层的作用就是建立和管理应用程序之间的通信。
|
传输层 | 背景: 现在我能发正确的发比特流数据到另一台计算机了,但是当我发大量数据时候,可能需要好长时间,例如一个视频格式的,网络会中断好多次(事实上,即使有了物理层和数据链路层,网络还是经常中断,只是中断的时间是毫秒级别的)。那么,我还须要保证传输大量文件时的准确性。于是,我要对发出去的数据进行封装。就像发快递一样,一个个地发。于是,先发明了 |
网络层 | 背景: 传输层只是解决了打包的问题。但是如果我有多台计算机,怎么找到我要发的那台?或者,A要给F发信息,中间要经过B,C,D,E,但是中间还有好多节点如K.J.Z.Y。我怎么选择最佳路径?这就是路由要做的事。于是,发明了 作用: 主要功能是讲网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接受方,他解决的是寻址和优化传输路径的问题。 网关: 网间连接器,协议转换器,网关在网络层上实现网络互连,对接收到的信息重新打包,以适应目的系统的需求。 网关实质上是一个网络通向其他网络的IP地址;只有通过网关才能找到对应的IP,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信,网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。 解决阻塞的办法:数据分组,编号传输出去;然后接收到数据后排序重组解码;选择最优路径;丢包也是发生在网络层。 |
数据链路层 | 背景: 现在通过电线我能发数据流了,但是,我还希望通过无线电波,通过其它介质来传输。然后我还要保证传输过去的比特流是正确的,要有纠错功能。于是,发明了数据 简述: 数据链路层,控制网络层与物理层之间的通信,解决的是所传输数据的准确性的问题。为了保证传输,从网络层接收到的数据被分制成特定的可被物理层传输的帧。 帧:是用来移动数据的结构包,他不仅包括原始数据,还包括发送方和接收方的物理地址以及纠错和控制的信息。其中的地址确定了帧将发送的位置,纠错和控制信息则保证帧的准确到底。如果传送数据的过程中,接收点检测到数据有错误,就通知发送方重新发送一帧
该层的作用包括了物理地址寻址,数据的成帧,流量控制,数据的检错,重发,同步数据(交换机工作)等 |
物理层 | 背景: 科学家要解决的第一个问题是,两个硬件之间怎么通信。具体就是一台发些比特流,然后另一台能收到。于是,科学家发明了物理层。 作用: 1、定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。 2、它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。 |