最后更新:2022-06-15 18:08:19 手机定位技术交流文章
为了在计算机网络中顺利交换数据,必须遵守一些既定的规则,例如数据交换的格式、发送响应消息等,这些规则被称为网络协议。
网络协议层化弊端: 功能性可以在多个层中出现, 造成额外的成本.
1977年,國際標準化組織(ISO)提出一個標準框架,旨在將所有電腦連接到全世界,稱為Open System Interconnection Basic Reference Model(OSI/RM),也稱為OSI。
OSI的七层协议架构的概念很明确,理论也较完整,但它既复杂又不实用,TCP/IP系统结构不同,但现在它被广泛使用。TCP/IP是一个四层系统结构,它包含应用层,运输层,网络层和网络接口层(名称“网络层”强调该层的目的是解决不同网络的互连问题),不过从实质上讲,TCP/IP只有三个顶层,因为网络接口层的底部没有具体的内容,因此,在学习计算机网络的原理时,我们经常使用折叠方法。集成OSI和TCP/IP的优点,采用了只有五层协议的系统结构.这样,这个概念既简单又清晰。有时为了方便,下两个层也可以称为网络接口层。
四级协定、五级协定和七级协定之间的关系如下:
注:该五层协议架构仅为引入网络原理而设计,但实际应用是TCP/IP四层架构。
应用程序层的任务是通过应用程序进程之间的相互作用完成特定的网络应用程序。 应用程序层协议定义了应用程序进程之间的通信和相互作用规则(进程:在主机上运行的程序)。
不同的网络应用程序需要不同的应用程序层协议。 互联网上有许多层协议,例如域名系统DNS、支持通用网络应用的HTTP协议、支持电子邮件的SMTP协议等等。
传输层的主要任务是为两个主机进程之间的通信提供通用数据传输服务。
运输层主要采用两项协议
TCP和UDP协议之间的区别:
| UDP | TCP | |
|---|---|---|
| 是否连接 | 无连接 | 面向连接 |
| 是否可靠 | 不可靠的传输,没有流量控制和拥堵控制 | 使用流量控制和交通堵塞控制的可靠传输 |
| 连接对象个数 | 支持单人、单人、多人和多人交互通讯 | 只能是一对一通信 |
| 传输方式 | 面向报文 | 面向字节流 |
| 首部开销 | 第一个开支很小,只有8字节 | 最小初始20字节,最大60字节 |
| 场景 | 适用于实时应用(IP电话、视频会议、现场广播等) | 适用于需要可靠传输的应用程序,如文件传输 |
每个应用层(TCP/IP参考模型的最高级别)协议通常用于两个传输层协议中的一个:
在TCP协议上运行的协议:
在UDP协议上运行的协议:
DNS(域名服务)用于完成地址搜索、邮件转发等。
网络层的任务是选择适当的网络间路由和交换点,确保计算机通信数据及时传输.在发送数据时,网络层传输由传输层生成的消息段或用户数据消息包组件和包。在TCP/IP架构中,因为网络层使用IP协议,因此,该分组也称为IP数据报告,简称数据报。
互联网通过路由器由大量的异构网络相互连接.因特网使用的网络层协议是未连接的IntertPrococol和许多路由选项协议,因此,网络层也被称为网络层或IP层。
数据链层通常被称为链层,两个主机之间的数据传输总是在单一链上进行,这需要使用专门的链层协议。
当数据在两个邻接节点之间传输时,数据链层将IP数据信息汇集,将网络层传递到帧中,并传输两个邻接节点之间的链上帧。 每个帧包含数据和必要的控制信息(如同步信息、地址信息、错误控制等)。
当接收数据时,控制信息允许接收器知道帧从哪个位开始和结束到哪个位。
典型的网络应用程序通信流程如下:

当发送器在层间传输数据时,每次通过层时都会输入该层的第一个信息,而当接收器在层间传输数据时,它每次通过层时都会删除相应的第一个信息。
在物理层上传输的数据单元是位流.
物理层的功能是实现邻近的计算机节点之间的透明传输,尽量避免特定传输介质和物理设备之间的差异。上面的数据链层不需要考虑网络的特定传输媒体是什么。透明的传输比特流量意味着实际电路传输后,比特流量不会改变。对于传输的位流,这个电路似乎是看不见的。
在互联网上使用的各种协议中,最重要的和最著名的是TCP/IP协议。现在经常被称作TCP/IP并不一定意味着只有TCP和IP特定的协议,它通常指整个TCP/IP协议家族,由互联网使用。

