TCP与UDP协议

合集下载

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与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与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的使用例子

有关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⾯向连接;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和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有什么区别

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协议与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协议通过确认和重传机制,丢包率较低。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)的拒绝。于是便不会在旧的重复连接请求上建立 错误连接了。
相关文档
最新文档