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协议 的应用。下面几章,我们会讲清楚这几层协议的关系和应用。

Python 教程 Python 入门 Python 时间 Python JSON