TCP是什么意思
TCP是一种传输控制协议,是面向连接的、可靠的、基于字节流之间的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,TCP完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)里面,TCP层是在IP层上面,应用层下面的一个中间层。不同主机的应用层之间经常会要用到可靠的、像管道一样的连接,但是IP层不会提供这样的流机制,而是提供不可靠的包交换。扩展资料:当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。参考资料:百度百科-TCP (传输控制协议)
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。拓展资料:在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议是同一层内另一个重要的传输协议。在因特网协议族中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。功能:当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小通常受该计算机连接的网络的数据链路层的最大传送单元限制。之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。
TCP:传输控制协议 (TCP:Transmission Control Protocol)传输控制协议 TCP 是 TCP/IP 协议栈中的传输层协议,它通过序列确认以及包重发机制,提供可靠的数据流发送和到应用程序的虚拟连接服务。与 IP 协议相结合, TCP 组成了因特网协议的核心。由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。这是通过使用 TCP 的“端口号”完成的。网络 IP 地址和端口号结合成为唯一的标识 , 我们称之为“套接字”或“端点”。 TCP 在端点间建立连接或虚拟电路进行可靠通信。TCP 服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。关于流数据传输 ,TCP 交付一个由序列号定义的无结构的字节流。 这个服务对应用程序有利,因为在送出到 TCP 之前应用程序不需要将数据划分成块, TCP 可以将字节整合成字段,然后传给 IP 进行发送。TCP 通过面向连接的、端到端的可靠数据报发送来保证可靠性。 TCP 在字节上加上一个递进的确认序列号来告诉接收者发送者期望收到的下一个字节。如果在规定时间内,没有收到关于这个包的确认响应,重新发送此包。 TCP 的可靠机制允许设备处理丢失、延时、重复及读错的包。超时机制允许设备监测丢失包并请求重发。TCP 提供了有效流控制。当向发送者返回确认响应时,接收 TCP 进程就会说明它能接收并保证缓存不会发生溢出的最高序列号。全双工操作: TCP 进程能够同时发送和接收包。 TCP 中的多路技术:大量同时发生的上层会话能在单个连接上时进行多路复用。
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
两个核心协议:TCP(传输控制协议)和IP(网际协议)TCP使用三次握手协议建立连接。三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。(HTTP是一个客户端和服务器端请求和应答的标准(TCP),它是建立在TCP协议之上的一种应用。)IP实现两个基本功能:寻址和分段。IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。IP协议是找到对方的详细地址,TCP协议是把安全的把数据传输给对方。

