欢迎访问澳门市亚游app官网下载有限公司网站!请记住我们的网址: 0477-563657860


技术设备

当前位置 : 首页 > 技术设备 > 企业形象

TCP/IP协议簇之TCP问题 探讨(待更新)

点击: 78535  编辑:亚游app官网下载 时间:2021-04-07

本文摘要:OSI 七层模型​什么是TCP ?

OSI 七层模型​什么是TCP ?TCP(Transmission Control Protocol 传输控制协议)是一种面向毗连的、可靠的、基于字节省的传输层通信协议什么是面向毗连?面向毗连不是指物理层面的电路的毗连, 是指通信双方在通信历程中保持某种状态,直到通信竣事。一条tcp毗连的建设,对TCP协议自己而言,实质是意味着通信双方序列号、错误校验等机制的协商完成。

而数据传输的途径,如路由路径的选择则是ip层或者说网络层的事情。即在已经建设的TCP毗连中,路由路径可能会有变更,可是通信双方的序列号、错误校验等机制并不会变更,这就像在传输层层面确立了一条 “虚电路”,这就是面向毗连。为什么TCP是可靠的?1.TCP面向毗连,确保通信历程中双方状态是可知且稳定的,直到通信竣事。2. TCP 的报文有序号机制,确保报文可以按序排列并实时发现数据丢失等异常。

3.TCP 含有差错校验机制 ,发送端在发送时候盘算校验和,校验和的盘算笼罩TCP首部和携带信息,在吸收端举行磨练,如果泛起差错,则将会抛弃这段TCP报文并要求重。4.TCP 报文存在确认应答,发送的报文必须获得确认应答才视为正常到达吸收方。5. TCP 有超时重传机制,当发送方在一定时间内未收到ACK确认应答,则会举行重传。

什么是面向字节省?TCP面向字节省,在通信建设后,双方都市建设缓冲区,对应为发送缓冲区和吸收缓冲区,类似两个蓄水池,水池中的水则对应为字节,数据的传输就向蓄水池之间水的流动。(TCP/UDP 区别与比力?面向数据报是什么? 待写 )TCP怎么建设毗连?TCP 的毗连历程俗称三次握手。

第一次 : 客户端向服务端发送一个SYN包(同步序列编号,=x),第二次: 服务端收到客户端发来的SYN包后,也回应一个差别的SYN(=Y) 包,并发送一个ACK包(确认包,ack=x+1)第三次: 客户端收到服务端发来的SYN包,回应一个ACK(=Y+1)包。之后就可以正式举行通信了。​为什么建设毗连要送三次握手?两次不行吗首先,由于TCP毗连是全双工的,在毗连时需要确认双向通道是否都是可用。如果两次握手就建设毗连,很容易因为第二次握手时发送的回复确认数据包没有正确到达对方而造成双方都在等候,形成死锁。

其次,三次握手可以制止由于已经失效的毗连请求报文突然又传送到了服务器而造成的错误。因为网络的不确定性,我们假设当有一个TCP客户端发出的毗连请求没有丢失,只是因为在网络结点中滞留的时间过长,而由于TCP的客户端迟迟没有收到确认报文,以为服务器没有收到,会重新向服务器发送这条报文,如果今后客户端和服务器经由两次握手完成毗连,传输数据,然后关闭毗连。

而恰好之前滞留在网络路由的那一次毗连请求,此时刚刚到达服务器。这个报文本该是算作是失效的,可是,两次握手的机制将会让服务器打开毗连,这将导致不须要的错误和资源的浪费。

而接纳三次握手的话,纵然服务器收到了无效的数据包,而且发送一个毗连请求给客户端,可是客户端并不举行理睬,服务器就会知道这次毗连是无效的。毗连建设之后突然断掉怎么办?在TCP规范之外,大多数的TCP实现中都含有保活计时器选项,即keep Alive。和http协议的keepAlive差别,http协议的保活主要为了延长毗连时间。

而tcp的keepAlive主要为了探测毗连是否异常,在毗连空闲两小时后,一方会主动发送一个探测分组来完成保活功。主要是为服务器应用法式提供的。

