Python网络编程基础,OSI七/四/五层模型,获取计算机名/ip/应用端口等方法

Python网络编程基础,OSI七/四/五层模型,获取计算机名/ip/应用端口等方法

网络编程:

网络功能:数据传输

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的端口

网络字节序:数据在网络中的传输格式


最后编辑于:2019/10/13作者: 牛逼PHP

发表评论