目录
一、网络编程简介
网络编程可简单的看成对信息的发送到接收,中间传输为物理线路作用,网络编程编程最主要的作用即是在发送端把信息通过规定好的协议包装,在接收端按照规定好的协议解析,从而提取所需要的对应的消息,达到通信的目的。
-
套接字编程:
使用Python的socket模块可以创建套接字并进行网络通信。Linux提供了一种特殊类型的套接字,称为Unix域套接字(Unix Domain Socket),它允许在同一台计算机上的进程之间进行通信。你可以使用socket模块创建Unix域套接字,并使用它们进行本地进程间通信。 -
网络协议:
Python的socket模块支持TCP和UDP协议,你可以使用它们来实现网络通信。Linux上的网络编程通常涉及到使用TCP和UDP套接字进行数据传输。你可以使用socket模块创建TCP套接字并建立TCP连接,或者创建UDP套接字并发送/接收UDP数据包。 -
select和epoll:
在Linux上进行高性能的网络编程时,可以使用select或epoll等机制来实现异步I/O操作。这些机制允许你同时监视多个套接字,并在任何套接字上发生事件时进行响应。你可以使用Python的select或selectors模块来利用这些机制。 -
libpcap和scapy:
如果你需要进行网络数据包的捕获和分析,可以使用libpcap库或Scapy库。libpcap是一个在Linux上进行网络数据包捕获的常用库,而Scapy是一个功能强大的Python库,用于构建、发送和解析网络数据包。 -
Twisted和asyncio:
Twisted和asyncio是两个流行的Python库,用于实现异步网络编程。它们提供了高级的抽象和工具,使得编写异步网络应用程序更加简单和高效。 -
HTTP服务器和框架:
如果你需要在Linux上搭建HTTP服务器或开发Web应用程序,可以使用Python的HTTP服务器模块或流行的Web框架,如Django、Flask、Tornado等。这些工具提供了处理HTTP请求和响应的功能,以及路由、模板引擎、会话管理等高级功能。 -
网络安全:
Linux上的网络安全涉及到许多方面,如SSL/TLS加密、数字证书、防火墙等。Python提供了许多库和模块,如ssl、cryptography等,用于处理网络安全相关的操作。
二、MAC地址与IP地址
- .地址性质不同:
- MAC地址是物理地址,即唯一标识计算机的地址,在计算机出厂时已经在计算机上唯一编辑好的地址,用于识别计算机的唯一,是不可变地址;IP地址是逻辑地址,又指互联网协议地址,译为网际协议地址。IP地址是IP协议提供的一种统一地址,它为互联网上的每一个网络和每一台主机分配一个逻辑地址。网上的即时通信软件在消息通信时所涉及的地址普遍为IP地址。MAC地址犹如人们的身份证,是一个单位人的唯一标识,是不变的。而IP地址更类似于人的学号,系临时标识。
- IP地址:
- IP地址遵循IP协议,IP协议也叫因特网协议。IP协议是为计算机网络相互连接进行通信的协议,在因特网中使连接到网上的所有计算机网络实现相互通信。起初以太网,分组交换网等之间并不能互通,不能互通的主要原因是因为它们所传送数据的基本单元“帧”的格式不同。IP协议实际上是一套由软件程序组成的协议软件,它把不同的“帧”统一转换成“IP数据报”格式,使得各种计算机都能在因特网 上实现互通。