python 网络编程基础

网络模型

OSI 七层模型

应用层 : 提供用户服务,具体功能有应用程序实现  
表示层 : 数据的压缩优化加密  
会话层 : 建立用户级的连接,选择适当的传输服务  
传输层 : 提供传输服务   
网络层 : 路由选择,网络互联   
链路层 : 进行数据交换,控制具体数据的发送  
物理层 : 提供数据传输的硬件保证,网卡接口,传输介质
1. 物理层
  • OSI模型的最底层,包括物理联网媒介,物理层的协议产生并检测电压以便发送和接收携带数据的信号。物理层的任务是为上一层提供物理连接。如电缆电线连接器,主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。
  • 它的主要作用是传输比特流 (就是由 0、1 转化为电流强弱来进行传输,到达目的地后在转化为1、0,即数模转换与模数转换)。
2.数据链路层
  • 它控制物理层和网络层之间的通信,它的主要功能是如何在不可靠的物理线路上进行数据的可靠传递。
  • 该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。如交换机。
3.网络层
  • 其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点 A 到另一个网络中节点 B 的最佳路径。路由器就属于网络层。
4.传输层
  • 模型中最重要的一层,传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割。主要的网络协议包括 TCP 和 UDP。
5.会话层
  • 负责在网络中的两节点之间建立、维持和终止通信。
  • 会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。
6.表示层
  • 应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。表示层管理数据的解密与加密,如系统口令的处理。例如:在 Internet上查询你银行账户,使用的即是一种安全连接。你的账户数据在发送前被加密,在网络的另一端,表示层将对接收到的数据解密。除此之外,表示层协议还对图片和文件格式信息进行解码和编码。
7.应用层
  • 是最靠近用户的 OSI 层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

四层模型 ( TCP/IP 模型 )

  • 实际工作中工程师无法完全按照七层模型要求操作,逐渐演化为更符合实际情况的四层模型。分为应用层、传输层、网际层和链路层。
    在这里插入图片描述
数据传输过程

1.发送端由应用程序发送消息,逐层添加首部信息,最终在物理层发送消息包。
2.发送的消息经过多个节点(交换机,路由器)传输,最终到达目标主机。
3.目标主机由物理层逐层解析首部消息包,最终到应用程序呈现消息。
在这里插入图片描述
在这里插入图片描述

网络协议
  • 在网络数据传输中,都遵循的规定,包括建立什么样的数据结构,什么样的特殊标志等。

网络基础概念

1. IP地址

IP 地址表示一台主机在网络上的逻辑地址,如 192.168.1.1,在因特网中,每一台主机的 IP 地址都是唯一的。

功能:确定一台主机的网络路由位置
查看本机网络地址命令: ifconfig
结构:
    IPv4  点分十进制表示 172.40.91.185 每部分取值范围0--255
    IPv6  128位 扩大了地址范围
(1) IP 地址的分类
  • 每一个 IP 地址包括两部分:网络地址和主机地址。IP 地址又分为 A类、B类、C类、D类和E类
    在这里插入图片描述
  • 人们日常使用的是 C 类地址,如果 IP 的网络号相同,则说明在同一个网络中,使用主机号区分不同的主机。
    对于大公司的网络中,由于主机较多,则会使用 B 类地址。
    D 类地址用于多点广播,E 类用于实验
  • 主机号的范围为 0-255,但不能使用 0 和 255, 0 表示当前网络号,255 表示广播地址。
(2) 公有 IP 和 私有 IP
  • 私有 IP 是局域网中由路由器分配给主机的用于局域网中通信的 IP,不能用于访问外网。
  • 公有 IP 是主机访问外网时使用的 IP。

2. 域名

  • 定义: 给网络服务器地址起的名字, 如www.baidu.com
  • 作用: 方便记忆,表达一定的含义
  • ping [ip] : 测试和某个主机是否联通

3. 端口号(port)