保活定时器默认设置是每隔两小时发送一次报文,每次重发10次,每次75秒超时。其他定时器?: https://blog.csdn.net/qq_33951180/article/details/60468267 TCP的定时器TCP毗连如何关闭?TCP毗连的关闭历程俗称“四次挥手”首先,客户端历程发出释放毗连的FIN报文,表现我想关闭这个毗连。服务器收到后,会返回客户端一个ACK报文,表现我知道了,不外我要先确保我这边要传给你的数据正常传输完。

等服务器所有数据传输完了,服务端则关闭这个毗连,并发送一个FIN报文,表现 我这边发送完了,毗连我马上就关。客户端收到后,会返回一个ACK 表现,ok 你的数据我全部吸收到了,我也待会儿就关。收到最后一个ACK后,服务端会关闭毗连,而客户端则要等候2MSL 时间后举行关闭。​为什么要等候2MSL?MSL 是Maximum Segment Lifetime 最大报文存活时间,2MSL 恰美意味着报文往返一趟的最大时间。

第一,为了保证主动关闭方的最后一个ACK报文能够到达被动关闭方。这个ACK报文段有可能丢失,如果主动方发送完ACK报文段后就立刻关闭毗连,而最后一个ACK报文又未定时到达被动方,被动方就无法正常关闭。

当设立等候2MSL 时间, 被动方如果没收到最后的ACK报文,会超时重传自己的上一个FIN+ACK报文段,而主动方就能在2MSL时间内收到这个重传的FIN+ACK报文段,并也举行重传最后的ACK报文并重新计时2MSL,这样,被动刚刚能更可靠的正常关闭毗连。第二,A在发送完ACK报文段后,再经由2MSL时间,就可以使本毗连连续的时间所发生的所有报文段都从网络中消失。

这样就可以使下一个新的毗连中不会泛起这种旧的毗连请求的报文段。ACK是什么?ACK的发送机制?liuTCP协议中,吸收方乐成吸收到数据后,会回复一个ACK数据包,表现已经确认吸收到ACK确认号前面的所有数据。ACK字段长度为32位,能表现0~2^32-1之间的值。

需要注意的是ACK不是每吸收一个包就会发送一个ACK。为了降低网络流量的消耗,ACK有延迟确认和捎带确认机制。捎带确认: 如果吸收方有数据要发送,那么就会在发送数据的TCP数据包里,带上ACK信息。

这样做,可以制止大量的ACK以一个单独的TCP包发送,淘汰了网络流量。延迟确认 :一般ACK延迟发送的时间为200ms,但这个200ms并非收到数据后需要延迟的时间。系统有一个牢固的定时器每隔200ms会来检查是否需要发送ACK包。如果200ms内没有能够捎带ACK的数据包,则会将此200ms内的序号最大的ACK发送出去。

讲明在此序号前的数据包都已经收到。TCP的数据流分为哪几种?分为交互数据流和成块数据流。交互数据流:主要应用场景为交互性/实时性场景的数据流,特点是会发生许多小分组报文。例如使用Telnet、Rlogin远程登录,每敲击一个键就会传输一个字符,这个历程会发生四次数据交互,假设我们在当地机械敲击 q 键1、客户端发生一个41bit长的报文(20字节的IP首部,20字节的TCP首部,1字节的数据),发送到服务端;2、服务端发送过来一个40bit简直认报文;3、服务端发送回显的字符,报文长为41bit;4、客户端发送确认报文,报文长为40bit。

可以看到这些小分组报文中TCP和IP头部就占了40字节,真正用于历程的有效数据报文长度很是小,这意味着大量的报文头部将会占用相当多的网络资源。如果在局域网中,通常不会有什么贫苦,因为局域网一般不会泛起拥塞,但在广域网中,这些小分组则会增加网络拥塞泛起的可能。为了提高这类数据的发送效率和降低网络肩负,TCP接纳了两种计谋:捎带ACK和Nagle算法。

