前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >socket01 原理和简述

socket01 原理和简述

作者头像
潇洒
发布2023-10-20 10:13:56
1510
发布2023-10-20 10:13:56
举报
文章被收录于专栏:石头岛

原理

网络之间的通信,说穿了还是网络流在通信。 客户端跟服务器之间建立的管道,就叫scoket。

套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。 套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。 网络套接字是IP地址与端口的组合。

网络通信的三要素

  1. IP
  2. 端口
  3. 协议

网络编程也需要输入流和输出流进行交互,交互步骤:

  1. 使用ServerSocket 指定端口,地址为本机。
  2. 使用accept 接收客户端连接。
  3. 发送数据(流)。

注意:1024以下端口保留给系统。

TCP/UDP

  1. TCP:像打电话,双向的,建产连接的。数据安全,不易丢失。点对点。
  2. UDP:像发知信,单向的,非面向连接。数据不安全,易丢失。

scoket 的由来

Socket 最初是加利福尼亚大学Berkeley分校为Unix系统开发的网络通信接口。 后来随着TCP/IP网络的发展,Socket成为最为通用的应用程序接口,也是在Internet上进行应用开发最为通用的API。

Windows系统流行起来之后,由 Microsoft 联合了其他几家公司在 Berkeley Sockets 的基础之上进行了扩充(主要是增加了一些异步函数,并增加了符合Windows消息驱动特性的网络事件异步选择机制),共同制定了一套Windows下的网络编程接口,即Windows Sockets规范。 Windows Sockets规范是一套开放的、支持多种协议的Windows下的网络编程接口,包括1.1版和2.0版两个版本。其中1.1版只支持TCP/IP协议,而2.0版可以支持多协议,2.0版有良好的向后兼容性。当前Windows下的Internet软件绝大部分都是基于Windows Socks开发的。

socket 运行在传输层

传输层实现端到端的通信,因此,每一个传输层连接有两个端点。 那么,传输层连接的端点是什么呢?不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。 传输层连接的端点叫做套接字(socket)。

端到端的通信

根据RFC793的定义:端口号拼接到IP地址就构成了套接字。所谓套接字,实际上是一个通信端点,每个套接字都有一个套接字序号,包括主机的IP地址与一个16位的主机端口号,即形如(主机IP地址:端口号)。例如,如果IP地址是210.37.145.1,而端口号是23,那么得到套接字就是(210.37.145.1:23)。

套接字Socket=(IP地址:端口号),套接字的表示方法是点分十进制的IP地址后面写上端口号,中间用冒号或逗号隔开。 每一个传输层连接唯一地被通信两端的两个端点(即两个套接字)所确定。 套接字可以看成是两个网络应用程序进行通信时,各自通信连接中的一个端点。通信时,其中的一个网络应用程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过网络接口卡的传输介质将这段信息发送给另一台主机的Socket中,使这段信息能传送到其他程序中。

因此,两个应用程序之间的数据传输要通过套接字来完成。 在网络应用程序设计时,由于TCP/IP的核心内容被封装在操作系统中,如果应用程序要使用TCP/IP,可以通过系统提供的TCP/IP的编程接口来实现。在Windows环境下,网络应用程序编程接口称作Windows Socket。为了支持用户开发面向应用的通信程序,大部分系统都提供了一组基于TCP或者UDP的应用程序编程接口(API),该接口通常以一组函数的形式出现,也称为套接字(Socket)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原理
  • 网络通信的三要素
  • TCP/UDP
  • scoket 的由来
  • socket 运行在传输层
    • 端到端的通信
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档