网络概述
计算机网络架构呢?
每个层的相应网络协议是什么?
数据如何在层间传输?
对于发送者来说,包装由上层层到下层,对接收者来说,包装由下层到上层。
- 发送者申请过程将数据转移到接收者申请过程
- AP首先将数据传递到主机的应用程序层,应用程序层加上该层的控制信息H5成为下一层的数据单元
- 在传输层接收该数据单元后,它将控制信息H4添加到该层并将其传递到网络层,成为网络层的数据单元
- 在数据链层上,控制信息分为两部分,并分别添加到该层的第一个(H2)和最后(T2)数据单位
- 最后的物理层用于传输位流.

网络综合
从浏览器地址栏输入url来显示主页的过程?
- DNS分析: 分析域名到相应的IP地址.
- TCP连接:客户端(浏览器)和服务器通过三个握手建立TCP连接
- 向服务器发送HTTP请求
- 服务器处理请求并返回HTTP响应
- 浏览器分析和渲染页面
- 切断:TCP波4次,连接终止
每个进程中使用哪些协议?

DNS分析过程如何?
假设你想查询: http://ww.Baidu.IP地址
- 首先检查一下浏览器的缓存,看看它是否能找到http://ww.Baidu。
- 向本地DNS服务器发送请求,如果发现,直接返回请求,否则继续下一步;
- 本地DNS服务器向根域服务器发送请求,该请求返回负责COM的高级域服务器的IP地址列表。
-
本地DNS服务器向负责COM的顶级域名服务器发送请求,并返回负责http://baidu. com特权的域名服务器的IP地址列表.
- 本地DNS服务器向一个域名服务器发送请求并返回http://ww.Baidu.com的相应的IP地址。


WebSocket和Socket的区别是什么?
- 索克是网络编程的标准接口,而WebSocket是应用程序级通信协议
- 接口实际上相当于IP地址+端口+协议.
- WebSocket是一个带有H5的持久协议,用于解决 http 不支持持久连接的问题
具体而言,Socket是一个包含高级别的TCP/IP并屏蔽网络细节的标准集,为开发者提供更好的网络编程。
告诉我你所知的港口和相关服务?
港口编号从1到65535之间,分为三个主要类别:
1)已知端口:从0到1023,系统保留的已知端口号码分配给特定服务。
(二)注册港口:1024至49151,他们对某些服务有松散的约束.但这些港口也用于许多其他目的。例如: 许多系统处理在1024左右的动态端口。MySQL端口号码是3306,雷迪斯港口编号为6379。
(三)动态及/或私人港口:49152至65535。理论上,这些港口不应分配给服务。实际上,机器通常分配从1024的动态端口。然而,也有例外: SUN的RPC端口始于32768。


HTTP
HTTP 使用 的 国家 代码 及其 影响 是什么?
当访客浏览网页时,查看器的浏览器向服务器发送该页面的位置请求。在浏览器接收和显示网页之前,该页面所在的服务器返回包含HTTP状态代码的服务器标题,以响应浏览器请求。
常见的HTTP状态分为以下五个类别:
1.资料代码:指要求已接受并需要处理的资料,例如临时答复;
2.成功代码:2xx:成功,即请求已成功收到并由服务器处理;
3.重新分配:3xx:重新分配是必须进一步执行才能完成请求的行动;
4.客户端错误:4xx:客户端错误,包含语法错误的请求或请求未实现;
5.服务器错误:5xx:服务器错误,服务器无法执行显而易见的无效请求;
常用
HTTP
状态码:

301和302之间有什么区别?
- 301: 永久移动,请求的资源被永久移动到一个新的位置。 当服务器返回此响应时,它返回一个新的资源地址。
- 302: 临时移动,服务器响应来自另一个地址的资源,但客户端也应该使用这个地址。
HTTP请求方法是什么?
根据HTTP标准,HTTP请求可以使用多个请求方法。
HTTP1.0定义了三个请求方法:GET、 POST和HEAD。
HTTP1.有六种新的请求方法: 选项 、 放置 、 路径 、 删除 、 路径和连接.

