网络编程笔记一、Socket套接字

这篇笔记介绍了Socket的起源,它起源于80年代的ARPA项目,成为UNIX系统上的事实标准。Socket提供了进程通信的端点,通过客户-服务器模型进行数据交换。Socket分为流式(TCP)、数据报(UDP)和原始套接字三种类型,分别适用于不同需求。Socket套接字在网络中传输数据时,经历多层封装和解封装。
摘要由CSDN通过智能技术生成

网络编程笔记一、Socket套接字

@(网络编程笔记)[socket起源|基础内容]


引言: 这篇笔记将简单介绍socket的起源、基础知识。


一、 Socket概述

  由于每个主机系统都有各自命名进程的方法,而且常常是不兼容的,因此,要在全网范围内硬把进程名字统一起来是不现实的。所以,每个计算机网络中都要引入一种起媒介作用的、全网一致的标准名字空间。这种标准名字,在ARPA网中称作socket套接字。

  在操作系统中,通常会为应用程序提供一组应用程序接口(API),称为套接字接口(英语:socket API)。应用程序可以通过套接字接口,来使用网络套接字,以进行数据交换。在套接字接口中,以IP地址及通信端口组成套接字地址(socket address)。远程的套接字地址,以及本地的套接字地址完成连接后,再加上使用的协议(protocol),这个五元组(five-element tuple),作为套接字对(socket pairs),之后就可以彼此交换数据。 —— 维基百科

  网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。 —— 百度百科


1.1、socket起源

  在 80 年代早期,远景研究规划局(Advanced Research Projects Agency, ARPA)资助了佳利福尼亚大学伯克利分校的一个研究组,让他们将 TCP/IP 软件移植到 UNIX 操作系统中,并将结果提供给其他网点。作为项目的一部分,设计者们创建了一个接口,应用进程使用这个接口可以方便的进行通信。

  他们决定,只要有可能,就使用以有的系统调用,对那些不能方便的容入已有的函数集的情况,就再增加新的系统调用以支持 TCP/IP 功能。这样做的结果就出现了插口接口(Berkeley Socket) ,这个系统被称为 Berkeley UNIX或 BSD UNIX 。后期许多计算机厂商,都采用了 Berkeley UNIX,于是许多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值