您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

socket是什么

2024/3/29 14:58:21发布8次查看
socket是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。socket允许应用程序将i/o插入到网络中,并与网络中的其他应用程序进行通信。
socket(套接字)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将i/o插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是ip地址与端口的组合。
socket最初是加利福尼亚大学berkeley分校为unix系统开发的网络通信接口。后来随着tcp/ip网络的发展,socket成为最为通用的应用程序接口,也是在internet上进行应用开发最为通用的api。
简述
传输层实现端到端的通信,因此,每一个传输层连接有两个端点。那么,传输层连接的端点是什么呢?不是主机,不是主机的ip地址,不是应用进程,也不是传输层的协议端口。
传输层连接的端点叫做套接字(socket)。根据rfc793的定义:端口号拼接到ip地址就构成了套接字。
所谓套接字,实际上是一个通信端点,每个套接字都有一个套接字序号,包括主机的ip地址与一个16位的主机端口号,即形如(主机ip地址:端口号)。例如,如果ip地址是210.37.145.1,而端口号是23,那么得到套接字就是(210.37.145.1:23)。
总之,套接字socket=(ip地址:端口号),套接字的表示方法是点分十进制的ip地址后面写上端口号,中间用冒号或逗号隔开。每一个传输层连接唯一地被通信两端的两个端点(即两个套接字)所确定。
分类
为了满足不同的通信程序对通信质量和性能的要求,一般的网络系统提供了三种不同类型的套接字,以供用户在设计网络应用程序时根据不同的要求来选择。这三种套接为流式套接字(sock-stream)、数据报套接字(sock-dgram)和原始套接字(sock-raw)。
(1)流式套接字。它提供了一种可靠的、面向连接的双向数据传输服务,实现了数据无差错、无重复的发送。流式套接字内设流量控制,被传输的数据看作是无记录边界的字节流。在tcp/ip协议簇中,使用tcp协议来实现字节流的传输,当用户想要发送大批量的数据或者对数据传输有较高的要求时,可以使用流式套接字。
(2)数据报套接字。它提供了一种无连接、不可靠的双向数据传输服务。数据包以独立的形式被发送,并且保留了记录边界,不提供可靠性保证。数据在传输过程中可能会丢失或重复,并且不能保证在接收端按发送顺序接收数据。在tcp/ip协议簇中,使用udp协议来实现数据报套接字。在出现差错的可能性较小或允许部分传输出错的应用场合,可以使用数据报套接字进行数据传输,这样通信的效率较高。 
(3)原始套接字。该套接字允许对较低层协议(如ip或icmp)进行直接访问,常用于网络协议分析,检验新的网络协议实现,也可用于测试新配置或安装的网络设备。
更多相关知识,请访问 !!
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录