其中, POST 、 DELETE 、 PUT 和 GET 的含义分别与我们最熟悉的添加、删除、修改和检查有关。
GET和 POST之间有什么区别?
1.从HTTP消息级别,GET请求将信息放在URL上, POST将请求信息放在请求主体上。
- 这限制了数据GET请求携带的数量,因为URL本身具有长度限制, POST请求存储在报告体中,因此没有大小限制。
- 此外,从正式的角度来看,GET请求将数据放在URL上是较不安全的,而 POST请求将数据放在请求机构上则比起来更安全。
2.
限制
Form
表数据集的值必须是
ASCII
字符;而
邮政支持整个ISO10646
字符集。
3.Get
执行效率却比
Post
方法好。
Get
是
form
提交的默认方法。
4.GET
产生一个
TCP
数据包;
POST
产生两个
TCP
数据包。对于
GET
浏览器将在表格中显示请求
http header
和
data
同时发送,服务器响应
200
返回数据;及
POST
,
浏览器先发送
header
,服务器响应
100 continue
,浏览器再发送
data
,服务器响应
200 ok
(返回数据)。

GET的长度限制是什么?
HTTP中的GET方法用于通过URL传输数据,但URL本身并没有限制数据的长度,真正限制GET长度的是浏览器。例如,IE浏览器的URL最大限值超过200个字符。大概2kb左右,更多由Chrome、Firefox等浏览器支持的URL字符,其中,FireFox的最大URL长度限制为65536字符。Chrome是8182个字符。这个长度限制也不适用于数据部分,相反,它的目标是整个URL。
HTTP请求的流程和原则?
HTTP协议定义了浏览器如何从服务器请求文档,以及服务器如何将文档传递给浏览器。
- 每个服务器都有一个过程,它不断监视TCP端口80,以查明浏览器是否正在向它发送连接建立请求
- 要听连接请求,将建立一个TCP连接
- 浏览器向服务器发送请求浏览网页,然后服务器作为响应返回请求的页面
- 最后,释放TCP连接

让我们谈谈HTTP消息结构
有两种HTTP消息,即HTTP请求消息和HTTP响应消息

HTTP请求报文

HTTP响应报文

URI和URL之间的区别是什么?
URI(Uniform Resource Identifier, URI)指由单个URI识别的Web上的所有可用资源,如HTML文档、图像、视频剪辑、程序等。
统一资源定位(Uniform Resource Location)是URI的一个子集,其主要功能是为资源提供路径。
主要的区别在于,除了提供资源的识别外,URL它 也 提供 了 获取 资源 的 途径 。这么比喻,URI就像身份证,只能识别一个人,而URL更像一个家庭地址,此人可浏览: http://geo.china.beijing.beijing.bei淀区.xx Vocational Technical College 14 dorm room 525 Zhang 3.Man.
"HTTP/1".0.1.1.2.有什么区别?
关键是记住HTTP/1。 默认为0的短连接,可以被迫打开长连接,HTTP/1.1 默认的长连接,HTTP/2.0 长连接 + 多个循环可重用。
HTTP/1.0
- 默认情况下,使用短接口,每个请求需要一个TCP接口,它可以设置Connection: keep-alive字段,迫使长接口打开。
HTTP/1.1
- 引入持久连接(长连接),即TCP连接不被默认禁用,可以通过多个请求撤销。
- 块传输编码意味着,每次服务器生成一个数据,它就会发送一个数据,以替换缓存模式以流动模式。
- 管道机制意味着客户端可以在同一TCP连接中同时发送多个请求。
HTTP/2.0
- 两步协议,1.1版本的头条是文本(ASCII编码),数据体可以是文本或二进制;2.在0中,头部信息和数据体是二进制。
- 完全多路径复制,客户端和浏览器可以在单一连接中同时发送多个请求或响应,而不必按照顺序相匹配。
- HTTP协议没有状态,每个请求都必须包含所有信息。 Http/2.0引入了头条压缩机制,然后用gzip或压缩压缩发送。
- 服务端传送允许服务器发送资源给客户端,而不需请求。
你知道HTTP/3吗?
让我们看一下HTTP协议的变化:

