网络编程的基本概念

网络编程

网络目的:数据传输

OSI七层模型:网络通信的标准化流程

  应用层: 提供用户服务,具体的内容由特定的程序规定
  表示层: 提供数据的加密和压缩优化
  会话层: 确定建立应用连接,选择传输服务
  传输层: 提供数据传输服务,进行流量的控制
  网络层: 路由选择,网络互联
  链路层: 提供链路交互,具体消息的发送
  物理层: 物理硬件,接口,网卡规定

五层模型(tcp/ip协议)

应用层(包含了表示层,会话层)
传输层
网络层
链路层
物理层

osi模型优点:将功能分开,降低网络传输中的耦合度,使用开发流程
       更加清晰,每部分各司其职

高内聚:每个模块功能尽量单一,不会多个功能掺杂
低耦合:尽量降低每个模块之间的关联性         (方便调用和使用)


要求:能够顺序说出七层模型 五层模型
 知道每层干什么
 理解消息传输流程

网络协议:在网络通信中协议各方必须遵守的规定。如建立什么连接

    消息结构如何解析等

    应用层: TFTP  HTTP  DNS  SMTP
    传输层: TCP    UDP
    网络层: IP
    物理层: IEEE

网络相关概念

网络主机:在网络上确定一台主机
    本地使用:'localhost' 127.0.0.1
    网络地址:'0.0.0.0'  '192.168.10.1'(本机ip)

查看ip地址 ifconfig(linux)


***********
socket模块*
***********
    ipython3 进入交互模式

    socket.gethostname()
    'tedu'

    socket.gethostbyname('localhist')
    '127.0.0.1'
    查询
    socket.gethostbyaddr('www.baidu.com')

    二进制转16进制
    socket.inet_aton('192.168.1.2')
    b'\xc0\xa8\x01\x02'
    十六进制转2进制
    socket.inet_ntoa('b'\xc0\xa8\x01\x02'')
    '192.168.1.2'

IP地址 

网络上确定一台主机的地址

IPv4: 点分十进制
IPv6: 128位

网络连接测试

ping 192.168.10.2

特殊ip
127.0.0.1    本机测试IP
0.0.0.0      自动使用本地可用网卡IP
192.168.1.0  表示当前网段
192.168.1.1  通常为网关地址
192.168.1.255广播地址

域名:网络服务器地址在网络上的名称

端口号: 端口号是地址的一部分,在一个系统中每个网络应用监听不同的端口,以获取对应端口传递的信息

取值范围(1-65535)
1-255通用端口(众所周知的程序占用)
256-1023 系统端口
1024-65535 自用端口

获取应用程序端口
    In [3]: socket.getservbyname('mysql')
    Out[3]: 3306
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值