运输层知识要点——谢希仁《计算机网络》
为了在计算机网络中有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确规定了所 交换数据的格式 以及有关的 同步 问题。 同步的含义:在一定条件下应当发生什么事件,因而含有时序的意思。网络协议:为进行网络中的数据交换而建立的规则、标准或约定。网络协议由以下三个要素组成:1)语法:即数据与控制信息的结构或格式2)语义:即需要发出何种控制信息,完成何种动作以及做出何种反应3)同步:即事件实现顺序的详细说明一、运输层协议的概述1.1 进程之间的通信1.2 运输层的两个主要协议1.3 运输层的端口二、用户数据报协议UDP2.1 UDP概述2.2 UDP的首部格式三、传输控制协议TCP概述3.1 TCP的最主要的特点3.2 TCP的连接四、可靠传输的工作原理4.1 停止等待协议4.2 连续ARQ协议五、TCP报文段的首部格式六、TCP可靠传输的实现6.1 以字节为单位的滑动窗口6.2 超时重传时间的选择6.3 选择确认SACK七、TCP的流量控制7.1 利用滑动窗口实现流量控制7.2 必须考虑传输效率八、TCP的拥塞控制8.1 拥塞控制的一般原理8.2 几种拥塞控制方法8.3 随机早期检测RED九、TCP的运输连接管理9.1 TCP的连接建立9.2 TCP的连接释放9.3 TCP的有限状态机//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1.1 进程之间的通信1.只有主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到了下三层的功能2.两个主机进行通信就是两个主机中的应用进程互相通信。从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。(IP协议能把分组送到目的主机)网络层时为主机之间提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。3.运输层一个重要功能——复用、分用。 (应用进程复用、分用运输层)1.2 运输层的两个主要协议1.UDP—User Datagram Protocol 用户数据报协议(无连接):DNS/RIP/DHCP/SNMP/NFSTCP—Transmission Control Protocol 传输控制协议(面向连接):SMTP/TELNET/HTTP/ FTP1.3 运输层的端口问题:为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须使用统一的方法(而这种方法必须与特定操作系统无关)对TCP/IP体系的应用进程进行标识。为什么不用进程号来区分?(第一,不同操作系统的进程标识符不同;第二,用功能来识别,而不是进程,例如邮件服务功能,而不管具体是哪个进程)解决方案:在运输层使用协议端口号,即端口。软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址。(端口号只具有本地意义,只是为了标识本计算机应用层中各个进程在和运输层交互时的层间接口。)端口分为两大类:1)服务器使用的端口号:熟知端口号或系统端口号(0~1023);登记端口号(1024~49151)2)客户端使用的端口号:49152~655352.1 UDP概述1.UDP只在IP的数据报服务至上增加了很少一点功能,就是复用、分用以及差错检测功能2.特点1)无连接2)尽最大努力交付3)面向报文 (不合并、不拆分、保留这些报文的边界)4)UDP没有拥塞控制5)UDP支持一对一、一对多、多对一和多对多的交互通信6)UDP的首部开销小,只有8字节应用进程本身可以在不影响应用的实时性的前提下,增加一些提高可靠性的措施,如采用前向纠错或重传已丢失的报文。2.2 UDP的首部格式1.traceroute 让发送的UDP用户数据报故意使用一个非法的UDP端口号,接收方丢弃报文,并由ICMP(网络控制报文协议)发送“端口不可达”差错报文给发送方。2.计算检验和。IP数据报的校验和只检验IP数据报的首部,但UDP的校验和是把首部和数据部分一起都检验。(12字节的首部+真正的首部+数据来进行校验和的计算)Q1.为什么计算校验和要加12字节的伪首部Q2.计算校验和的原理是什么?3.1 TCP的最主要的特点1.面向连接的运输层协议(建立连接、传输数据、释放连接)2.点对点,每一条TCP连接只能有两个端点3.可靠交付(无差错、不丢失、不重复、并且按序到达)4.全双工通信。TCP连接的两端都设有发送缓存和接收缓存。5.面向字节流。(流指的是流入到进程或从进程流出的字节序列;面向字节流:TCP把应用程序交下来的数据看成是一连串的无结构字节流。 接收方的应用程序必须有能力识别接收到的字节流,把它还原成有意义的应用层数据。 因此TCP可以根据窗口值和当前网络状况调整发送的报文长度。划分短一点,或者积累到足够多再发送出去。)3.2 TCP的连接1.TCP把连接作为最基本的抽象。2.每一条TCP连接有两个端点。TCP连接的端点叫作套接字。套接字soket = (IP地址:端口号)每一条TCP连接唯一地被通信两端的两个端点(即两个套接字)所确定。TCP连接 ::= {socket1, socket2}理想的传输条件有以下两个特点:1)传输信道不产生差错2)不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据实际的网络并不具备,因此:1)出现差错时,让发送方重传2)接收方来不及处理时,及时告诉发送方适当降低发送数据的速度4.1 停止等待协议1.“停止等待”就是没发送完一个分组就停止发送,等待对方的确认,在收到确认后再发送下一个分组。2.超时重传。在每发完一个分组就设置一个超时计时器,如果在超时计时器之前收到对方的确认,就撤销已设置的超时计时器。如果未收到,就认为刚才的分组丢失,并重传。3.三种情况:A发送的分组出错、丢失;B发送的确认丢失;B发送的确认迟到确认丢失:B丢弃重复的分组,向A重传确认确认迟到:A丢弃重复的确认,B丢弃重复分组,并向A重传确认4.常称为自动重传请求ARQ,重传时自动进行的(超时即重传)5.缺点:信道利用率太低U=Td/(Td+RTT+Ta)为了提高传输效率,发送方不使用停止等待协议,而是采用流水线传输。流水线传输就是发送发可连续发送多个分组,不必等每发完一个分组就停顿下来等待对方的确认。(连续ARQ协议和滑动窗口协议)4.2 连续ARQ协议1.位于发送窗口内的分组都可连续发送出去,而不需要等待对方的确认。2.累积确认:接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认。3.缺点:Go-back-N (发送前5个分组,第3个分组丢失,后面三个要重传)1.源端口和目的端口2.序号。 每个字节都按顺序编号。3.确认号。 期望收到对方下一个报文段的第一个数据字节的序号。若确认号=N,则表明:到序号N-1为止的所有数据都已正确收到。4.数据偏移。 指出TCP报文段的数据起始处距离TCP报文段的起始处有多远(也即TCP报文段首部长度)。由于首部中还有长度不确定的选项字段,因此数据偏移字段是必要的。5.窗口。窗口字段明确指出了现在允许对方发送的数据量。窗口值是经常在动态变化着。6.1 以字节为单位的滑动窗口1.发送缓存用来暂存:1)发送应用程序传送给发送方TCP准备发送的数据;2)TCP已发送但未收到确认德尔数据2.接收缓存用来存放:1)按序到达的、但尚未被接收应收程序读取的数据;2)未按序到达的数据3.注意三点:1)A的发送窗口是根据B的接收窗口设置的,但是在同一时刻,由于网络传输的滞后,A的发送窗口并不总是B的接收窗口一样大2)TCP通常对不按序到达的数据是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程3)TCP接收方有累计确认功能(不能过分推迟发送确认,否则会导致发送方不必要的重传)6.2 超时重传时间的选择1.超时重传时间设置太短,会引起很多不必要的重传;如果设置太长,使网络的空闲时间增大,降低传输效率。2.新的RTTs = (1-a)x(旧的RTTs) + ax(新的RTT样本),其中RTT样本的时间为:记录一个报文段发出的时间,以及收到相应的确认时间,时间差就是报文段的往返时间RTT。3.RTO = RTTs + 4 x RTTd,其中RTO为超时重传时间,RTTd是RTT的偏差的加权平均值。新的RTTd = (1-b) x (旧的RTTd)+ b x |RTTs - 新的RTT样本|4.一个问题:发送一个报文段,设定的重传时间到了,还没有收到确认。于是重传报文段。经过一段时间,收到了确认报文段。现在的问题是:如何判定此确认报文段是对先发送的报文段的确认,还是对后来重传的报文段的确认?1)解决方法1,在计算加权平均值RTTs时,只要报文段重传了,就不采用其往返时间样本。引入的问题:报文段的时延突然增大的情况2)解决方法2,报文段每重传一次,就把超时重传时间RTO增大一些(一般是2倍)。当不在发生报文段的重传时,再根据加权平均计算。6.3 选择确认SACKSACK文档并没有指明发送发应当怎样响应SACK。因此大多数的实现还是重传所有未被确认的数据块。7.1 利用滑动窗口实现流量控制1.流量控制:就是让发送方的发送速率不要太快,要让接收方来得及接收。2.利用滑动窗口机制可很方便地在TCP连接上实现对发送方的流量控制。发送方的发送窗口不能超过接收方给出的接收窗口的数值。3.死锁情况:B向A发送了零窗口的报文段后不久,B又有了一些缓存空间,因此B向A发送rwnd = 400.然而该报文段在传送过程中丢失。A一直等待B发送的非零窗口的通知,B也一直等待A发送的数据。( 窗口通知不超时重传?为什么? )解决方法:TCP为每个连接设有一个持续计时器。只要一方收到对方的零窗口通知,就启动计时器。计时器到期后,发送一个零窗口探测报文段,而对方就在确认这个探测报文段时给出了现在的窗口值。若仍为零,收到报文段的一方重新设置持续计时器。7.2 必须考虑传输效率1.应用程序把数据传送到TCP的发送缓存后,剩下的发送任务就由TCP来控制了。2.三种不同的机制来控制TCP报文段的发送时机:1)TCP维持一个变量,它等于最大报文段长度MSS,只要缓存中的存放的数据达到MSS,就组装成一个TCP报文段发送出去2)由发送方的应用进程指明要求发送报文段,即TCP支持推送操作3)发送方设置一个定时器3.问题一、若用户只发送一个字节,则非常浪费带宽。解决方法:若发送应用程序把要发送的数据逐个字节地送到TCP的发送缓存,则发送方就把第一个数据字节先发送出去,把后面到达的数据字节都缓存起来。当发送方收到对第一个数据字符的确认后,再把发送缓存中的所有数据组装成一个报文段发送出去。(采用收到确认就发送+并开始缓存的方式;同时当到达的数据已达到发送窗口大小的一半或已达到报文段的最大长度时,就立即发送一个报文段。)4.问题二、糊涂窗口综合症。接收缓存已满,应用程序一次只读取一个字节,然后向发送方发送确认。解决方法:让接收方等待一段时间,使得接收缓存已有足够空间容纳一个最长的报文段,或者等到接收缓存已有一半空闲的空间。则接收方就发出确认报文。8.1 拥塞控制的一般原理1.拥塞的定义:对资源的需求 > 可用资源。 在计算机网络中的链路带宽、交换结点中的缓存和处理机等,都是网络中的资源。2.拥塞解决不能靠解决某一个部分的问题。因为这会将瓶颈转移到其他地方。问题的实质往往是整个系统的各个部分不匹配。只有所有部分都平衡了,问题才会得到解决。3.拥塞控制与流量控制的比较。1)拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制有个前提:网络能够承受现有的网络负荷拥塞控制是一个全局性过程。(发送拥塞时,不知道在某处、什么原因造成的)2)流量控制:点对点通信量的控制,是个端到端的问题流量控制:抑制发送端发送数据的速率,以便使接收端来得及接收。4.寻找拥塞控制的方案无非就是使不等式 “对资源的需求 > 可用资源 ”不再成立的条件。但是必须考虑该措施带来的其他影响。5.计算机网络是个复杂的系统。从控制理论的角度来看拥塞控制,可以分为开环控制和闭环控制两种方法。1)开环控制:设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。但一旦系统运行起来,就不再中途改正。2)闭环控制:基于反馈环路。步骤一、监测网络系统以便检测到拥塞在何时、何处发生;步骤二、把拥塞发生的信息传送到可采取行动的地方步骤三、调整网络系统的运行以解决出现的问题8.2 几种拥塞控制方法(只考虑网络拥塞程度,即假设接收方总是有足够大的缓存空间)1.慢开始和拥塞避免1)发送方维持一个拥塞窗口。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口增大;如果网络出现拥塞,则减小。2)慢开始的思路:由小到大逐渐增大拥塞窗口数值。每收到一个对新的报文段的确认,把拥塞窗口增加至多一个MSS的数值。(没经过一个传输轮次,拥塞窗口cwnd就加倍)轮次:把拥塞窗口所允许发送的报文段都连续发送出去,并收到了对已发送的最后一字节的确认。慢开始的“慢”并不是指cwnd的增长速率慢,而是指TCP开始发送报文段时先设置cwnd=1(一个MSS数值)。3)慢开始门限ssthresh为防止拥塞窗口增长过大,引入一个慢开始门限ssthresh。当cwnd < ssthresh时,使用上述的慢开始算法当cwnd > ssthresh时,停止使用慢开始算法而改用拥塞避免算法4)拥塞避免算法思路:让拥塞窗口cwnd缓慢增大,即没经过一个往返时间RTT就把发送方的拥塞窗口cwnd增加1,而不是加倍。5)慢开始门限的设置只要发送方判断网络出现拥塞(没有按时收到确认),就把慢开始门限ssthresh设置为出现拥塞时发送方窗口值的一半,然后把拥塞窗口cwnd重置为1,执行慢开始算法。6)乘法减小和加法增大乘法减小:网络出现拥塞时,把慢开始门限ssthresh减半(当前的ssthresh的一半),并执行慢开始算法。加法增大:执行拥塞避免方法2.快重传和快恢复1)快重传(尽快重传未被确认的报文段)首先,要求接收方每收到一个失序的报文段后就立即发出重复确认。(如接收方收到了M1和M2后都分别发出了确认,但接收方没有收到M3但接着收到了M4。此时接收方立即发送对M2的重复确认。)其次,发送方只要一连收到三个重复确认,就应当立即重传对方尚未收到的报文段M3.2)快恢复要点一、当发送方连续收到三个重复确认,就执行“乘法减小”算法,把慢开始门限ssthresh减半。要点二、由于发送方认为网络很可能没有发生拥塞(因为收到了连续的重复确认),把cwnd设置为慢开始门限ssthresh减半后的值,然后开始执行拥塞避免算法慢开始算法只在TCP连接建立时和网络出现超时才使用。3.发送方的窗口发送方窗口的上限值 = Min [rwnd, cwnd]8.3 随机早期检测RED(IP层影响TCP层的拥塞控制)1.网络层的分组丢弃策略网络层的策略对TCP拥塞控制影响最大的就是路由器的分组丢弃策略。如果路由器队列已满,则后续到达的分组将都被丢弃。这就叫做尾部丢弃策略。2.全局同步由于TCP复用IP,若发生路由器中的尾部丢弃,就可能会同时影响到很多条TCP连接,结果就使许多TCP连接在同一时间突然都进入到慢开始状态。全局同步使得全网的通信量突然下降了很多,网络恢复正常后,其通信量又突然增大很多。3.随机早期检测RED使路由器的队列维持两个参数,即队列长度最小门限THmin和最大门限THmax。当每一个分组到达时,RED就先计算平均队列长度Lav。RED算法是:1)若平均队列长度小于最小门限THmin,则把新到达的分组放入队列进行排队2)若平均队列长度超过最大门限THmax,则把新到达的分组丢弃3)若平均队列长度在最小门限THmin和最大门限THmax之间,则按照某一概率p将新到达的分组丢弃。随机体现在3),在检测到网络拥塞的早期征兆时(即路由器的平均队列长度超过一定的门限值时),就先以概率p随机丢弃个别的分组,让拥塞控制只在个别的TCP连接上进行,因而避免发生全局性的拥塞控制。4.平均队列长度Lav和分组丢弃概率pLav = (1-d) x (旧的Lav) +d x (当前的队列长度样本)p = ptemp / (1- count x ptemp)ptemp = pmax x (Lav - THmin) / (THmax - THmin)TCP时面向连接的协议。运输连接就有三个阶段:连接建立、数据传送和连接释放运输连接的管理:使运输连接的建立和释放都能正常地进行。在TCP连接建立过程中要解决以下三个问题:1)要使每一方能够确知对方的存在2)要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳等等)3)能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配9.1 TCP的连接建立1.TCP规定,SYN=1报文段不能携带数据,但消耗一个序号2.TCP规定,ACK=1报文段可以携带数据,如果不携带数据则不消耗序号3.为什么A还要发送一次确认?为了防止已失效的连接请求报文突然又传送到B,因而产生错误。“已失效的连接请求报文段”A发出第一个连接请求报文段,在网络中滞留超时,又发出了第二个连接请求。但B收到第一个延迟的失效的连接请求报文段后,就误认为是A又发出了一次新的连接请求。于是就向A发出确认报文段,同意建立连接。假定不采用三次握手,那么只要B发出确认,新的连接就建立。此时A不会理睬B的确认,也不会发数据,但B一直等A发送数据,B的许多资源就浪费了。采用三次握手,A不会向B发送确认,因此B就知道A并没有要求建立确认。9.2 TCP的连接释放1.TCP规定,FIN报文段基石不携带数据,也消耗一个序号2.第二次握手后,TCP通知高层应用程序,因而从A到B这个方向的连接就释放,TCP连接处于半关闭状态3.为什么A在TIME-WAIT状态必须等待2MSL的时间1)为了保证A发送的最后一个ACK报文段能够到达B。因为ACK可能丢失,此时B可能会超时重传,然后A重传确认,并重新启动2MSL计时器2)防止“已失效的连接请求报文段”出现在本连接中。可以使本连接持续时间内所产生的所有报文段都从网络中消失。 9.3 TCP的有限状态机

