套接字Socket

来源:互联网 发布:澳门大学 知乎 编辑:程序博客网 时间:2024/05/26 02:22

网络应用程序由成对的进程组成,这些进程通过网络互相发送报文。例如,在Web应用程序中,一个客户浏览器进程与一台Web服务器进程交换报文。

从一个进程向另一个进程发送的报文必须通过下面的网络。进程通过一个称为套接字(socket)的软件接口向网络发送报文和从网络接收报文。

进程可类比于一座房子,而它的套接字可以类比于它的门。当一个进程想向位于另外一台主机上的另一个进程发送报文时,它把报文推出该门(套接字)。该发送进程假定该门的另外一侧之间有负责传输的基础设施,该设施将会把报文传送到目的进程的门口。一旦该报文抵达目的主机,它通过接收进程的门(套接字)传递,然后接收进程对该报文进行处理。


Socket套接字是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

下图显示两个经过因特网通信的进程之间的套接字通信。该图假定该进程使用的下面的传输层协议为TCP协议。

这里写图片描述

  • 1.套接字是同一台主机内应用层与传输层之间的接口;
  • 2.套接字是建立网络应用程序的可编程接口,因此套接字也称为应用程序和网络之间的应用程序编程接口,即API;
  • 3.应用程序开发者可以控制套接字在应用层端的一切,但是对该套接字的传输层端几乎没有任何控制权。应用开发者对传输层的控制权仅限于:(1)选择传输层协议;(2)可能会设定几个传输层参数,如最大缓存和最大报文段长度等。
  • 一旦应用程序开发者选择了一个传输层协议,则应用程序就建立在由该协议提供的传输层服务之上。
0 0
原创粉丝点击