Python 网络编程

协议

两台电脑之间的通信,必须依赖着协议,就是人与人之间的交流需要依赖语言一样。早期的计算机通信,各家的厂商都指定自己的协议标准,如果你有一个 HP 电脑,和一台 IBM 电脑,那么这两台电脑之间是无法通信的,因为双方的协议不同,交流一起就像一个讲中文,一个讲英文,互相不理解。协议之争在上个世纪80年代延续了几年,最后 TCP/IP 这个协议胜出,成为了通信的标准。今天整个互联网的通信依赖的都是 TCP/IP 协议。


TCP/IP

TCP/IP 指的并不是 TCP 协议,或是 IP 协议,而是整个计算机网络通信协议的总称。

TCP/IP 协议把整个通信的模型分为5层 - 物理层数据链路层网络层传输层应用层,这个分层的模型,称为 OSI


OSI

物理层:主要是物理通信的媒介,比如 光纤电缆电磁波 等...

数据链路层:把电脑通过物理介质(光纤,WiFi ...)串联起来,组成 局域网,也是我们常说的内网【局域网的通信通过 MAC 地址】

网络层:这一层的主要设备是 路由,路由的工作是把无数的局域网组合起来,成为 互联网。到这里,我们就能上网了。【互联网的通信通过IP】

传输层:通过网络层,两台电脑能交流了,但是两台电脑的交流通常是两个软件之间的交流,传输层负责的,就是把信息转发到对应的软件上。【每个软件都有特定的端口,传输层的通信通过端口】

应用层:应用层还可以在拆分三层 会话层表示层应用层,但是整体一样,我们就统一称呼。这一层主要是对 传输层的封装,用于解决一些特定的领域,例如 HTTP协议DNS协议 等... 都是应用层协议。


网络编程

我们编写软件,跟协议打交道,是从第三层 传输层 开始的,这一层主要是两个协议 TCPUDP。如果是 web领域,其实做的就是 HTTP协议 的应用。下面几章,我们会讲清楚这几层协议的关系和应用。

更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程