网络协议简介和相关socket、tcp-ip、udp、rpc、http的关系说明

作者: admin 分类: 网络协议 发布时间: 2019-11-08 15:38  阅读: 23 views

网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。如:网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的中断之后,在变换为该终端字符集的字符。当然,对于不相容终端,除了需要变换字符集字符外还需要转换其他特性,如显示格式、行长、行数、屏幕滚动方式等也要有响应的变换。

网络协议有三要素

1).语义:语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。

2).语法:语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。

3).时序:时序是对事件发生顺序的详细说明

工作方式:

网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)等之间通信规则的集合,它规定了通信时必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节上对上一层加以屏蔽。一台设备上的第N层与另一台设备上的第N层进行通信的规则就是第N层协议。在网络的各层中存在着许多协议。接收方和发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息。

image

国际标准化组织提出了“开放系统互联参考模型(OSI)”。即注明的OSI/RM模型。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:

- 物理层(Physics Layer)机械、电子、定时接口通信信道上的原始比特流传输。
- 数据链路层(Data Link Layer) 物理寻址,同时将原始比特流转变为逻辑传输线路。
- 网络层(Network Layer)控制子网的运行,如逻辑编址、分组传输、路由选择
- 传输层(Transport Layer)接受上一层的数据,在必要的时候把数据进行分割,并将这些数据交给网络层,且保证这些数据有效到达对端。
- 会话层(Session Layer)不同机器上的用户之间建立及管理会话。
- 表示层(Presentation Layer)信息的语法语义以及它们的关联,如加密解密、转换翻译、压缩解压缩
- 应用层(Application Layer)各种应用程序协议,如HTTP,FTP,SMTP,POP3等
- 其中第四层完成数据传输服务,上面三层面向用户。每一层至少定义两项标准:服务定义和协议规范。前者给出了该层所提供的服务的准确定义,后者详细描述了该协议的动作和各种有关规程。

image

高清大图 》》 请点这里获取

协议说明

从上图看出不管是局域网还是广域网,应用协议做多的是TCP/IP系列。且大部分是从传输层开始的。如我们开发经常接触到的在传输层的UDP协议、TCP协议;在会话层的RPC协议,SSL/TLS协议;在应用层的HTTP协议、HTTPS协议、FTP协议、POP3协议等。

通过层级关系可以看到,HTTP协议是基于TCP协议处理的。
注:RPC协议本身可以支持http协议和tcp协议,dubbo协议是基于RPC协议。

TCP协议

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP协议

UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

HTTP协议和HTTPS协议

了解HTTP和HTTPS的逻辑请看这里

RPC协议

了解RPC逻辑及SOCKET的使用请看这里

SOCKET是什么

Socket最初是加利福尼亚大学Berkeley分校为Unix系统开发的网络通信接口。后来随着TCP/IP网络的发展,Socket成为最为通用的应用程序接口,也是在Internet上进行应用开发最为通用的API。

socket通信模型

通过SOCKET提供的 socket、ServerSocket相关接口可以实现 tcp协议,DatagramSocket相关接口可以实现udp协议,

了解一个简单的web服务器里(基于http和socket)


   原创文章,转载请标明本文链接: 网络协议简介和相关socket、tcp-ip、udp、rpc、http的关系说明

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

更多阅读