网络编程

计算机网络:计算机网络就是互联的自治的计算机集合

 

Internet全球最大互联网络

网络协议:为了网络中数据交换而建立起的规则和约定

协议规定了通信实体之间交换信息的格式,意义,顺序以及响应动作

协议三要素:语法 语义 时序

 

计算机网络结构: 网络边缘(主机,网络应用)  接入网络(物理介质)   网络核心(互联路由器)

 

网络核心的关键功能: 路由 + 转发 
路由(routing) :确定分组从源到目的的传输路径

转发(forwarding):将分组从路由器的输入端口交换至正确的输入端口

 

IP :网络号 主机号 (不存在子网)

IP:网络号 子网号 主机号 (存在子网)

子网掩码 :网络号子网号 全部取1 主机号全部取0

 

知识点补充:

from datetime import datetime, date
import json

"""
TypeError: Object of type 'datetime' is not JSON serializable
# Implement this method in a subclass such that it returns
# a serializable object for ``o``, or calls the base implementation
# (to raise a ``TypeError``).
"""


class MyJson(json.JSONEncoder):
    def default(self, o):
        if isinstance(o, datetime):
        # 如果传入的O 是datetime类型,转化为格式化字符串
            return o.strftime('%Y-%m-%d %X')
        elif isinstance(o, date):
            return o.strftime('%Y-%m-%d')
        # 如果传入的O 是date类型,转化为格式化字符串
        else:
            return super().default(self, o)


res = {'c1': datetime.today(), 'c2': date.today()}
print(json.dumps(res, cls=MyJson)) 
# 自定义一个继承JSONEncoderd的类
# 重写defaultf方法
View Code

 

 

一.软件开发两种架构

 

c/s客户端与服务器架构(client/server)

b/s浏览器与服务器架构(browser/server)

 

二.网络协议

  1. OSI 七层模型:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 
  2. 五层模型:应用层 传输层 网络层 数据链路层 物理层、

 

物理层: 基于0100102121的二进制数据

数据链路层:

1.规定的电信号的分组方式
每个计算机都有一个网卡,网卡有一个12位的16进制编号,前6位是厂商编号后6位是流水线编号

这个编号又叫MAC地址

以太网协议不能跨局域网通信

 

网络层:

IP 地址有两种,IPV4和IPV6

IPV4长度32位

IPV6长度128位

拨号上网,IP动态分配

网关:用于网络互连,进行网络协议转换

交换机:网络内通信

路由器 :跨网络通信

 

传输层:

传输层的协议有tcp和 udp,这两个协议都是基于端口工作的

TCP协议:流式协议,有状态连接,是可靠协议
基于TCP协议通信 必需先建立双向通道

TCP协议传输数据之所以可靠的原因就在于它的响应机制

三次握手

 

四次挥手

端口(port):用来唯一标识一台计算机上的某个应用程序

 

端口号的范围:0~65535
注意:0~1024这些都是操作系统默认使用的端口号
建议:使用8000之后的端口
MySQL默认端口:3306
Redis默认端口:6379
django默认端口:8000
flask默认端口:5000

 

端口号是由OS根据需求动态分配的

 

应用层:

应用层协议有HTTP和FTP 

 

 

 

posted @ 2019-08-06 21:55  Tri_stone  阅读(153)  评论(0编辑  收藏  举报