首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

计算机网络(五) 运输层

(接收方应用程序收到的数据块和发送方应用程序发出的数据块不一定具有对应大小的关系,但是收到的字节流完全一样) 2.2..2 TCP 的连接 每一条 TCP 连接有两个端点 TCP 连接的断点叫做套接字...,等待对方的确认,在收到确认后再发送下一个分组 出现差错: 接收方 B 接收 M1 检测出了差错,就丢弃 M1,不通知发送方 A 收到有差错的分组 M1 在传输过程中丢失了 在上面两种情况下,B 都不会发送任何信息...如果是重复的确认,则将其丢弃 停止等待协议的要点: 停止等待:发送方每次只发送一个分组,在收到确认后 1 再发送下一个分组 编号:对发送的每个分组和确认都进行编号 自动重传请求:发送方为每个发送的分组设置一个超时计时...发送窗口在没有收到确认,可以连续把窗口内的数据全部发送出去;接收窗口只允许接收落入窗口内的数据。 例子: 图片 如果 A 的发送窗口内的序号都已用完,但没有收到确认,则必须停止发送。...图片 发送方的应用进程把字节流写入 TCP 的发送缓存,接收方的应用进程从 TCP 的接收缓存中读取字节流

46440

运输层

那么在TCP中就有两种方式来实现可靠传输了 停止等待协议 连续 ARQ 协议 2.2.3.1停止等待协议 “停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。...停止等待协议有两种情况: 无差错情况 出现差错 ? 在接收方 B 会出现两种情况: B 接收 M1 检测出了差错,就丢弃 M1,其他什么也不做(不通知 A 收到有差错的分组)。...缺点:不能发送方反映出接收方已经正确收到的所有分组的信息。 如果发送发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认。...过程: A 的 TCP B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x,表明传送数据的第一个数据字节的序号是 x。...TCP 服务进程通知高层应用进程。从 A 到 B 这个方向的连接就释放了,TCP 连接,处于半关闭状态。B 若发送数据,A 仍要接收。

77021
您找到你想要的搜索结果了吗?
是的
没有找到

TCP协议详解

这样,不可靠的传输信道就能够实现可靠传输了 停止等待协议 全双工通信的双方既是发送方也是接收方。把传送的数据单元都称为分组。“停止等待”就是每发完一个分组就停止发送,等待对方的确认。...要实现超时重传,就要在每发送完一个分组设置一个超时计时 发送完一个分组后,必须暂时保留已发送的分组的副本(在发生超时重传使用)。...缺点是不能发送方反映出接收方已经正确收到的所有分组的信息 TCP 报文段的首部格式 TCP 虽然是面向字节流的,但 TCP 传送的数据单元却是报文段。一个 TCP 报文段分为首部和数据两部分。...TCP 的窗口单位是字节,不是报文段 避免死锁:TCP 为每一个连接设有一个持续计时(persistence timer)。只要 TCP 连接的一方收到对方的零窗口通知,就启动持续计时。...接着 A 重传一次确认,重新启动 2MSL 计时。最后,A 和 B 都正常进入到 CLOSED 状态。

1.2K50

面试系列之-通信协议中的tcp与udp(JAVA基础)

为满足TCP协议的这些特点,TCP协议做了如下的规定:[10] ①数据分片:在发送端对用户数据进行分片,在接收端进行重组,由TCP确定分片的大小并控制分片和重组; ②到达确认:接收端接收到分片数据,根据分片数据序号发送发送一个确认...; ③超时重发:发送方在发送分片时启动超时定时,如果在定时超时之后没有收到相应的确认,重发分片; ④滑动窗口:TCP连接每一方的接收缓冲空间大小都固定,接收端只允许另一端发送接收端缓冲区所能接纳的数据...第一次握手:客户端打算建立TCP连接服务发出连接请求报文段,同步位SYN=1,初始序列号seq=x,这时,客户端进程进入SYN-SENT(同步已发送)状态。...第二次握手:服务收到连接请求报文段后,如果同意建立连接,则客户端发送确认报文段。其中SYN=1,ACK=1,初始序号seq=y,确认号ack=x+1。...客户端收到来自服务的确认后,进入FIN-WAIT-2(终止等待2)状态,等待服务发出的连接释放报文段。 第三次挥手:若服务已经没有要向客户端发送的数据,其应用进程就通知TCP释放连接。