互联网协议套件Ips是一个网络通信模型。以及整个网络传输协议家族,网络的基本通信架构。它通常被称为TCP/IP协议套件。或TCP/IP协议),简称TCP/IP。由于协议家族的两个核心协议:TCP(传输控制协议)和IP(内部协议),这是家庭采用的第一个标准。
TCP(传输控制协议)和IP(网络协议)是定义的第一个两个核心协议,因此它们通常被称为TCP/IP协议家族。
CP是一个面向连接的、可靠的、基于字节流的传输层通信协议,需要双方在发送数据之前建立互联。 所谓的“互联”实际上是一个由客户端和服务端子存储的信息,例如IP地址、端口号码等。
TCP可以被视为处理IP层或以下的包丢失、重复和错误的字节流。 在建立连接的过程中,双方需要交换一些连接参数。
TCP连接由四个元素组成,分别由两个IP地址和两个端口号码组成。 TCP连接通常分为三个阶段:连接、数据传输和退出。
当连接建立或终止时,交换消息节只包含TCP头条,没有数据。
TCP消息标题结构:
上面图中的一些行需要突出:
序列数(英语:Sequence number)是32位元,用于识别从TCP源发送到目的地的字节流,并且在发源者发送数据时被标记。
(2)确认序列: ack序列需要32位,只有ACK标记位数为1,所以确认序列字段是有效的, ack=seq+1。
(三)签名位置:总共六个,即URG、ACK、PSH、RST、SYN、FIN等,具有下列具体意义:
注意:不要把确认的序列空格与标记位置的空格混淆。
三个握手的本质是确认双方接收和传输数据的能力。
首先,我让信把信送到另一个人身上,他接受了信,这样他知道我能发信的能力,他能接受信的能力也是可能的。
然后他把信还给我,如果我收到的话,我就会知道我能发信和他能发信是可能的,他能发信和我能发信是可能的。
但此时他不知道他的发信能力和我的发信能力是什么,所以我最后一次回来,如果他收到了,他知道他的发信能力和我的发信能力是可能的。
那是三个手,明白了吗?
第一个握手:客户端向服务器发起连接请求,首先客户端随机生成一个初始序列编号ISN(例如100),发送给服务器的消息字段包含SYN符号位(例如SYN=1),序列编号seq=100。
第二次握手:收到客户的消息后,发现SYN=1,知道这是连接请求,因此,客户最初的序列编号100被存储,它也可以随机生成服务端的初始序列数(例如300)。然后你向客户发送一个消息,响应消息包含SYN和ACK符号(即SYN=1、ACK=1),序列数 seq=300,和确认数 ack=101(客户端发送的序列数+1)。
第三个握手:在收到服务器的答复后,客户端发现ACK=1和 ack=101,知道服务器已经收到了序列号100的消息;以及SYN=1,知道服务器同意连接,然后存储服务端的编号300。然后客户端返回消息到服务端,该消息包含ACK符号(ACK=1), ack=301(服务结束序列数+1), seq=101(第一手握时发送的消息占序列数,这个分数从101开始,注意,没有数据的ACK消息不占序列数,因此,第一次正式发送数据后,序列为101。当服务器收到消息时,它发现ACK=1和ack=301,知道客户收到300个序列号的讯息,因此,客户端和服务端通过TCP建立连接。
四波的目的是关闭一个连接.

例如,客户端初始化了序列编号ISA=100,服务端则初始化了序列编号ISA=300。 在成功的TCP连接后,客户端发送了总数100字节数据,服务器返回总数200字节数据,然后客户端发送 FIN消息。
第一波:一旦客户的数据转移,客户端向服务器发送连接释放消息(当然,您也可以发送连接释放消息,在数据尚未完成时停止发送数据),释放连接消息包含FIN标记点(FIN=1),序列数seq=1101 (100+1+100,其中一个是序列数,它占有建立连接的时间。应该指出,客户在 FIN 声明发送后不能发送数据,但它也可以正常接收数据;即使它没有数据,FI声明部分也占有序列数。
第二波:服务端接收客户端的 FIN消息,并响应客户端的确认消息,确认消息包含ACK标记位置(ACK=1),确认编号 ack=1102(客户端 FIN消息序列编号1101+1),序列编号seq=2300(300+200)。此时服务结束处于封闭的等待状态,而不是向客户发送 FIN消息,这种状况将持续一段时间,因为服务端可能仍然没有数据完整.
第三波:服务终止向客户端发送最终数据(例如50字节)并发送连接释放消息。报告包含FIN和ACK标记位置(FIN=1,ACK=1),确认号和第二波为ack=1102,以及序列号seq=2350(2300+50)。
第四个手势:客户从服务端口接收 FIN消息,向服务端发送确认消息,确认消息包含ACK标记位置(ACK=1),确认数 ack=2351,和序列数 seq=1102。注意,在发送确认消息后,客户端不会释放TCP连接,相反,TCP连接只能在2MSL之后释放(最长的消息段的寿命为2倍)。一旦服务器收到客户端的确认消息,它立即释放TCP连接。因此服务会比客户端提前终止TCP连接。
由于需要考虑在连接时包装丢失的问题,如果只握手2次,如果服务端口发送给客户端的确认消息在第二次握手期间丢失,此时,服务器已编写收据号码(可以理解为服务器已成功连接),客户没有从服务端收到确认消息,因此客户端不知道服务器是否准备好(可以理解的是客户端没有成功连接),在这种情况下,客户不会向服务端口发送数据,它也忽略服务端口发送的数据。
如果是三次握手,即使你丢失了你的包, 也没什么问题.例如,如果第三个握手客户端发送丢失的确认Ack消息,如果服务端在一定时间内没有收到确认的“缺口”消息,则将再次进行第二次握手,即,服务端将检索SYN声明段落,客户端收到一个重复的消息,并再次向服务器发送一个确认缺口消息。
因为只有当客户端和服务端没有发送数据时才能切断TCP。当客户端发送 FIN消息时,它只能确保客户端不会发送任何数据。不知道服务器是否没有数据传输客户端。收到客户端 FIN消息后,服务器只能以确认消息向客户端作出答复,通知客户端我的服务器收到了您的 FIN消息。但服务器上还有一些尚未完成的数据,直到数据到服务结束时才发送到客户端(因此确认声明和Fin声明不会同时发送到客户端,只是我来过这里不止一次。
如果第四波被丢失,服务没有收到确认,第三波被重复,所以波长最长的时间是2MSL,所以需要这么长时间才能确认服务已经收到它。
TCP有一个实时计时器,如果客户端失败,服务器不能永远等待,白白浪费资源。每次服务器收到客户端的请求,它会重新设置计时器,时间通常定为2小时,如果客户两个小时没有收到任何数据,服务器将发送检测信息,随后,每75秒发送一次消息。如果一行中发送了10个检测消息,但仍没有响应,服务器假设客户端有故障,接着就关闭连接。
HTTP是一个在计算机世界两个点之间传输文本、图像、音频、视频和其他超文本数据的惯例和标准。
| 区别 | HTTP | HTTPS |
|---|---|---|
| 协议 | 在TCP上运行,明确传输,客户端和服务器不能互相验证身份 | 在SSL上运行的SSL(Secure Socket Layer)壳和TCP上运行的SSL,是添加加密和认证机制的HTTP |
| 端口 | 80 | 443 |
| 资源消耗 | 较少 | 由于解密处理,更多的CPU和内存资源被消耗 |
| 开销 | 无需证书 | 证明书是必需的,通常是从一个证明机构购买的 |
| 加密机制 | 无 | 共享密钥加密和开放密钥加密的混合加密机制 |
| 安全性 | 弱 | 由于加密机制,安全性很强 |
状态码的类别:
| 类别 | 原因短语 |
|---|---|
| 1XX | 收到的资料请求正在处理中 |
| 2XX | 成功(成功状态代码)请求成功处理 |
| 3XX | 重新定位需要额外的操作完成请求 |
| 4XX | 客户端错误(客户端错误状态代码)服务器无法处理请求 |
| 5XX | 服务器错误(服务器错误状态代码)服务器处理请求错误 |
他说,GET和 POST必须提及HTTP协议,因为浏览器和服务器的交互通过HTTP协议执行,GET和 POST是HTTP协议中的两种方法。
HTTP被称为HTTP(英语:Hyper Text Transfer Protocol),以确保浏览器与服务器之间的通信。 HTTP是一个客户端与服务器之间的请求响应协议。
HTTP协议定义了与浏览器和服务器交互的不同方式,有四个基本方法:GET、 POST、PUT和 DELETE。 这些四个方法可以理解为检查、修改、添加和删除服务器资源。
GET和 POST之间的区别:
对称加密:指使用相同的密钥加密和解密,其中最大的问题是密钥发送问题,即如何安全地发送密钥给另一方;
不对称加密是指使用一对不对称密钥,即公开密钥加密和私钥解密。 加密过程由另一方公开密钥进行,另一方接收加密信息并使用自己的私钥解密。
由于非对称加密不需要发送私钥去解密,它可以保证安全性;然而,它与对称加密相比很慢。
HTTP2可以提高网页的性能。
在HTTP1中,浏览器限制在相同域名下的请求数目(通常是6个在Chrome下),在请求大量资源时,由于浏览器到达最大请求数目时的队列封锁,剩余资源必须等待当前6个请求完成,然后开始请求。
HTTP2引入了多路径复制技术,允许所有请求数据只通过一个TCP连接传输。 多路径复制可以绕过浏览器在同一域名下限制请求数的问题,从而提高网页的性能。
HTTP协议本身是无状态的,无状态的是服务器不能判断用户的身份。
(一)Cookie是什么
cookie是一个小文件(关键值格式),由网页服务器存储在用户浏览器上,它包含与用户有关的信息。
客户端向服务器发起请求,如果服务器需要记录用户的状态,使用响应向客户端浏览器发送一个cookie。客户端浏览器存储Cookie。当浏览器再次请求网站时,浏览器将请求的网站与cookie一起提交给服务器。服务器检查了cookie,用于识别用户。
什么是会议
会话取决于cookie的实现。会话是服务器端的对象。
会议是浏览器和服务器对话的过程,由服务器分配的存储空间。服务器默认设置浏览器在cookie中设置 sessionid,浏览器向服务器请求发送的cookie包含了 sessionid,服务器根据 Sessionid 获取存储在 Session 中的信息,然后确定对话的身份信息。
cookie 和 សម័យ 之间 的 区别 :
托克是什么?
托克的介绍:托克是一个经常向服务器请求数据的客户端,服务器经常到数据库查询和比较用户名和密码,判断用户名和密码是否正确,并给出相应的提示。
托克的定义:托克是一个由服务端生成的字符串,一张卡片,作为客户的要求,当第一次登录后,服务器生成一个トークン,并将这个トークン返回到客户端,之后,客户只能带这个トークン来请求数据,你不需要再带你的用户名和密码。
使用托克的目的:托克旨在减轻服务器压力,减少频繁查询数据库,并使服务器更可靠。
如果前面端使用用户名/密码请求服务端的认证,服务端的认证成功,并返回到前面端的服务端。
会议与记号之间的区别:
Servlet不是线程安全的,并且多个线程同时读写会导致数据不同步。
解决办法是尽量不定义名称属性,相反,在 doGet() 和 doPost() 方法中,名称变量应该单独定义。虽然使用同步(name){}项块可以解决这个问题,但它会使线条等待,不是很科学的办法。
注意:多线性同时读写Servlet类属性可能导致数据不同步,但如果属性同时读写,数据不同步,则不存在问题。
在JavaWeb程序中,Servlet主要负责接收用户请求 HTTP ServletRequest,在doGet(),在 doPost()中进行相应的处理,它会响应HTTP ServletResponse反馈给用户。服务器可以设置初始化参数,使用在Servlet内。
Servlet接口定义了五个方法,其中第一三个与Servlet生命周期有关:
生命周期:
不能。
会议是浏览器和服务器对话的过程,由服务器分配的存储空间。服务器默认设置浏览器在cookie中设置 sessionid,浏览器向服务器请求发送的cookie包含了 sessionid,服务器根据 Sessionid 获取存储在 Session 中的信息,然后确定对话的身份信息。
如果假设用户在cookie关闭时使用 Session, 则有几种实现方法:
本文由 在线网速测试 整理编辑,转载请注明出处。