网络编程:
网络功能:数据传输
ISO:国际标准化组织
OSI七层模型 ---> 网络通信工作流程的标准化
应用层:提供用户服务,具体功能由特定的程序而定
表示层:数据的压缩优化,加密
会话层:建立应用级的连接,选择传输服务
传输层:提供不同的传输服务,流量控制
网络层:路由选择,网络互连
链路层:进行数据转换,具体消息的发送,链路连接
物理层:物理硬件,接口设定,网卡路由交换机等
cookie
高内聚:模块功能尽可能单一,不要掺杂
低耦合:模块之间尽可能减少关联和影响
OSI七层模型优点:
1.将工作流程标准化
2.降低模块间的耦合度,使每一部分可以单独开发,单独工作
四层模型:应用层,传输层,网络层,物理链路层
五层模型(TCP/IP模型):
应用层:应用层,表示层,会话层
传输层
网络层
链路层
物理层
数据传输流程
1.发送端由应用层到物理层逐层添加信息头(首部),最终在物理层发送
2.中间经过节点(交换机,路由器等)转发,发送到接收端
3.在接收端根据发送端的每个信息头进行解析,最终消息到应用层展示给用户
协议
网络协议:在网络通信中双方都遵循的规定,包括建立什么样的网络结构,消息结构,标识代表什么等
应用层协议:TFTP HTTP DNS SMTP
传输层:TCP UDP
网络层:IP
物理层:IEEE
网络相关概念
网络主机:在网络中标识一台计算机 HOST
本地使用:'localhost' '127.0.0.1'
网络使用:'0.0.0.0' '172.60.11.52'(本机IP)
获取计算机名:
import socket
socket.gethostname() #获取计算机名
socket.gethostbyname('admin') #通过计算机名获取IP地址
socket.gethostbyaddr('google.com') #通过网址获取主机网络信息
('hkg12s18-in-f14.1e100.net', [], ['172.217.163.238'])
主机名 别名 网络地址
socket.inet_aton('192.168.1.2') #将点分十进制IP地址转换为byte格式
socket.inet_ntoa(b'\xc0\xa8\x01\x02') #将byte格式地址转换为点分十进制
sockey.getservbyname('mysql') #通过应用名字,获取应用的端口信息
IP地址:
网络上确定一台主机网络位置的地址
IPV4:点分十进制 192.168.1.2 0-255
IPV6:128位
ping ip:测试和某台网络主机是否联通
特殊IP地址:
127.0.0.1 本地测试IP
0.0.0.0 使用本机可用IP
192.168.1.0 表示网段IP
192.168.1.1 网关IP(路由器)
192.168.1.255 广播地址
域名:网络服务器地址的名称
1.方便记忆
2.名称表达一定的含义
网络端口号:
端口是网络地址的一部分,用于区分一个网络主机上的网络应用
在一个操作系统中不同的网络应用监听不同的端口号
取值范围:1-65535
1-255 一些众所周知的通用端口
256-1023 系统应用端口
1024-65535 自用端口
建议使用 大于10000的端口
网络字节序:数据在网络中的传输格式
发表评论