18810

【计算机网络】学习笔记,第五篇:运输层(谢希仁版)

TCP 不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系。 但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。...那么在TCP中就有两种方式来实现可靠传输了 停止等待协议 连续 ARQ 协议 A:停止等待协议 “停止等待”就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。...停止等待协议有两种情况:① 无差错情况 、② 出现差错情况 ① 无差错情况 ② 出现差错情况 在接收方 B 会出现两种情况: B 接收 M1 检测出了差错,就丢弃 M1,其他什么也不做(不通知 A 收到有差错的分组...A 的 TCP B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x,表明传送数据的第一个数据字节的序号是 x。...TCP 服务进程通知高层应用进程。 从 A 到 B 这个方向的连接就释放了,TCP 连接处于半关闭状态。B 若发送数据,A 仍要接收。

94220

计算机网络之TCPUDP协议详解

TCP 是⾯连接的、可靠的、面向字节流的传输层通信协议 面向连接:只能一对一连接,不能一对多 可靠:无论的网络链路中出现了怎样的链路变化,TCP 都可以保证⼀个报文⼀定能够到达接收端(依靠各种机制...是面向连接的运输层协议 每一条TCP连接只能由两个端点,每一条TCP连接只能是点对点的 TCP提供可靠交付的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,并且按序到达 面向字节流 2.UDP基础知识...,接收端会返回一个确认应答消息,表示接受到消息 但是网络中的线路有可能导致传输过程中出现各种问题,比如数据丢失,TCP就引入了重传机制来解决这个问题 超时重传:在发送数据,设计一个计时,如果在规定时间内未返回...TCP 首部中的 "窗口大小" 字段, 通过ACK端通知发送端 窗口大小字段越大, 说明网络的吞吐量越高 接收端一旦发现自己的缓冲区快满了, 就会将窗口大小设置成一个更小的值通知发送发送端接受到这个窗口之后...模块刚开始发送数据并不知道网络中的实际情况,所以用一种试探的方式平滑增加 cwnd的大小,慢启动如果不加以控制的话,会使得 cwnd快速增长,导致网络拥塞 那么慢启动涨到什么时候会停止呢—> 在TCP控制中定义了一个状态量

2.5K11

计算机网络之传输层-传输控制协议(TCP)

每一条TCP连接只有两个端点; 3. 可靠交付: 无差错, 不丢失, 不重复, 按序到达; 4. 全双工通信; 5. 面向字节流;(流: 字节序列。...第一次握手:客户服务发送连接请求段:(SYN=1,seq=x)。 SYN=1:建立连接请求控制段 。...第一次挥手:客户服务发送释放连接报文段:(FIN=1,seq=u)。 FIN=1:发送端数据发送完毕,请求释放连接。 seq=u:传输的第一个数据字节的序号是u 。...TCP流量控制 流量控制:协调发送方与接收方的数据发送与接收速度。 在通信过程中,接收方设置报文段的接收窗口字段来将窗口大小通知发送方。 ? 5....调整好新的阈值和新的拥塞窗口后,使用慢启动,拥塞避免算法增加拥塞窗口 大小。 ? 4. 快速恢复 当发生3次重复确认,网络拥塞程度不是很严重,需要进行快速恢复。 新的阈值:为当前拥塞窗口的一半。

76410

传输层 复习

停止等待协议的原理 无差错的情况 AB每发送一个分组,都要停止发送,等待B的确认应答;A只有收到了B的确认应答后才能发送下一个分组。 分组丢失和出现差错的情况 发送者拥有超时计时。...每发送一个分组便会启动超时计时**,等待B的应答。若超时仍未收到应答,则A会重发刚才的分组。...每发送一个分组就要启动计时,超时就要重发分组。 计时的超时时间要大于应答的平均返回时间,否则会出现很多不必要的重传,降低传输效率。但超时时间也不能太长。...共2^32个序号;序号增加到2^32-1,下个序号就回到0。TCP是面向字节流的,在一个TCP连接中传送的字节流中的每个字节都按顺序编号。...持续计时 为了避免流量控制引发的死锁,TCP使用了持续计时。每当发送者收到一个零窗口的应答后就启动该计时。时间一到便主动发送报文询问接收者的窗口大小。

41220

Ftp协议知多少

主进程工作步骤 打开熟知端口(21),使客户进程能够连接上 等待客户进程发送连接请求 启动从属进程处理客户进程发送的连接请求,从属进程处理完请求后结束,从属进程在运行期间可能根据需要可创建其他一些子进程...FTP控制连接在整个会话期间都保持打开,只用来发送连接/传送请求。当客户进程服务发送连接请求,寻找连接服务进程的熟知端口21,同时还要告诉服务进程自己的另一个端口号码,用于建立数据传送连接。...从客户服务发送的FTP命令超过30种。下图是比较常用的几种命令: ? 应答都是A S C I I码形式的3位数字,并跟有报文选项。...图27-5给出了服务客户所在数据连接端发布主动打开的连接状态。服务端点是端口2 0。 ?   服务总是执行数据连接的主动打开。...通常服务也执行数据连接的主动关闭,除非当客户服务发送流形式的文件,需要客户来关闭连接(它给服务一个文件结束的通知)。

91320

(图文并茂,权威最详细)Wireshark抓包分析 TCP三次握手四次挥手详解

TCP将用户数据打包成报文段,发送后会启动一个定时,然后另一端收到的数据进行确认、对失序的数据重新排序、丢弃重复数据。...面向字节流。面向字节流的含义:虽然应用程序和TCP交互是一次一个数据块,但应用程序交下来的数据仅仅是一连串的无结构的字节流 ? TCP报文首部,如下图所示: ?...终止比特FIN:FIN=1,表明此报文段的发送端的数据已经发送完毕,并要求释放传输连接。 窗口:用来控制对方发送的数据量,通知发放已确定的发送窗口上限。...下面来逐步分析三次握手过程: 第一次握手: 客户端服务发送连接请求包,标志位SYN(同步序号)置为1,序号为X=0 ? ?...客户端发送一个SYN和ACK都置为1的TCP报文,设置初始序号Y=0,将确认序号(Acknowledgement Number)设置为客户的序列号加1,即X+1 = 0+1=1, 如下图: ? ?

31.3K89

计算机网络之运输层1 功能2 UDP与TCP异同可靠传输的工作原理可靠传输的实现TCP 报文段的首部格式TCP 的流量控制TCP的拥塞控制

1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务进入SYN_RECV状态 第三次握手:客户端收到服务的SYN+ACK包,服务发送确认包ACK(ack=k+1),此包发送完毕...包,服务发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务进入ESTABLISHED状态,完成三次握手....停止等待协议 1 注意 在发送完一个分组后,必须暂时保留已发送的分组的副本 分组和确认分组都必须进行编号 超时计时的重传时间应当比数据在分组传输的平均往返时间更长一些 ?...流量控制举例 持续计时(persistence timer) TCP 为每一个连接设有一个持续计时 只要 TCP 连接的一方收到对方的零窗口通知,就启动持续计时 若持续计时设置的时间到期...当 cwnd > ssthresh 停止使用慢开始算法而改用拥塞避免算法。 当 cwnd = ssthresh ,既可使用慢开始算法,也可使用拥塞避免算法。

1.2K80

计算机网络思维导图学习总结(五)

TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点。这样的端点就叫做套接字(socke) 或插口。套接字用(IP地址:端口号)来表示。 停止等待协议能够在不可靠的传输网络上实现可靠的通信。...每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下- .个分组。分组需要进行编号。 超时重传是指只要超过了一段时间仍然没有收到确认,就重传前面发送过的分组(认为刚才发送的分组丢失了)。...在停止等待协议中,若接收方收到重复分组,就丢弃该分组,但同时还要发送 确认。 连续ARQ协议可提高信道利用率。发送方维持一个发送窗口,凡位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。...在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。首部中的序号字段值则指的是本报文段所发送的数据的第一一个字 节的序号。 TCP首部中的确认号是期望收到对方下一个报文段的第一个数据字节的序号。...任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后就进入半关闭状态。当另一方也没有数据再发送,则发送连接释放通知,对方确认后就完全关闭了TCP连接。

43900

TCP协议

发送缓存用来暂时存放以下数据: ①发送应用程序传送给发送方TCP准备发送的数据; ②TCP已发送出但尚未收到确认的数据 接收缓存用来存放以下数据: ①按时到达的但尚未被接受应用程序读取的数据。...5)TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。 2、TCP连接管理 TCP是面向连接的协议。...在TCP连接建立的过程中要解决一下三个问题: 1)要使每一方都能够通知对方的存在。 2)要允许双方协商一些参数(如最大窗口值,是否使用窗口扩大选项、时间戳选项以及服务质量等)。...TCP把连接作为最基本的抽象,每一条TCP连接有两个端点,TCP连接的端点不是主机,不是主机的IP地址,不是应用程序,也不是传输层的协议端口。TCP连接的端口叫做套接字(socket)或插口。...TCP连接的建立采用客户/服务方式。主动发起建立连接的应用程序叫做客户机(client),而被动等待连接建立的应用进程叫做服务(server)。

