当前位置: 代码迷 >> 综合 >> 常见网络协议知识集 Http、WebSocket、Socket
  详细解决方案

常见网络协议知识集 Http、WebSocket、Socket

热度:66   发布时间:2024-01-26 08:41:13.0

首先看一下OSI七层模型与TCP/IP对比:

  • 应用层:各种应用层协议,如Http、WebSocket、FTP、SMTP等都属于应用层协议。
  • 表示层:信息的语法语义以及他们的关联,如加密解密、转换翻译、压缩解压缩
  • 会话层:不同机器上的用户之间建立及管理会话
  • 传输层:接受上一层的数据,在必要的时候把数据进行分割,并将这些数据提交给网络层,且保证这些数据段有效到达对端。TCP、UDP协议。
  • 网络层:控制子网的运行,如逻辑编址、分组传输、路由选择。IP
    协议。
  • 数据链路层:物理寻址,同时将原始比特流转变为逻辑传输线路。
  • 物理层:机械、电子、定时接口通信信道上的原始比特流传输。

TCP/IP协议

TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。

TCP/IP协议集包括应用层,传输层,网络层,网络访问层

应用层包括:

  • 超文本传输协议(HTTP):万维网的基本协议.   
  • 文件传输(TFTP简单文件传输协议):   
  • 远程登录(Telnet),提供远程访问其它主机功能,它允许用户登录     
  • internet主机,并在这台主机上执行命令.    
  • 网络管理(SNMP简单网络管理协议),该协议提供了监控网络设备的方法,以及配置管理,统计信息收集,性能管理及安全管理等.   
  • 域名系统(DNS),该系统用于在internet中将域名及其公共广播的网络节点转换成IP地址. 

传输层 :TCP、UDP

网络层包括:  

  • Internet协议(IP)     
  • Internet控制信息协议(ICMP)    
  • 地址解析协议(ARP)    
  • 反向地址解析协议(RARP)  

网络访问层的功能包括:

  • IP地址与物理地址硬件的映射;
  • 将IP封装成帧.

下面介绍一些常见的协议:

 

Http协议  应用层

Http协议,超文本传输协议,web上一问一答的两台计算机之间遵循的通信规则,基于TCP协议。

  • 请求组成:请求行、请求头、请求空行、请求主体
  • 响应组成:响应状态行、响应头、响应空行、响应正文

WebSocket协议  应用层

基于Http协议的扩展,支持长连接,用于建立客户端和服务器的双向通道。

而传统的轮询方式(即采用http协议不断发送请求)的缺点:浪费流量(http请求头比较大)、浪费资源(没有更新也要请求)、消耗服务器
CPU占用(没有信息也要接收请求)。

WebSocket是保证只要在服务端和客户端建立连接后任何一端发起消息,相互推送消息,效率也是极大的提高了,并且服务端和客户端之间的标头信息很小,可以降低服务端的资源浪费。

Socket协议  不算协议,而是一组接口

Socket是为了方便开发者直接使用更底层协议(一般是TCP或UDP)而存在的一个抽象层。Socket实际上是对TCP/IP协议的封装,本身并不是协议,而是一个调用接口(API)。
Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write。

主机A的应用程序要能和主机B的应用程序通信,必须通过Socket建立连接,而建立Socket连接必须需要底层TCP/IP协议来建立TCP连接。建立TCP连接需要底层IP协议来寻找网络中的主机。我们知道网络层使用IP协议可以帮助我们根据IP地址来找到目标主机,但是一台主机上可能运行着多个应用程序,如何才能与指定的应用程序通信就要通过TCP或UDP的地址也就是端口号来指定。这样就可以通过一个Socket实例唯一代表一个主机上的一个应用程序的通信链路了。

TCP协议  传输层

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,也就是说,在收发数据前,必须和对方建立可靠的连接。这一过程和打电话类似:先拨号振铃,等待对方接电话,说喂,再说自己是谁。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的传输层。

建立连接需要三次握手,关闭连接四次挥手。

UDP协议  传输层

UDP (User Datagram Protocol,用户数据报协议),是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种非连接传输层协议,提供面向事务的简单不可靠信息传送服务,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上,故也不安全

 

 

  相关解决方案