返回顶部
首页 > 资讯 > 精选 >socket通信和tcp通信的区别有哪些
  • 449
分享到

socket通信和tcp通信的区别有哪些

2023-06-29 00:06:43 449人浏览 薄情痞子
摘要

本篇内容介绍了“Socket通信和tcp通信的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!socket通信和tcp通信的区别:1

本篇内容介绍了“Socket通信和tcp通信的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

socket通信和tcp通信的区别:1、tcp协议属于传输层协议,而socket是应用层和传输层之间的一个抽象层;2、建立一个TCP连接需要三次握手;3、socket连接可以保持长连接;4、tcp服务端和tcp客户端使用socket通信等。

本文操作环境:windows10系统、Dell G3电脑。

socket通信和tcp通信的区别是什么?

tcp和socket的区别

一:tcp协议

tcp协议属于传输层协议(UDP也属于传输层协议,但是UDP协议是无状态的)。建立一个TCP连接需要三次握手,断开一个TCP连接需要四次挥手。手机能够使用联网功能,是因为手机底层实现了TCP/IP协议,使用手机终端通过无线网就可以与服务端建立一个tcp连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。

tcp建立连接需要三次握手:

socket通信和tcp通信的区别有哪些 

图1:tcp连接三次握手示意图

如图所示:

客户端要与服务端建立tcp连接,首先向服务端发送一个syn J信号,服务端收到此信号后向客户端回答一个ACK J+1信号,并额外加了一个syn K信号,客户端收到ACK J+1信号后就知道,服务端能收到我的信号,后面我客户端就可以放心的发送数据给你服务端而不用担心你服务端接收不到我发送的数据了。

客户端收到服务端发送的SYN K信号后,还需要向服务端回一个 ACK K+1信号,这样服务端收到此信号就知道,我服务端给你客户端发送的信号,你客户端能够收到,这样我服务端就可以放心的给你客户端发送数据而不用担心你客户端收不到自己发送的数据了。

其实从上面的描述可以看到:

建立连接完全可以跟断开TCP连接一样分四步走,只不过是把服务端的应答信号ACK和客户端的认证请求信号SYNC这两步做成一步走了。

tcp连接关闭时需要四次挥手:

socket通信和tcp通信的区别有哪些
图2:tcp连接断开时四次挥手示意图

客户端收到服务端的应答信号ACK M+1后,客户端就知道:服务端知道我客户端不会再发送数据包给你服务端了,你可以停止对我的监听了。

但是此时只是客户端->服务端的单向流动停止了,另一个方向的流动:

服务端->客户端的数据发送还可以正常进行,直到服务端向客户端发送FIN N挥手信号,客户端向服务端回应ACK N+1信号,服务端才知道:客户端知道我服务端不会再发送数据包给你客户端了,你可以停止对我的监听了。

至此,客户端->服务端的单向流动和服务端->客户端的单向流动两个方向都停止,可以关闭连接了。

二:socket

我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中的一个进程。

能够唯一标示网络中的进程后,它们就可以利用socket进行通信了,什么是socket呢?

我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

socket通信和tcp通信的区别有哪些
图5:socket通信系统模块示意图

tcp服务端和tcp客户端使用socket通信的过程如下。

从图中可以看到,socket连接可以保持长连接。
socket通信和tcp通信的区别有哪些
图6:基本socket客户/服务端通信流程示意图

注意的是,socket连接可以由客户端主动关闭,也可以由服务端主动关闭。

“socket通信和tcp通信的区别有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: socket通信和tcp通信的区别有哪些