但要注意的是,Nagle不是必须的,可以禁用。成块数据流:对应交互数据流,相比而言对实时性要求不高,不需要发送大量小分组,可以将分组打包成块发送的数据流。网络上大部门的数据流都是成块数据流。什么是Nagle算法?Nagle算法的原则是在建设的TCP毗连中,最多只能有一个未收到ACK确认的小分组报文。

小分组,指的是小于建设毗连时协商的MSS(最大报文段长度)尺寸的数据块。Nagle算法的规则(可参考tcp_output.c文件里tcp_nagle_check函数注释):(1)如果包长度到达MSS,则允许发送;(2)如果该包为紧迫数据或包罗FIN(即关闭毗连的字段),则允许发送;(3)设置了TCP_NODELAY选项,则允许发送;(4)未设置TCP_CORK选项时,若所有发出去的小数据包(包长度小于MSS)均被确认,则允许发送;(5)上述条件都未满足,但发生了超时(一般为200ms),则立刻发送。不满足上述发送条件的小分组会和发送缓冲区中新来的分组打包在一起,直到满足发送条件并发出。注意: Nagle可以被禁用,只需设置TCP_NODELAY选项。

Nagle算法完全由TCP协议的ACK机制决议,这会带来一些问题,好比如果对端ACK回复很快的话,Nagle事实上不会拼接太多的数据包,虽然制止了网络拥塞,网络总体的使用率依然很低。但在网络资源有限的情况下是十分有效淘汰网络带宽的占用。Nagle算法只允许一个未被ACK的包存在于网络,它并不管包的巨细,因此它事实上就是一个扩展的停-等协议,只不外它是基于包停-等的,而不是基于字节停-等的。

TCP的流量控制机制?滑动窗口协议。TCP发送数据需要划定窗口巨细,在起初的TCP实现中,窗口的巨细是牢固的,现在则是滑动窗口,即窗口巨细会随着网络状况而举行动态变化。在发送端,我们将数据报文分为四类,1.已发送且被确认 2.已发送未被确认3.可发送但尚未发送4.不行发送发送端的窗口内包罗已发送但未被确认的数据和可发送但尚未发送的数据。

窗口巨细会随着吸收方返回的ACK包中的通告窗口字段的巨细而变化。该值实质上表现的是吸收方缓存区可用空间。

当窗口内已发送数据被确认,窗口将会举行移动以确保窗口内的数据都是没有被确认,并会调整窗口巨细开始发送数据。当发送方收到的ACK中 窗口巨细为0,则会停止发送。直到吸收方返回窗口巨细大于0的ACK包。

如果对方一直没有返回ACK呢?TCP会有零窗口探测机制 零窗口探测定时器为什么要举行流量控制?双方在通信的时候,发送方的速率与吸收方的速率是纷歧定相等,如果发送方的发送速率太快,会导致吸收方处置惩罚不外来,这时候吸收方只能把处置惩罚不外来的数据存在缓存区里(失序的数据包也会被存放在缓冲区里)。如果缓冲区满了发送方还在疯狂着发送数据,吸收方只能把收到的数据包丢掉,大量的丢包会极大着浪费网络资源,因此,我们需要控制发送方的发送速率,让吸收方与发送方处于一种动态平衡才好。对发送方发送速率的控制,我们称之为流量控制。

什么是紧迫数据?在许多传输层中有带外数据的观点,即此数据优先级较高,且不应和普通数据使用同样的传输通道。通常只会在缓冲区中分配一个区域存放特定的高优先级的数据,并不会单独新建毗连。TCP中并没有真正的带外数据,可是提供了一种紧迫模式的机制,即紧迫数据。

该机制会确保即便数据的流动会因为TCP的流量控制而停止,紧迫数据却总是无障碍地发送到对端。注意:UDP未实现此机制TCP 中的拥塞控制机制?拥塞机制是为了防止在时间段内向网络发送太多数据包导致网络路由或链途经载,导致阻塞、丢包等问题。TCP的拥塞机制主要分为四个部门:慢开始 、 拥塞制止、快重传 、 快恢复。

