| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 2022年3月20日12:55:53 -> 正文阅读 |
|
[网络协议]2022年3月20日12:55:53 |
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲。套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口。 如图下所示:知乎中某位大佬的图 ? 上面的是网络上找到的套接字简介和套接字概述图 套接字的组成: 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。 当两台电脑进行通讯时:通信的两端都要有Socket(套接字),是两台机器键的通信的端点。 网络通信就是Socket键的通信。 Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输。 一般主动发起通信的应用程序属客户端,等待通信请求的为服务端。 套接字分两种: ???流套接字:使用TCP提供可依赖的字节流服务 ???数据报套接字:使用UDP提供“尽力而为”的数据报服务。 TCP通信 使用TCP协议前,必须建立TCP连接,形成传输数据通道 传输前,采用“三次握手”方式,点对点通信,是可靠的 TCP协议进行通信的两个应用进程:客户端,服务端。 在连接中可进行大数据两的传输 传输完毕,需释放已建立的连接,效率低 UDP 将数据,源,目的封装成数据包,不需要建立连接 每个数据报的大小限制在64K内 发送不管对方释放准备好,接收方收到也不确认,故是不可靠的 可以广播返送 发送数据结束是无需释放资源,开销小,速度快。 工作流程: 要通过互联网进行通信,至少需要一对套接字,其中一个运行于客户端,我们称为?Client Socket(客户套接字),另一个运行于服务器端,我们称为Server Socket(服务器端)。 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:
所谓服务器监听,是指服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
所谓客户端请求,是指有客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
所谓连接确认,是指当服务器端套接字监听到或者说街道客户端套接字的连接请求,就会响应客户端套接字的请求,建立一个新的线程,并把服务器套接字的描述发送给客户端。一旦客户端确认了此描述,连接就建立号了。而服务器端套接字继续处于监听状态,接收其他客户端套接字的连接请求。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:29:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |