局域网
1.交换机(只管内网、房间内部传话)
只负责同一局域网内设备互相传话,不分内外网,不能连接互联网。mac寻址数据链路层
2.路由器(负责内外网搭桥,管出门 / 回家)
连接两个不同网络,负责内网 ↔ 互联网互通,是大门。ip寻址,网络层寻址
广域网
远隔千里的计算机连起来
硬件提供传输通道
协议提供传输方式
osi七层模型
- 应用层(第 7 层)
用户直接打交道的一层 - 表示层(第 6 层)
翻译、加密、压缩
作用:统一数据格式,加密解密,编码转换(文字、图片格式) - 会话层(第 5 层)
建立、维持、断开通信会话
作用:控制连接什么时候打开、什么时候关闭。 - 传输层(第 4 层)
端到端传输,区分程序
核心协议:TCP(可靠)、UDP(快速)
依靠端口号区分电脑上不同软件(80 网页、443https) - 网络层(第 3 层)
跨网络寻址,选路线
设备:路由器
标识:IP 地址
协议:IP、ICMP(ping 命令)
6.数据链路层(第 2 层)
同一局域网内传输
设备:交换机
标识:MAC 地址(网卡物理地址)
数据名称:帧 - 物理层(第 1 层)
传输电信号 / 光信号
载体:网线、光纤、无线电波、水晶头
没有数据包,只有 0 和 1 高低电平信号
数据传递
发送端:从上往下封装(逐层打包,加头部)
OSI 从上至下:7 → 6 → 5 → 4 → 3 → 2 → 1
接收端:从下往上解封装(逐层拆包,去掉头部)
OSI 从下至上:1 → 2 → 3 → 4 → 5 → 6 → 7
数据包的封装
tcp首部包含:源端口,目的端口,序列号
认识ip
ipv4:32 位二进制,分成 4 段,每段 8bit,用点分十进制表示
一、为什么至今主流仍是 IPv4
- 海量老设备、老系统不支持 IPv6(最大阻碍)
- NAT 技术给 IPv4 “续命”(最重要原因)
私有ip和公有ip:私有 IP 不能上路,需要路由器 “翻译” 成公网 IP 才能上网。
私有ip分为三类:
A 类地址
范围:1.0.0.0 ~ 126.255.255.255
默认掩码:255.0.0.0 (/8)
0.0.0.0/8:保留地址
127.0.0.0/8:回环地址,不属于 A 类可用主机地址
B 类地址
范围:128.0.0.0 ~ 191.255.255.255
默认掩码:255.255.0.0 (/16)
C 类地址
范围:192.0.0.0 ~ 223.255.255.255
默认掩码:255.255.255.0 (/24)
D 类(组播)
范围:224.0.0.0 ~ 239.255.255.255
无默认子网掩码
不同局域网可以用相同的私有ip,互不冲突
NAT网络地址转换
把内网私有 IP,翻译成公网 IP,实现多台设备共用一个公网 IP 上网。
DNS域名系统
把域名翻译成 IP 地址
人记不住 180.101.49.11,但记得住 baidu.com
DNS 就是互联网的电话本。
Mac地址特点
长度:48 位二进制,通常写成 16 进制
形式示例:00:1A:2B:3C:4D:5E(6 组两位十六进制)
Mac地址和ip地址区别
MAC 地址:二层(数据链路层)、物理地址
IP 地址:三层(网络层)、逻辑地址
http协议
URL:互联网上资源的完整地址,用来精准找到某一个网页、图片、视频、文件。
示例:
https://www.baidu.com:443/search?wd=网络#top
HTTP 是传输规则(说话的语言);URL 是资源地址(目的地地址)。
传输层协议
1.TCP 传输控制协议
特点:可靠、面向连接
通信前先建立连接(三次握手)
传输数据确认应答,丢包自动重传
流量控制、拥塞控制,不乱发、不拥堵
数据有序到达,不会乱序
有额外头部开销,速度相对慢
2.UDP 用户数据报协议
特点:不可靠、无连接(但是没收到可以应用层通知然后再发)
不用建立连接,发完就走,不需要握手
没有确认、没有重传,丢包不会补发
没有拥塞控制,开销小,延迟极低
数据可能丢失、乱序
传输效率高,适合实时性要求较高,可靠性要求相对较低的场景
UDP 把每次发送的数据,当成独立完整的数据包。
每一次 send 发送的数据,就是一个独立数据报。
udp的socket是全双工的,既能读也能写
为什么需要端口号
端口号是什么:IP 地址找到哪一台电脑;
端口号找到电脑上的哪一个程序。
一台电脑只有一个 IP,但是同时跑很多软件:浏览器、微信、QQ、游戏。
数据包到达电脑后,靠端口号区分该交给哪个软件。
2、基础信息
工作在:传输层(TCP/UDP)
范围:0 ~ 65535 一共 65536 个端口
3、三大分类
公认端口(0–1023)
系统服务、标准网络服务占用,固定端口
80 → HTTP 网页
443 → HTTPS 加密网页
53 → DNS 域名解析
21 → FTP
为什么需要端口号:端口号 = 主机内部应用的编号,用来区分同一台设备上不同的网络进程。
IP 定位主机,端口定位主机里的程序。