Socket历由来史

Socket
Socket的历史
1.Soket发展史以及它和 tcp/ip 的关系
        七十年代中,美国国防部高研署 (DARPA) TCP/IP 的软件提供给加利福尼亚大学 Berkeley 分校后, TCP/IP 很快被集成到 Unix 中,同时出现了许多成熟的 TCP/IP 应用程序接口 (API) 。这个 API 称为 Socket 接口。今天, SOCKET 接口是 TCP/IP 网络最为 通用的 API ,也是在 INTERNET 上进行应用开发最为通用的 API
        九十年代初,由 Microsoft 联合了其他几家公司共同制定了一套  WINDOWS 下的网络编程接口,即 Windows Sockets 规范。它是 Berkeley Sockets 的重要扩充,主要是增加了一些异步函数,并增加了符合  Windows  消息驱动特性的网络事件异步选择机制。  Windows Sockets 规范是一套开放的、支持多种协议的  Windows 下的网络编程接口。目前,在实际应用中的 Windows Sockets 规范主要有 1.1 版和 2.0 版。两者的最重要区别是 1.1 版只支持 TCP/IP 协议,而 2.0 版可以支持多协议, 2.0 版有良好的向后兼容 性,目前, Windows 下的 Internet 软件都是基于  WinSock 开发的。
 
  • 是一个编程接口
理解为和文件描述符一样用于标识一个通讯接口的对象。是在 TCP/IP 模型分层的应用层和传输层之间的一个编程接口。回想一下 TCP/IP 协议栈在计算机中实现的两条重要的分割线   P23的图
Socket我们称为套接字描述符。
  • 是一种特殊的文件描述符 (everything in Unix is a file)
    Socket的使用与 UNIX 文件或者设备非常类似,因而 socket 也遵循 UNIX 上文件的基本操作流程,包括打开 -> / -> 关闭。除了打开不同( socket 采用 socket() 获得 socket 的文件描述符),其他的已经介绍过的传统的文件 IO 操作如读 (read)/ (write)/ 关闭 (close) 都可以作用于 socket lseek 不行),当然对 socket 还增加了一些其他的 API - 参考后面的 socket API 部分。同时,为了可能对文件和 socket 都是用像读和写一样的原语,操作系统 Linux 从同一个整数集合中分配文件描述符合 socket 描述符,并确保如果某一个整数已经被分配为文件描述符,那么它就不能被分配为 socket 描述符。从 Linux 的实现上也可以看出 socket 描述符和一个文件描述符是绑定在一起的。参考: http://blog.csdn.net/ce123_zhouwei/article/details/8459730
  • 并不仅限于TCP/IP协议
    是一种 通用 的进程间通讯编程接口,所谓的通用,是说不仅支持异地进程的通信,也支持本地进程的通信,不仅支持 TCP/IP ,也支持其他通讯协议(可以认为是一种独立于具体协议的通讯编程接口)。只是在历史上由于 socket TCP/IP 网络互连上的广泛应用,他们几乎被等同起来了。后面主要讲解的也是在 TCP/IP 上的 socket ,但也会介绍一下 socket 用于本地进程间通信。
套接字分为以下三种类型:
  字节流套接字 (Stream Socket)  是最常用的套接字类型, TCP/IP 协议族中的  TCP  协议使用此类接口。字节流套接口提供面向连接的 ( 建立虚电路 ) 、无差错的、发送先后顺序一致的、无记录边界和非重复的网络信包传输。
     数据报套接字  (Datagram Socket)   TCP/IP 协议族中的 UDP 协议使用此类接口,它是无连接的服务,它以独立的信包进行网络传输,信包最大长度为 32KB ,传输不保证顺 序性、可靠性和无重复性,它通常用于单个报文传输或可靠性不重要的场合。数据报套接口的一个重要特点是它保留了记录边界。对于这一特点。数据报套接口采用了与现在许多包交换网络 ( 例如以太网 ) 非常类似的模型。
  原始数据报套接字 (Raw Socket)  提供对网络下层通讯协议 ( IP 协议 ) 的直接访问,它一般不是提供给普通用户的,主要用于开发新的协议或用于提取协议较隐蔽的功能。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许我向你看丶

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值