socket、tcp、udp、http 的认识及区别

这篇具有很好参考价值的文章主要介绍了socket、tcp、udp、http 的认识及区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、OSI模型也称七层网络模型 & TCP/IP 模型

socket和tcp/udp的联系和区别,tcp/ip,udp,http,Powered by 金山文档
socket和tcp/udp的联系和区别,tcp/ip,udp,http,Powered by 金山文档

二、SOCKET、TCP、UDP和HTTP的关系

1.socket 本身不是一种协议,而是对传输层中的 TCP/UDP 协议进行了封装,对用户隐藏了内部 TCP/UDP 是如何传输的,只提供一套接口(API)给程序员调用,从而完成socket编程。
2.通过socket接口,我们才能使用TCP/UDP协议。
3.而我们通常浏览网页用到的 http 协议,是建立在TCP协议之上的一种应用层协议。
http协议最显著的特点是它是一种无状态连接,客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接,是一种“短连接”。

对于几者之间的关系,可以概况为:

http 等应用层协议通过 socket 接口从而调用 tcp udp 等传输层协议,从而达到 网络通信。
tcp udp => socket => http

综上所述,我们编程不会直接去调用tcp udp,而是通过他们封装好的接口socket去通信。可以说,现在几乎网络上所有的通信,底层都是通过socket完成的,一切皆Socket。

HTTP连接

HTTP是基于TCP协议的应用的超文本传输协议,属于应用层的协议。请求时需建立TCP连接,请求结束后断开连接,完成一次请求/响应操作。

HTTP协议永远都是客户端发起请求,服务器回送响应,这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。

HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。

优点:基于应用级的接口使用方便

缺点:

(1)传输速度慢,数据包大。

(2)如实现实时交互,服务器性能压力大。

(3)数据传输安全性差

注意:服务器不会主动给客户端发送数据。

三、TCP/IP连接

手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。

TCP三次握手与4次挥手的简单理解

所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。
三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在 Socket 编程中,客户端执行connect()时。将触发三次握手。
三次握手:
第一次:客户端向服务器进行传输请求
第二次:服务器接收到客户端的请求后确认,同意给客户端进行传输,并把此消息在传给客户端
第三次:客户端接收到服务器的同意请求后,也确认我也已经准备好了,我要进行传输了
socket和tcp/udp的联系和区别,tcp/ip,udp,http,Powered by 金山文档
四次挥手:
第一次:客户端向服务器发出停止传输请求
第二次:服务器收到客户端发出的停止传输请求后,告诉客户端我已经收到了你的停止请求
第三次:服务器确认,现在停止给你传输信息了,并把停止传输请求发给客户端
第四次:客户端收到服务器发出的停止传输请求,也确认,好的

如果已经建立了连接,但是客户端突然出现故障了怎么办?

TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常设置为2小时,若2小时后还没有收到客户端的任何数据,服务器会发送一个探测报文段,以后每隔75秒钟发送一次,若一连发送10个探测报文仍然没有反应,服务器就认为客户端出了故障,接着关闭连接。

四、SOCKET原理

套接字(socket)概念

套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个

TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。

应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务

建立socket连接

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。

套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。

客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

五、Socket连接与HTTP连接文章来源地址https://www.toymoban.com/news/detail-773770.html

由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。

而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。

很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接
将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请
求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。

http协议是应用层的协义

有个比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

两个计算机之间的交流无非是两个端口之间的数据通信,具体的数据会以什么样的形式展现是以不同的应用层协议来定义的如HTTPFTP`…

到了这里,关于socket、tcp、udp、http 的认识及区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分享下TCP/IP、Http、Socket的区别

    网络由下往上分为 物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可比性, socket则是对TCP/IP协议的封装和应用(程序员层面上)。 也可以

    2024年02月06日
    浏览(35)
  • HTTP、WebSocket、MQTT、TCP的区别和联系

    3个应用层协议 HTTP、WebSocket、MQTT都是应用层协议。 HTTP(HyperText Transfer Protocol)主要用于在Web浏览器和Web服务器之间传输数据,例如显示Web页面、文件下载、上传等操作,属于请求-响应协议。 WebSocket也是应用于浏览器和Web服务器之间进行双向通信,提供了实时交互的能力。

    2024年02月04日
    浏览(38)
  • socket,tcp,http三者之间的原理和区别

    目录 不同的TCP/IP和其他的协议在最初OSI模型中的位置 TCP/IP连接的三次握手 HTTP连接 SOCKET原理 建立socket连接 SOCKET连接与TCP/IP连接 Socket连接与HTTP连接 总结 作为网络通信的核心技术,socket、tcp和http在我们的日常生活中扮演着重要的角色。为了更好地理解它们,我们将从原理和

    2024年02月09日
    浏览(33)
  • HTTP/UDP/TCP/IP网络协议

    OSI模型定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI模型各层的通信协议,大致举例如下表所示: 层次 常见协议 应用层 HTTP、SMTP、SNMP、FTP、Telnet、SIP、SS

    2024年04月11日
    浏览(42)
  • OSI模型简介及socket,tcp,http三者之间的区别和原理

    OSI 模型(Open System Interconnection model):一个由国际标准化组织提出的概念模型,试图提供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。 它将计算机网络体系结构划分为七层,每层都可以提 供抽象良好的接口。了解 OSI 模型有助于理解实际上互联网络的工业

    2024年02月15日
    浏览(34)
  • TCP/IP,UDP,DNS,NAT,DHCP,HTTP协议

    1.TCP/IP协议 TCP/IP协议是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个

    2024年01月17日
    浏览(49)
  • 一文彻底搞懂TCP/IP、UDP、FTP、HTTP、HTTPS的基本原理

    基本原理:TCP/IP是一组用于实现网络通信的协议族,它是互联网的基础协议。TCP/IP协议族由两个主要协议组成:TCP(Transmission Control Protocol,传输控制协议)和IP(Internet Protocol,网际协议)。 TCP(Transmission Control Protocol):TCP是一种面向连接的、可靠的、基于字节流的传输层

    2024年03月08日
    浏览(36)
  • OSI(七层)网络模型,三次握手四次挥手梳理,Socket.TCP/IP.HTTP三者说明

    目录 一   OSI网络模型 二   三次握手与四次挥手的简单理解 ● 常见问题梳理 三   Socket,TCP/IP,HTTP ① TCP/IP连接 ② HTTP连接 ③ Socket说明 ● 套接字(socket)概念 ● 建立socket连接 四   Socket连接与TCP/IP连接 五   Socket连接与HTTP连接 OSI网络模型也称七层网络模型 7 应用层

    2023年04月09日
    浏览(40)
  • HTTP 协议和 TCP/IP 协议之间有什么区别?

    HTTP(超文本传输协议)和TCP/IP(传输控制协议/互联网协议)是两种在互联网通信中广泛使用的协议,它们之间的区别和联系对许多人来说可能还不是很清晰,今天我们就带大家来一起了解一下HTTP和TCP/IP协议这2者之间的主要区别和功能。 我们来看看HTTP协议。HTTP是一种应用层

    2024年01月20日
    浏览(53)
  • 【网络应用层协议】【HTTP】详解HTTP与HTTPS、POST 请求与 GET请求 、TCP与UDP、cookie和session的区别

    目录 1. HTTP和HTTPS的区别 2. POST 请求与 GET 请求区别 3. TCP与UDP的区别 4. cookie和session的区别

    2024年04月14日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包