TCP,UDP和socket,Http之间的联系与区别

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

因为最近做一个智能家居项目,首先要通信用socket,为了及时先用UDP判断是内网外网建立链接,再用TCP实时通信。

首先了解定义

http://www.360doc.com/content/14/0325/09/1317564_363500997.shtml

TCP的优点:

可靠,稳定
TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源

TCP的缺点:

慢,效率低,占用系统资源高,易被攻击
TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。
而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。

UDP的优点:

快,比TCP稍安全
UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击……

UDP的缺点:

不可靠,不稳定
因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。

基于上面的优缺点,那么:

什么时候应该使用TCP:

当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给
对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等
传输文件的协议,POP、SMTP等邮件传输的协议。
在日常生活中,常见使用TCP协议的应用如下:

浏览器,用的HTTP
FlashFXP,用的FTP
Outlook,用的POP、SMTP
Putty,用的Telnet、SSH
QQ文件传输
…………

什么时候应该使用UDP:

当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可
以使用UDP。
比如,日常生活中,常见使用UDP协议的应用如下:

QQ语音
QQ视频
TFTP


这里写图片描述

1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。

在网络层有:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有:TCP协议与UDP协议。
在应用层有:FTP、HTTP、TELNET、SMTP、DNS等协议。
因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。

2、HTTP协议是建立在请求/响应模型上的。

首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功和失败码以及相关的MIME式样的消息。
HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接,因此一个包含HTML内容和图片的页面将需要建立多次的短期的TCP链接。一次TCP链接的建立将需要3次握手。
另外,为了获得适当的传输速度,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性,因此HTTP/1.1提出了可持续链接的实现方法。HTTP/1.1将只建立一次TCP的链接而重复地使用它传输一系列的请求/响应消息,因此减少了链接建立的次数和经常性的链接开销。

3、结论:

虽然HTTP本身是一个协议,但其最终还是基于TCP的。不过,目前,有人正在研究基于TCP+UDP混合的HTTP协议。

Socket是什么呢?

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议

HTTPUDP区别比较 TCP(Transmission Control Protocol,传输控制协议)UDP(User Data Protocol,用户数据协议)是互联网传输数据较为常用的协议,我们熟知的HTTP就是基于TCP的。 二者区别: 1. 连接类型:TCP是面向连接的协议,要传输数据必须先进行连接,就是常说的“三次握手”,握手成功建立连接之后才能进行数据的传输交互,如同微信视频聊天需要对方接受才能彼此 阅读详情

相关推荐

【2024】TCPUDP HTTP区别是?

本文深入探讨了HTTPTCP协议的基本概念、工作原理及它们在网络通信中的关键作用。通过比较,我们明确了TCP作为传输层协议,提供可靠的、面向连接的数据传输服务,而HTTP则作为应用层协议,专门用于Web浏览器服务器之间的通信。

接着奏乐接着舞的博客 3731

TCPUDPHTTPSOCKET、WebSocket之间区别

TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层, 每层都有相应的协议,如下图IP:网络层协议;(高速公路)TCPUDP:传输层协议;(卡车)HTTP:应用层协议;(货物)。HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。SOCKET:套

火星男孩的分享空间 3万+

sockettcpudphttp 的认识及区别

一、先来一个讲TCPUDPHTTP关系的 1、TCP/IP是个协议组,可分为三个层次:网络层、传输层应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议BOOTP协议。 在传输层中有TCP协议UDP协议。 在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。 因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。 ...

weixin_34061482的博客 1561

TCP/UDP,HTTP,HTTP2.0,HTTPS,史上最详解,看一篇全懂了

一、前言 作为上层应用的开发者,对网络通讯知识平时接触的少,久而久之很多都忘了,但这又是it人的饭碗,出去面试,这些基础知识说不出一二三,得会鄙视。本篇就为您全面解析这些基础知识,只要原理,不讲细节,只需理解,不必深究。 二、OSI七层模型 我们从七层模型说起,这是整个网络通讯技术的基石,所有的网络设备通讯协议都依附于这七层模型上。话不多说先上图。 ...

恰恰虎的博客 1万+

说说TCP,UDPsocket,Http之间联系区别

整理的这些区别联系都是非常重要的。TCP协议 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)

从头再来 3万+

网络上ip,tcp,udp,socket,http等等之间区别联系

前言 ​ 作为一名开发人员我们经常会听到HTTP协议、TCP/IP协议、UDP协议、SocketSocket长连接、Socket连接池等字眼,然而它们之间的关系、区别及原理并不是所有人都能理解清楚,这篇文章就从网络协议基础开始到Socket连接池,一步一步解释他们之间的关系。 七层网络模型 ​ 首先从网络通信的分层模型讲起:七层模型,亦称OSI(Open System Interconne...

Robben.Han 757

TCP,UDPsocket,Http之间联系区别

TCP,UDPsocket,Http之间联系区别

weixin_39527642的博客 289

IP、TCPUDPHTTP、WebSocketSOCKET之间的关系区别

转自http://www.netpc.com.cn/2889.html IP、TCPUDPHTTP、WebSocketSOCKET之间的关系区别 发表于2018 年 11 月 21 日由ken 学通讯先搞清楚各种协议通信层、套接字等。 看看标准的七层模型,亦称OSI(Open System Interconnection)参考模型 7 应用层 例如HTTP、SM...

weixin_37867420的博客 469

tcpudpsocket,http之间联系区别

整理的这些区别联系都是非常重要的。 TCP协议 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。 在因特网协议族(Internet protocol suit...

Egret丶Lu 234

TCP,UDPsocket,Http之间联系区别

1、TCP协议 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。   在因特网协议族(Internet protocol suite)中,TCP层是位于I...

春风化雨 1057

面试必问:说说TCP,UDPsocket,Http之间联系区别

在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的。)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。

Java烂猪皮 655

tcp udp http socket 之间的联系区别

IP:网络层协议; TCPUDP:传输层协议; HTTP:应用层协议; SOCKETTCP/IP网络的API。        TCP/IP代表传输控制协议/网际协议,指的是一系列协议。        TCPUDP使用IP协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCPUDP是高速公路上的“卡车”,它们携带的货物

极客on之路 561

mysql socket tcp udp_Java面试高级篇—说说TCP,UDPsocket,Http之间联系区别面试题12期...

TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层...

weixin_30224231的博客 226

java http 面试题_Java面试高级篇—说说TCP,UDPsocket,Http之间联系区别面试题12期...

TCP协议TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之...

weixin_36411999的博客 232
上一篇: Java中的arraycopy
下一篇: Android子线程中更新UI的3种方法
crazycat喵
博客等级 码龄11年 6粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值