关于Python网络编程基础,你该知道这些

一、基础概念

1、TCP/IP

TCP/IP是标准的协议,使得世界范围内的计算机通过Internet或本地的网络通信。

在这里插入图片描述

2、首要问题:实现寻址

在这里插入图片描述

3、域名DNS

在这里插入图片描述

4、使用客户/服务器模式

在这里插入图片描述

5、服务器的端口号

在这里插入图片描述

6、客户端的端口号

在这里插入图片描述

7、UDP

在这里插入图片描述

8、选择TCP还是UDP

在这里插入图片描述
在这里插入图片描述

9、Internet,物理传输,路由

在这里插入图片描述

10、总结

TCP/IP协议可以用于多种不同的传输,如以太网和移动网络。
每个终端靠唯一的IP地址和端口号来区分。
服务器通过一些事先知道的端口来侦听连接。
数据传输协议

TCP:可以提供可靠性和完整的会话;
UDP:用于小并且简短但快速的会话。

二、网络客户端

1、Socket

在这里插入图片描述

2、建立socket

在这里插入图片描述

3、寻找端口号

问题:查询一个服务器端口号的列表

实例:http转换为一个端口号,你用协议名和端口名

4、从socket获取信息

在这里插入图片描述

5、处理错误

在这里插入图片描述

6、Socket异常

在这里插入图片描述

7、4种异常

在这里插入图片描述

8、总结

网络通信的基本接口:socket

socket()建立socket
connect()建立连接

三、网络服务器

1、特点

等待来自客户端的请求,发送应答。

2、准备连接

建立socket对象
设置socket选项(可选)
绑定到一个端口/一个指定的网卡
侦听连接

3、使用UDP

在这里插入图片描述

4、死锁的发生

在这里插入图片描述

5、避免死锁

死锁发生在一个服务器和客户端同时试图往一个连接上写东西和同时从一个连接上读的时候。

确保客户端每次执行完send()后,进行一次recv()。

使客户端发送较少的数据。

使用多线程等,使客户端同时发送和接收。

6、总结

在这里插入图片描述

四、域名系统(DNS)

1、定义

在这里插入图片描述

2、进行DNS查询

(1)本地解析

在这里插入图片描述

(2)直接解析

在这里插入图片描述

(3)递归解析

在这里插入图片描述

(4)迭代解析

在这里插入图片描述

3、防止反向查询欺骗

先进行反向查询,你将根据IP地址得到一个域名。再根据这个域名进行一次正向查询。
如果正常,则第1步得到的IP地址应该在正向查询得到列表上。否则,就是有人在提供伪造的反向查询信息。

4、总结

DNS用于在文字名称和底层通信的IP地址之间转换。

标准(正向)查询把文字翻译成数字类型的IP地址。

反向查询把IP地址翻译成主机名。

猜你喜欢

转载自blog.csdn.net/qq_42257666/article/details/106790648