TCP与UDP协议
tcp协议与 udp协议的区别
tcp协议与 udp协议的区别TCP协议与UDP协议的区别概述:TCP(传输控制协议)和UDP(用户数据报协议)是互联网中最常用的传输层协议。
它们在数据传输的可靠性、连接性、速度和资源消耗等方面有着显著的区别。
本协议旨在详细介绍TCP协议和UDP协议的区别。
一、连接性:1. TCP协议:TCP协议是一种面向连接的协议,通信前需要建立连接,然后才能进行数据传输。
在通信过程中,TCP协议通过三次握手建立连接,并通过四次挥手关闭连接。
TCP协议提供可靠的数据传输,确保数据的完整性和顺序。
2. UDP协议:UDP协议是一种无连接的协议,通信双方不需要建立连接即可直接传输数据。
UDP协议不提供可靠性保证,数据传输过程中可能丢失、重复或乱序。
二、数据传输可靠性:1. TCP协议:TCP协议通过序列号、确认应答、重传机制等手段保证数据传输的可靠性。
如果数据包丢失或损坏,发送方会重新发送数据,直到接收方正确接收。
2. UDP协议:UDP协议不提供数据传输的可靠性保证,数据包的丢失、损坏或乱序在UDP 中是常见的情况。
UDP适用于实时性要求高、对数据传输可靠性要求较低的应用场景,如音频、视频流传输等。
三、数据传输效率:1. TCP协议:TCP协议通过拥塞控制、流量控制等机制保证网络的稳定和公平性,但这也导致了一定的传输延迟。
TCP协议的传输效率相对较低,适用于对实时性要求不高的应用场景。
2. UDP协议:UDP协议没有拥塞控制等机制,传输效率较高。
UDP协议适用于对实时性要求高、对传输延迟要求较低的应用场景,如在线游戏、实时通信等。
四、资源消耗:1. TCP协议:TCP协议需要维护连接状态、序列号等信息,占用较多的内存和计算资源。
同时,TCP协议的拥塞控制机制也会占用一定的带宽。
2. UDP协议:UDP协议不需要维护连接状态等信息,占用的内存和计算资源相对较少。
UDP 协议的资源消耗较低。
五、适用场景:1. TCP协议:TCP协议适用于对数据传输可靠性要求较高的应用场景,如网页浏览、文件传输等。
TCP与UDP的区别及其应用
TCP与UDP的区别及其应用TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种互联网传输协议,它们在数据传输过程中有着不同的特点和应用场景。
本文将从协议特点、工作原理、优缺点和应用场景等方面对TCP和UDP进行比较,并探讨它们在实际应用中的差异。
1.协议特点TCP是一种面向连接的、可靠的传输协议,它保证数据的可靠传输和数据的顺序性。
具体来说,TCP通过三次握手建立连接,通过滑动窗口和确认机制来保证数据的可靠传输,通过序号和应答机制来保证数据的顺序性。
因此,TCP适合对数据传输可靠性要求高的应用场景,比如文件传输、网页浏览等。
UDP是一种无连接的、不可靠的传输协议,它不保证数据的可靠传输和数据的顺序性。
具体来说,UDP没有建立连接的过程,也没有确认机制和序号机制,因此对数据传输的可靠性和顺序性没有保证。
UDP适合对实时性要求高的应用场景,比如音视频传输、实时游戏等。
2.工作原理TCP和UDP的工作原理有着明显的区别。
TCP的工作原理如下:1)建立连接:客户端与服务器端通过三次握手建立连接,确定通信双方的初始序号。
2)数据传输:数据传输过程中,TCP采用滑动窗口和确认机制来保证数据的可靠传输,采用序号和应答机制来保证数据的顺序性。
3)断开连接:数据传输完成后,客户端与服务器端通过四次挥手断开连接,释放资源。
UDP的工作原理如下:1)数据传输:客户端通过封装数据包,直接发送给服务器端,不需要建立连接。
2)不可靠性:数据传输过程中,UDP不保证数据的可靠传输和数据的顺序性,也没有确认机制和序号机制。
3)实时性:由于UDP没有建立连接的过程和确认机制,因此传输延迟较小,适合对实时性要求高的应用场景。
3.优缺点TCP和UDP各有其优缺点,根据具体的应用场景选择合适的传输协议。
TCP的优点如下:1)可靠性高:TCP采用滑动窗口和确认机制来保证数据的可靠传输,保证数据不丢失、不重复、按序传输。
TCP与UDP的区别
TCP与UDP的区别TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是互联网中最常用的两种传输协议。
它们在数据传输时有着不同的特点和应用场景。
本文将从连接性、可靠性、速度和应用场景等方面对TCP和UDP进行比较,以便读者更好地理解它们之间的区别。
连接性。
TCP是一种面向连接的协议,它在数据传输前需要先建立连接,然后进行数据传输,最后再释放连接。
这种连接性保证了数据传输的可靠性,但也带来了一定的延迟。
相比之下,UDP是一种无连接的协议,它不需要在数据传输前建立连接,也不需要在数据传输后释放连接。
这种无连接性使得UDP在传输速度上有一定的优势,但也意味着数据传输的可靠性较差。
可靠性。
由于TCP是面向连接的协议,它在数据传输时会进行数据包的重传、排序和校验,以确保数据的可靠传输。
这种可靠性保证了数据传输的完整性和正确性,但也使得TCP在传输速度上有一定的损失。
相比之下,UDP不提供数据包的重传、排序和校验,因此在数据传输时可能会丢失部分数据包,导致数据传输的不完整或不正确。
这种可靠性较差的特点使得UDP更适合一些对数据传输要求不是很高的应用场景。
速度。
由于TCP在数据传输时需要进行连接的建立和释放、数据包的重传、排序和校验等操作,因此在传输速度上相对较慢。
相比之下,UDP不需要进行连接的建立和释放、数据包的重传、排序和校验等操作,因此在传输速度上相对较快。
这种速度上的优势使得UDP更适合一些对传输速度要求较高的应用场景,比如实时音视频传输、在线游戏等。
应用场景。
基于TCP的应用场景主要包括网页浏览、电子邮件、文件传输等对数据可靠性要求较高的应用。
由于TCP提供了数据包的重传、排序和校验等功能,因此在这些应用场景下能够确保数据的完整性和正确性。
相比之下,基于UDP的应用场景主要包括实时音视频传输、在线游戏、实时监控等对传输速度要求较高的应用。
有关TCPUDP的使用例子
有关TCPUDP的使用例子TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是网络通信中常用的两种传输协议。
它们在应用层之下的传输层提供了不同的传输方式和特性。
下面是关于TCP和UDP的使用例子。
1.聊天应用程序TCP协议适用于需要可靠传输的应用场景,比如聊天应用程序。
用户在手机或电脑上运行聊天应用程序,发送聊天信息给其他用户。
TCP协议确保信息按照发送的顺序接收,并且在传输过程中不会受到丢包或乱序的影响。
每个聊天消息的发送和接收都通过TCP连接完成,确保信息的可靠传输。
2.文件传输TCP协议也适用于大文件传输。
例如,用户需要通过互联网将大型文件发送给其他用户。
TCP协议保证了文件在传输过程中的完整性和准确性。
它会自动检测和纠正丢失或损坏的数据包,并确保接收方和发送方之间的数据一致性。
这种方式适用于需要确保每个数据包都到达的场景,尽管传输速度可能稍慢。
3.实时流媒体UDP协议适用于实时流媒体应用程序,如在线直播或在线游戏。
UDP提供了更低的延迟和更快的传输速率,但不提供像TCP那样的可靠性和顺序性。
在直播或游戏中,用户希望能快速看到视频或游戏画面,而不必要求每个数据包都到达和按顺序排列。
这样,UDP协议的特性更适合这类应用场景。
4.DNS(域名系统)DNS是将域名解析为IP地址的系统。
UDP协议通常用于DNS查询,因为它是一种简单的请求-响应协议。
当用户在浏览器中输入一个域名时,DNS解析请求将通过UDP协议发送到DNS服务器。
UDP快速地将请求传递给服务器,并且不需要进行复杂的连接设置,因为DNS查询通常是短暂而频繁的交互。
5.游戏中的多播UDP也可以用于多播(Multicast)应用,其中一台计算机可以将数据包发送给多个接收者。
在在线游戏中,UDP协议可用于将游戏状态信息快速广播给所有玩家。
多播可以减少网络流量,因为只有一次广播就可以到达多个接收者,而不是向每个接收者发送单独的数据包。
TCP和UDP的区别及各自优缺点区别
TCP和UDP的区别及各⾃优缺点区别区别⼀、是否基于连接TCP是⾯向连接的协议,⽽UDP是⽆连接的协议。
即TCP⾯向连接;UDP是⽆连接的,即发送数据之前不需要建⽴连接。
区别⼆、可靠性和有序性区别TCP 提供交付保证(Tcp通过校验和,重传控制,序号标识,滑动窗⼝、确认应答实现可靠传输),⽆差错,不丢失,不重复,且按序到达,也保证了消息的有序性。
该消息将以从服务器端发出的同样的顺序发送到客户端,尽管这些消息到⽹络的另⼀端时可能是⽆序的。
TCP协议将会为你排好序。
UDP不提供任何有序性或序列性的保证。
UDP尽最⼤努⼒交付,数据包将以任何可能的顺序到达。
TCP的逻辑通信信道是全双⼯的可靠信道,UDP则是不可靠信道区别三、实时性UDP具有较好的实时性,⼯作效率⽐TCP⾼,适⽤于对⾼速传输和实时性有较⾼的通信或⼴播通信。
区别四、协议⾸部⼤⼩TCP⾸部开销20字节; UDP的⾸部开销⼩,只有8个字节。
区别五、运⾏速度TCP速度⽐较慢,⽽UDP速度⽐较快,因为TCP必须创建连接,以保证消息的可靠交付和有序性,毕竟TCP协议⽐UDP复杂。
区别六、拥塞机制UDP没有拥塞控制,因此⽹络出现拥塞不会使源主机的发送速率降低(对实时应⽤很有⽤,如IP电话,实时视频会议等)区别七、流模式(TCP)与数据报模式(UDP);TCP⾯向字节流,实际上是TCP把数据看成⼀连串⽆结构的字节流;UDP是⾯向报⽂的。
区别⼋、资源占⽤TCP对系统资源要求较多,UDP对系统资源要求较少。
TCP被认为是重量级的协议,⽽与之相⽐,UDP协议则是⼀个轻量级的协议。
因为UDP传输的信息中不承担任何间接创造连接,保证交货或秩序的的信息。
这也反映在⽤于承载元数据的头的⼤⼩。
区别九、应⽤每⼀条TCP连接只能是点到点的;UDP⽀持⼀对⼀,⼀对多,多对⼀和多对多的交互通信。
基于UDP不需要建⽴连接,所以且适合多播的环境,UDP是⼤量使⽤在游戏和娱乐场所。
优缺点基于上⾯的区别;TCP和UDP的优缺点也很明显了。
TCP与UDP的区别及其应用
TCP与UDP的区别及其应用TCP(传输控制协议)和UDP(用户数据报协议)是两种不同的传输协议,它们在网络通信中起着非常重要的作用。
虽然它们都是在网络通信中传输数据的协议,但是它们有很大的区别。
在本文中,我将分别介绍TCP和UDP的特点、区别及其在各种应用中的使用。
一、TCP的特点及应用1. TCP的特点TCP是一种面向连接的协议,它在传输数据之前需要先建立连接,然后传输数据,传输结束后再断开连接。
它提供可靠的、按序传输的数据传输服务,能够保证数据的完整性和可靠性。
TCP使用三次握手来建立连接,四次挥手来断开连接,在传输数据时会进行数据校验和确认。
因此,它非常适合对数据传输的要求比较高的应用场景。
2. TCP的应用TCP广泛应用于各种需要可靠传输的应用场景,包括但不限于以下几个方面:(1)网络浏览:当用户访问网页时,浏览器会使用TCP协议与服务器建立连接,传输页面内容。
(2)文件传输:在文件传输过程中,TCP可以保证文件的完整性和可靠性,确保文件在传输过程中不会丢失或损坏。
(3)电子邮件:电子邮件的发送和接收过程中需要使用TCP协议来保证数据传输的可靠性。
(4)远程登录:如Telnet、SSH等远程登录方式都使用TCP协议来传输数据。
(5)数据库访问:数据库访问时需要使用TCP协议来传输数据。
二、UDP的特点及应用1. UDP的特点UDP是一种无连接的协议,它不需要在传输数据之前建立连接,也不保证数据的完整性和可靠性。
UDP是一种简单的数据传输协议,它仅提供数据传输的功能,不对数据传输进行确认和校验。
因此,UDP的传输效率比TCP高,但可靠性较差。
由于UDP不需要建立连接,所以它的开销比较小,适合对实时性要求较高的应用场景。
2. UDP的应用UDP主要用于那些对实时性要求较高的应用场景,包括但不限于以下几个方面:(1)实时视频、音频传输:视频会议、实时语音通话等应用中使用UDP来传输数据,因为在这些应用中,实时性比可靠性更为重要。
TCPUDP有什么区别
TCPUDP有什么区别前⾔计算机分层中的传输层,主要是负责计算机之间的数据传输,TCP 和 UDP 都属于传输层协议。
在实际开发过程中,需要根据实际需求的来选择适当的传输协议。
在这⾥我们简单总结下 TCP、UDP 的特点和区别以及实际开发中如何选择。
TCP 和 UDP 的定义TCP 是⾯向有连接,可靠的流协议。
保证两端通讯主机之间的通信可达,可以处理丢包、乱序等异常,可以有效利⽤带宽、缓解⽹络拥堵。
UDP 是⾯向⽆连接,不可靠的数据报协议。
不会处理丢包、乱序等异常,⼀般交给上层的应⽤层处理。
UDP 的特点及使⽤场景UDP 不提供复杂的控制机制,利⽤ IP 提供⾯向⽆连接的通信服务,随时都可以发送数据,处理简单且⾼效,经常⽤于以下场景:①包总量较⼩的通信(DNS、SNMP)②视频、⾳频等多媒体通信(即时通信)③⼴播通信TCP 的特点及使⽤场景相对于 UDP,TCP 实现了数据传输过程中的各种控制,可以进⾏丢包时的重发控制,还可以对次序乱掉的分包进⾏顺序控制。
在对可靠性要求较⾼的情况下,可以使⽤ TCP,即不考虑 UDP 的时候,都可以选择 TCP。
总结这⾥简单总结下:1.TCP 是⾯向连接的,UDP 是⾯向⽆连接的;故 TCP 需要建⽴连接和断开连接,UDP 不需要。
2.TCP 是流协议,UDP 是数据包协议;故 TCP 数据没有⼤⼩限制,UDP 数据报有⼤⼩限制(UDP 协议本⾝限制、数据链路层的 MTU、缓存区⼤⼩)。
3.TCP 是可靠协议,UDP 是不可靠协议;故 TCP 会处理数据丢包重发以及乱序等情况,UDP 则不会处理。
TCP 为什么要三次握⼿,四次挥⼿?前⾔TCP 属于传输层协议,是⾯向有连接,可靠的流协议。
⾯对有连接这个特性,TCP 就有建⽴连接和断开连接的过程。
我们分别了解建⽴连接和断开连接的流程以及当中的⼀些疑问。
TCP 建⽴连接和断开连接流程⾸先我们来看下这张经典的流程图:握⼿过程可以简化为下⾯的四次交互:1.Client 端⾸先发送⼀个 SYN 包,告诉 Server 端我的初始序列号是 X;Client 端进⼊了 SYN-SENT(同步已发送状态)状态。
tcp协议与udp协议的区别
tcp协议与udp协议的区别协议名称:TCP协议与UDP协议的区别一、引言TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是网络通信中常用的两种传输协议。
本协议旨在详细描述TCP协议和UDP协议之间的区别,包括其工作原理、特点、适用场景等方面的内容。
二、TCP协议的特点1. 可靠性:TCP协议提供可靠的数据传输,通过数据包的确认、重传机制和流量控制来确保数据的完整性和正确性。
2. 面向连接:TCP协议在通信前需要建立连接,通过三次握手来建立可靠的通信信道。
3. 有序性:TCP协议保证数据包按照发送的顺序进行传输,接收端会对乱序的数据包进行排序,保证数据的有序性。
4. 慢启动:TCP协议采用慢启动算法来控制数据的发送速率,以避免网络拥塞。
三、UDP协议的特点1. 无连接:UDP协议不需要建立连接,数据包的发送和接收是相互独立的,适用于实时性要求较高的应用场景。
2. 不可靠性:UDP协议不提供数据包的确认和重传机制,数据包的可靠性无法得到保证,但能够提供较高的传输效率。
3. 无序性:UDP协议不保证数据包按照发送的顺序进行传输,接收端会按照接收顺序进行处理。
4. 支持一对一、一对多、多对一和多对多的通信模式。
四、适用场景的区别1. TCP协议适用于对数据可靠性要求较高的场景,如文件传输、电子邮件等。
2. UDP协议适用于对实时性要求较高的场景,如音视频传输、在线游戏等。
五、性能比较1. 传输效率:UDP协议由于不需要建立连接和提供可靠性传输,传输效率较高;而TCP协议由于提供可靠性传输,传输效率相对较低。
2. 带宽占用:TCP协议的带宽占用较大,由于需要进行数据包的确认和重传,会占用较多的网络资源;而UDP协议的带宽占用较小。
3. 丢包率:UDP协议由于不提供数据包的确认和重传机制,丢包率相对较高;而TCP协议通过确认和重传机制,丢包率较低。
TCP与UDP的区别及其应用
TCP与UDP的区别及其应用TCP(Transmission Control Protocol)与UDP(User Datagram Protocol)是两种常见的网络传输协议,它们在网络通信中起着非常重要的作用。
虽然它们都是用来传输数据的协议,但是它们有着不同的特性和适用场景。
1. TCP的特点及应用TCP是一种面向连接的协议,它通过三次握手建立连接,然后在数据传输过程中保证数据的可靠性和有序性。
TCP协议的特点包括以下几点:1)可靠性:TCP通过确认机制和重传机制来保证数据的可靠传输。
当发送方发送数据后,接收方会对数据进行确认,如果发送方未收到确认信息,就会重传数据。
通过这种方式,TCP可以保证数据的可靠性。
2)有序性:TCP保证数据的有序传输,即发送的数据包在接收端按照发送的顺序进行重组。
3)流量控制:TCP利用滑动窗口机制来进行流量控制,当接收方无法处理发送方的数据时,可以通过发送窗口大小来告知发送方暂停发送。
4)拥塞控制:TCP通过拥塞窗口动态调整的方式来进行拥塞控制,以避免网络拥塞。
5)面向字节流:TCP是面向字节流的协议,它将数据流看作一个字节序列进行传输。
由于TCP具有以上特点,它适用于对数据可靠性和有序性要求较高的场景。
例如,网页浏览、电子邮件传输、文件传输等应用都是基于TCP协议进行数据传输的。
2. UDP的特点及应用UDP是一种无连接的协议,它并不会像TCP那样进行连接的建立和断开,而是直接将数据包发送出去。
UDP协议的特点包括以下几点:1)无连接:UDP是一种无连接的协议,它不需要进行连接的建立和断开,因此传输时延较小。
2)简单性:UDP相对于TCP来说更加简单,数据包的头部信息较少,传输效率高。
3)不可靠性:UDP不保证数据的可靠性,数据包的丢失和重组都可能发生。
4)面向报文:UDP是面向报文的协议,它将数据看作一个个的报文进行传输。
由于UDP具有以上特点,它适用于一些对实时性要求较高的应用场景,例如音视频传输、在线游戏等。
tcp协议与udp协议的异同
tcp协议与udp协议的异同TCP协议与UDP协议的异同一、双方的基本信息TCP协议:是一种可靠的传输协议,其双方包括客户端和服务器。
UDP协议:是一种不可靠的传输协议,其双方包括发送方和接收方。
二、各方身份、权利、义务、履行方式、期限、违约责任1. TCP协议(1)客户端身份:发送请求,接收响应。
(2)服务器身份:接收请求,发送响应。
(3)客户端权利:请求服务,获取服务响应。
(4)服务器权利:拒绝服务,返回错误响应。
(5)客户端义务:发送请求,等待响应。
(6)服务器义务:响应请求,提供服务。
(7)履行方式:发送TCP数据包进行数据传输,保证数据完整性和可靠性。
(8)期限:双方约定或者根据实际情况确定。
(9)违约责任:对方有权要求赔偿损失。
2. UDP协议(1)发送方身份:发送数据包。
(2)接收方身份:接收数据包。
(3)发送方权利:发送数据包。
(4)接收方权利:接收数据包。
(5)发送方义务:发送数据包。
(6)接收方义务:接收数据包,处理其中的数据。
(7)履行方式:发送UDP数据包进行数据传输,不保证数据完整性和可靠性。
(8)期限:双方约定或者根据实际情况确定。
(9)违约责任:对方有权要求赔偿损失。
三、需遵守中国的相关法律法规TCP协议与UDP协议使用时需要遵守《网络安全法》、《电信条例》、《计算机信息系统安全保护条例》等中国相关的法律法规。
四、明确各方的权力和义务TCP协议和UDP协议的使用双方在协议中必须明确各自的权力和义务。
TCP协议中客户端和服务器的权利、义务由《RFC 793》进行定义,UDP协议中发送方和接收方的权利、义务由《RFC 768》进行定义。
五、明确法律效力和可执行性TCP协议和UDP协议是网络通信协议,在使用中必须考虑法律效力和可执行性的问题。
双方在协议中必须约定具体的法律效力和可执行性。
六、其他协议中还应明确通信协议的数据格式、数据编码、错误处理机制、通信安全等相关事项。
tcp协议与 udp协议的区别
TCP 与UDP的区别很多文章都说TCP协议可靠,UDP协议不可靠!为什么前者可靠,后者不可靠呢?既然UDP协议不可靠,为什么还要使用它呢?所谓的TCP协议是面向连接的协议,面向连接是什么呢?TCP和UDP都是传输层的协议!从编程的角度看,就是两个模块(模块就是代码的集合,一系列代码的组合提供相应的功能!模块化最终目的就是:分工协作!模块化好处:便于扩展开发以及维护!)。
先说TCP协议:这个协议,是面向的连接!面向连接这个概念,我们要从物理层看起。
大家都知道,因为“信道复用技术”的迅猛发展,才促使了计算机网络的发展!如果没有“信道复用技术”,那么单条线路上(这里的线路指物理传输介质,例如:双绞线、光纤、电话线)单位时间内只能供一台计算机使用!还是举例说明:就拿你自己的计算机来说,你跟同学“小明”聊天的时候,就不能跟另外一位同学“小强”聊天,如果你想同时跟两位同学聊天,那么你就得装两条线路!那么同时与第三位、第四位同学。
第N位同学聊天的时候,你需要装几根线路?全世界人民聊天的时候,又需要装几根线路?“信道复用技术”实现了,在同一条线路上,单位时间内可供X台计算机同时通信!Toad知道以下几种复用技术:1、频分复用2、时分复用3、波分复用4、码分复用5、空分复用6、统计复用7、极化波复用关于“信道复用技术”更深层次的问题,需要你自己去研究!上面我们提到了“信道复用技术”!知道了这一点,我们就很容易明白“物理信道”上的“虚拟信道”概念了!不同的信道复用技术,使用不同的复用技术,目的就是创建“虚拟信道”。
一个TCP协议连接其实就是在物理线路上创建的一条“虚拟信道”。
这条“虚拟信道”建立后,在TCP协议发出FIN包之前(两个终端都会向对方发送一个FIN包),是不会释放的。
正因为这一点,TCP协议被称为面向连接的协议!UDP协议,一样会在物理线路上创建一条“虚拟信道”,否则UDP协议无法传输数据!但是,当UDP协议传完数据后,这条“虚拟信道”就被立即注销了!因此,称UDP是不面向连接的协议!大家要知道,一种物理线路,单位时间内,能够创建的“虚拟信道”是有限的!从这个问题,大家应该明白了TCP协议和UDP协议为什么会共存了吧,然而,这只是其中一个原因而已!那为什么又说TCP协议可靠,UDP协议不可靠呢?以上说的是一个原因,还有一个原因是:使用TCP协议传输数据,当数据从A端传到B端后,B端会发送一个确认包(ACK包)给A端,告知A端数据我已收到!UDP协议就没有这种确认机制!这一点,在做TCP协议首部分析时,会详加解释!QQ普通会员就是使用的UDP协议进行传输数据!既然UDP协议自身没有确认机制,这个工作可以交给应用层的进程来完成(QQ)!大家使用QQ的时候,感觉出错的几率还是非常小吧!当然,把这个确认工作完全交给QQ自身来做,就直接导致了,QQ软件体积增大!有些应用,对数据传输可靠性要求非常高,例如大家浏览网页,通过网页注册帐号、转帐等服务,这是不容许出错的,使用TCP协议能把出错的可能性降到最低(当然,网络自身很糟糕,TCP协议也没办法)。
TCP与UDP协议的特点与适用场景解析
TCP与UDP协议的特点与适用场景解析TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是互联网中最常用的传输层协议。
虽然它们都用于在网络上传输数据,但在很多方面它们有着显著的区别。
本文将对TCP和UDP协议的特点和适用场景进行解析。
一、TCP协议特点与适用场景解析TCP协议是一种面向连接、可靠的传输协议。
它具有以下特点:1. 可靠性:TCP在传输数据时,通过确认、重传、序列号等机制保证数据的可靠性。
当数据丢失或损坏时,TCP会自动重新发送,确保数据的准确性。
2. 面向连接:在使用TCP传输数据之前,必须先建立一个连接。
连接的建立需要经过三次握手的过程,确保通信双方的可靠性和一致性。
3. 有序性:TCP保证数据按照发送的顺序进行接收。
如果接收方收到的数据包乱序,TCP会自动将其重新排列,保证数据的有序传输。
4. 流量控制与拥塞控制:TCP通过流量控制和拥塞控制机制,根据网络情况动态调整数据的传输速率,防止网络拥塞和数据丢失。
由于TCP具有可靠性和有序性的特点,适用于以下场景:1. 文件传输:TCP可确保大文件的可靠传输,保证文件数据的完整性。
2. 邮件传输:邮件传输需要保证数据的可靠性和有序性。
TCP能够保证邮件数据的安全到达。
3. 网页浏览:在浏览网页时,需要保证网页的完整性和准确性。
TCP协议可以确保网页数据正确无误地呈现给用户。
二、UDP协议特点与适用场景解析UDP协议是一种无连接、不可靠的传输协议。
它具有以下特点:1. 无连接:UDP协议不需要建立连接,可以直接发送数据。
这使得UDP比TCP具有更低的开销和延迟,适合实时性要求较高的应用。
2. 不可靠性:UDP在传输数据时,不进行确认和重传,也不保证数据的有序性。
这意味着在传输过程中可能会丢失、重复或乱序。
3. 可以广播和多播:UDP支持数据的广播和多播传输,可以将数据同时发送给多个主机。
什么是TCP和UDP协议
现在Internet上流行的协议是TCP/IP协议,该协议中对低于1024的端口都有确切的定义,他们对应着Internet上一些常见的服务。
这些常见的服务可以分为使用TCP端口(面向连接)和使用UDP端口(面向无连接)两种。
说到TCP和UDP,首先要明白“连接”和“无连接”的含义,他们的关系可以用一个形象地比喻来说明,就是打电话和写信。
两个人如果要通话,首先要建立连接——即打电话时的拨号,等待响应后——即接听电话后,才能相互传递信息,最后还要断开连接——即挂电话。
写信就比较简单了,填写好收信人的地址后将信投入邮筒,收信人就可以收到了。
从这个分析可以看出,建立连接可以在需要通信的双方建立一个传递信息的通道,在发送方发送请求连接信息接收方响应后,由于是在接受方响应后才开始传递信息,而且是在一个通道中传送,因此接受方能比较完整地收到发送方发出的信息,即信息传递的可靠性比较高。
但也正因为需要建立连接,使资源开销加大(在建立连接前必须等待接受方响应,传输信息过程中必须确认信息是否传到及断开连接时发出相应的信号等),独占一个通道,在断开连接钱不能建立另一个连接,即两人在通话过程中第三方不能打入电话。
而无连接是一开始就发送信息(严格说来,这是没有开始、结束的),只是一次性的传递,事先不需要接受方的响应,因而在一定程度上也无法保证信息传递的可靠性了,就像写信一样,我们只是将信寄出去,却不能保证收信人一定可以收到。
TCP是面向连接的,有比较高的可靠性,一些要求比较高的服务一般使用这个协议,如FTP、Telnet、SMTP、HTTP、POP3等,而UDP是面向无连接的,使用这个协议的常见服务有DNS、SNMP、QQ等。
对于QQ必须另外说明一下,QQ2003以前是只使用UDP协议的,其服务器使用8000端口,侦听是否有信息传来,客户端使用4000端口,向外发送信息(这也就不难理解在一般的显IP的QQ版本中显示好友的IP地址信息中端口常为4000或其后续端口的原因了),即QQ程序既接受服务又提供服务,在以后的QQ版本中也支持使用TCP协议了。
TCP、UDP区别和应用
TCP与UDPTCP是一种面向连接的保证可靠传输的协议。
通过TCP协议传输,得到的是一个顺序的无差错的数据流。
发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket 可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。
UDP是一种面向无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。
TCP与UDP区别:TCP特点:1. TCP是面向连接的协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP 是面向连接协议,所以只能用于点对点的通讯。
而且建立连接也需要消耗时间和开销。
2. TCP传输数据无大小限制,进行大数据传输。
3. TCP是一个可靠的协议,它能保证接收方能够完整正确地接收到发送方发送的全部数据。
UDP特点:1. UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
2. UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之内。
3. UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。
TCP与UDP应用:1. TCP在网络通信上有极强的生命力,例如远程连接(Telnet)和文件传输(FTP)都需要不定长度的数据被可靠地传输。
但是可靠的传输是要付出代价的,对数据内容正确性的检验必然占用计算机的处理时间和网络的带宽,因此TCP传输的效率不如UDP高。
2. UDP操作简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中client/server应用程序。
例如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。
TCP和UDP协议简介
TCP和UDP协议简介⼀、TCPTCP(Transmission Control Protocol),传输控制协议,对“传输、发送、通信”进⾏“控制”的协议,它充分地实现了数据传输时的各种控制功能,可以进⾏丢包时的重发控制,还可以对次序乱掉的分包进⾏顺序控制。
此外,TCP 是⾯向有连接的协议,只有在确认通信端存在时才会发送数据。
TCP 是⼀个传输层协议,提供 Host-To-Host 数据的可靠传输,⽀持全双⼯,是⼀个连接导向的协议。
TCP 复杂控制连接的建⽴、断开、保持等管理⼯作,保证了在 IP 这种⽆连接的⽹络上也能够实现⾼可靠性的通信。
TCP 使⽤场景:远程控制(SSH)File Transfer Protocol(FTP)邮件(SMTP、IMAP)等点对点⽂件传出(微信等)1. 数据发送TCP 协议有这样⼏个基本操作:⼀个 Host 主动向另⼀个 Host 发起连接,称为 SYN(Synchronization),请求同步;⼀个 Host 主动断开请求,称为 FIN(Finish),请求完成;⼀个 Host 给另⼀个 Host 发送数据,称为 PSH(Push),数据推送;在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回⼀个已收到消息的通知,这个消息叫做确认应答(ACK)。
如果在⼀定时间内没有收到 ACK,发送端就可以认为数据已经丢失,并进⾏重发。
在 TCP 中,会在发送数据的每⼀个字节都标上序号,接收端查询接收数据 TCP ⾸部中的序列号和数据的长度,将⾃⼰下⼀步应该接收的序号作为ACK 返送回去。
序列号机制使发送端可以根据序列号分批次发送,使接收端可以处理消息乱序和重复问题。
重发超时时间。
当然,最初的数据包还不知在 TCP 中,会在每次发包时计算往返时间及其偏差(⽅差),将这个往返时间和偏差(⽅差)相加就是重发超时时间道往返时间,其重发超时⼀般设置为 6 秒左右。
若数据被重发之后还是收不到 ACK,则进⾏再次发送,此时,重发超时时间会以 2 倍、4 倍的指数函数延长。
TCP和UDP的区别
TCP和UDP的区别TCP和UDP都是传输层协议TCP:TCP 是一种面向有连接的传输层协议,能够对自己提供的连接实施控制。
适用于要求可靠传输的应用,例如文件传输。
面向字节流,传输慢UDP:UDP 是一种面向无连接的传输层协议,不会对自己提供的连接实施控制。
适用于实时应用,例如:IP电话、视频会议、直播等。
,以报文的方式传输,效率高TCP建立连接需要3次握手UDP:发短信1.不连接,不稳定2.客户端、服务端:没有明确的界限3.不管有没有准备好,都可以发给你UDP无连接,TCP面向连接使用UDP协议的双方随时可以发送数据,使用TCP协议的双方在发送数据之前必须使用“三次握手”建立TCP连接,TCP连接建立成功后,才能进行数据传输,数据传输结束后,必须使用“四报文挥手”来释放连接UDP支持一对一,一对多,一对全的通信TCP仅支持单播在下图中,任何一台主机都可以向其它3台主机发送广播在下图中,任何一台主机都可以向某个多播组发送多播在下图中,任何一台主机都可以向其它任一主机发送单播TCP仅支持·单播·TCP和UDP对报文的处理UDP发送方将应用进程报文交付给传输层的UDP,UDP直接给这个报文添加一个UDP首部,使之成为UDP用户数据报,然后进行发送,接收方收到该UDP数据报后,去掉UDP首部,将应用层报文交付给应用进程,也就是说,UDP对应用进程交付的报文既不合并,也不拆分,而是保留报文边界,即UDP是面向报文的TCP发送方的TCP把应用进程交付下来的数据块,仅仅看做是一连串的无结构的字节流,TCP 并不知道这些字节流的具体含义,仅将他们编号,存储在发送缓存中,TCP根据发送策略,从发送缓存中提取一定数量的字节,构建TCP报文段,并发送,接收方的TCP,一方面从所接受到的TCP报文段中,取出数据载荷部分并存储在接收缓存中,一方面将接收缓存中的一些字节交付给应用进程,TCP不保证接收方应用进程所收到的数据块与发送方应用进程发出的数据块具有对应大小的关系,例如发送方的应用进程交给发送方TCP共10个数据块,但接收方的TCP可能只用了4个数据块就把收到的字节流交付给了上层的应用进程。
第8章 TCP和UDP协议
传输层中向应用层提供传输服务的是传输实体。使用传输 服务的是传输服务用户,也就是应用层中的各种应用进程, 或应用实体。传输层中的两个对等传输实体之间的通信遵循 着传输协议。传输协议保证了传输层能够向应用层提供传输 服务。传输层提供的传输服务也使用了下面网络层向上提供 的网络服务。TSAP和NSAP分别是传输层和网络层的服务访 问点。
图8.4 TCP/IP传输层的UDP和TCP UDP和TCP都使用IP协议。也就是说,这两个协议在发送数据时,其协议 数据单元PDU都作为下面IP数据报中的数据。在接收数据时,IP数据报将IP首部 去掉后,根据上层使用的是什么运输协议,把数据部分交给上层的UDP或TCP。 UDP在传送数据之前不需要先建立连接。远地主机的运输层在收到UDP数据 报后,不需要给出任何应答。在某些情况下,这是一种最有效的工作方式。 TCP/IP体系中的应用服务,如TFTP和DNS就使用UDP这种运输方式。 TCP则是提供面向连接的服务。TCP不提供广播或多播服务。由于TCP要提供可 靠的运输服务,因此TCP就不可避免地增加了许多的开销,如应答、流量控制、 定时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多 的处理机的资源。
图8.2 传输层的作用
•
• •
• •
用户进程希望得到端到端(即从进程到进程)的可靠通信服务。有时还可能 希望得到其他的服务,例如多对进程之间的通信复用到一个网络连接上。在网 络互连的情况下,各通信子网所能提供的服务往往不同。为了能使通信子网的 用户得到一个统一的通信服务,有必要设置一个传输层。以此用来弥补通信子 网提供服务的差异和不足,使得对两端的网络用户来说,各通信子网都变成通 明的。换言之,传输层向高层用户屏蔽了下面通信子网的细节,使高层用户看 不见实现通信功能的物理链路是什么,看不见数据链路采用的是什么协议。传 输层使高层用户看见的就是好像在两个传输层实体之间有一条端到端的,可靠 的、全双工通信信道。 显然,要实现上述的传输层的功能,在主机中就必须装有传输层协议。一个 传输层协议通常可同时支持多个进程的连接。图8.2的例子表明同时支持三个用 户进程的连接。 若通信子网所提供的服务越多,传输协议就可以做得越简单。若网络层提供 虚电路服务,那就能保证报文无差错、不丢失,不重复且按序地进行交付,因 而传输协议就很简单。但若网络层提供的是不可靠的数据报服务,则就要求主 机有一个复杂的传输协议。 需要注意的是,即使网络层提供的是虚电路服务,某些用户仍可能怀疑下面 的网络是否100%可靠,因而在网络层上面加上用户自己的端到端差错控制和流 量控制。 传输层协议与数据链路层协议有相似之处,但区别也较大。传输层的环境是 两个主机通过多个网络进行通信,这就使传输层比数据链路层的环境复杂的多。 由于分组在网络各结点都要经过排队才能转发,所以网络有可能“存储”一些 分组。这就可能能使某些分组在迟延一段时间后突然又出现。这将产生严重的 后果。由于网络同时存在多条连接,且连接的数目经常在动态地变化着,因而 流量控制和拥塞控制也较为复杂。
UDP协议与TCP协议的比较
UDP协议与TCP协议的比较UDP协议是无面向连接的、不可靠的、无序的、无流量控制的传输层协议,UDP发送的每个数据报是记录型的数据报,所谓的记录型数据报就是接收进程可以识别接收到的数据报的记录边界。
TCP协议是面向连接的、可靠的、有序的、拥有流量控制的传输层协议,它是字节流的协议,无记录边界。
1.记录与字节流UDP协议:发送进程在发送每个数据报的时候并不等待多个数据报集中在一起以一个较大数据报发送出去,而是立即发送出去,它是记录型的协议。
并且接收进程每次通过read或recv……获得的数据报必定是发送进程所发送的那个数据报不可能是多个数据报,接收进程可以识别到发送进程所发送的每个数据报的记录边界。
TCP协议:发送进程在发送每个数据报的时候在内核处理过程中有可能并不立即发送出去,而是会将多个数据报集中在一起以一个较大的数据报来发送,它是字节流的协议。
而接收进程每次通过read来读取发送进程发送过来的数据报并不一定是发送进程原先发送数据报,接收进程无法识别每个数据报的记录边界,所以TCP协议就是字节流的、无记录边界的协议。
例如:QQ聊天所用到的协议就应该是有记录边界的,聊天过程中是以“消息”为单位,消息可以看成一个记录,所以QQ聊天协议采取UDP协议而不是TCP 协议。
2.有序与无序UDP协议:发送进程所发送的每个数据报并不按照原先发送的顺序到达接收进程,有可能早发送的数据报较后到达接收进程。
因为数据报在经过中间路径的传送时会因为各个数据报传送的路径不同或者其它原因而造成这些数据报到达的顺序不同,UDP协议是无序的传输协议。
所以为了使基于UDP协议的应用程序有序,必须在应用程序中设置序号、确认机制来使其有序。
TCP协议:有序协议,有超时、序号、重传、确认机制。
例如:FTP协议是用于传送文件的协议,为了确保在传送文件内容的时候,传送的每个数据报协议有序接收,所以FTP协议是基于TCP协议。
那为什么TFTP协议是基于UDP协议?因为为了保证有序,TFTP协议中引入了确认、序号字段。
UDP的意思是什么UDP与TCP的区别
UDP的意思是什么UDP与TCP的区别 ⼤家有没有听说过“udp”这个新词,知道它的意思是什么吗?下⾯是店铺⼩编为⼤家整理的“UDP的意思是什么 UDP与TCP 的区别”,欢迎参阅。
内容仅供参考,想要了解更多关于词义解释的内容,请关注店铺实⽤资料栏⽬。
UDP的意思是什么 UDP与TCP的区别 udp的意思:是User Datagram Protocol的简称,中⽂名是⽤户数据包协议,是 OSI 参考模型中⼀种⽆连接的传输层协议,提供⾯向事务的简单不可靠信息传送服务。
UDP 协议基本上是IP协议与上层协议的接⼝。
它是IETF RFC 768是UDP的正式规范。
UDP协议的主要作⽤是将⽹络数据流量压缩成数据包的形式。
⼀个典型的数据包就是⼀个⼆进制数据的传输单位。
... 词性:abbr. ⽤户数据报协议(=User Datagram Protocol) Uliana Uonuki Ulisso Uzhviy Uliger Uborka Uzurov ugt. UGPase uberty udp的作⽤: 为了在给定的主机上能识别多个⽬的地址,同时允许多个应⽤程序在同⼀台主机上⼯作并能独⽴地进⾏数据包的发送和接收,设计⽤户数据报协议UDP。
使⽤UDP协议包括: TFTP、 SNMP、NFS、DNS、BOOTP。
UDP使⽤底层的互联⽹协议来传送报⽂,同IP⼀样提供不可靠的⽆连接数据包传输服务。
它不提供报⽂到达确认、排序、及流量控制等功能。
UDP适⽤于⼀次只传送少量数据、对可靠性要求不⾼的应⽤环境。
⽐如,我们经常使⽤“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对⽅主机发送UDP数据包,然后对⽅主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么⽹络就是通的。
例如,在默认状态下,⼀次“ping”操作发送4个数据包(如图2所⽰)。
⼤家可以看到,发送的数据包数量是4包,收到的也是4包(因为对⽅主机收到后会发回⼀个确认收到的数据包)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
传输层连接管理
以上建立传输连接的模型是由ARPANET首先提出来的, 称ARPANET初始连接协议。显而易见的缺点是,客户怎么 能知道某台服务器上正好能提供它所需要的服务呢(即是 否存在相应的应用程序)。一种改进的模型是取消进程服 务器,对每一具体服务器均分配一个公认TSAP。再提供一 个名字服务器,它也占用一个公认TSAP。根据服务名字, 可以从名字服务器中查出对应的公认TSAP。客户先从名字 服务器中查出具体服务器的公认TSAP,再直接与具体服务 器建立连接,即可获得所需服务。 3.建立连接 在理想的情况下,一个成功的建立传输连接的过程如 图8.45所示。图中,T-CONNECT表示传输层连接类原语, request、indication、response和confirm分别是连接请求、指 示、响应与确认原语。比如T-CONNECT request表示层连 接请求原语。建立连接时,客户发送一个请求报个并列的协议,TCP和UDP。其中, TCP ( Transport Control Protocol ,传输控制协议)是 面向连接的,相当于OSI的TP4,而且两者确实有许多相似 之处。 UDP ( User Datagram Protocol ,用户数据报协议) 是无连接的,相当于OSI的TP0。一般情况下,TCP和UDP共 存于一个网间网中,前者提供高可靠性服务,后者提供高 效率服务。高可靠性的 TCP 用于一次传输大量报文的情形 (如文件传输、远程登录等);高效率的 UDP 用于一次传 输少量报文(尤其是交易型应用)的场合,其可靠性由应 用程序提供。 TCP 要解决各种可靠性问题,因而比较复杂; UDP 几乎直接建立在 IP 协议之上,相对简单得多。 TCP 和 UDP 共存于一个网间网中的事实告诉我们,在计算机网络 中,可靠性并不比效率更重要,只有可靠性而无效率的协 议在某些应用场合下是根本没有用的,对二者的选择取决 于应用的环境和需要。
传输层连接管理
他们各有自己的保留端口与自由端口,且保留端口号的范围 都是0~255。不同协议的端口之间没有任何联系,不会互相 干扰。同一个保留端口在TCP和UDP中可能对应于不同类型 的应用进程,也可能对应于相同类型的应用进程。 我们进一步来分析一下端口号。在同一台计算机上,当 一个应用程序运行的时候,就分配给它一个端口。这里有三 个问题。第一,什么时候、哪一个应用程序运行,是随机的。 第二,同一个应用程序在不同时刻运行所分配的端口号一般 不会相同,也就是说,一个应用程序并不拥有固定的端口号。 第三,同一台主机上拥有的应用程序是有限的,不可能你需 要什么程序就有什么程序。 2.建立传输连接的模型 传输连接必须面向进程,必须用到对方的端点地址 TSAP。问题是,发起连接的一方如何知道对方哪个应用程 序正在运行;即使正在运行,分配给它的端口号又是多少呢?
用户数据报协议UDP
校验和(CHECKSUM):这是一个可选域,置0时表示未选,全1 (负0的反码)表示校验和为0。 UDP建立在IP之上,意味着整个UDP报文封装在IP数据报中传送,如 图UDP报文封装所示。所谓封装实际上是发送端UDP软件将UDP报文交 给IP软件后,IP软件在前面加一个头标,构成IP数据报,这一过程相 当于将UDP报文装入IP数据报数据区。值得注意的是,UDP数据报中不 指定信源主机和信宿主机地址,因为这没有必要,传输层只需识别端 口,而不用识别主机,识别主机的工作由互联网层(IP软件)完成。 UDP校验和是一个可选域,这是其效率的又一体现,因为计算校验 和是很花费时间的,如果应用程序对效率的兴趣远远高于对可靠性的 兴趣,就可以不选此域。UDP校验和还有一个与众不同的特点:除UDP 数据报本身外,它还覆盖一个附加头标,该头标并非UDP数据报的有效 成分,称为伪头标(pseudo header),其格式如图UDP伪头标所示。
传输层连接管理
传输层连接管理,包括连接端点的标识、建立传输连接 的模型、建立连接与撤除连接这样几个问题。 1.连接端点的标识 在建立连接的时候,必须显式地给出全局唯一的信宿端 的地址。一个全局的传输服务用户应该用以下四个域来标识: {TSAP,NSAP,主机地址,网络号} 当网络层是无连接的(IP协议就是),NSAP便可以忽略。 TCP/IP把TSAP叫做端口(port)。一个端口拥有一个本地唯 一的端口号。作为一种逻辑结构,TCP/IP端口可以随机分配, 但有一部分保留下来供系统专用。前者称为自由端口,后者 称为保留端口。保留端口只占很小一部分,以全局方式进行 分配,就是后面我们要提到的服务器进程。每一个标准的服 务器都拥有一个全局公认的端口号,不同机器上同样的服务 器,其端口号相同。自由端口占全部端口的绝大部分,以本 地方式进行分配。TCP/IP传输层的两个协议(TCP与UDP),
传输层的其他问题
传输层的其他几个问题包括滑动窗口协议、传输层多路复用以及崩 溃恢复,下面分别叙述。 (1)滑动窗口协议。滑动窗口协议的作用有二:其一是保证数据传输的可 靠性,其二是实现流量控制。网关和接收端可以通过某种方式通知发送 方改变其窗口大小,以限制发方报文注入网络的速度,达到流控之目的。 (2)传输层多路复用。TCP/IP的网络层不提供连接,所以不存在向下多路 复用问题。向上多路复用指多个传输连接使用一个网络连接,其目的在 于充分利用虚电路带宽,降低传输开销。TCP/IP就属此种类型。 (3)崩溃恢复。这是传输层最难解决的问题之一。有两种情况,一是网络 连接崩溃,一是主机崩溃。不管是那种崩溃,主机都会丢失未确认的数 据或关于传输状态的信息。为了恢复崩溃,发送端向所有主机广播一个 查询报文,宣告自己已经崩溃,希望得知其它主机所有打开连接的状态, 以此为依据进行恢复。
传输层连接管理
器若愿意接收请求,则发回一个响应报文。这样连接就建 立起来。这是一个合情合理的过程,很容易理解。
T-CONNECT Request
T-CONNECT Indication T-CONNECT Response
T-CONNECT Confirm
图8.45 建立连接的理想过程
传输层连接管理
传输层连接管理
广泛使用的客户-服务器模型巧妙地解决了这个问题。 客户(发起连接的一方)发出连接请求。服务器(接受连 接的一方)中有一个特殊的后台进程,叫进程服务器。进 程服务器随系统一起启动并常驻内存,它拥有一个全局公 认的TSAP。客户根据对方的主机地址和进程服务器TSAP 向对方进程服务器发起连接请求,在请求报文中同时给出 自己的TSAP及所在的主机地址。进程服务器监听其公认 TSAP,一旦收到连接请求,便建立一条临时连接。 客户通过临时连接向进程服务器发送一个报文,告诉 它希望得到的服务。进程服务器便选择一个自由TSAP, 并fok一个运行具体服务程序的新进程,将新TSAP传给新 进程。进程服务器再向客户发回新TSAP,并终止临时连 接,继续监听公认TSAP。客户再与具体服务器之间通过 新TSAP建立新连接,并在新连接上开始正式通信。
然而问题并没有那么简单,因为子网不是理想的,不 是所有子网都能保证分组能正确及时地传到信宿端,因为 分组可能在传送过程中丢失。解决分组丢失的常用方法是 使用超时重传。 最难解决的问题是,请求根本没有丢失,而是在子网 中存储起来,过一段时间后,又突然出现在服务器端。在 无连接数据报子网中,尤其可能出现这种情况。这就是所 谓延迟重复问题。 消除重复连接有三种方法:消除重复连接本身,消除 重复连接请求,三次握手建立连接。 (1)消除重复连接。遵循消除重复连接的思路,有两种具 体方法可以考虑,即利用过时连接表和非重复TSAP地址。 (2)消除重复连接请求。消除重复连接请求总的想法是删 除在网络中滞留的陈旧分组,方法是给每一分组赋予一个
用户数据报协议UDP
0 15 16 31
UDP头标 UDP数据区
UDP源端 口 UDP
传输层连接管理
CR(初始序号=X) 第一次 CR(初始序号=X) CC(初始序号=Y, 确认=X)
CC(初始序号=Y, 确认=X) DATA(序号=X, 确认=Y)
第二次
第三次
DATA(序号=X, 确认=Y)
图8.46 三次握手示意
传输层连接管理
4.撤除连接 撤除连接比建立连简单,但也可能造成数据丢失,因 为连接的双方都可以发起撤除连接操作。 假设A、B两机建立连接并传输报文。在A机毫无准备 的情况下,B机单方面发出断连请求,并立刻终止接收该连 接上数据。在A机未收到断连请求之前,随时可能向B机发 送数据,于是便有了数据丢失的可能性。 为了解决此问题,要再次使用三次握手法。一方发出 断连请求后并不立即撤除连接,而要等待对方确认;对方 收到请求后,发送确认报文,并撤除连接;发起方收到确 认后最后撤除连接。
TCP与UDP
IP数据报采用无连接的数据报机制,对数据只是尽力 传送,至于传输是否正确、有序,不采取任何措施。因此, TCP/IP的可靠性体现在传输层。传输层有两个协议,其中 UDP协议是无连接的,因此传输层向它的上层协议提供的 服务质量主要依靠TCP协议来保证,因为TCP提供面向连 接的服务,称为端到端可靠性。
传输层连接管理
面向连接的传输要求A机和B机以同步方式进行报文传输, 双方发出的第一个报文均给出一个本地独立的初始序号。在 双方一来一回的报文交换过程中,回报文要对收到的上一个 来报文加以确认。 在三次握手法的第一次中,A机向B机发出连接请求(简 称CR),其中包含A机端的初始报文序号(比如X)。第二 次,B机收到CR后,发回连接确认(CC),其中,包含B机 端的初始报文序号(比如Y),以及B机对A机初始序号X的 确认。第三次,A机向B机发送X序号数据,其中包含对B机 初始Y的确认。三次握手法的操作过程如图8.46所示。 由于A机在本端对报文进行编号,它知道哪些序号是过 时的。假如B收到一个过时连接请求CR(初始序号=X1),并 确认之。A机判断出CC(确认=X1)是过时的,将发送一个拒 绝报文REJ(确认=Y),表示对来自B机的CC(初始序号=Y, 确认=X1)的拒绝。于是便不会在旧的重复连接请求上建立 错误连接了。