76810

TCP协议

发送缓存用来暂时存放以下数据: ①发送应用程序传送给发送方TCP准备发送的数据; ②TCP已发送出但尚未收到确认的数据 接收缓存用来存放以下数据: ①按时到达的但尚未被接受应用程序读取的数据。...5)TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。 2、TCP连接管理 TCP是面向连接的协议。...在TCP连接建立的过程中要解决一下三个问题: 1)要使每一方都能够通知对方的存在。 2)要允许双方协商一些参数(如最大窗口值,是否使用窗口扩大选项、时间戳选项以及服务质量等)。...TCP把连接作为最基本的抽象,每一条TCP连接有两个端点,TCP连接的端点不是主机,不是主机的IP地址,不是应用程序,也不是传输层的协议端口。TCP连接的端口叫做套接字(socket)或插口。...TCP连接的建立采用客户/服务方式。主动发起建立连接的应用程序叫做客户机(client),而被动等待连接建立的应用进程叫做服务(server)。

53110

TCPIP体系

每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。 TCP提供可靠交付的服务。即传送的数据无差错、不丢失、不重复且按序到达。 TCP提供全双工通信。 TCP是面向字节流的。...面向字节流的含义是: 虽然应用程序和TCP的交互是一次一个数据块(大小不等),但是TCP把应用程序交下来的数据仅仅看成一连串无结构的字节流。TCP并不知道所传送的字节流的含义。...TCP/IP的三次握手: 客户端服务端发起建立连接请求,客户端会随机生成一个起始序列号x,客户端服务端发送的字段中包含标志位SYN=1,序列号seq=x。...四次挥手: A的应用进程先向其TCP发出连接释放报文段(FIN=1,seq=u),并停止发送数据,主动关闭TCP连接,进入FIN-WAIT-1(终止等待1)状态,等待B的确认。...此时TCP未释放掉,需要经过时间等待计时设置的时间2MSL(最大报文段生存时间)后,A才进入CLOSED状态。