本文链接: https://lsjlt.com/news/321302.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • socket通信和tcp通信的区别有哪些
    本篇内容介绍了“socket通信和tcp通信的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!socket通信和tcp通信的区别:1...
    99+
    2023-06-29
  • Node.js中RPC通信和Ajax有哪些区别
    这篇文章主要讲解了“Node.js中RPC通信和Ajax有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js中RPC通信和Ajax有哪些区...
    99+
    2024-04-02
  • Java基于TCP协议的Socket通信
    目录简介TCP简介JAVA Socket简介SocketImpl介绍TCP 编程构造ServerSocket1.1 绑定端口1.2 设定客户连接请求队列的长度1.3 设定绑定的IP ...
    99+
    2024-04-02
  • Qt中的TCP通信
    一、TCP的特点 TCP(传输控制协议)是一种面向连接的,可靠的,基于字节流的传输层通信协议 二、TCP适合应用的场景 TCP协议适用于要求可靠传输的应用,例如文件传输,网络数据库,分布式高精度计算系统的数据传输。 三、Qt中使用TCP通信...
    99+
    2023-09-04
    tcp/ip 网络 服务器
  • Socket的通信原理和使用
     目录 一、什么是 Socket? 二、Socket 通信过程         2.1 通信过程介绍        2.2 实现TCP建立连接的三次握手过程  三、 使用Socket进行通信【php】         3.1 PHP中So...
    99+
    2023-09-06
    网络 php
  • Socket通信原理和实践
    目录TCP/IP、UDP、Socket什么是TCP/IP、UDP?Socket在哪里呢?Socket是什么呢?你会使用它们吗?1、网络中进程之间如何通信?2、什么是Socket?so...
    99+
    2024-04-02
  • Python socket之TCP通信及下载文件的实现
    目录TCP简介TCP介绍TCP特点tcp通信模型tcp注意点代码:TCP服务端与客户端消息通信:下载文件:TCP简介 TCP介绍 TCP协议,传输控制协议(英语:Transmissi...
    99+
    2023-02-24
    Python TCP通信下载 Python socket TCP通信
  • 通配符*和?有哪些区别
    这篇文章主要介绍通配符*和有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!通配符*和的区别是“*”可以用来代替零个、单个或多个字符,而“?”仅可以使用代替一个字符;“*”表示匹配的数量不受限制,而“?”的匹配...
    99+
    2023-06-06
  • Python实现Socket通信建立TCP反向连接
    目录前言远程控制脚本编写脚本优化getopt ()完整代码前言 本文将记录学习基于 Socket 通信机制建立 TCP 反向连接,借助 Python 脚本实现主机远程控制的目的。 我们在传输数据时,可以只使用(传输层...
    99+
    2022-06-02
    Python 反向TCP Python TCP反向连接
  • Python基于socket实现TCP/IP客户和服务器通信
    目录前言简单的搭建服务器与客户端服务器客户端create_connection(更简易的客户端)前言 套接字除了用于分析网络地址等功能之外,还可以配置一个服务器,监听到来的消息。 比如你在网络上跟网络机器人聊天,你发...
    99+
    2022-06-02
    Python 客户和服务器通信 Python TCP/IP 通信
  • tcp和udp有哪些区别
    tcp和udp的区别:1、可靠性,TCP提供可靠的数据传输,保证数据的完整性和有序性,UDP是无连接的协议;2、速度,TCP相对UDP更加复杂,在传输效率上稍低一些;3、连接性,TCP是面向连接的协议,它通过建立连接来进行数据传输,UDP是...
    99+
    2023-07-25
  • java与as3的socket通信
    as3 与java 都提供了Socket类用于网络通信, 但两者的使用也有较大的不同. 为了方便两者的通信, 我在做了一些实验的基础上, 写下获得的经验,以免忘记.as3 的socket 读写数据方法常用的有四个: readUTF, wri...
    99+
    2023-01-31
    通信 java socket
  • C#基于Socket的TCP通信实现聊天室案例
    本文实例为大家分享了C#基于Socket的TCP通信实现聊天室的具体代码,供大家参考,具体内容如下 一、Socket(套接字)通信概念 套接字(socket)是通信的基石,用于描述I...
    99+
    2024-04-02
  • TCP socket和web socket的区别是什么
    TCP socket和web socket的区别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先我们来阅读这段有166个赞的回答:When you send byt...
    99+
    2023-06-04
  • Java中TCP通信的实现
    0、TCP通信 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议, 如果使用了 WireShark 工具,可以看到一次TCP连接建立时的整个过程。 1...
    99+
    2023-09-02
    java tcp/ip 开发语言
  • vue的通信方法有哪些
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。都知道组件是vue最强大的功能之一,vue中每一个.vue我们都可以视之为一个组件通信指的是发送者通过某种媒体以某种格式来传递信息到收信者以达到某个目的。广义上,任何信息...
    99+
    2023-05-14
    Vue 组件通信
  • java通信框架有哪些
    java中的通信框架有:1.MINA,基于TCP和UDP协议栈的通信框架;2.Flask,面向简单需求和小型应用的通信框架;3.QuickServer,免费的开源java库;java中的通信框架有以下几种MINAMINA是一个基于TCP和U...
    99+
    2024-04-02
  • python通信框架有哪些
    python中的通信框架有socketserver、Twisted和Flask三种socketserversocketserver是一个基本的socket服务器端框架,其采用了selector框架来供相适应的网络通信框架,使用使用可以处理多...
    99+
    2024-04-02
  • C#如何实现TCP和UDP通信
    本篇内容主要讲解“C#如何实现TCP和UDP通信”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#如何实现TCP和UDP通信”吧!C#在命名空间System.Net.Sockets中对伯克利套接...
    99+
    2023-07-05
  • Socket通信的示例分析
    这篇文章将为大家详细讲解有关Socket通信的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作