网络编程
内容概要
- 软件开发架构
- 架构发展趋势
- 网络编程前戏
- OSI七层模型
软件开发架构
规定了程序的求情逻辑、功能分块
-
C/S架构
Client客户端 Server 服务端 客户端相当于你安装的软件比如:QQ、微信 """ 作为服务器必备的条件 1.24小时不间断提供服务 2.固定的地址 3.能够服务的多个客人(到并发) """ -
B/S架构
Browswe:浏览器 Server:服务端 """ 浏览器 页面 ps:B/S架构的本质还是C/S架构 """
总结:
"""
C/S架构
优势:不同公司的客户端由不同公司独立开发,可以高度定制化客户端的 功能(自己想怎么写就怎么写)
劣势:需要下载
B/S架构
优势:不需要下载
劣势:无法高度定制化 并且需要遵守很都规则(你写东西必须按照他的要求来)
"""
网络编程
-
什么是网络编程
基于网络编写代码 能够实现数据的远程交互
-
学习网络编程的目的
能够开发cs架构的软件
-
网络编程的起源
""" 最早起源于美国军事领域 想实现计算机于计算机之间的数据的交互 最早的时候只能用硬盘的拷贝 之后发明了网络编程 """ -
网络编程的条件
数据的远程交互
-
早期的电话
电话线
-
早期的大屁股电脑
网线
-
笔记本电脑、移动电话
网卡
-
ps:实现数据的远程交互必备的基础条件是连接介质
OSI七层模型简介
"""
OSI七层模型:规定了所有计算机在远程数交互的时候必须经过相同的处理流程、在制造过程中必须拥有相同的功能硬件
"""
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
"""常见的是整合之后五层"""
应用层
传输层
网络层
数据链路层
物理层
"""
接收网络信息 数据又下往上传递
发送网络消息 数据由上往下传递
"""
OSI七层模型之物理层
主要用于确保计算机之间的物理连接介质 接收数据(bytes类型、二进制)
OSI七层模型之数据链路层
"""
1.规定了电信号的分组方式 一组数据称之为一个数据帧
2.以太网协议
规定了计算机在出厂的时候都必须由一块网卡 网卡上有一串数字
该数字相当于是计算机的身份证号码是独一无二的
该数字的特征:12位16进制数据
前6位产商编号 后6位流水线号
该数字也称之为:以太网地址/MAC地址
"""
计算机通信基本靠吼即以太网协议的工作方式是 广播。
就是在自己的局域网内给全部的计算机发消息 收到消息的确认是自己的反馈给自己的路由器
ethernet规定
一组电信号构成一个数据包,叫做帧
每一数据帧分成:报头head 和数据data两部分
head 包含:(固定18字节)
发送者/源地址,6字节 地址为mac地址
接受者/目标地址,6字节
数据类型,6字节
data包含:(最短46字节,最长1500字节)
数据包的具体内容
head长度 + data长度 = 最短64字节, 最长1518字节,超过最大限制就分片发送
ARP协议
在同一个局域网
ARP协议:可以通过IP地址解析成mac地址
自己的ip和对方的ip
ARP协议算出在同一个局域网内
发送广播包
发送端mac 这里不能写目标mac了因为就是为了获取对方mac所以
写的是 FF:FF:FF:FF:FF:FF 自己的IP/目标IP 数据
那么获取的就是目标IP的mac地址
最后数据链路层发包就是
源mac 目标mac 源ip目标ip 数据
不在同一个局域网
自己的ip和对方的ip
ARP协议算出不在同一个局域网内
发送广播包
发送端mac 这里不能写目标mac了因为就是为了获取对方mac所以
写的是 FF:FF:FF:FF:FF:FF 自己的IP/网关的IP 数据
那么获取的就是自己网关的mac地址
最后数据链路层发包就是
源mac 自己的网关mac 源ip 目标ip数据
网络相关的专业名词
计算机想要实现交互必须要连接到一起
-
交换机
能够将所有接入交换机的计算机彼此互连起来
-
广播
首次查找接入同一个交换机的其他计算机 需要朝交换机里面吼一嗓子
-
单播
首次被查找的计算机回应查找他的计算机 并附带自己的mac地址
-
广播风暴、
接入同一台交换机的多台计算机同时发广播
-
局域网
可以简单的理解为有单个交换机组成的网络
在局域网内可以直接使用mac地址通信
-
广域网
可以简单的理解为范围更大的局域网
-
互联网
有所有的局域网、广域网连接到一起组成的网络
-
路由器
不同的局域网计算机之间是无法直接实现数据交互的 需要路由器连接
OSI七层模型之网络层
IP协议:规定了所有接入互联网的计算机都必须有一个IP地址
类似于身份证号。
mac地址是物理地址可以看成永远无法修改
IP地址是动态分配的,不同的场所IP不同
IP地址特征:
IPV4:点分十进制
0.0.0.0
255.255.255.255
IPV6:冒号十六机制
格式为X:X:X:X:X:X:X:X,以十六进制表示,例如:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
ps:IP地址可以用来标识全世界独一无二的一台计算机。
我们在win电脑上看到的自己ipv6的地址后面有个%加数字
那个%加数字是自己的网卡接口号
每一个广播但凡要接通外部,一定要有一个网关帮内部的转发包到公网
网关与外界走的是路由协议
一组数据称之为一个数据包
数据包分为两部分 头 数据
头 包含源地址与目标地址 该地址为ip地址
子网掩码 (ip一定要与子网掩码一起使用,单独使用任何一个都毫无意义)一般的子网掩码都是连续的1组成剩余的用零补齐。
有了子网掩码,我们就能判断,任意的两个IP是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果相同则两个在同一个子网络中。
"""
所以有的ipv4的地址写成
172.16.10.1/24(这个24 就是24个连续的1
11111111.11111111.11111111.00000000)
IP地址 10101100.00010000.00001010.00000100
子网掩码地址:
11111111.11111111.11111111.00000000
AND运算结果
10101100.00010000.00001010.00000000
IP地址 10101100.00010000.00001010.00001000
子网掩码地址:
11111111.11111111.11111111.00000000
AND运算结果
10101100.00010000.00001010.00000000
两个IP地址进行AND运算的结果一样证明两个在同一个子网下面。
"""
IP数据包也分为head 和data部分,无须为ip包定义单独的栏位,直接放入到以太网的data部分
head:长度为20到60直接
data:最长为65515字节
而以太网数据包的”数据“部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,他就需要分割成几个以太网数据包,分开发送了。
OSI七层模型之传输层
"""
PORT协议(端口协议)
用来标识一台计算机上面某一个应用程序
范围:0- 65535
特征:动态分配
建议:
0-1024 系统默认需要使用
1024 - 8000 常见软件的端口号
8000之后
URL:统一资源定位符(网址)
网址本质是由IP和PORT组成
域名解析:将网址解析成IP+PORT
我们之所以不直接使用IP+PORT的原因是因为太难记 所以发明了域名(网址)
IP:PORT 实际使用冒号连接
114.55.205.139:80
ps:IP+PORT:能够定位全世界独一无二的一台计算机上面的某一个应用程序
"""

浙公网安备 33010602011771号