tcp和udp的特点和区别
TCP协议的主要特点(1)TCP是面向连接的运输层协议;(2)每一条TCP连接只能有两个端点(即两个套接字),只能是点对点的;(3)TCP提供可靠的传输服务。传送的数据无差错、不丢失、不重复、按序到达;(4)TCP提供全双工通信。允许通信双方的应用进程在任何时候都可以发送数据,因为两端都设有发送缓存和接受缓存;(5)面向字节流。虽然应用程序与TCP交互是一次一个大小不等的数据块,但TCP把这些数据看成一连串无结构的字节流,它不保证接收方收到的数据块和发送方发送的数据块具有对应大小关系,例如,发送方应用程序交给发送方的TCP10个数据块,但就受访的TCP可能只用了4个数据块久保收到的字节流交付给上层的应用程序,但字节流完全一样。UDP协议特点(1)UDP是无连接的传输层协议;(2)UDP使用尽最大努力交付,不保证可靠交付;(3)UDP是面向报文的,对应用层交下来的报文,不合并,不拆分,保留原报文的边界;(4)UDP没有拥塞控制,因此即使网络出现拥塞也不会降低发送速率;(5)UDP支持一对一 一对多 多对多的交互通信;(6)UDP的首部开销小,只有8字节。TCP和UDP的区别(1)TCP是可靠传输,UDP是不可靠传输;(2)TCP面向连接,UDP无连接;(3)TCP传输数据有序,UDP不保证数据的有序性;(4)TCP不保存数据边界,UDP保留数据边界;(5)TCP传输速度相对UDP较慢;(6)TCP有流量控制和拥塞控制,UDP没有;(7)TCP是重量级协议,UDP是轻量级协议;(8)TCP首部较长20字节,UDP首部较短8字节;扩展资料:TCP的可靠性原理可靠传输有如下两个特点:a.传输信道无差错,保证传输数据正确;b.不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据;(1)首先,采用三次握手来建立TCP连接,四次握手来释放TCP连接,从而保证建立的传输信道是可靠的。(2)其次,TCP采用了连续ARQ协议(回退N,Go-back-N;超时自动重传)来保证数据传输的正确性,使用滑动窗口协议来保证接方能够及时处理所接收到的数据,进行流量控制。(3)最后,TCP使用慢开始、拥塞避免、快重传和快恢复来进行拥塞控制,避免网络拥塞。基于TCP和UDP的常用协议HTTP、HTTPS、FTP、TELNET、SMTP(简单邮件传输协议)协议基于可靠的TCP协议。TFTP、DNS、DHCP、TFTP、SNMP(简单网络管理协议)、RIP基于不可靠的UDP协议常见协议的端口号FTP的20、21端口,21端口用来侦听用户的连接请求,而20端口用来传送用户的文件数据。TELNET 23SMTP 25DNS 53TFTP 69HTTP 80SNMP的161、162端口。SNMP的161端口用于SNMP管理进程获取SNMP代理的数据,而162端口用于SNMP代理主动向SNMP管理进程发送数据
tcp:提供面向连接的服务,数据传输前先建立连接,传输完毕后释放连接,提供可靠连接; udp:发送数据前不需要先建立连接,发送后也不需要释放连接,减少开销和延迟,但不保证可靠交付。

