网络编程套接字(2)——Socket套接字

目录

一、概念

二、分类

1、流套接字(使用传输层TCP协议)

TCP的特点

2、数据报套接字(使用传输层UDP协议)

UDP的特点

3、原始套接字


一、概念

Socket套接字,是由系统提供用于网络通信的技术,是基于TCP / IP协议的网络通信的基本操作单元。

基于Socket套接字的网络程序开发就是网络编程.。


二、分类

要想进行网络编程,需要使用系统的API,本质上还是传输层提供的。

传输层涉及到的协议,主要是这两个:TCP,UDP。由于这两个协议之间的差异还是挺大的,它们API的差异也比较大。

Socket套接字主要针对传输层协议分为如下三类:

1、流套接字( 使用传输层TCP协议**)**

TCP,即Transmission Control Protocol(传输控制协议),传输层协议。

TCP的特点

1、有连接

不是物理上的连接,虚拟的连接,比如打电话,打电话者拨号,接电话者要点击接通才能进行通信,连接的特点得是双方都能认同

2、可靠传输

网络上存在的 "异常情况" 是非常多的,无论使用什么软硬件技术手段,都无法100%保证,网络数据一定能从 A 传输到 B。

这里的可靠传输,主要指的是发送的数据到没到,发送方都能清楚的感知到

3、面向字节流

此处谈到的字节流和文件IO中的字节流完全一样,网络传输的基本单位是字节。

4、全双工

一个信道,可以双向通信,比如像斑马线上的马路,同一时间,对面的人既可以对面走过来,也可以从我这里走到对面。

5、有接受缓冲区,也有发送缓冲区

6、大小不限

对于字节流来说,可以简单理解为,传输数据是基于IO流,流式数据的特征就是在IO流没有关闭的情况下,是无边界的数据,可以多次发送,也可以分开多次接收。 (网络传输的基本单位是字节)

2、数据报套接字( 使用传输层UDP协议**)**

UDP,即User Datagram Protocol(用户数据报协议)。传输层协议。

UDP的特点

1、无连接

则是发微信 / 发短信,无论你是否同意,消息都能给你发送过去

2、不可靠传输

发送的数据到没到,发送方不都能清楚的感知到

3、面向数据报

每次传输的基本单位是一个 数据报(由一系列的字节构成的),特定的结构。

4、全双工

半双工就只能单向通信,比如羽毛球桶的羽毛球,同一时间,只能从一个方向取出羽毛球来。

5、有接受缓冲区,也有发送缓冲区

6、大小受限,一次最多传输64k

对于数据报来说,可以简单地理解为,**传输数据是一块一块的,**发送一块数据假如100字节,必须一次发送,接收也必须一次接收100字节,而不能分100次,每次一个字节。

**3、**原始套接字

原始套接字用于自定义传输层协议,用于读写内核没有处理的IP协议数据。我们不学习原始套接字,简单了解即可。


都看到这了,点个赞再走吧,谢谢谢谢谢

相关推荐
砚边数影1 小时前
运营商网管系统重构:如何解决海量投诉数据下的“查询延迟”与“写入瓶颈”?
网络·数据库·时序数据库·kingbase·kingbasees·数据库平替用金仓·金仓数据库
李菠萝的多样空间2 小时前
【网络】AC控制器上AP换新并上线命令笔记##2
网络·锐捷
安科士andxe2 小时前
安科士 SFP-10G-T 万兆电口光模块核心技术解析,打造中短距高速网络新标杆
网络
tryxr3 小时前
如何基于UDP实现可靠传输
网络·网络协议·udp·tcp
~央千澈~3 小时前
抖音弹幕游戏开发之第8集:pyautogui基础 - 模拟键盘操作·优雅草云桧·卓伊凡
网络·python·websocket·网络协议
jjjxxxhhh1235 小时前
【加密】-AES与对称加密
java·服务器·网络
独行soc5 小时前
2026年渗透测试面试题总结-24(题目+回答)
网络·python·安全·web安全·渗透测试·安全狮
byzh_rc6 小时前
[深度学习网络从入门到入土] 网络中的网络NiN
网络·人工智能·深度学习
Bruce_Liuxiaowei7 小时前
渗透测试中的提权漏洞:从低权限到系统控制的全解析
网络·windows·安全
阿里-于怀7 小时前
Dify 官方上架 Higress 插件,轻松接入 AI 网关访问模型服务
网络·人工智能·ai·dify·higress