HTTP/3有两个主要的变化:传输层是基于UDP的,使用QUIC确保UDP可靠性。
HTTP/2有一些问题,比如重传等等,因为TCP本身的特性,因此HTTP/3基于QUIC开发,QUIC(快速UDP连接)译为快速UDP网络连接,下层使用UDP来传输数据.
HTTP/3主要有以下特点:
- 使用UDP作为传输层进行通信
- 基于UDP,QUIC协议保证HTTP/3的安全,并在传输过程中完成TLS加密
- 为了创建连接,HTTPS需要6次交互,首先是3次握手,然后是3次握手。
- QUIC有自己的机制来确保传输的可靠性。 当一个流丢失数据包时,它只是被封锁,而其他流则不受影响。
长连接和短连接
长接口和短接口的概念是针对TCP接口的,TCP接口是一个双向通道,可以停留一段时间。
长连接:在客户端和服务器端建立连接后,所有请求和响应数据都会在该连接上进行,不管接入多少通信。
短连接:客户端和服务器端必须为每个通信建立连接,并在通信完成后关闭连接。
如何实现 HTTP 的长期连接? 什么时候时间会超过?
什么是长时间的HTTP连接?
- HTTP被分为长短连接,基本上是TCP长短连接。 TCP连接是一个双向通道,可以被关闭一段时间,因此TCP连接只有真正的长连接和短连接。
- TCP长连接可以重用一个TCP连接启动多个HTTP请求,从而减少资源消耗,例如一个HTML请求,如果连接短,则需要请求后续JS/CSS。
如何设置长连接?
连接字段指定为 keep-alive,HTTP/1,设置在头部(请求和响应头部)。0协议支持,但从HTTP/1默认禁用。
什么时候会随着时间的推移?
- HTTP通常有一个 httpd 的ដេមិន,它可以在 tcp 连接处于闲置状态时设置保持活化时限,或者在 HTTP 标题中设置时限;
- TCP的保持生命包含三个参数,在ipv4中支持系统内核内网;在TCP连接后,idle tcp_keepalive_time,则会发生侦测包,如果你没有收到对方的信用证,然后每次重复tcp_keepalive_intvl,直到tcp_keepalive_probes发送,就会丢弃该连接。
复制代码
HTTP和HTTS之间有什么区别?
- HTTP是一个超文本传输协议,信息被明确传输,存在安全风险问题。HTTPS通过在TCP和HTTP网络层之间添加SSL/TLS安全协议来解决HTTP不安全问题,以加密传输。
- HTTP连接的设置相对简单,TCP可以在三个手握之后发送HTTP消息。HTTPS在三个TCP手握之后,也需要一个SSL/TLS手握过程来输入加密消息传输。
- HTTP的端口编号为80,HTTPPS的端口编号为443。
- HTTPS协议要求CA(Cert Authority)申请数字证书,以确保服务器的身份是可靠的。
为什么使用HTTPS?已经解决了哪些问题?
由于HTTP是明确传输的,存在安全风险:
盗窃用户帐户的风险,如访问通信链上的通信内容。
风险的变化, 例如强制性垃圾广告, 视觉污染.
冒风险, 例如对道宝网站冒风险, 用户会损失钱.
因此,随着HTTPS的引入,HTTPS增加了HTTP和TCP层之间的SSL/TLS协议来解决这些风险:
- 信息加密: 不能偷窃交互信息.
- 校正机制: 不能改变通信内容, 如果更改, 则不能正常显示.
- 身份证: 可以证明道宝是真正的道宝.
因此,SSL/TLS协议可以确保通信安全。
HTTPS工作流程是什么?
- 客户端启动HTTPS请求,并在服务端连接到443端口。
- 服务端有一套数字证书(证书内容有公共钥匙、证书发行机构、无效日期等)。
- 服务器向客户端发送自己的数字证书(公共密钥位于证书内部,私人密钥由服务器持有)。
- 在接收数字证书后,客户端将验证证书的有效性。 如果证书被验证,将生成一个随机的对称键,与证书的公共键加密。
- 客户端将加密的公共密钥发送到服务器上.
- 在服务器接收客户端发送的消息密钥后,它不对称地用先前保留的私人密钥解密它。在解密后,它接收客户端的密钥,然后用客户端的密钥对称地加密返回数据。
- 服务器将加密的消息返回到客户端.
- 当客户端接收数据时,它以自己的密钥对称地解密数据,并接收由服务器返回的数据

