计算机网络自顶向下结构——第7版
第二章实验,套接字编程
代码运行环境:window10,python 3.8.对于书上代码略作修改。
进程与计算机网络之间的接口
多数应用程序是由通信进程队组成的,每对中的两个进程互相发送报文。而从一个进程向另外一个进程发送的报文必须经过下面的网络。进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文。
简单理解一下:如果把一个进程比作一座房子,那么套接字就可以类比为他的门。当一个进程想要向位于另一台主机上的另一个进程发送报文的时候,他要向把报文推送出门,该发送进程假定该门到门外一侧之间有运输的基础设施,该设施会把报文传送到目的进程的门口。一旦报文抵达目的主机,它就会通过接收进程的门传递,然后接收进程对该报文进行处理。
如上图所示,套接字是同一台主机内层应用程序和网络之间的接口。由于其建立网络应用程序的可编程接口,所以也叫做应用程序和网络之间的应用编程接口(API application programming interface)
应用层虽然可以空hi套接字在顶层应用端的一切,但是对于套接字的运输层几乎没有控制权。嗯,仅限于:选择运输层协议,或者说可以设定几个参数,简单类似于最大缓存最大报文端长度等。
UDP交互过程
结用上面的理解,
- 在发送进程能够将数据分组退出套接字门之前,当使用UDP时,必