TCP/IP、Http、Socket的区别

区别是:TCP/IP即传输控制/网络协议,也叫作网络通讯协议,它是在网络的使用中的最基本的通信协议。Http是一个简单的请求-响应协议,它通常运行在TCP之上。Socket是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。是支持TCP/IP协议的路通信的基本操作单元。

TCP/IP

TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。 [2] 

TCP/IP协议是Internet最基本的协议,其中应用层的主要协议有TelnetFTPSMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层;传输层的主要协议有UDP、TCP,是使用者使用平台和计算机信息网内部数据结合的通道,可以实现数据传输与数据共享;网络层的主要协议有ICMP、IP、IGMP,主要负责网络中数据包的传送等;而网络访问层,也叫网络接口层或数据链路层,主要协议有ARP、RARP,主要功能是提供链路管理错误检测、对不同通信媒介有关信息细节问题进行有效处理等。

Http

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

HTTP诞生之初主要是应用于WEB端内容获取,那时候内容还不像现在这样丰富,排版也没那么精美,用户交互的场景几乎没有。对于这种简单的获取网页内容的场景,HTTP表现得还算不错。但随着互联网的发展和WEB2.0的诞生,更多的内容开始被展示(更多的图片文件),排版变得更精美(更多的CSS),更复杂的交互也被引入(更多的JS)。用户打开一个网站首页所加载的数据总量和请求的个数也在不断增加。

Socket

所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。

套接字是通信的基石,是支持TCP/IP协议的路通信的基本操作单元。可以将套接字看作不同主机间的进程进行双间通信的端点,它构成了单个主机内及整个网络间的编程界面。套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念。套接字通常和同一个域中的套接字交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序),各种进程使用这个相同的域互相之间用Internet协议簇来进行通信。

延伸阅读:

Socket主要类型

1、流套接字(SOCK_STREAM)

流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP(The Transmission Control Protocol)协议。

2、数据报套接字(SOCK_DGRAM)

数据报套接字提供一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP( User DatagramProtocol)协议进行数据的传输。由于数据报套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理。

3、原始套接字(SOCK_RAW)

原始套接字与标准套接字(标准套接字指的是前面介绍的流套接字和数据报套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据报套接字只能读取UDP协议的数据。因此,如果要访问其他协议发送的数据必须使用原始套接。

文章标题:TCP/IP、Http、Socket的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38180

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月14日 下午8:20
下一篇 2023年2月14日 下午8:21

相关推荐

  • 投资新项目如何管理公司

    投资新项目时管理公司的核心技巧包括项目评估、风险管理、资源分配、团队建设、进度监控、持续优化等重要环节。其中,项目评估是项目成功与否的关键,它包括了对市场需求的研究、项目的可行性分析、预期回报的评估和风险评估等多个方面。好的项目评估不仅能帮助公司发现有价值的投资机会,而且还能在项目开始前预测可能面临…

    2024年4月10日
    6000
  • DevOps中的故障域划分

    故障域划分主要包括如下四个方面:1、定义服务边界、2、隔离和冗余设计、3、自动化故障检测和修复、4、持续监控和预警系统。特别需要关注服务边界的定义,它是确定其他故障域策略的基础。在DevOps实践中,正确划分故障域可以最小化单点故障对整体服务的影响,并快速恢复服务。 一、定义服务边界 在DevOps…

    2024年1月4日
    30700
  • 掌控板图形化编程是什么

    掌控板图形化编程是一种使用图形化界面进行编程的方法,它允许程序员通过拖放编程块来创建程序,而不需要编写传统的代码。1、易于理解和使用;2、适合教育领域;3、加速开发过程。在这些优势中,易于理解和使用尤为突出,因为用户可以通过可视化的方式运用逻辑构建程序,这极大地降低了编程的门槛,使得没有编码背景的人…

    2024年4月27日
    800
  • 工程编程讲什么

    工程编程是一门聚焦于软件开发与工程实践技能的学科,旨在培养学生掌握1、编程语言理论与应用、2、软件开发生命周期管理、3、设计模式与软件架构、4、软件测试与质量保证等关键技能。编程语言理论与应用是学习工程编程的基石,它不仅包括学习不同的编程语言(如Java、Python、C++等),而且关注于如何在实…

    2024年4月26日
    1400
  • 为什么中学生学编程好

    在当前的教育与技术环境下,中学生学习编程显得尤为重要。主要原因包括1、提升逻辑思维能力、2、未来职业竞争力增强、3、培养创新精神和解决问题的能力。其中,提升逻辑思维能力是基础中的基础,编程不仅仅是让计算机执行命令,更重要的是通过编写代码解决问题的过程中,训练学生的思维方式,使其更加清晰、条理化,从而…

    2024年4月27日
    900
  • 什么是类比估算和参数估算

    类比估算是一种使用相似活动或项目的历史数据,来估算当前活动或项目的持续时间或成本的技术。类比估算以过去类似项目的参数值为基础,来估算未来项目的同类参数或指标。参数估算是一种基于历史数据和项目参数,使用某种算法来计算成本或持续时间的估算技术。 类比估算 类比估算是一种使用相似活动或项目的历史数据,来估…

    2023年1月17日
    1.6K00
  • java编程用什么软件

    摘要 在进行Java编程时,广泛推荐使用的软件包括1、IntelliJ IDEA、2、Eclipse、3、NetBeans。其中,IntelliJ IDEA因其出色的智能代码助手、高效的代码分析流程以及对现代化Java开发的全面支持而脱颖而出。IntelliJ IDEA不仅提供了一个强大的编码环境,…

    2024年4月25日
    2100
  • 知识库为什么是新员工入职培训的理想选择

    知识库是新员工入职培训的理想选择的原因:1、可随时随地访问;2、自主学习和个性化;3、持续更新和最新信息;4、多媒体支持和互动性;5、节省成本和资源;6、提高效率和快速上手;7、跟踪和评估学习进度;8、提供一致的培训体验;9、管理和维护的便利性;10、环保和可持续性。

    2023年11月28日
    30600
  • 编程中分布式是什么

    分布式编程是数据和任务分配在多个计算节点上的一种编程范式,旨在提高系统的扩展性、可用性和计算效率。主要特点包括:1、系统可扩展性;2、高容错能力;3、灵活的资源管理;4、并行处理能力。 在分布式编程中,系统可扩展性尤为关键,它使得系统可以通过增加更多的硬件资源来提高性能和处理能力。由于任务和数据被分…

    2024年4月27日
    1200
  • 编程技术可以做什么兼职

    编程技术可以开展的兼职工作主要包括1、网站开发与维护;2、移动应用开发;3、软件开发;4、数据分析与处理;5、人工智能和机器学习项目。 其中,网站开发与维护是一个极为广泛且需求量大的领域。不仅因为每天都有新的企业成立,需要搭建自己的官网,而且许多现有的网站也需要进行定期更新或是功能升级来适应市场的变…

    2024年4月27日
    1000

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部