本文链接:https://blog.csdn.net/hai_chao/article/details/79626161
整理的这些区别和联系都是非常重要的。

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

在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
TCP的优点
可靠,稳定
TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。

TCP的缺点
慢,效率低,占用系统资源高,易被攻击
TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。

由于TCP存在确认机制和三次握手机制,这些是导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。

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

在日常生活中,常见使用TCP协议的应用比如:浏览器使用HTTP,Outlook使用POP、SMTP,QQ文件传输等。

UDP协议
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。

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

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

UDP应用场景
当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。在日常生活中,常见使用UDP协议的应用比如:QQ语音、QQ视频、TFTP等。

TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。

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

在网络层有:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。

在传输层中有:TCP协议与UDP协议。

在应用层有:FTP、HTTP、TELNET、SMTP、DNS等协议。

因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。

TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证。

HTTP协议
HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。
HTTP是短连接:客户端发送请求都需要服务器端回送响应.请求结束后,主动释放链接,因此为短连接。通常的做法是,不需要任何数据,也要保持每隔一段时间向服务器发送”保持连接”的请求。这样可以保证客户端在服务器端是”上线”状态。

HTTP连接使用的是”请求-响应”方式,不仅在请求时建立连接,而且客户端向服务器端请求后,服务器才返回数据。

Socket协议
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
————————————————
版权声明:本文为CSDN博主「请叫我一声潮哥」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hai_chao/article/details/79626161

说说TCP,UDP和socket,Http之间联系和区别相关推荐

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

    TCP协议 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络O ...

  2. HTTP,FTP,TCP,UDP及SOCKET

    一.TCP/IP协议简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传输层:TCP协议与UDP协议 应 ...

  3. Java之初步识别网络编程:IP、端口号、TCP/UDP、Socket、URL等

    文章目录 一.网络编程概述 二.网络通信要素概述 三.通信要素1:IP和端口号 IP相关 InetAdress类 如何实例化InetAddress 端口号 四.通信要素2:网络协议 TCP/IP协议簇 ...

  4. 基于TCP/UDP的socket编程

    基于TCP(面向连接)的socket编程 服务器端顺序:  1. 创建套接字(socket)  2. 将套接字绑定到一个本地地址和端口上(bind)  3. 将套接字设为监听模式,准备接收客户请求(l ...

  5. 基于TCP/UDP的socket服务器搭建流程

    目录 TCP/UDP概念介绍 一.TCP/UDP对比 二.端口号的作用 三.字节序 1.概念 2.分类 3.C程序在内存空间的映射 socket服务器与客户端开发流程 一.流程介绍 二.socket服 ...

  6. [网络]------TCP UDP HTTP Socket 区别

    关于这几个的概念,网上已经很全面了,在这个做个笔记: 前提须知: 1.协议就是大家提前约定的一种规范,后人照着这个遵循就可以,也可以将语言理解为一种协议 2.网络通信的世界中,有七层协议(应用层,表示 ...

  7. TCP/UDP/IP/Socket的定义

    TCP(Transmission Control Protocol ) 传输控制协议(TCP),是一种面向连接的.可靠的.基于字节流的传输层通信协议 在简化的计算机网络OSI模型中,它完成第四层传输层 ...

  8. TCP/UDP/Socket 通俗讲解

    1.封包和拆包 封包,就是发送数据前把自己本地需要发送的数据包装一下,即把要发送的原始数据附加上接受者可以辨识到自己身份等一些额外信息.有点像寄一封信,信封上填写的寄件人和收件人以及地址. 拆包,是接 ...

  9. TCP UDP socket http webSocket 之间的关系

    阅读目录 OSI & TCP/IP 模型 几者之间的关系 HTTP Socket WebSocket webSocket 概念 webSocket 优点 Websocket 的作用 ajax轮 ...

  10. 基于tcp和udp的socket实现

    2019独角兽企业重金招聘Python工程师标准>>> 本文介绍如何用Java实现Socket编程.首先介绍Java针对Socket编程提供的类,以及它们之间的关系.然后分别针对TC ...

最新文章

  1. XSSFWorkbook与HSSFWorkbook的区别
  2. Teamcenter(Enterprise 2007) Admin 手法之 -- 移除relation
  3. 夏侯南溪搭建目标检测模型——数据读取篇
  4. 使用file_get_contents下载图片
  5. linux awk 时间范围,如何用awk从日志文件中找到时间范围的记录
  6. 数据分析中常用的数据模型
  7. java 10套完整项目开发案例 (详细实现步骤)
  8. css控制图片自适应大小
  9. Java根据成绩排名次_C语言按考试成绩排名次并存储到文件中
  10. 腾讯通、第一企信、imo云办公室、263云通信哪家强
  11. phalcon蹩脚的面包屑(breadcrumbs)功能
  12. css+js+jq实训笔记
  13. 电脑的远程控制是什么
  14. chatbot_Chatbot开发简介
  15. Zeal离线文档下载,以及报错解决方法
  16. DataMatrix二维码识别 Halcon 同类软件 Malcon 机器视觉软件 案例讲解 FindDataCode2d
  17. 电商API接口获取商品详情数据
  18. 什么是物流服务认证?
  19. ipad下添加126邮箱账户
  20. Listary - 文件浏览与搜索增强的超级神器

热门文章

  1. 简单总结一下JS的Array对象
  2. 流模型 操作 xml
  3. win、linux下tomcat内存的修改
  4. 在mysql上发布jbpm4.3
  5. ixgbe驱动不支持三方兼容光模块SFP+SFP+或者QSFP的解决方案
  6. Android学习JNI,使用JNI实现字符串加密
  7. linux内存源码分析 - 内存回收(匿名页反向映射)
  8. ffmpeg主要数据结构及其之间的关系
  9. 1067 Sort with Swap(0, i) (25 分)思路
  10. STL中的lower_bound()函数和upper_bound()