网络基础】【网络基础】tcp和udp的用途都是做什么的

2020-10-27 09:30发布

8条回答
天天
2楼 · 2020-10-27 09:40

TCP(传输控制协议):

1)提供IP环境下的数据可靠传输(一台计算机发出的字节流会无差错的发往网络上的其他计算机,而且计算机A接收数据包的时候,也会向计算机B回发数据包,这也会产生部分通信量),有效流控,全双工操作(数据在两个方向上能同时传递),多路复用服务,是面向连接,端到端的传输;

2)面向连接:正式通信前必须要与对方建立连接。事先为所发送的数据开辟出连接好的通道,然后再进行数据发送,像打电话。

3)TCP支持的应用协议:Telnet(远程登录)、FTP(文件传输协议)、SMTP(简单邮件传输协议)。TCP用于传输数据量大,可靠性要求高的应用。

UDP(用户数据报协议,User Data Protocol)

1)面向非连接的(正式通信前不必与对方建立连接,不管对方状态就直接发送,像短信,QQ),不能提供可靠性、流控、差错恢复功能。UDP用于一次只传送少量数据,可靠性要求低、传输经济等应用。

2) UDP支持的应用协议:NFS(网络文件系统)、SNMP(简单网络管理系统)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。


芒果
3楼 · 2020-10-27 11:29

UDP:
  1、将数据源和目的地封装到数据包中,不需要建立连接
  2、每个数据包的大小限制在64k以内
  3、因无连接,是不可靠协议
  4、不需要建立连接,速度快

  例子:聊天、对讲机就是UDP的,面向无连接(不管在不在,知不知道,只管发送,求速度),丢数据也不管。速度快。数据被分成包

TCP:

  1、建立连接,形成传输数据的通道
  2、在连接中进行大量数据的传输
  3、通过三次握手完成连接、是可靠协议
  4、必须建立连接,效率会稍低

 例子:电话通话,必须连接,对方同意才可以发送数据(不然就等待),不能丢失数据。


那些年很冒险的梦。
4楼 · 2020-10-27 14:27

TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快好好读下,你会明白的。


赵小刀
5楼 · 2020-10-27 20:55

TCP(传输控制协议) UDP(用户数据报协议)

TCP和UDP都是属于传输层协议,负责承担数据传输的任务,其中TCP属于可靠的面向连接服务,UDP是不可靠的无连接数据报服务

TCP需要经过三次握手才能建立一个安全连接,所以效率比较低,但是安全性高,UDP不需要,就跟电报一样,不管你收没收到,所以效率高,但是不可靠,例如我们网络里的DNS请求,就是用UDP发送的,还有QQ里用UDP直连方式语音,速度也是最快的


我想吃肉
6楼 · 2020-10-28 09:16

tcp(传输控制协议):

1)提供ip环境下的数据可靠传输(一台计算机发出的字节流会无差错的发往网络上的其他计算机,而且计算机a接收数据包的时候,也会向计算机b回发数据包,这也会产生部分通信量),有效流控,全双工操作(数据在两个方向上能同时传递),多路复用服务,是面向连接,端到端的传输;

2)面向连接:正式通信前必须要与对方建立连接。事先为所发送的数据开辟出连接好的通道,然后再进行数据发送,像打电话。

3)tcp支持的应用协议:telnet(远程登录)、ftp(文件传输协议)、smtp(简单邮件传输协议)。tcp用于传输数据量大,可靠性要求高的应用。

udp(用户数据报协议,user data protocol)

1)面向非连接的(正式通信前不必与对方建立连接,不管对方状态就直接发送,像短信,qq),不能提供可靠性、流控、差错恢复功能。udp用于一次只传送少量数据,可靠性要求低、传输经济等应用。

2) udp支持的应用协议:nfs(网络文件系统)、snmp(简单网络管理系统)、dns(主域名称系统)、tftp(通用文件传输协议)等。

总结:

tcp:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。

udp:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。


kitidog2016
7楼 · 2020-10-28 09:59

TCP与UDP基本区别
  1.基于连接与无连接
  2.TCP要求系统资源较多,UDP较少; 
  3.UDP程序结构较简单 
  4.流模式(TCP)与数据报模式(UDP); 
  5.TCP保证数据正确性,UDP可能丢包 
  6.TCP保证数据顺序,UDP不保证 
  
UDP应用场景:
  1.面向数据报方式
  2.网络数据大多为短消息 
  3.拥有大量Client
  4.对数据安全性无特殊要求
  5.网络负担非常重,但对响应速度要求高
 
具体编程时的区别
   1.socket()的参数不同 
   2.UDP Server不需要调用listen和accept 
   3.UDP收发数据用sendto/recvfrom函数 
   4.TCP:地址信息在connect/accept时确定 
   5.UDP:在sendto/recvfrom函数中每次均 需指定地址信息 
   6.UDP:shutdown函数无效
 
编程区别
   通常我们在说到网络编程时默认是指TCP编程,即用前面提到的socket函数创建一个socket用于TCP通讯,函数参数我们通常填为SOCK_STREAM。即socket(PF_INET, SOCK_STREAM, 0),这表示建立一个socket用于流式网络通讯。 
   SOCK_STREAM这种的特点是面向连接的,即每次收发数据之前必须通过connect建立连接,也是双向的,即任何一方都可以收发数据,协议本身提供了一些保障机制保证它是可靠的、有序的,即每个包按照发送的顺序到达接收方。 

  而SOCK_DGRAM这种是User Datagram Protocol协议的网络通讯,它是无连接的,不可靠的,因为通讯双方发送数据后不知道对方是否已经收到数据,是否正常收到数据。任何一方建立一个socket以后就可以用sendto发送数据,也可以用recvfrom接收数据。根本不关心对方是否存在,是否发送了数据。它的特点是通讯速度比较快。大家都知道TCP是要经过三次握手的,而UDP没有。 