客户端如何验证证书的有效性?
首先,服务端证书是从哪里来的?
为了信任服务器的公共密钥,服务器的证书由CA发出(Certificate AuthorityCA是互联网世界的公共安全机构。它具有很高的信誉,因此它被用来签名所有公共钥匙,而由信任方发出的证书是不可避免的信任。

如上图左边所示,CA是签发证书的过程:
- 首先,CA包含持有人的公开密码、应用程序、发行人、有效时间等,然后 Hash 计算信息以取得 Hash 值;
- 然后,CA将使用自己的私钥加密Hash值并生成证书签名,即CA将签署证书;
- 最后将证书签名添加到文件证书中,以形成数字证书;
如上图右边所示,在服务端核查客户数字证书的过程:
- 首先,客户端将使用相同的哈希算法来获取证书的哈希值H1;
- 通常,浏览器和操作系统集成了CA公开密钥信息,浏览器可以在收到证书后解密CA公开密钥
- 签名内容得到哈希值H2;
- 最后,如果值相同,就比较H1和H2,作为可信证书,否则被认为是不可信的。
如果在HTTPS通信中,中间人改变了证书的原始内容,CA公共密钥解密的内容不会匹配,因为他没有CA机构的私人密钥。
如何理解HTTP协议是无状态的?
该无状态值的状态是什么?它是客户端的状态,这意味着服务器不会在HTTP协议中向客户端保存任何信息。
例如,当浏览器第一次向服务器发送请求时,服务器会响应;如果同样的浏览器向服务器发起第二次请求,它仍会响应,但服务器不知道你是同样的浏览器。
那么如何记录状态呢?
有两个主要方法, Session和Cookie。
Session 和 Cookie 之间有什么联系和区别?
会议和cookie是什么
- cookie是存储在客户端的一个小文本字符串的数据。当客户端向服务器发起请求时,服务器向客户端发送一个cookie,客户端保存了cookie。当客户端下一次重启向同一服务器请求时, Cookies 被 携带 并 发送 到 服务器 。服务提供者可以根据这个cookie确定用户的身份和状态。
- 会话是指服务器与客户端之间的会话的过程。这是记录客户状况的另一个机制.不同之处在于,Cookie存储在客户端浏览器中,会议存储在服务器上。当客户端浏览器访问服务器时,服务器在服务器上以某种形式记录客户端信息,这是会议。当客户端浏览器重新访问时,只需要从该会议上查阅用户的状态。
Session 和 Cookie 之间有什么区别?
- 存储位置不同:Cookie存储在客户端上, Session存储在服务器上。
- 存储数据类型不同,Cookie只能存储ASCII,Session可以存储任何数据类型,一般我们可以在Session中保持一些常见的变量信息,如UserId等。
- 不同的有效期,Cookie可以设置为长期存储,例如我们经常使用的默认登录功能,会话通常有较短的有效期,客户端关闭,或会话过期。
- 与其他隐私政策不同,cookie存储在客户端中,并且更容易被未经授权的用户访问。早期用户将用户登录名和密码存储在cookie中,导致信息被盗窃。
- 存储大小不同。单个cookie不能存储超过4K的数据,而 Session可以存储比一个cookie更多的数据。
Session与Cookie有什么关系?
- 当用户第一次请求服务器时,服务器基于用户提交的信息,创建相应的会议,请求时将该会议的唯一身份识别信息返回浏览器,在浏览器收到服务器返回的 SessionID信息后,这些信息将存储在cookie中,同时, cookie 记录了 SessionID 属于哪个域。
- 当用户第二次访问服务器时,请求将自动确定此域下是否有cookie信息,如果存在, cookie信息也自动发送到服务端,服务端将从cookie中获取 SessionID,然后根据会议ID寻找相应的会议信息,如果没有找到,表示用户未登录或登录失败,如果找到 Session, 用户会登录来执行下列操作.

如何处理分布式环境中的会议?
在分布式环境中,客户端请求可以通过负载平衡分配给不同的服务器,如果用户请求两次不落在同一服务器上,则新服务器上不会记录用户状态。
该怎么办?您可以使用分布式缓存,如Redis,存储 Session,并将其共享到多个服务器之间。

如果客户不能使用 cookies 怎么办?
客户可能无法使用Cookie,例如浏览器不允许Cookie,或客户是Android、IOS等。
现在我该怎么办?我如何储存会话ID?我如何将其发送到服务端?
首先,会话ID存储,可以由客户端的本地存储器使用,例如浏览器的会话存储器。
接下来怎么传呢?
- 链接到URL:直接使用 SessionID作为URL请求参数
- 将请求项放在请求项中:将会议ID放在请求项中,这是比较常见的。
TCP
告诉我们更多关于TCP的三向握手机制
TCP提供一个面向连接的服务,必须在数据传输之前建立,而TCP连接由三个握手建立。
同步意味着客户端要与服务器同步数据
三次握手的过程:
- 一开始,客户端和服务器都处于CLOSE状态,服务器对客户端的要求倾听并进入 LISTEN状态
- 客户端端发送连接请求,首先握手(SYN=1, seq=x),然后发送后,客户端进入SYN_SENT状态
- 服务器确认连接,第二次握手(SYN=1, ACK=1, seq=y, ACKnum=x+1),发送后,服务器进入SYN_RCV状态。
- 客户收到服务终止的确认后,再次向服务端确认,这是第三手(ACK=1,ACKnum=y+1),发送完毕后,客户端输入 ESTABLISHED状态,当服务器端接收这个包时,它也进入了 ESTABLISHED 状态。

为什么握手三次,为什么不两次,为什么不四次?
为什么不能是两次?
如果第三个握手不告诉服务器端客户端发送接收到服务器端的数据,服务器端不知道该客户端是否收到返回到服务器端的信息。
当服务器重新打开端口连接时,服务端口将认为连接是可用的,并且端口将保持开放,直到客户端因加班重新发送请求。
为什么不是四次?
简单地说,三个哨子足够创建一个可靠的连接,不需要更多的哨子来造成更多的时间建立连接。
每次没有收到消息时,你握手三次会发生什么事?
- 第一个握手服务端不会接收SYN消息服务端不会采取任何行动,客户从服务端口没有收到确认消息一段时间了,等一会儿,然后再发送SYN消息,如果仍然没有回应,会重复这个过程,直至传送数量超过最大再传送限额,这将返回连接创建失败。
- 第二次握手客户端没有收到服务器的响应的ACK消息将继续传送,直到数目有限;然后服务器将在接受()处封锁并等待客户端发送ACK消息
- 第三个接手服务端用于接收客户端发送回ACK消息服务端也将使用类似的客户端加班再传输机制,如果重复数超过限度,然后接受()调用返回 -1,服务器未能设置连接;此时客户端认为他已成功设置连接,他们开始向服务器发送数据,但服务端的接受()系统调用已返回,此时不在监听状态,因此,当服务器接收到发送给客户端的数据时,它会发送给客户端的ST消息,删除客户端单边连接创建的状态。
第二手回到ACC,为什么再回到SYN呢?
ACK是用来告诉客户端收到的数据是正确的。
返回SYN是告诉客户,服务最终响应的确是客户发送的讯息。
第三方能携带数据 吗?
第三手可以携带数据。
客户端现在处于“STABLISHED”状态。 对于客户端来说,它成功地建立了连接,并确认服务器的接收和发送能力正常。
第一手不携带数据是由于安全原因,因为如果允许携带数据,攻击者每次携带大量数据在SYN消息中,导致服务端花更多的时间和空间处理这些消息,导致CPU和内存消耗。
半联队列与SYN洪水袭击之间的关系?
什么是半连接队列?
一个半连接的队列存储三个未完成的握手连接,一个完全连接的队列存储三个完成的握手连接。
在TCP进入三个握手之前,服务端从封闭状态转换为 LISTEN状态,同时内部创建两个队列:半联队列(SYN队列)和全联队列(ACCEPT队列)。

- 当TCP震动三次时,客户端将SYN发送到服务器上,然后在收到SYN后响应ACK和SYN,状态由 LISTEN变为SYN_RCVD,此时连接被推入SYN队列,即半连接队列。
- 当客户端答复ACK时,服务端收到三个握手完成。 此时,连接等待特定应用程序被删除,然后在它被删除之前,它被推入ACCEPT队列,即整个连接队列。
Syn Flood是什么?
SYN Flood是典型的DDos攻击.它在短时间内,伪造一个不存在的IP地址,发送大量SYN消息到服务器。当服务器响应SYN+ACK消息时,ACK 将 不 收到 任何 答复 ;然后,SYN队列中的连接将不相配,SYN接收机队列(半连接队列)将随着时间的推移被服务端占用。这阻止服务器服务正常用户。

那么解决办法是什么?
主要有syn cookies 和SYN Proxy防火墙等.
- syn cookie:收到SYN包后,服务器按照某种方法,用数据包的源地址、端口等参数计算一个cookie值,作为您的SYNACK包的序列数,答复SYN+ACK后,服务器不会立即分配资源处理,收到发件人的ACK包后,根据数据包的源地址和端口重新计算数据包中的认证序列数目,如果正确,设置连接,否则丢弃该包。
- SYN代理防火墙:服务器防火墙作为代理,响应接收到的SYN消息,并保持半连接。 发送者返回ACK包后,重新构建SYN包并发送到服务器,创建一个真正的TCP连接。
说TCP波是四次的?
TCP四种振动过程:
- 数据传输完毕后,双方通信可以启动调停连接的请求,这里假设客户端启动
- 客户端发送释放连接消息,首先挥动(FIN=1, seq=u),然后发送后,客户端输入 FIN_WAIT_1状态。
- 服务器发送了确认消息,第二次挥动(ACK=1, ack=u+1, seq =v),然后发送后,服务器输入CLOSE_WAIT状态,客户端接收了这个确认包并输入 FIN_WAIT_2状态。
- 服务器发送释放连接消息,第三次挥动(FIN=1, ACK1, seq=w, ack=u+1),然后发送后,服务器进入LAST_ACK状态,等待客户端的最后ACK。
- 客户发送确认消息,第四波(ACK=1,seq=u+1,ack=w+1),客户端从服务器端收到关闭请求,发送一个确认包,并输入 TIME_WAIT状态,等待一个固定的时间(两个最大寿命周期,2MSL,2最大段寿命)。没有服务器端的ACK接收,考虑到服务器端正常关闭了连接,于是他自己关闭了联系,进入封闭状态。服务器端收到此确认包后,关闭连接,进入封闭状态。

为什么TCP需要振动四次?
因为只有当客户端和服务端没有发送数据时才能切断TCP。当客户端发送 FIN消息时,它只能确保客户端不会发送任何数据。不知道服务器是否没有数据传输客户端。收到客户端 FIN消息后,服务器只能以确认消息向客户端作出答复,通知客户端我的服务器收到了您的 FIN消息。但服务器上还有一些尚未完成的数据,只要这些数据被发送到服务结束时,客户可以发送 FIN消息到服务结束时(因此不能同时发送确认消息和 FIN消息给客户,只是我来过这里不止一次。
客户发送第四波确认消息后,为什么需要2msL才能释放TCP连接?
如果第四个波浪消息丢失,服务不会收到确认Ack消息,它会检索第三个波浪消息,所以消息是逐一个。最长的时间是2MSL,所以需要这么长时间才能确认服务确实收到了它。

生命计时器有什么用处?
除了等待时间计时器外,TCP还有一个维护计时器。
设想下面的场景: 客户端已主动建立与服务器的TCP连接.但客户主机突然崩溃了。显然,服务器不再能够接收客户端发送的数据。因此,应该采取措施阻止服务器等待.这需要使用生命计时器。
每次服务器接收客户端的数据,重新设置生命计时器,时间设置通常是两小时。如果客户没有收到数据两个小时,服务端发送检测信息,后来,每75秒发一次。如果在连续10段检测后仍未收到客户响应,服务端认为客户有故障,然后关闭连接。
过分夸张会造成什么问题?我们如何解决这些问题?
CLOSE-WAIT国家意味着什么?
收到客户关闭连接的请求并确认后,你将处于封闭的等待状态。此时,服务端可能仍未传输一些数据,因此,连接不能立即关闭,CLOSE-WAIT状态用于确保发送的数据在连接关闭前由服务端处理。
时间等待的意义是什么?
TIME-WAIT状态发生在第四波,当客户端在发送ACK确认消息到服务端后进入 TIME-WAIT状态时,其存在的意义主要有两个方面:
- 防止客户端从服务端收到 FIN 消息后立即关闭旧连接包,但服务端的相应港口目前尚未关闭,如果客户端在同一端口创建一个新的连接,这可能导致新的连接接收从旧连接中剩余的数据包,造成意外的异常。
- 确保连接正确关闭假设客户端发送的最后的ACK包在传输过程中丢失,由于TCP协议的超时再传输机制,服务结束时将重新发出财务报表,如果客户不保持“时间等待”状态并直接关闭,当收到从服务端重新发送 FIN包时,客户将使用RST包来响应服务终止,导致服务终止认为有错误,然而, 实际的连接过程关闭是正常的.

说的是TCP消息头条的格式?
- 16位元端口编号:源端口编号,主机所在的地方;目标端口编号,上层协议或应用程序发送的
- 32位序列数(32 bit sequence number):在TCP通信中(从TCP连接到中断)在传输方向的每个字节的字节流数。
- 32位元确认编号:用于响应向另一方发送的TCP消息段,其值是接收的TCP消息段的序列值加上1。
- 四个字节:表示在tcp字节中有多少32位字节(4字节)。 因为最大4位字节可以识别15位字节,最大TCP字节是60字节。
- 6点标记:URG(如紧急标记有效),ACk(表示确认号码是否有效),PST(缓冲区尚未填满),RST(要求另一方重建连接),SYN(创建连接消息标记访问),FIN(通知另一方关闭连接)
- 16位元窗口大小:是TCP流量控制的手段。 这里所述的窗口是指接收通知窗口,它告诉另一端的TCP接收器有多少字节数据可以存储在缓冲区,这样另一端可以控制发送数据的速度。
- 16位元校正及:由传送器填充,接收器在TCP消息段执行CRC算法,以验证在传输过程中是否损坏TCP消息段。注意,这个测试不仅包括TCP头,也包括数据部分。这也是TCP可靠传输的重要保证.
- 16位紧急指针:正偏差。它添加序列字段的值,以表示最近的紧急数据的下一个序列的序列。因此,确切地说,这个字段是紧急指针与当前序列的移动,它可以称为紧急调动。TCP紧急指针是发送紧急数据从发送器到接收器的方式。

TCP如何保证可靠性?
TCP主要提供测试和序列数/确认响应、超时再传输、最大消息长度、滑窗控制等实现可靠性传输的方法。
- 连接管理:TCP使用三个握手和四个哨声来确保可靠的连接被建立和释放。
- 检查和:TCP将保持其初始和数据检查和。 这是一次端到端检查,旨在检测传输过程中的数据的任何变化。
本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/28390.html。