端口包括物理端口和逻辑端口。物理端口是用于连接物理设备之间的接口,逻辑端口是逻辑上用于区分服务的端口。TCP/IP协议中的端口就是逻辑端口,通过不同的逻辑端口来区分不同的服务。

  • 作用:端口是网络地址的一部分,用于区分主机上不同的网络应用程序。

  • 特点:一个系统中的应用监听端口不能重复

  • 取值范围: 1 – 65535
    1–1023 系统应用或者大众程序监听端口
    1024–65535 自用端口

4. 子网掩码

子网掩码的作用就是将某个IP地址划分成网络地址和主机地址两部分。子网掩码的设定必须遵循一定的规则。与IP地址相同,子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示;右边是主机位,用二进制数字“0”表示。假设IP地址为“192.168.1.1”子网掩码为“255.255.255.0”。其中,“1”有24个,代表与此相对应的IP地址左边24位是网络号;“0”有8个,代表与此相对应的IP地址右边8位是主机号。

5. 网关

  • 网关实质上是一个网络通向其他网络的IP地址。在没有路由器的情况下,两个不同的网络之间是不能直接通信的,TCP/IP协议会根据子网掩码(如255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。
  • 如果网络A中的主机发现数据包的目标主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此 所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。
  • 网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

6. 路由器(也称为默认网关)

  • 一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。
  • 默认网关的设置
    1.手动设置:手动设置适用于电脑数量比较少、TCP/IP参数基本不变的情况,比如只有几台到十几台电脑。因为这种方法需要在联入网络的每台电脑上设置“默认网关”,非常费劲,一旦因为迁移等原因导致必须修改默认网关的IP地址,就会给网管带来很大的麻烦,所以不推荐使用。需要特别注意的是:默认网关必须是电脑自己所在的网段中的IP地址,而不能填写其他网段中的IP地址。
    2.自动设置:自动设置就是利用DHCP服务器来自动给网络中的电脑分配IP地址、子网掩码和默认网关。这样做的好处是一旦网络的默认网关发生了变化时,只要更改了DHCP服务器中默认网关的设置,那么网络中所有的电脑均获得了新的默认网关的IP地址。这种方法适用于网络规模较大、TCP/IP参数有可能变动的网络。

7. 缺省网关

  • 缺省网关是计算机网络中一个如何将数据包转发到其他网络中的节点。在一个典型的 TCP / IP 网络,节点(如服务器、工作站和网络设备)都有一个定义的默认路由设置(指向默认网关)。可以在没有特定路由的情况下,明确出发送数据包的下一跳IP地址。
  • 默认网关是缺省网关的一个子集。缺省网关有一个定义的默认路由设置(指向默认网关),缺省网关就相当于一个代理服务器暂时管理发送的数据包,当发送到目标主机时先由目标主机的缺省网关接收再找到对应的默认网关,就相当于缺省网关是父类,默认网关是子类。

8. DNS 服务器

  • 域名服务器(Domain Name Server)。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器 。

9. DHCP 服务器

  • DHCP指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。提升地址的使用率。

10. MAC 地址

  • MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。

传输层服务

面向连接的传输服务 (基于TCP协议的传输服务)

1.传输特征 : 提供了可靠的数据传输,可靠性指数据传输过程中无丢失,无失序,无差错,无重复。

2.实现手段 : 在通信前需要建立数据连接,通信结束要正常断开连接。

  • 三次握手(建立连接)
    1.客户端向服务器发送消息报文请求连接
    2.服务器收到请求后,回复报文确定可以连接
    3.客户端收到回复,发送最终报文连接建立
    在这里插入图片描述
  • 四次挥手(断开连接)
    1.主动方发送报文请求断开连接
    2.被动方收到请求后,立即回复,表示准备断开
    3.被动方准备就绪,再次发送报文表示可以断开
    4.主动方收到确定,发送最终报文完成断开
    在这里插入图片描述

3.适用情况 : 对数据传输准确性有明确要求,传数文件较大,需要确保可靠性的情况。比如:网页获取,文件下载,邮件收发。

面向无连接的传输服务(基于UDP协议的数据传输)

1.传输特点 : 不保证传输的可靠性,传输过程没有连接和断开,数据收发自由随意。

2.适用情况 : 网络较差,对传输可靠性要求不高。比如:网络视频,群聊,广播

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值