网络编程1
网络架构C/S & B/S
C:client 客户端
B:browser 浏览器
S:server 服务器
C/S架构:基于客户端与服务端的架构。软件C/S框架(微信,QQ等)硬件C/S框架(打印机)
B/S架构:C/S机构的特殊形式(浏览器)
网络通信
网络通信是从一台计算机的一个软件,讲一个数据(文件、视频、音频等)发送到另一台计算机的同款软件
原理
1.一些列的物理连接介质
2.地址,确定对方的软件位置
3.一系列互联网协议
五层协议(物理层-数据链路层-网路层-传输层-应用层)
物理层
物理连接介质
发送和传输电信号(高1低0电平)
数据链路层
主要对数据进行分组,封装(源地址,目标地址)
由统一的以太网协议ethernet
规定数据分为两部分 数据头 | 数据
数据头:规定18个字节,6个代表源地址,6个代表目标地址,6个代表数据类型
将数据分为组的形式,成为数据报,或一帧
head长度 + data长度
最短64字节,最长1518字节,如果超过最大限制就分组发送
网卡:唯一的mac地址,是计算机的唯一标志。
12位16进制,前6位代表厂商编号,后6位代表流水线号
计算机通过广播通信,理论上可行,但当计算机基数大时,其他机器的收发数据,本机会接受大量的无用信息,是工作量增加,效率低,造成广播风暴。
mac + 广播只能在局域网中实行
原则上,同一个局域网通过
源mac地址 + 目标mac地址 + 数据 + 广播
就可以将数据传输
交换机(自主学习)
创建一个mac与网口对照表,通过网口获得源计算机或目标计算机的mac地址
mac与网口对照表的建立:
在同一个局域网中
交换机第一次连接计算机,对照表是空的,当接入网口a的计算机A发送一个数据给接入网口b
的计算机B时,发送的数据头为
<A源mac地址,FF-FF-FF-FF-FF-FF(B的mac地址未知)>,<A源IP,B目标IP>
交换机获得计算机A的mac地址,并与网口a绑定
根据目标IP地址,通过广播找到目标计算机B
计算机B收到数据后会回传一个数据
<B源mac地址,A目标mac地址>,<B源IP,A目标IP>
交换机获得计算机B的mac地址,并与网口b绑定
第二次发送数据,如果计算机与网口没有更换,计算机之间传输数据,则直接通过mac与网口对
照表寻找对方mac地址,不需要再广播
网路层
确定局域网的位置。
通过IP协议寻找对方的局域网位置。
IPV4协议:
点分十进制:
0~255.0~255.0~255.0~255
同一个局域网内所有计算机的IP地址绝不相同
子网掩码,与IP地址类型相同
255.255.255.0 C类(B类,A类)
(IP and 子网掩码 )是否相等 判断两个IP地址是否在同一个局域网(同一网段,同一个子网)
如果子掩码都是C类,那么一个局域网最多可以分配253个有效IP;0,254,255,不能用。
理论上 IP + mac +广播确定世界上任何一台计算机的位置
通过IP协议和ARP协议可以获取mac
总结网路
通过计算机发送数据,获得对方的IP地址和子网掩码,
判断是否在同一网段:
在,通过IP协议,获取mac发送数据
不在,通过网关(路由协议)一层一层的发送
传输层
端口协议,每个软件都有固定的端口。
端口范围(0~65535),其中1~1024被系统占用,应用在8000之后
端口确定软件的位置
端口 + IP + mac + 广播 确定世界上任何一台计算机软件位置
应用层
每个软件对于数据都有不同的自定义协议
FTP,www等
网络传输
输入域名
经dns软件转换成IP地址带有一个隐藏的端口
本机通过IPv4协议判断目标地址是否在同一网关(本机的IP地址为虚拟IP,由DHCP服务分配,只能在内网用,不能在外网用)
在,计算机单播发送给交换机,交换机再以广播的形式发送给其他交换机,每个交换机再以广播的形式发给其他计算机
否,交换机将数据发送给路由器
路由器通过NAT技数,将数据封装的IP(虚拟IP)置换成路由器的IP。
路由器通过,路由协议查找到目标地址最简单的路径
通过静态路由将数据传给目标路由器。
通过端口映射技术直接从目标路由器将数据发送到目标软件
网络编程
浙公网安备 33010602011771号