物理层
计算机之间的物理连线。主要用来传输0、1信号
数据链路层
在数据链路层规定一套协议,专门的给0、1信号进行分组,以及规定不同的组代表什么意思,从而双方计算机都能够进行识别,这个协议就是“以太网协议”。
但是问题又来了,我们要发送给对方计算机,怎么标识对方以及怎么知道对方的地址呢?
1、MAC 地址
作为网络中计算机设备的唯一标识,从计算机在厂商生产出来就被十六进制的数标识为MAC地址。
既然我们知道了用MAC地址作为标识,那么怎么才能知道我们要进行通信的计算机MAC地址呢?
2、广播
广播中还存在两种情况,一种是,在同一子网络下(同一局域网下)的计算机是通过 ARP 协议获取到对方 MAC地址的。
不同自网络中(不同局域网)中是交给两个局域网的网关(路由器)去处理的。
网络层
怎么判断两台计算机是否在同一子网络(局域网)中?这就是网络层要解决的问题。
1、IP 协议
通过 IP 地址来判断两个计算机设备是否在同一子网络中的,那么你会问它是怎么判断的,以及 IP 地址谁给他分配的?又是如何分配的等一些列问题,
既然我们通过 IP 地址来判断两个计算机是否处于同一局域网中,那么首先要知道对方的 IP 地址吧?DNS 可以将域名解析为 IP 地址。
我们知道两台计算机的 IP 地址了,怎么进行判断是否同一局域网中?
2、子网掩码
子网掩码就是用来标识同一局域网中的 IP 地址的信息的?什么信息?IP 地址是由 32 个二进制位组成的,也就是四个十进制(如:255.255.255.000)。
子网掩码也是由 32 个二进制位组成的,但是只能用 0 或 1 来表示,如11111111.11111111.11111111.00000000。
到底什么意思呢?有 1 的部分表示网络部分,有 0 表示主机部分,这和判断两台计算机是否在同一局域网中有什么关系?没错,是有关系的!两台计算机的 IP 地址分别和子网掩码进行一种运算(AND 运算),如果结果相同,两台计算机就在同一局域网中,否则就不在同一局域网中。
传输层
传输层的主要功能就是为了能够实现“端口到端口”的通信。计算机上运行的不同程序都会分配不同的端口,所以才能使得数据能够正确的传送给不同的应用程序。
1、UDP协议
加入端口号也需要一套规则,那就是 UDP 协议,但是 UDP协议有个缺点,一旦进行通信,就不知道对方是否接收到数据了,我们再定义一套规则,让其可以和对方进行确认,那么 TCP 出现了。
2、TCP 协议
我们通常说 TCP 三次握手和四次挥手,没错,这就是传输层中完成的
应用层
应用层的功能就是规定了应用程序的数据格式。我们经常用得到的电子邮件、HTTP协议、以及FTP数据的格式,就是在应用层定义的。
OSI中的层次 | 功能 | TCP/IP协议族 |
---|---|---|
应用层 | 文件传输,电子邮件,文件服务,虚拟终端 | TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 |
表示层 | 数据格式化,代码转换,数据加密 | null |
会话层 | 建立或解除与其他节点的连接 | null |
传输层 | 提供端对端的接口 | TCP,UDP |
网络层 | 为数据包选择路由 | IP,ICMP,OSPF,EIGRP,IGMP |
数据链路层 | 传输有地址的帧,错误检测 | SLIP,CSLIP,PPP,MTU |
物理层 | 以二进制数据形式在物理媒体上传输数据 | ISO2110,IEEE802,IEEE802.2 |
无论是OSI七层模型还是TCP/IP的四、五层协议,都是为了进行网络中的数据交换而建立的规则、标准或约定。其中第四层完成数据传送服务,上面三层面向用户。
OSI七层网络模型 | |
---|---|
应用层 | 与其它计算机进行通讯的一个应用,示例:TELNET,HTTP,FTP,NFS,SMTP等。 |
表示层 | 这一层的主要功能是定义数据格式及加密,示例:加密,ASCII等。 |
会话层 | 它定义了如何开始、控制和结束一个会话,示例:RPC,SQL等。 |
传输层 | 这层的功能包括选择恢复协议,复用数据流的输入,对数据包进行排序,示例:TCP,UDP,SPX等。 |
网络层 | 这层定义了包的传输,标识结点的逻辑地址,将一个包分解成更小的包的分段方法,示例:IP,IPX等。 |
数据链路层 | 它定义了在单个链路上如何传输数据,示例:ATM,FDDI等。 |
物理层 | 它定义了有关介质、连接头、帧、帧的使用、电流、编码及光调制等规范,如Rj45,802.3等。 |
物理层(Physical Layer)
物理层为上层协议(数据链路层)提供了传输数据时可靠的物理媒体,确保原式数据可以在物理媒体上进行传输,把数据转换为电子流或模拟脉冲,在传输介质上进行发送和接受。该层为上层协议提供了一个传输数据的可靠物理媒体。物理层确保原始的数据可以在各种物理媒体上传输。物理层较为重要的两个设备:中继器(Repeater 也叫放大器)、集线器。
我们常说的网卡、光纤(xiān)等设备,都属于物理层。
数据链路层(Data Link Layer)
物理层把数据转换为信号并传送给线缆,但是线缆本身并不知道信号应该传送到何处,也不知道数据是否丢失。数据链路层提供了一种能够正确且稳定地传输比特流的结构,把数据传输到目的地。数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其连接.媒体是长期的,连接是有生存期的.在连接生存期内,收发两端可以进行不等的一次或多次数据通信,每次通信都要经过建立通信联络和拆除通信联络两过程.这种建立起来的数据收发关系就叫作数据链路.而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错.数据链路的建立,拆除,对数据的检错,纠错是数据链路层的基本任务。
数据链路层在意的是,数据是从哪个端口来的,应该送到哪个端口。(这个端口是指物理交换机上的物理端口,也就是接口)为了达成这个目的,数据链路层必须具有以下功能:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
数据链路层在物理层提供的服务基础上想网络层提供服务;其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的网络层。为达到这一目的,数据链路层具备一系列相应的功能:如何将数据组成数据块,在数据链路层中这种数据开称为“帧”(frame)。帧是数据链路层的传输单位;如何控制帧在物理信道上传输,包括如何处理传输差错,如何调节发送速率与接收方相匹配;以及在两个万灵果实体之间提供数据链路的建立、维持和释放的管理。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址的寻址、数据的成帧、流量的控制、数据的检错、重发等。
相关重要的知识点:
数据链路层为网络提供可靠的数据传输;
基本数据单位——帧;
主要协议:以太网协议;
两个重要的设备:网桥、交换机
网络层(Network Layer)
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术便可以进行传输。简而言之:网络层就是“路径选择,路由及逻辑寻址”。
网络层中涉及众多的协议,其中包括最重要的协议,也是TCP/IP的核心协议——IP协议。IP协议非常简单,仅仅提供不可靠、无连接的传送服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。网络层的产生也是网络发展的结果.在联机系统和线路交换的环境中,网络层的功能没有太大意义.当数据终端增多时。它们之间有中继设备相连.此时会出现一台终端要求不只是与唯一的一台而是能和多台终端通信的情况,这就是产生了把任意两台数据终端设备的数据链接起来的问题,也就是路由或者叫寻径。另外,当一条物理信道建立之后,被一对用户使用,往往有许多空闲时间被浪费掉.人们自然会希望让多对用户共用一条链路,为解决这一问题就出现了逻辑信道技术和虚拟电路技术。
网络层重点:
网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;
基本数据单位为IP数据报;
包含的主要协议:
IP协议(Internet Protocol,因特网互联协议);
ICMP协议(Internet Control Message Protocol,因特网控制报文协议);
ARP协议(Address Resolution Protocol,地址解析协议);
RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。
主要设备:路由器
传输层(Transport Layer)
传输层是一个分界点,这一层之上是面向用户的,所以这一层是第一个由端到端的层次。
网络层只是负责将数据包从源地址发送至目的地址,而传输层负责将数据发送至端口。
传输层重点:负责将上层数据分段并提供端到端的,可靠或者不可靠的以及端到端的差错控制和流量控制问题。
传输层也称为运输层.传输层只存在于端开放系统中,是介于低3层通信子网系统和高3层之间的一层,但是很重要的一层.因为它是源端到目的端对数据传送进行控制从低到高的最后一层.
有一个既存事实,即世界上各种通信子网在性能上存在着很大差异.例如电话交换网,分组交换网,公用数据交换网,局域网等通信子网都可互连,但它们提供的吞吐量,传输速率,数据延迟通信费用各不相同.对于会话层来说,却要求有一性能恒定的界面.传输层就承担了这一功能.它采用分流/合流,复用/解复用技术来调节上述通信子网的差异,使会话层感受不到.
此外传输层还要具备差错恢复,流量控制等功能,以此对会话层屏蔽通信子网在这些方面的细节与差异.传输层面对的数据对象已不是网络地址和主机地址,而是和会话层的界面端口.上述功能的最终目的是为会话提供可靠的,无误的数据传输.
包含的主要协议:
TCP协议(Transmission Control Protocol,传输控制协议)
UDP协议(User Datagram Protocol,用户数据报协议);
主要设备:网关
会话层(Session Layer)
会话层主要功能是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。会话层得名的原因是它很类似于两个实体间的会话概念。例如,一个交互的用户会话以登录到计算机开始,以注销结束。会话层还利用在数据中插入校验点来实现数据的同步,它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的。会话层提供的服务可使应用建立和维持会话,并能使会话获得同步。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。会话层,表示层,应用层构成开放系统的高3层,面对应用进程提供分布处理,对话管理,信息表示,恢复最后的差错等.
表示层(Presentation Layer)
表示层处理流经结点的数据编码的表示方式问题,以保证一个系统应用层发出的信息可被另一系统的应用层读出。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据表示格式转换成网络通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。这一层的主要功能是定义数据格式及加密。
表示层的作用之一是为异种机通信提供一种公共语言,以便能进行互操作。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。例如,IBM主机使用EBCDIC编码,而大部分PC机使用的是ASCII码。在这种情况下,便需要表示层来完成这种转换。
通过前面的介绍,我们可以看出,会话层以下5层完成了端到端的数据传送,并且是可靠,无差错的传送.但是数据传送只是手段而不是目的,最终是要实现对数据的使用.由于各种系统对数据的定义并不完全相同,最易明白的例子是键盘,其上的某些键的含义在许多系统中都有差异.这自然给利用其它系统的数据造成了障碍.表示层和应用层就担负了消除这种障碍的任务.
对于用户数据来说,可以从两个侧面来分析,一个是数据含义被称为语义,另一个是数据的表示形式,称做语法.像文字,图形,声音,文种,压缩,加密等都属于语法范畴.表示层设计了3类15种功能单位,其中上下文管理功能单位就是沟通用户间的数据编码规则,以便双方有一致的数据形式,能够互相认识.
应用层(Application Layer)
应用层是OSI参考模型的最高层,是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求,如 文件传输、收发电子邮件等。应用层是开放系统的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务.其服务元素分为两类:公共应用服务元素CASE和特定应用服务元素SASE.CASE提供最基本的服务,它成为应用层中任何用户和任何服务元素的用户,主要为应用进程通信,分布系统实现提供基本的控制机制.特定服务SASE则要满足一些特定服务,如文卷传送,访问管理,作业传送,银行事务,订单输入等.
这三层的重点:
- 数据传输基本单位为报文;
- 包含的主要协议:FTP(文件传送协议)、Telent(远程登陆协议)、DNS(域名解析协议)、SMTP(邮件传送协议)、POP3协议(邮局协议)、HTTP协议(Hyper Text Transfer Protocol)。