标签(空格分隔): TCP,udp服务器
TCP被称为可靠的数据传输协议,主要是经过许多机制来实现的其中最主要的就是三次握手的功能,固然,TCP传送数据的机制很是复杂,有兴趣的朋友请自行参考相关的网络书籍,那么如何利用TCP的包头来确认这个数据包已经被对方接收,并进一步对方的主机实现链接?咱们以图说明:网络
在上边的数据包链接的过程当中,必须通过三次确认的动做,因此这种链接方式也被称为三次握手(Tree-way handshake)那么咱们将上边的步骤分为:A,B,C,D四个阶段来讲明;tcp
- A:数据包发起:
- B:数据包接受也确认数据包传输:
- C:回送确认数据包:
- D:取得最后的确认:
若一切顺利,就能创建真正的链接了;
也就是说你必须了解“网络是双向的”这个事实,因此不管是客户端仍是服务端都必须经过一次SYN和ACK来创建链接,因此总共进行三次交谈!在设定的防火墙或者是追踪网络链接的问题时,这个“双向”的概念是最容易忽略的,并且经常致使没法成功链接的问题;
- 以下例子模拟三次握手:
有人问:***你在吗?
回答:在的,你在吗?
对方回答:在的
此时两我的确认彼此均可以听到对方的时候,就能够创建可靠的链接了;
UDP的全称是即:用户数据报协议,UDP和TCP不同,UDP不提供可靠的传输模式,由于它不是面向链接的机制,这是由于在UDP的传送过程当中,接收端在接收导数据包以后,不会回复响应数据包(ACK)给发送端,因此数据包并不像TCP有较为严密的检查机制;blog
TCP的数据包确实是比较可靠的,由于经过三次握手,不过,也因为三次握手的缘故,TCP数据包的传输速度会很是的慢,至于UDP数据包因为不须要确认对方是否正确的收到数据,故报头数据较少,因此UDP就能够在data 处填充更多的数据,同时UDP比较适合须要实施反映一些数据流,例如影向实时传输软件等等,就能够实用这类的数据包传输,也就是UDP的传输并不考虑链接要求,链接终止与流量控制等特性,因此适合的场景是:当数据的正确性要求不是很重要的时候,例如:网络摄影机;cli
另外的不少的软件提供了TCP和UDP的传输协议的,举例来讲,查看主机的名字DNS服务就同时提供了TCP和UDP协议,因为UDP较为快速,因此咱们的client端能够先使用UDP来与服务器链接,可是当使用UDP链接却仍是没法取得正确的数据时,便转换为较为可靠的TCP协议来传输了,这样能够同时兼顾快速和可靠的传输;软件
- :例子:上课的时候老师一直讲不少的东西,无论同窗听不听他都一直讲,也不须要学生的响应,就一直讲,这就是UDP协议