基于上述不同,UDP和TCP编程步骤也有些不同,如下:

TCP: 
TCP编程的服务器端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt(); * 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind(); 
  4、开启监听,用函数listen(); 
  5、接收客户端上来的连接,用函数accept(); 
  6、收发数据,用函数send()和recv(),或者read()和write(); 
  7、关闭网络连接; 
  8、关闭监听; 

TCP编程的客户端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选 
  4、设置要连接的对方的IP地址和端口等属性; 
  5、连接服务器,用函数connect(); 
  6、收发数据,用函数send()和recv(),或者read()和write(); 
  7、关闭网络连接;

UDP:
与之对应的UDP编程步骤要简单许多,分别如下: 
  UDP编程的服务器端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind(); 
  4、循环接收数据,用函数recvfrom(); 
  5、关闭网络连接; 

UDP编程的客户端一般步骤是: 
  1、创建一个socket,用函数socket(); 
  2、设置socket属性,用函数setsockopt();* 可选 
  3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选 
  4、设置对方的IP地址和端口等属性; 
  5、发送数据,用函数sendto(); 
  6、关闭网络连接;

TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。

UDP补充:
   UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立刻按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况下,UDP也无法进行流量控制等避免网络拥塞的行为。此外,传输途中如果出现了丢包,UDO也不负责重发。甚至当出现包的到达顺序乱掉时也没有纠正的功能。如果需要这些细节控制,那么不得不交给由采用UDO的应用程序去处理。换句话说,UDP将部分控制转移到应用程序去处理,自己却只提供作为传输层协议的最基本功能。UDP有点类似于用户说什么听什么的机制,但是需要用户充分考虑好上层协议类型并制作相应的应用程序。

TCP补充:
  TCP充分实现了数据传输时各种控制功能,可以进行丢包的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在UDP中都没有。此外,TCP作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。


TCP与UDP区别总结:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保   证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
  UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道


不吃鱼的猫
8楼 · 2020-10-28 10:14

TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制


征戰撩四汸
9楼 · 2022-04-02 17:17

TCP一般用于文件传输,发送或接收邮件,远程登陆等
UDP一般用于即时通信(QQ聊天),在线视频,网络语音电话

相关问题推荐

  • 回答 3

    交换机上面的线可以随便插,但是主线别忘插了,随便怎么插都可以,不是必须插第一个,网速慢不是因为插错孔,而是络没有设置号,希望能解决你的困惑 1M的线.4个人上,不卡才叫见鬼了,最少得3M才能正常上网 你们所有人都慢还是只有一个人慢...

  • 回答 5

    这里以常见的二层交换机为例,更高层次的交换机不在本次套路内容。交换机工作于OSI七层模型中的第二层,数据链路层;交换机依靠MAC地址进行寻址,内部维护着一张MAC地址表。

  • 回答 6

    交换机的作用:从功能上:交换机是用于连接多台设备,让其具备网络互通的条件。从定义上:交换机是一个网络设备,能连接多台设备到计算机网络中,通过数据包交换的方式,将数据转发到目的地。交换机的连接方式:目前连接线最长采用的有两种:双绞线(网线)和光...

  • 回答 12

    交换机的作用:1、 像集线器一样,交换机提供了大量可供线缆连接的端口,这样可以采用星型拓扑布线。2、 像中继器、集线器和网桥那样,当它转发帧时,交换机会重新产生一个不失真的方形电信号。3、像网桥那样,交换机在每个端口上都使用相同的转发或过滤逻辑...

  • 回答 5

    1、地址不同。传统交换机是从网桥发展而来的,它根据MAC地址,通过站表选择路由,站表的建立和维护由交换机自动进行。路由器属于OSI第三层网络设备,它根据IP地址进行寻址,通过路由表路协议产生。2、性质不同。交换机主要是完成相同或相似的物理介质和链路协...

  • 回答 2

    路由器在网络层,路由器根据IP地址寻址,路由器可以处理TCP/IP协议,交换机不可以。交换机根据MAC地址寻址。交换机在中继层路由器可以把一个IP分配给很多个主机使用,这些主机对外只表现出一个IP。交换机可以把很多主机连起来,这些主机对外各有各的IP。路由...

  • 回答 4

    直接从交换机连接网线到路由器LAN口就可以了

  • 回答 2

    华为路由器交换机配置命令大合集,熟练掌握下面的华为路由器交换机配置知识点,你只需花几分钟的时间就能明白华为路由器交换机配置。交换机的配置命令等等。华为路由器交换机配置命令:计算机命令PCAlogin:root;使用root用户password:linux;口令是linux#shu...

  • 回答 2
    已采纳

    计算机的基本原理是存储程序和程序控制。预先要把指挥计算机如何进行操作的指令序列(称为程序)和原始数据通过输入设备输送到计算机内存贮器中。每一条指令中明确规定了计算机从哪个地址取数,进行什么操作,然后送到什么地址去等步骤。计算机在运行时,先从...

没有解决我的问题,去提问