Python-面向网络编程-socket原理
socket 整个计算机网络是由协议构成,想要通信必须遵守对应的协议,如Web中的http协议、传输协议TCP和UDP等等。在网络工程师的眼中,可能现在网络上的一切都是socket,一切皆socket,我们一般接触到的是应用层应用程序,本质上两个应用想通信,则必须通过socket实现通信,socket直接和传输层后下面的底层网络协议打交道(socket本身让我们直接与TCP打交道),底层socket已经建立好则可以互相通信。互联网现在主流的网络层协议是IPv4,IPv6是下一代网络层协议但不主流,IPv6解决的是IPv4地址耗尽的问题,其实为了应对IPv4资源少的问题产生了局域网和网关。 网络模型 其发展过程,是一次解决需求的迭代过程。当计算机刚发明并投入使用,两台计算机想实现点对点通信,于是产生了数据链路层,当加入更多的计算机实现通信的时候,就产生了网络层,实现通信还不能满足需求,需要通过网络传输数据,则产生了传输层,对于可靠性的需求产生了TCP和UDP两种传输协议,不同的用户有不同的需求,于是应用层就被划分出来了。用户在应用层使用各种app,数据依次往下组包直至物理层发送到网络,接收数据则往上拆包得到最终数据。本质上是需求推动了网络层次的产生,当前把网络七层模型中的会话、表示、应用层统称为应用层。 应用层 文件传输、文件服务、电子邮件 http ftp