天天看点

【python接口自动化测试】网络基础知识

一、IP地址

就像每个人都有一个身份证号码 IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址。

【python接口自动化测试】网络基础知识

 查看IP命令:

Windows: ipconfig
Linux: ifconfig      

Python练习:检查字符串是否ip

1 def is_ip(ip):
 2     num_list = ip.split(".")
 3     for num in num_list:
 4         if not num.isdigit() or not 0 <= int(num) <=255:
 5             return False
 6     return True
 7 
 8 
 9 print(is_ip("101.1.0.201"))
10 print(is_ip("1011.1.0.201"))      
C:\Users\yzp\PycharmProjects\auto_test\Scripts\python.exe D:/00test/auto_test/IsIP.py
True
False

Process finished with exit code 0      

二、端口

"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。 如果把IP地址比作一间房子,端口就是出入这间房子的门。一个IP地址的端口可以有65536(即:

2^16)个 端口类型。

  • 公认端口:从0到1023,紧密绑定于一些服务
  • 注册端口:人1024到49151,许多服务绑定这些端口,这些端口同样用于许多其它目的。
  • 动态或私有端口:从49152到65535。理论上,不应为服务分配这此端口。实际上,机器通常从1024起分配动态端口。 常见软件默认端口
  • Apache/Nginx(HTTP服务): 80
  • Tomcat: 8080
  • Oracle: 1521
  • MySQL: 3306
  • SQL Server: 1433
  • PostgreSQL: 5432
  • MongoDB: 27017
  • Redis: 6379
  • Memcached: 11211

查看端口命令

Windows: netstat -ano
Linux: netstat -ntlp      
【python接口自动化测试】网络基础知识

解决端口占用问题

Windows: netstat -ano | findstr "8080",找到占用端口的程序的PID -> 打开任务管理器 -> 设置显示PID -> 找到并结束对于程序
Linux: netstat -ntlp | grep "8080", 找到对应的程序 -> ps -ef | grep "程序名" 找到对于的pid -> kill 相应的id      

三、域名及DNS 

由于IP地址不容易记忆,为IP地址赋予了一个利于记忆的别名,称为域名 如,百度的ip为: 61.135.169.125,对应的域名为 www.baidu.com 

【python接口自动化测试】网络基础知识

如何查看域名所对应的ip?

Windows/Linux: ping www.baidu.com      

DNS

DNS即域名解析系统,域名和IP地址相互映射的一个分布式数据库,提供域名转到对应ip的服务。

四、OSI七层模型

OSI即开放系统互连参考模型,一种网络架构,分为7层。

【python接口自动化测试】网络基础知识

上三层---应用层,控制软件方面

  • 应用层:文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
  • 表示层:数据格式化,代码转换,数据加密
  • 会话层:解除或建立与别的接点的联系(会话)

下四层---数据流层,用来管理硬件

  • 传输层:提供端对端的接口 TCP,UDP
  • 网络层:为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
  • 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
  • 物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2 OSI七层模型及各层协议

TCP及UDP协议 

TCP和UDP都是传输层的协议

  • TCP:传输控制协议
  • UDP: 数据报文协议 

TCP和UDP的区别 

UDP的特点如下:

  • 1. 无链接
  • 2. UDP使用尽最大努力交付,不保证可靠性
  • 3. UDP是面向报文的,UDP对应用层交付下来的报文,既不合并,也不拆分,而是保留这些报文的边界。应用层交给UDP多长的报文,UDP就照样发送,即一次发送
  • 一个报文
  • 4. UDP没有拥塞控制
  • 5. UDP支持一对一、一对多、多对一和多对多的交互通信
  • 6. UDP的首部开销小,只有8字节
  • 1. TCP是面向连接的
  • 2. 每条TCP连接只能用于两个断点,一对一
  • 3. TCP提供可靠交付的服务:连接传输数据、无差错、不丢失、不重复、并且按序到达
  • 4. TCP提供全双工通信
  • 5. 面向字节流。TCP根据对方给出的窗口和当前网络拥塞的程度来决定一个报文应该包含多少个字节