1.慢开始 : 在建设毗连后,由于不清楚网络的负载,如果一开始就发送大量数据包极易造成阻塞。更合适的做法是由小到大逐步试探可以发送的拥塞窗口cwnd的巨细,每收到一个ACK,cwnd加一。.差别TCP版本的实现中慢开始的初始值还差别,这里我们以 cwnd=1( 1个最大报文短长度 MSS ) 开始。

第一轮: cwnd=1 发送一个数据 , 收到一个ACK返回 第二轮 : cwnd =1+1=2 发送两个数据, 之后收到两个ACK 第三轮 :cwnd=2+2=4 发送四个数据,之后收到 四个ACK 第四轮 :cwnd =4+4=8 .......... 可以看出慢开始窗口增长速率是以 2**n 的指数级别举行增长, 慢开始的慢并不是指发送窗口增长速率慢,而是单单指初始值很小,很慢。由于指数级此外增长实在太快,到最后险些无法制止阻塞。因此,还需要设置一个阈值 ssthresh 来 防止窗口增长过快。

而且仅当窗口小于此阈值的时候才允许以慢开始的方式举行发包。当拥塞窗口大于此阈值时,TCP就会启用另一种算法:拥塞制止2. 拥塞制止: 拥塞制止并不是指完全制止拥塞,更像是指让制止拥塞来得太快。其焦点思想是让拥塞窗口cwnd缓慢的增大,即每经由一个往返时间RTT就把发送方的拥塞窗口cwnd加1。

经由慢开始和拥塞制止两个算法,窗口还是在增大,只是增大速率变慢了,早晚还是会到达阻塞。无论是在哪个阶段发生了阻塞,ssthresh 都要变为拥塞前的一半,而窗口则又从1 开始,即又举行慢开始算法。​在发生阻塞时,吸收方由于缓存溢出会发生丢包,会发生失序报文。

TCP的重传定时器会在某个数据包在划定时间内未收到ACK而举行重传,这导致确认阻塞的历程将比力耗时。为相识决这个问题,TCP又引入快速重传和快速恢复机制。3. 快速重传 快速重传划定吸收方如果发现报文失序,需要立刻一连发送三次重复确认,且无需等候捎带和计时。发送方一连收到三个重复确认后判断网络可能发生阻塞,因为失序报文也可能是单纯地在网络路由中传送太久,并未发生阻塞。

4 快速恢复收到三个重复确认后,网络只是可能阻塞,为了只管不降低网络传输效率,不应该立刻从cwnd=1开始执行慢开始。快速恢复接纳将ssthresh 和cwnd设为原先拥塞窗口的一半,并开始执行拥塞制止,这样就实现了快速恢复的效果。​TCP的定时器 (待更新) 以下内容也待更新什么是UDP ?UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是一种面向无毗连的简朴不行靠的信息传送服务。

UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。可是正因为UDP协议的控制选项较少,在数据传输历程中延迟小、数据传输效率高。UDP传输数据之前源端和终端不建设毗连,当它想传送时就简朴地去抓取来自应用法式的数据,并尽可能快地把它扔到网络上TCP和UDP的区别 ?TCP面向毗连,可靠,基于字节省,而UDP不面向毗连,不行靠,基于数据报。

TCP保证数据按序发送,按序到达。UDP只卖力最大限度快速向网络路由中发送数据包,不保证是否到达,如何到达。

TCP面向毗连,所以只能一对一。UDP面向无毗连,可以一对一,一对多TCP有拥塞控制和流量控制,UDP没有,UDP只会努力去保证发送的速率。在传输相同巨细的数据时,TCP首部开销20字节;UDP首部开销8字节,5. 什么是http 协议?HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到当地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来通报数据的属于应用层的协议。

HTTP协议事情于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

Web服务器凭据吸收到的请求后,向客户端发送响应信息。6.http协议有什么特点?1、简朴快速:客户向服务器请求服务时,只需传送请求方法和路径。

请求方法常用的有GET、HEAD、POST。每种方法例定了客户与服务器联系的类型差别。

由于HTTP协议简朴,使得HTTP服务器的法式规模小,因而通信速度很快。2、灵活:HTTP允许传输任意类型的数据工具。正在传输的类型由Content-Type加以标志。3.无毗连:无毗连的寄义是限制每次毗连只处置惩罚一个请求。

