资讯专栏INFORMATION COLUMN

TCP/UDP协议

Tecode / 2081人阅读

摘要:没有拥塞控制网络出现拥塞并不会使源主机的发送速率降低很多实时应用如电话,实时视频会议等要求主机以恒定速率发送数据,并且允许在拥塞时有一些数据丢失,但不允许有太大的时延,就可以用,比如打视频电话,有一两帧卡顿影响并不大。

Tcp协议(传输控制协议)

  • tcp是面向连接的协议,在收发数据之前,必须与对方建立可靠的连接;
  • 三次握手:简单形象通俗描述:
    主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;
    主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;
    主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。

三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。
7g1laxrvym.png

四次握手:断开Tcp连接时,需要客户端和服务端总共发送4个包以确认连接的断开。通俗描述为:
客户端A和服务器B四次握手:
客户端A: “B我已经没有话说了我不会再给你发消息了”; (等待B确认)(一次握手)
服务端B: “A好的我知道你不会给我发消息了”;(此时A->B的这条通路会变为半关闭状态A -> B这个方向的连接释放了但是B->A这个方向的还没释放B发消息给AA仍能接收到)(二次握手);
服务端B: “A我也没话要跟你说了”;(等待A确认)(三次握手);
客户端A: “好,我知道了,挂了吧”;(收到确认后,B断开连接,A断开连接)。
1myou8cjef.png

特点:
(1)是面向连接的运输层协议(使用Tcp协议前必须建立Tcp连接,传送数据完毕后,必须释放已建立的Tcp连接);
(2)点对点:每条Tcp连接只能有两个端点(连接的端点叫套接字(socket)或插口);
(3)Tcp提供可靠交互服务,通过Tcp连接传送的数据,无差错,不丢失,不重复,并且有序到达。
(4)提供全双工通信:
(5)面向字节流。

适用场景:适用于对效率要求相对低,但对准确性要求相对高的场景下;
一般用于文件传输(对数据准确性要求高,速度可以相对慢),发送或接收邮件(对数据准确性要求高,非紧急应用),远程登录等等。
TCP可以用于网络数据库,分布式高精度计算系统的数据传输

Tcp的可靠传输协议
(1)停止等待协议:

超时重传:A给B发送消息后,必须收到B返回的确认消息才算发送成功,A只要在发送后的一段时间内没有收到B的确认消息,那就认为刚才发的消息丢失,就会重新发送刚才的消息,这就叫超时重传。
一种情况是,B在收到重传的消息后,又收到了之前丢失的消息,此时B也应该向A发送确认信息,但A会将这个信息丢弃,B也会将迟到的那个信息丢弃。

(2)连续ARQ协议

滑动窗口协议:接收方采用累计确认的方式,接收方不必对收到的分组逐个发送确认,而是在收到几个分组后,对按序到达的最后一个分组发送确认。

Tcp的拥塞控制
(1)拥塞:对网络资源的需求超过了网络能提供的资源(需求资源 > 可用资源)就称为拥塞;
(2)拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至于过载。
(3)几种拥塞控制方法:

慢开始算法 和 拥赛避免算法:发送数据时,由小到大逐渐增大发送窗口,这样的方法可以使分组注入到网络的速率更合理。
快重传算法 和 快恢复算法:收到3个重复的确认,执行快重传算法,转入拥塞避免,将发送窗口数量变为慢开始数量的一半。

Udp协议
特点:
(1)UDP是无连接的:发送数据之前不需要建立连接,发送结束后也没有连接释放,因此减少了开销和发送数据前的时研;
(2)UDP使用尽最大努力交付:即不保证可靠交互;
(3)UDP是面向报文的:发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
(4)UDP没有拥塞控制:网络出现拥塞并不会使源主机的发送速率降低;

很多实时应用如ip电话,实时视频会议等要求主机以恒定速率发送数据,并且允许在拥塞时有一些数据丢失,但不允许有太大的时延,就可以用UDP,比如打视频电话,有一两帧卡顿影响并不大。
(5)UDP支持一对一,一对多,多对一,多对多的交互通信;
(6)UDP首部开销小;

