您当前的位置: 首页 >  网络

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【计算机网络】Socket

星拱北辰 发布时间:2020-09-26 21:14:07 ,浏览量:0

Socket的多重含义

应用编程接口 API 称为 socket API, 简称为 socket。

socket API 中使用的一个函数名也叫作 socket。

调用 socket 函数的端点称为 socket。

调用 socket 函数时其返回值称为 socket 描述符,可简称为 socket。

在操作系统内核中连网协议的 Berkeley 实现,称为 socket 实现。

Socket的计算机网络视角

Socket其实是一种软件接口,用于进程向计算机网络发送报文或者从计算机网络接收报文。

学习过操作系统的概念以后我们了解了进程的概念,所以这里就不必强调了。

对于计算机网络应用层的HTTP协议来说,HTTP 使用 TCP 作为它的支撑运输协议。

下面描述一下网络通信的过程(应用层视角): HTTP 客户首先发起一个与服务器的 TCP 连接。一旦连接建立,该浏览器和服务器进程就可以通过Socket接口访问 TCP。 如上比方,客户端的Socket接口是客户进程与 TCP 连接之间的门,在服务器端的 Socket 接口则是服务器进程与 TCP 连接之间的门。 客户向它的 Socket 接口发送 HTTP 请求报文并从它的 Socket 接口 接收 HTTP 响应报文。类似地,服务器从它的 Socket 接口接收 HTTP 请求报文和向它的 Socket 接口发送 HTTP 响应报文。 一旦客户向它的 Socket 接口发送了一个请求报文,该报文就脱离了客户控制并进人 TCP 的控制。TCP 为 HTTP 提供可靠数据传输服务。 这意味着,一个客户进程发出的每个 HTTP 请求报文最终能完整地到达服务器;类似地, 服务器进程发出的每个 HTTP 响应报文最终能完整地到达客户。

套接字 s o c k e t = ( I P 地 址 : 端 口 号 ) socket = (IP地址: 端口号) socket=(IP地址:端口号)

每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。即: T C P 连 接 : : = s o c k e t 1 , s o c k e t 2 = ( I P 1 : p o r t 1 ) , ( I P 2 : p o r t 2 ) TCP 连接 ::= {socket1, socket2} = {(IP1: port1), (IP2: port2)} TCP连接::=socket1,socket2=(IP1:port1),(IP2:port2)

常用到Socket架构是C-S架构。服务器通过监听指定端口,等待客户请求。服务器在收到请求后,接收来自Socket的连接,从而完成连接。

每个Socket由一个IP地址和一个端口号组成。 客户端发起连接请求后,它的主机为它分配一个端口,此端口号是一个大于1024的整数。

所有连接必须是唯一的,这确保了所有连接都由唯一一对Socket组成。

Socket的操作系统视角

Socket是通信的端点,本意有“插座”的意味。

通过网路通信的每对进程要使用一对Socket,即每个进程各持有一个。

使用Socket的通信,虽然常用且高效,但是属于分布式进程之间的一种低级形式的通信。 一个原因是,Socket只允许通信进程间交互无结构的字节流,客户端和服务器需要自己加上数据结构。

关注
打赏
1660750074
查看更多评论
立即登录/注册

微信扫码登录

0.0443s