服务器处置惩罚完客户的请求,并收到客户的应答后,即断开毗连。接纳这种方式可以节约传输时间。4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处置惩罚没有影象能力。

缺少状态意味着如果后续处置惩罚需要前面的信息,则它必须重传,这样可能导致每次毗连传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。5、支持B/S及C/S模式。

7.什么是B/S 模式 什么是C/S模式C/S 架构是一种典型的两层架构,其客户端包罗一个或多个在用户的电脑上运行的法式,而服务器端有两种,一种是数据库服务器端,客户端通过数据库毗连会见服务器端的数据;另一种是Socket服务器端,服务器端的法式通过Socket与客户端的法式通信。它的主要特点是交互性强、具有宁静的存取模式、网络通信量低、响应速度快、利于处置惩罚大量数据。BS(Browser/Server):浏览器----服务器结构,是现在应用系统的生长偏向。

在这种结构下,通过浏览器来进入事情界面,主要事务逻辑在服务器端(Server)实现使得客户端电脑负荷大大简化,减轻了系统维护、升级的支出成本。8. C/S 模式和B/S模式的特点与区别?(1)C/S 用户牢固,一般只应用于局域网中,要求拥有相同的操作系统,如果对于差别操作系统还要相应开发差别的版本,而且对于盘算机电脑设置要求也较高。

优点:------------●能充实发挥客户端PC的处置惩罚能力,许多事情可以在客户端处置惩罚后再提交给服务器,所以CS客户端响应速度快。  ●操作界面漂亮、形式多样,可以充实满足客户自身的个性化要求。

  ●C/S结构的治理信息系统具有较强的事务处置惩罚能力,能实现庞大的业务流程。  ●宁静性能可以很容易保证,C/S一般面向相对牢固的用户群,法式越发注重流程,它可以对权限举行多条理校验,提供了更宁静的存取模式,对信息宁静的控制能力很强。

一般高度秘密的信息系统接纳C/S结构适宜。●需要专门的客户端安装法式,漫衍功效弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和设置。

缺点:--------------  ●兼容性差,对于差别的开发工具,具有较大的局限性。若接纳差别工具,需要重新改写法式。  ●开发、维护成本较高,需要具有一定专业水准的技术人员才气完成,发生一次升级,则所有客户端的法式都需要改变。  ●用户群牢固。

由于法式需要安装才可使用,因此不适合面向一些不行知的用户,所以适用面窄,通常用于局域网中。(2)B/S 要求有操作系统和浏览器就行,与操作系统平台无关(可以实现跨平台),对客户端的盘算机电脑设置要求较低。优点:--------●漫衍性强,客户端零维护。只要有网络、浏览器,可以随时随地举行查询、浏览等业务处置惩罚。

  ●业务扩展简朴利便,通过增加网页即可增加服务器功效。  ●维护简朴利便,只需要改变网页,即可实现所有用户的同步更新。  ●开发简朴,共享性强。

缺点:个性化特点显着降低,无法实现具有个性化的功效要求。  ●在跨浏览器上,BS架构不尽如人意。  ●客户端服务器端的交互是请求-响应模式,通常动态刷新页面,响应速度显着降低(Ajax可以一定水平上解决这个问题)。

无法实现分页显示,给数据库会见造成较大的压力。  ●在速度和宁静性上需要花费庞大的设计成本。  ●功效弱化,难以实现传统模式下的特殊功效要求。

亚游app官网下载

9.HTTP请求的组成?请求行(request line)、请求头部(header)、空行和请求数据四个部门组成。10. htttp状态码?1xx:指示信息--表现请求已吸收,继续处置惩罚2xx:乐成--表现请求已被乐成吸收、明白、接受3xx:重定向--要完成请求必须举行更进一步的操作4xx:客户端错误--请求有语法错误或请求无法实现5xx:服务器端错误--服务器未能实现正当的请求常见状态码:200 OK //客户端请求乐成302 //重定向400 Bad Request //客户端请求有语法错误,不能被服务器所明白401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用403 Forbidden //服务器收到请求,可是拒绝提供服务404 Not Found //请求资源不存在,eg:输入了错误的URL500 Internal Server Error //服务器发生不行预期的错误503 Server Unavailable //服务器当前不能处置惩罚客户端的请求,一段时间后可能恢复正常10. HTTP 请求方法?GET 请求指定的页面信息,并返回实体主体。HEAD 类似于get请求,只不外返回的响应中没有详细的内容,用于获取报头POST 向指定资源提交数据举行处置惩罚请求(例如提交表单或者上传文件)。

