网络协议主要要素为(网络协议由什么组成)

一、网络协议网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。1、OSI七层协议OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,从上到下分别是7应用层6表示层5会话层4传输层3网络层2数据链路层1物理层。下面的图表显示不同的协议在最初OSI模型中的位置:7应用层例如HTTP、SMTP…

大家好,又见面了,我是你们的朋友全栈君。

一、网络协议

网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

1、OSI七层协议

OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层。

下面的图表显示不同的协议在最初OSI模型中的位置:

7 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP

6 表示层 例如XDR、ASN.1、SMB、AFP、NCP

5 会话层 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets

4 传输层 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL

3 网络层 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25

2 数据链路层 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP

1 物理层 例如线路、无线电、光纤、信鸽

2、TCP/IP协议组

TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何在它们之间传输的标准,从字面意思来看TCP/IP是TCP和IP协议的合称,但实际上TCP/IP协议是指因特网整个TCP/IP协议族。不同于ISO模型的七个分层,TCP/IP协议参考模型把所有的TCP/IP系列协议归类到四个抽象层中。

应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等

传输层:TCP,UDP

网络层:IP,ICMP,OSPF,EIGRP,IGMP

数据链路层:SLIP,CSLIP,PPP,MTU

3、OSI七层和TCP/IP四层的关系

3.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。

3.2 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。

3.3 OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

3.4 OSI的应用层、表示层、会话层可以算到TCP/IP的应用层里。

4、总结

每一抽象层建立在低一层提供的服务上,并且为高一层提供服务。

通过上述介绍,就可以搞清楚例如HTTP协议和TCP协议的区别之类的问题了。TPC协议是一种传输层协议,主要解决数据如何在网络中传输,而HTTP协议是应用层协议,主要解决如何包装数据。关于TCP和HTTP协议的关系,网上有一段比较容易理解的介绍:“我们在传输数据时,可以直接使用(传输层)TCP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作为应用层协议,以封装HTTP文本信息,然后使用TCP作为传输层协议将它发到网络上。”

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。

UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。比如,我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。例如,在默认状态下,一次“ping”操作发送4个数据包(如图2所示)。大家可以看到,发送的数据包数量是4包,收到的也是4包(因为对方主机收到后会发回一个确认收到的数据包)。这充分说明了UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。QQ登陆采用TCP协议和HTTP协议,你和好友之间发送消息时主要采用UDP协议发消息,因此有时会出现收不到消息的情况。

 

二、socket

我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。socket是一组接口,在设计模式中,socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在socket接口后面,对用户来说,一组简单的接口就是全部,让socket去组织数据,以符合指定的协议。

网络协议主要要素为(网络协议由什么组成)

 

三、webSocket

1、简介

WebSocket协议是基于TCP的一种新的网络协议,和http协议一样属于应用层协议,它实现了浏览器与服务器全双工(full-duplex)通信,也就是允许服务器主动发送信息给客户端。我在实现二维码扫描登录时曾使用过,有了它就不需要通过轮询或者建立长连接的方式来使客户端实时获取扫码状态,因为当扫码后,服务器端可以主动发送消息通知客户端。

2、webSocket和http的区别

http链接分为短链接和长链接,短链接是每次请求都要重新建立TCP链接,TCP又要三次握手才能建立,然后发送自己的信息。即每一个request对应一个response。长链接是在一定的期限内保持TCP连接不断开。客户端与服务器通信,必须要由客户端发起然后服务器返回结果。客户端是主动的,服务器是被动的。

简单的说,WebSocket协议之前,双工通信是通过多个http链接轮询来实现的,这导致了效率低下。WebSocket解决了这个问题,他实现了多路复用,他是全双工通信。在webSocket协议下客服端和浏览器可以同时发送信息。建立了WebSocket之后服务器不必在浏览器发送request请求之后才能发送信息到浏览器。这时的服务器已有主动权想什么时候发就可以什么时候发送信息到客户端,而且信息当中不必再带有head的部分信息了。与http的长链接通信来比,这种方式不仅能降低服务器的压力,而且信息当中也减少了部分多余的信息。

3、webSocket和socket的区别

就像Java和JavaScript,并没有什么太大的关系,但又不能说完全没关系。可以这么说:

  • 命名方面,Socket是一个深入人心的概念,WebSocket借用了这一概念;
  • 使用方面,完全两个东西。

总之,可以把WebSocket想象成HTTP,HTTP和Socket什么关系,WebSocket和Socket就是什么关系。

最后附上一张有意思的图片:

网络协议主要要素为(网络协议由什么组成)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128107.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月11日 上午6:40
下一篇 2022年4月11日 上午6:40


相关推荐

  • MySql的root密码忘记该怎么找回

    MySql的root密码忘记该怎么找回Windows下如果MySQL密码忘记了root密码导致无法登录,如下图所示,这个时候怎么办,只能重置root密码了。1.打开任务管理器查看MySql服务是否启动,如果已启动则先将其停止2.找到MySql目录下的my.ini文件3.打开该文件,找到里面的[mysqld],然后在这个下面添加skip-grant-tables,添加完后保存文件4.重新进到任务管理器将…

    2022年6月17日
    28
  • 422模块接线_422接口定义

    422模块接线_422接口定义#硬件芯片422引脚连接方式前言参考连接对应表举例-正好拿手头的一款芯片链接举例查手册前言最近调试串口转422程序,便买了一个“多功能5和1的转换器“,如下图所示,但是调试的时候,没怎么看线序,改线后忘记如何连接,只能重新查找资料,为例方便更多人也方便自己记录参考。参考连接个人觉的写言简意赅的,美中不足的地方就是看着费劲,所以优化了一下。参考如下连接:https://blog.csdn.net/fzktongyong/article/details/86163206对应表举例-正好拿手头的

    2022年8月30日
    7
  • uniapp nvue 软键盘

    uniapp nvue 软键盘先介绍下我的页面 uniapp gt for gt app gt android 四个 tabbar 中有一个购物车 vue 开发的 购物车选取规格页面需要挡住原生 tabbar 因此才用 subNVues 来实现 在 subview 中有一个 input 这个 input 在软键盘顶起的时候 有一定概率会破坏外部的页面 顶起来之后回不去了 这就有点尴尬了官方这么介绍这个问题的 关于软键盘弹出的逻辑说明 https uniapp

    2026年3月18日
    2
  • 流形学习详解

    流形学习详解流形学习流形学习 manifoldlear 是一类借鉴了拓扑流形概念的降维方法 介绍流行学习首先要说明一下什么是流形 即指具有不同维数的任意光滑的曲线或曲面 流形学习是基于这样一种假设 若低维流形嵌入到高维空间中 则数据样本在高维空间的分布虽然看上去十分复杂 但局部上仍具有欧氏空间的性质 因此 可以容易地在局部建立降维映射关系 然后再设法将局部映射关系推广到全局 其特点为 通过局部线性来构造全局非线性 为什么要使用流形学习流形学习是从高维采样数据中恢复低维流形结构 即找到高维空间中

    2026年3月19日
    3
  • Laravel获取所有的数据库表及结构

    Laravel获取所有的数据库表及结构

    2021年10月24日
    43
  • 【学生信息管理系统】与后端系统接口

    【学生信息管理系统】与后端系统接口

    2022年1月11日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号