最后更新:2022-01-19 19:03:43 手机定位技术交流文章
在计算机网络要做到井井有条的交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需要发送一个应答信息。这些规则被称为网络协议。如TCP、IP 等协议。
OSI(Open System Interconnect),即开放式系统互联
。一般都叫 OSI 参考模型,是 ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO 为了更好的使网络应用更为普及,推出了 OSI 参考模型,这样所有的公司都按照统一的标准来指定自己的网络,就可以互通互联了。
OSI 定义了网络互连的七层框架(
物理层
、数据链路层
、网络层
、传输层
、会话层
、表示层
、应用层
)。
模型名称 | 功能 |
---|---|
应用层 | 为操作系统或网络应用程序提供访问网络服务的接口。 |
表示层 | 定义数据格式及加密。对来自应用层的命令和数据进行解释,以确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。 |
会话层 | 是用户应用程序和网络之间的接口,负责在网络中的两节点之间建立、维持和终止通信。 |
传输层 | 管理端到端的数据传输,负责可靠传输(确保数据被可靠地传送到目标地址)。 |
网络层 | 将网络地址翻译成对应的物理地址,并通过路由选择算法为分组通过通信子网选择最适当的路径。 |
数据链路层 | 通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。 |
物理层 | 利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。 |
模型名称 | 功能 |
---|---|
应用层 | 最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。 |
传输层 | 建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP、UDP 就是在这一层。端口号既是这里的“端”。 |
网络层 | 通过 IP 寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。IP协议是 Internet 的基础。 |
数据链路层 | 通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路。 |
运行在 TCP 协议上的协议:
运行在 UDP 协议上的协议:
运行在 TCP 和 UDP 协议上
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP 协议不仅仅
指的是 TCP 和 IP 两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP
等协议构成的协议簇
,只是因为在 TCP/IP 协议中 TCP 协议和 IP 协议最具代表性,所以被称为TCP/IP 协议。
TCP/IP 提供了点对点链接的机制,将资料应该如何封装、寻址、传输、路由以及在目的地如何接收,都加以标准化。它将软件通信过程抽象化为四个抽象层,采取协议堆栈的方式,分别实现出不同通信协议。协议族下的各种协议,依其功能不同,分别归属到这四个层次结构之中,常视为是简化的七层 OSI 模型。
UDP 它是属于 TCP/IP 协议族中的一种。是无连接的协议,发送数据前不需要建立连接,是没有可靠性的协议。因为不需要建立连接所以可以在在网络上以任何可能的路径传输,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。
对某些实时性要求比较高的情况使用 UDP,比如游戏,媒体通信,实时直播,即使出现传输错误也可以容忍;其它大部分情况下,HTTP 都是用 TCP,因为要求传输的内容可靠,不出现丢失的情况。
我要和你建立链接。你真的要和我建立链接么。我真的要和你建立链接,成功!
ESTABLISHED
状态,完成三次握手,随后 Client 与 Server 之间可以开始传输数据了。我要和你断开链接。好的,断吧。我也要和你断开链接。好的,断吧!
CLOSE_WAIT
状态。此时 TCP 链接处于半关闭状态,即客户端已经没有要发送的数据了,但服务端若发送数据,则客户端仍要接收。LAST_ACK
状态。TIME_WAIT
状态,接着发送一个 ACK 给 Server,确认序号为收到序号+1,Server 进入CLOSED
状态,完成四次挥手。TCP 提供一种面向连接的、可靠的字节流服务。其中,面向连接意味着两个使用 TCP 的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个 TCP 连接。在一个 TCP 连接中,仅有两方进行彼此通信;而字节流服务意味着两个应用程序通过 TCP 链接交换 8 bit 字节构成的字节流,TCP 不在字节流中插入记录标识符。
对于可靠性,TCP通过以下方式进行保证:
目的是检测数据在传输过程中的任何变化,若校验出包有错,则丢弃报文段并且不给出响应,这时 TCP 发送数据端超时后会重发数据;
既然 TCP 报文段作为 IP 数据报来传输,而 IP 数据报的到达可能会失序,因此 TCP 报文段的到达也可能会失序。TCP 将对失序数据进行重新排序,然后才交给应用层;
对于重复数据,能够丢弃重复数据;
当 TCP 收到发自 TCP 连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒;
当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段;
TCP 连接的每一方都有固定大小的缓冲空间。TCP 的接收端只允许另一端发送接收端缓冲区所能接纳的数据,这可以防止较快主机致使较慢主机的缓冲区溢出,这就是流量控制。TCP 使用的流量控制协议是可变大小的滑动窗口协议。
本文由 在线网速测试 整理编辑,转载请注明出处 。