42030

尽力详解:计网基础 ·运输层

TCP 连接的端点叫做套接字 (socket),套接字=IP:port。 ---- 停止等待协议 其实这点已经是初见端倪了。...我们也把指数增长阶段称之为慢启动,线性增长阶段称之为拥塞避免。 ---- 超时 == 拥塞?...1)序号(sequence number):Seq序号,占32位,用来标识从TCP源端目的端发送的字节流,发起方发送数据对此进行标记。...为的是确认服务端是否收到客户端发出的ACK确认报文 当客户端发出最后的ACK确认报文,并不能确定服务端能够收到该段报文。所以客户端在发送完ACK确认报文之后,会设置一个时长为2MSL的计时。...服务端在1MSL内没有收到客户端发出的ACK确认报文,就会再次客户端发出FIN报文; 如果客户端在2MSL内,再次收到了来自服务端的FIN报文,说明服务端由于各种原因没有接收到客户端发出的ACK

55720

计算机网络传输层知识点全覆盖

PS2:seq=u,u-1是AB发送的最后一个字节的序号。 第二次挥手 B收到连接释放请求后,会通知相应的应用程序,告诉它AB这个方向的连接已经释放。...停止等待协议的原理 无差错的情况 AB每发送一个分组,都要停止发送,等待B的确认应答;A只有收到了B的确认应答后才能发送下一个分组。 分组丢失和出现差错的情况 发送者拥有超时计时。...每发送一个分组便会启动超时计时,等待B的应答。若超时仍未收到应答,则A会重发刚才的分组。...每发送一个分组就要启动计时,超时就要重发分组。 计时的超时时间要大于应答的平均返回时间,否则会出现很多不必要的重传,降低传输效率。但超时时间也不能太长。...持续计时 为了避免流量控制引发的死锁,TCP使用了持续计时。每当发送者收到一个零窗口的应答后就启动该计时。时间一到便主动发送报文询问接收者的窗口大小。

