1.来源
想要两个程序(不同的电脑中)之间传输内容,这个时候出现了网络传输。
2.软件开发的架构
第一种是应用类:qq,微信是属于需要安装的桌面应用
第二种是web类:比如百度,知乎使用浏览器就可以直接使用的应用
两种分类对应了两种软件开发的架构:
2.1 C/S即client与server:客户端与服务端架构,这种架构也是从用户层面
2.2B/S架构
B/S即:browser与Server:浏览器端与服务端架构,这种架构是从用户层来划分的。
Browser浏览器是一种client客户端,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就可以增删改查。
以太网:局域网与交换机
ip地址与ip协议
- 规定网络地址的协议叫ip协议,它定义的地址称为ip地址,广泛采用v4版本即ipv4,它规定的网络地址由32位2进制表示
- 范围0.0.0.0-255.255.255.255
- 一个ip地址通常写成四段十进制数,例:172.16.10.1
mac地址
每块网卡出厂时被烧制的世界唯一mac地址长度为48位2进制,通常由12位16进制数表示(前6位是厂商编号,后6位是流水线号)
arp协议--插叙ip地址和mac地址的对应关系
地址解析协议,即arp,是根据ip地址获取物理地址的一个tcp/ip协议。例子:交换机(广播,单播)
主机发送消息时将包含目标ip地址的arp请求广播到网络上的所有主机,并接受返回消息,以此确定目标的物理地址。
收到返回消息后将该ip地址和物理地址存入本机arp缓存中并保留一定时间,下次请求是直接查询arp缓存以节约资源
广域网和路由器
也就是两个不同的局域网通过路由器相连。而每个局域网中机器是通过交换机传输的。
子网掩码
指的是表示子网络特征的一个参数,形式上等于ip地址,也是一个32位二进制数字,网络部分全为1,主机部分全为0(这个部分并不是一成不变的,有可能主机部分占24位而网络部分占8位)。
如何判断任意两个ip地址是否处于同一个子网络:方法是将两个ip地址与子网掩码分别进行AND运算(两个数都为1,运算结果为1,否则为0),然后比较结果是否一样,不是就表明不是同一个网络。
ip协议的作用有两个,1.为每台计算机分配ip地址,2.确定哪些地址在同一个子网络。
1 比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算, 2 3 172.16.10.1:10101100.00010000.00001010.000000001 4 255255.255.255.0:11111111.11111111.11111111.00000000 5 AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0 6 7 8 9 172.16.10.2:10101100.00010000.00001010.000000010 10 255255.255.255.0:11111111.11111111.11111111.00000000 11 AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0 12 结果都是172.16.10.0,因此它们在同一个子网络。
端口
端口指:计算机里提供的各种网络服务,各种软件或者浏览器类似的分别获得不同的端口,我们的另外主机想找到这个机器的服务只能通过ip地址+端口号。
tcp协议与udp协议区别:
TCP协议--传输控制协议,提供面向连接,可靠的字节流服务。客户端和服务端交换数据前,必须先建立一个TCP连接,才能传输数据,TCP提供超时重发,丢弃重复数据,检验数据,流量控制,保证数据能传送到。
UDP协议--用户数据包协议,是一个简单的面向数据包的运输层协议。不提供可靠性,不保证能到达,由于没有建立连接,且没有超时重发等机制,传输很快。
tcp协议特点:面向连接的 可靠的慢的 流式传输 长数据
三次握手
四次挥手
udp协议特点:面向数据包的 无连接不可靠的 快速的 短数据传输
每层运行常见物理设备
每层运行常见的协议
应用层————对应http/ftp/https/smtp协议
http:超文本传输协议
ftp: 文本传输协议
https:超文本传输协议
smtp:邮件传输协议