每一条TCP连接只能是点对点的,所以一条TCP 连接只能有_______个端点??
只能有2个端点。因为TCP头里存放了一个源IP地址、一个源端口号、一个目的IP地址、一个目的端口号,所以只能对应到两个端点,分别为源和目的

关于tcp协议的一些问题
tcp的连接的双方都是用序列号来标识自己发送的每一个报文,接收到对方的报文后会使用确认号表示收到。确认号是收到的报文序列号加1。如果窗口为8,丢掉了第5个,而6、7、8正常到达,接收方会对接收到的报文根据序列号排序,发现第五个报文没有到达,从而会向发送方请求重传,即对第4个报文表示确认,没有收到第5个。 对于发送方来说,在窗口允许的范围内发送的报文都会等待对方的确认,如果在规定时间内没有收到确认他会进行重传。第五个数据包肯定会重传。那第五个的哪些数据包后面还要重新传一遍吗?如果发送方将第五个数据重传至接收方后,接收方对报文排序后,会对第八个报文确认,当确认报文到达发送方时,发送方的重传时钟还未完结就不会重传后面的报文。但如果确认报文回来时,发送方的重传时钟已经完结,就要重传。 2、tcp使用端口号来分隔上层的应用程序。每台主机的应用层可能会同时启用多种服务和远程的多台主机建立连接。如:一边浏览网页一边使用pps看电影。网页服务器和影视服务器的IP肯定是不同的。所以TCP是使用远程主机的IP和端口号来唯一的表示一个连接。UDP也是这样的。UDP和tcp的区别只是控制信息较少。

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/45693.html。