1.4K40

TCP的滑动窗口是怎么回事,不来了解一下吗?

序号 在tcp连接中,数据是以字节流的形式进行发送,而传送的字节流中的每一个字节都需要按顺序编号,而tcp头部的序号字段保存的就是字节流的第一个字节的序号。该字段占4个字节。...发送窗口:在没有接收到接收端的确认的情况下,发送端可以连续的发送窗口内的数据,发送出去的数据,在没有接收到接收端的确认,需要暂时保存,以便在超时之后进行重传。...我们举一个例子: 如果接收端发送发送了0窗口报文,那么此时发送端不能再发送数据,此时接收端的数据处理完,有了一定的存储空间,就向发送发送一个非零窗口通知,而恰巧这个非零窗口的通知丢失了,那么发送端就会一直等待接收端的非零窗口通知...那么tcp是如何解决这个问题的呢?...tcp为每一个连接都设置了一个持续计时,只要tcp接收到一次零窗口通知,那么就会启动计时,如果计时超时了,那么就会发送一个零窗口探测报文,而接收端接收到这个探测报文之后就会返回自己当前最新的可接收窗口值

49020

TCP协议和UDP协议

每一条TCP连接唯一地被通信两端的两个端点所确定,所谓的端点就是套接字(或插口)。...,每一条TCP链接只能是点对点的(一对一) 1.1.3TCP提供可靠交付的服务 (1)可靠传输的工作原理 ①停止等待协议: “停止等待”就是每发送完一个分组就停止发送,等待对方确认。...快重传算法规定:发送方一连收到三个重复的确认,就应当进行快重传。 快速恢复:当出现超时的时候,不启动慢开始,而是执行快恢复算法。发送方调整门限值=出现超时的cwnd(拥塞窗口)/2。...关闭连接,服务端收到FIN报文,并不会立刻关闭SOCKET,先回复ACK报文,等到服务端的所有报文都发送完了,才发送FIN报文。所以不能三次完成,将ACK和FIN不能放在一起发送。...如果接收方回复窗口大小仍然为零,则发送方的探测定时加倍。没有收到ACK发送探测包的最大次数之后连接超时。 (10)什么叫糊涂窗口综合征?

1.2K20

Http请求的过程与原理

UDP主要特点: (1)UDP是无连接的,即发送数据之前不需要建立连接(当然,发送数据结束也没有连接可以释放),因此减少了开销和发送数据之前的延。...TCP允许通信双方的应用进程在任何时候都能发送数据。 (5)面向字节流。TCP中的“流”指的是流入到进程或从进程流出的字节序列。...面向字节流的含义是:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但是TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。...浏览的主要功能是服务发出请求,在浏览窗口中展示请求的网络资源,HTTP 是基于计算机网络进行通信的规则。 HTTP 请求是指:客户端通过发送 HTTP 请求服务请求对资源的访问。...它服务传递了一个数据块。也就是请求信息。 HTTP原理: ? 当我们输入 www.baidu.com 会发生什么?

1.8K10
领券