计算机网络:计算机网络就是互联的自治的计算机集合
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方法
一.软件开发两种架构
c/s客户端与服务器架构(client/server)
b/s浏览器与服务器架构(browser/server)
二.网络协议
- OSI 七层模型:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
- 五层模型:应用层 传输层 网络层 数据链路层 物理层、
物理层: 基于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