数据被包罗在请求体中。POST请求可能会导致新的资源的建设和/或已有资源的修改。PUT 从客户端向服务器传送的数据取代指定的文档的内容。

DELETE 请求服务器删除指定的页面。CONNECT HTTP/1.1协议中预留给能够将毗连改为管道方式的署理服务器。

OPTIONS 允许客户端检察服务器的性能。TRACE 回显服务器收到的请求,主要用于测试或诊断。

11. GET POST区别?首先,最直观的区别就是GET把参数包罗在URL中,POST通过request body通报参数。因此,GET请求只能举行url编码,而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记载里,而POST中的参数不会被保留。

GET请求在URL中传送的参数是有长度限制的,而POST没有。对参数的数据类型,GET只接受ASCII字符,而POST没有限制。GET请求是明文,不宁静其次,GET和POST都是HTTP协议内的请求方法,本质上都是基于TCP/IP毗连的数据包,因为HTTP的划定和服务器的限制,在应用中有差别的偏向。

差距主要是GET只发送一次TCP包,而POST发送两次对于GET方式的请求,浏览器会把请求头和请求数据一并发送出去,服务器响应200 OK(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送请求,服务器响应200 ok(返回数据)。(在网络状况好的情况下,发一次包和两次包,影响不大,可是在网络状况欠好的时候,两次包对于确保数据的完整性有着很大的优势。

)(并不是所有浏览器发送POST请求时都市发送两个TCP包,Firefox 只发送一次)11. 什么是HTTPS协议HTTPS协议实在在HTTP协议的基础上使用了SSL宁静协议的数据传输协议。12.HTTP和HTTPS的区别HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头HTTP 是不宁静的,而 HTTPS 是宁静的HTTP 尺度端口是80 ,而 HTTPS 的尺度端口是443在OSI 网络模型中,HTTP事情于应用层,而HTTPS 的宁静传输机制事情在传输层HTTP 无法加密,而HTTPS 对传输的数据举行加密HTTP无需证书,而HTTPS 需要CA机构wosign的发表的SSL证书13 在浏览器输入网址回车后,发生了什么https://www.cnblogs.com/wupeixuan/p/8747918.html首先,如果输入的是网址不是IP地址,则需要先举行DNS剖析。

浏览器先从自身的DNS缓存中寻找对应网址的缓存条目,找不到则在操作系统的缓存里寻找,然后再去hosts文件中寻找。再没找到的话,浏览器会将剖析域名的请求发送给专门的DNS服务器,让服务器帮助剖析,以此来获得网址对应的IP地址。获得IP地址之后,开始建设TCP三次握手,建设毗连,发送http请求,获得对应的html代码。

获得html代码后,浏览器举行剖析并对html代码中的资源举行请求,并对页面举行渲染,最终出现给用户一个网页界面。14. icmp 协议icmp 协议用来确定网络是否可达,设计初衷是为ip减轻肩负。即先帮ip判断网络是否正常连通,如果确定连通ip再开始15. ftp等应用法式的事情流程应用法式去挪用DNS剖析把域名转成ip,然后要求tcp建设毗连,tcp开始封包给ip,ip查路由表判断直连非直连,然后判断到底剖析哪个ip地址,然后发送arp的二层广播包,所有网络里的主机都市搜到这个包,只有一个主机发现自己的ip地址正好是对方要的,它就会回复一个ARP的二层单播包给发送方,发送方现在有地址了,有映射了,可以发包了。


本文关键词:亚游app官网下载
返回首页
AG手机版下载 丝瓜成年人app下载 亚博APP安全有保障 环球体育