TCP与UDP的区别


1.
理解:窗口和滑动窗口
TCP的流量控制
TCP使用窗口机制进行流量控制
什么是窗口?

链接创建时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另外一端编程

接收方发送的确认信息中包含了本身剩余的缓冲区尺寸网络

剩余缓冲区空间的数量叫作窗口tcp

2. TCP的流控过程(滑动窗口)模块化

2. TCP 与UDP的区别 spa

不少文章都说TCP协议可靠,UDP协议不可靠!为何前者可靠,后者不可靠呢?既然UDP协议不可靠,为何还要使用它呢?所谓的TCP协议是面向链接的协议,面向链接是什么呢?   
TCP和UDP都是传输层的协议!从编程的角度看,就是两个模块(模块就是代码的集合,一系列代码的组合提供相应的功能!模块化最终目的就是:分工协做!模块化好处:便于扩展开发以及维护!)。   
先说TCP协议:   
这个协议,是面向的链接!面向链接这个概念,咱们要从物理层看起。你们都知道,由于“信道复用技术”的迅猛发展,才促使了计算机网络的发展!若是没有“信道复用技术”,那么单条线路上(这里的线路指物理传输介质,例如:双绞线、光纤、电话线)单位时间内只能供一台计算机使用!仍是举例说明:就拿你本身的计算机来讲,你跟同窗“小明”聊天的时候,就不能跟另一位同窗“小强”聊天,若是你想同时跟两位同窗聊天,那么你就得装两条线路!那么同时与第三位、第四位同窗。。。第N位同窗聊天的时候,你须要装几根线路?全世界人民聊天的时候,又须要装几根线路?   
“信道复用技术”实现了,在同一条线路上,单位时间内可供X台计算机同时通讯!Toad知道如下几种复用技术:   
  一、频分复用    二、时分复用    三、波分复用    四、码分复用    五、空分复用    六、统计复用    七、极化波复用   
关于“信道复用技术”更深层次的问题,须要你本身去研究!   
上面咱们提到了“信道复用技术”!知道了这一点,咱们就很容易明白“物理信道”上的“虚拟信道”概念了!不一样的信道复用技术,使用不一样的复用技术,目的就是建立“虚拟信道”。   
一个TCP协议链接其实就是在物理线路上建立的一条“虚拟信道”。这条“虚拟信道”创建后,在TCP协议发出FIN包以前(两个终端都会向对方发送一个FIN包),是不会释放的。正由于这一点,TCP协议被称为面向链接的协议!   计算机网络


UDP协议,同样会在物理线路上建立一条“虚拟信道”,不然UDP协议没法传输数据!可是,当UDP协议传完数据后,这条“虚拟信道”就被当即注销了!所以,称UDP是不面向链接的协议! 3d

TCP协议和UDP协议为何会共存?视频

1. 你们要知道,一种物理线路,单位时间内,可以建立的“虚拟信道”是有限的!blog

2. 使用TCP协议传输数据,当数据从A端传到B端后,B端会发送一个确认包(ACK包)给A端,告知A端数据我已收到!UDP协议就没有这种确认机制!这就是为何说TCP协议可靠,UDP协议不可靠. 进程

QQ普通会员就是使用的UDP协议进行传输数据!既然UDP协议自身没有确认机制,这个工做能够交给应用层的进程来完成(QQ)!你们使用QQ的时候,感受出错的概率仍是很是小吧!固然,把这个确认工做彻底交给QQ自身来作,就直接致使了,QQ软件体积增大!   

 

有些应用,对数据传输可靠性要求很是高,例如你们浏览网页,经过网页注册账号、转账等服务,这是不允许出错的,使用TCP协议能把出错的可能性降到最低(固然,网络自身很糟糕,TCP协议也没办法)。可是,提供这种可靠服务,会加大网络带宽的开销,由于“虚拟信道”是持续存在的,同时网络中还会出现大量的ACK和FIN包!  

  所以,鱼和熊掌不可兼得,需根据实际状况选择传输协议.TCP协议提供了可靠的数据传输,可是其拥塞控制、数据校验、重传机制的网络开销很大,不适合实时通讯,因此选择开销很小的UDP协议来传输数据。   

UDP 协议是无链接的数据传输协议而且无重传机制,会发生丢包、收到重复包、乱序等状况。而对于数据精确性要求不高的状态数据以及视频数据,丢包的影响不大。由于会不断收到新的包,丢失的个别包会有新的包来覆盖,因此只需在远程控制系统的通讯部分自行处理乱序及重复包的问题,而对于丢包的问题通常不做处理。    但对于命令包这种须要精确收发的数据, 可在程序的开发中加入丢包重发和超时丢弃的处理。 固然,若是开发的是对于实时性要求不高的事件型控制命令的传输,不但愿发生指令的丢失也能够直接采用TCP协议。TCP的重传机制正好适合这种状况。   

 

非面向链接的传输协议在数据传输以前不创建链接,而是在每一个中间节点对非面向链接的包和数据包进行路由。没有点到点的链接,非面向链接的协议,如UDP,是不可靠的链接。当一个UDP数据包在网络中移动时,发送过程并不知道它是否到达了目的地,除非应用层已经确认了它已到达的事实。非面向链接的协议也不能探测重复的和乱序的包。标准的专业术语用“不可靠”来描述UDP。在现代网络中,UDP并不易于致使传输失败,可是你也不能确定地说它是可靠的


TCP和UDP都是传输层的协议!

应用层 (QQ)物理链接层各自协议使用的经常使用端口:如http, https, tcp, udp, ftp等等TCP:FTP:21, Telnet:23, SMTP:25UDP:DNS:53, TFTP:69, SNMP:161, RIP:520https:http:80
相关文章
相关标签/搜索