适用场景:UDP协议适用于对效率要求相对高,对准确性要求相对低的场景。

UDP一般用于即时通信:

聊天软件 对数据准确性和丢包要求比较低,但速度必须快;
在线视频(RTSP 速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的);
网络语音电话(VoIP 语音数据包一般比较小,需要高速发送,偶尔断音或串音也没有问题);
UDP可以用于服务系统内部之间的数据传输,因为数据可能比较多,内部系统局域网内的丢包错包率又很低,即便丢包,顶多是操作无效,这种情况下,UDP经常被使用。

转发自:https://cloud.tencent.com/developer/article/1479592

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/126105.html

相关文章

  • 快速理解TCPUDP的差异

    摘要:由于本身发送的就是一份一份的数据报,所以自然而然的就有一个上限的大小。并且由于本身的不可靠性以及无序性,如果发送了这三个数据报过来,端接收到的可能是任意顺序任意个数三个数据报的排列组合。 前言 最头疼的问题莫过于到底该选TCP还是UDP作为传输层协议。通过快速对比分析 TCP 和 UDP 的区别,来帮助即时通讯初学者快速了解这些基础的知识点,从而在IM、消息推送等网络通信应用场景中能准...

    tomato 评论0 收藏0
  • TCPUDP比较

    摘要:该状态会持续最大段生存期,指报文段在网络中生存的时间,超时会被抛弃时间,若该时间段内没有的重发请求的话,就进入状态。 引言 网络协议是每个前端工程师都必须要掌握的知识,TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP,本文将介绍下这两者以及它们之间的区别。 想阅读更多优质文章请猛戳GitHub博客 一、TCP/IP网络模型 计算机与网络设备要相互通信,双方就必须...

    chanjarster 评论0 收藏0
  • TCPUDP比较

    摘要:该状态会持续最大段生存期,指报文段在网络中生存的时间,超时会被抛弃时间,若该时间段内没有的重发请求的话,就进入状态。 引言 网络协议是每个前端工程师都必须要掌握的知识,TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP,本文将介绍下这两者以及它们之间的区别。 想阅读更多优质文章请猛戳GitHub博客 一、TCP/IP网络模型 计算机与网络设备要相互通信,双方就必须...

    zhaochunqi 评论0 收藏0
  • TCP, UDP, HTTP, HTTPS, SOCKET

    摘要:代表传输控制协议网际协议,指的是一系列协议。,传输控制协议是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。第二是超文本传输协议,信息是明文传输,则是具有安全性的加密传输协议。 IP:网络层协议; TCP和UDP:传输层协议; HTTP:应用层协议; SOCKET:TCP/IP网络的API。 TCP/IP代表传输控制协议/网际协议,指的是一系列协议。 T...

    Tony 评论0 收藏0
  • TCP/IP协议

    摘要:协议族的构成数据链路层网络层传输层应用层和是网络层的协议,但是它所工作的内容是链路层的。。。发送的时候,协议为每个包编号,简称,以便接收的一方按照顺序还原。并没有提供任何机制,表示原始文件的大小,这由应用层的协议来规定。 TCP/IP协议族的构成 * 数据链路层:ARP,RARP * 网络层: IP,ICMP,IGMP * 传输层:TCP ,UDP,UGP * 应用层:Telnet,F...

    CrazyCodes 评论0 收藏0
  • Android 面试必备 - 计算机网络基本知识(TCPUDP,Http,https)

    摘要:在网络层有协议协议协议协议和协议。而且,因为有确认机制三次握手机制,这些也导致容易被人利用,实现等攻击。没有的这些机制,较被攻击者利用的漏洞就要少一些。但也是无法避免攻击的,比如攻击缺点不可靠,不稳定。 简介 HTTP协议(超文本传输协议)和 UDP(用户数据包协议),TCP 协议(传输控制协议) TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。在网络层有I...

    My_Oh_My 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<