赞
踩
(1)包含:
应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)
(2)定义、作用:
定义:OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层。每一层都有相关、相对应的物理设备,比如路由器,交换机。OSI 七层模型是一种框架性的设计方法 ,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其主要的功能使就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
作用:互联网的实现,分成好几层,每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。OSI模型就是这样的一个分层,它是一个由国际标准化组织提出的概念模型,试图提供一个使各种不同的终端和网络类型在世界范围内实现互联的标准框架。划分为七层,每层都可以提供抽象良好的接口。
(3)详解:
主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。
主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B的最佳路径。路由器、IP就是属于这一层。在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。
OSI模型中最重要的一层。传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割。
定义了一些传输数据的协议和端口号(WWW端口80等),如:
TCP(transmission control protocol –传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据)
UDP(user datagram protocol–用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。
负责在网络中的两节点之间建立、维持和终止通信。 会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。 例如:DNS
应用程序和网络之间的翻译官,可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。 表示层管理数据的解密与加密,如系统口令的处理。例如:telnet
TCP/IP和OSI模型组并不能精确的匹配,但是我们可以尽可能的参考OSI模型并在其中找到TCP/IP的对应位置。如下图所示,OSI模型到TCP/IP模型映射关系。通常人们认为OSI模型最上面三层(应用层、表示层、会话层)在TCP/IP中是一个应用层。由于TCP/IP有一个相对比较弱的会话层,由TCP和RTP下的打开和关闭连接组成,并在TCP/UDP下的各种应用提供不同的端口号,这些功能被单个的应用程序添加。
TCP/IP与OSI不同点:
OSI是一个完整的、完善的宏观理论模型;而TCP/IP(参考)模型,更加侧重的是互联网通信核心(也是就是围绕TCP/IP协议展开的一系列通信协议)的分层,因此它不包括物理层,以及其他一些不想干的协议;其次,之所以说他是参考模型,是因为他本身也是OSI模型中的一部分,因此参考OSI模型对其分层。
包含:应用层、运输层、网络层、数据链路层和物理层
五层协议的网络体系结构其实是为了方便学习计算机网络原理而采用的,综合了OSI七层模型和TCP/IP的四层模型而得到的五层模型。
(1)客户端随机生成一个 sequence number,并发送 SYN 报文到服务端,请求连接
(2)服务端发送 SYN+ACK,在应答请求的同时,也随机生成一个 sequence id,请求同步
(3)客户端应答,服务端收到应答后双方建立连接。
正如 SYN 标志的含义,三次握手的过程在建立连接的过程中完成了自身初始 sequence number 的同步。使用随机生成的 sequence number 是为了防止在网络中滞后的报文影响新建立的连接。
三次握手的重要问题是:为什么要三次?因为信道不可靠。考虑两次握手。假设客户端发送的第一个 SYN 在网络中滞留了,客户端因此重发 SYN 并建立连接,使用直到释放。此时滞留的第一个 SYN 终于到了,根据两次握手的规则,服务端直接进入 ESTABLISHED 状态,而此时客户端根本没有连接,不会理会服务端发送的报文,白白浪费了服务端的资源。
事实上,只要信道不可靠,双方永远都没有办法确认对方知道自己将要进入连接状态。例如三次握手,最后一次 ACK 如果丢失,则只有客户端进入连接状态。四次、五次、多少次握手都有类似问题,三次其实是理论和实际的一个权衡。
要断开连接需要“四次挥手”,可以由客户端发起,也可以由服务端发起,步骤如下:
(1)发起方发送 FIN 报文,代表断开连接
(2)接收方响应 ACK 报文,并在自己发送完未处理的报文后发送 FIN 报文
(3)发起方接收 ACK 报文后等待接收方的 FIN 报文,收到后发送 ACK 报文,自己进入 TIME_WAIT 状态,等待 2MSL 后关闭连接
(4)接收方收到 ACK 报文,关闭连接
为什么需要 4 次挥手?一般会说因为连接是双方的,每一方关闭连接时需要 FIN+ACK。因此一共 4 次。而从上图来看,主要是因为接收方发送 ACK 和发送 FIN 之间可能有间隔,接收方需要等待应用程序处理结束后发送 FIN 报文。如果 ACK+FIN 一起发送,则就变成三次挥手了。
在做短连接做压测的时候经常会出现大量端口处理 TIME_WAIT 状态,导致无端口可用。为什么需要这个状态?
防止滞后的报文被后续建立的连接接收,因此结束连接前先等待 2MSL 的时间。(MSL 是最大的报文存活时间,一来一回可以认为与上次连接相关的报文都不在网络中了)
确保接收方已经正确关闭连接,考虑发起方最后一次 ACK 滞留,则接收方一直处于 LAST_ACK 状态,而不会关闭连接。那么此时发送方重新建立连接 SYN,则由于序列号不同,处于 LAST_ACK 的接收方会响应 RST 报文。即连接未正确关闭导致后续连接无法建立。
(0)
(1)TCP
注意:TCP 并不能保证数据一定会被对方接收到,因为这是不可能的。TCP 能够做到的是,如果有可能,就把数据递送到接收方,否则就(通过放弃重传并且中断连接这一手段)通知用户。因此准确说 TCP 也不是 100% 可靠的协议,它所能提供的是数据的可靠递送或故障的可靠通知。
(2)UDP
UDP 是一个简单的传输层协议。和 TCP 相比,UDP 有下面几个显著特性:
先说说什么叫可靠传送:就是传送的数据不重复、不丢失、不出错且按序到达。
–>TCP对每一个字节都进行编号,保证了不重复和按序达到;
–>重传机制保证了不丢失;
–>差错检测机制保证了不出错。
TCP可靠传输的实现: TCP 连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口。TCP 的可靠传输机制用字节的序号进行控制。TCP 所有的确认都是基于序号而不是基于报文段。 发送过的数据未收到确认之前必须保留,以便超时重传时使用。发送窗口没收到确认不动,和收到新的确认后前移。 发送缓存用来暂时存放: 发送应用程序传送给发送方 TCP 准备发送的数据;TCP 已发送出但尚未收到确认的数据。 接收缓存用来暂时存放:按序到达的、但尚未被接收应用程序读取的数据; 不按序到达的数据。
HTTP协议使用的是URI,是一种表示资源标志,那么对应的HTTP Verb就是各种对资源的操作,GET,PUT,DELETE等。
(1)PUT:client对一个URI发送一个Entity,服务器在这个URI下如果已经又了一个Entity,那么此刻服务器应该替换成client重新提交的,也由此保证了PUT的幂等性。如果服务器之前没有Entity ,那么服务器就应该将client提交的放在这个URI上。总结一个字:PUT。对的,PUT的方法就是其字面表意,将client的资源放在请求URI上。对于服务器到底是创建还是更新,由服务器返回的HTTP Code来区别。注:通过上面可以知道,如果用PUT来达到更改资源,需要client提交资源全部信息,如果只有部分信息,不应该使用PUT(因为服务器使用client提交的对象整体替换服务器的资源)。
(2)POST:这个Verb是比较特殊。不同于一般的增删改,使用场景比较多。因为服务器在实现POST是不可预知,所以将其定义为不安全、不幂等的Verb。基本上不能方便的归纳为“增删改”之类的行为,都可以使用POST方法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。