一、体系结构
OSI的七层模型
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP 4层模型
网络接口层、网际层、传输层、应用层
折中的5层模型
物理层、数据链路层、网络层、传输层、应用层
二、网络层
IPv4 和IPv6的区别
IPv4:32位
- 分ABCDE类地址(p150页)——子网掩码??
IPv6:128位
IP 数据报的首部
- TTL
子网划分
原:IP地址 = {<网络号>,<主机号>}
现:IP地址 = {<网络号>,<子网号>,<主机号>}
为什么要子网划分?
原来的两级地址不够灵活,IP地址的利用率不够高
子网掩码
- 为了告诉主机或路由器对一个A、B、C类网络进行了子网划分
- (p152)进行子网划分了之后,不容易看出子网的地址,用了子网掩码之后,就可以告诉主机或路由器当前子网对原网络号中的主机号的借位。
- 子网掩码->网络号:子网掩码与IP地址逐位相与,得到的就是子网的网络号
CIDR
- 无分类编址,“斜线记法”,128.14.32.5/20,20表示网络前缀的比特数,前20位为网络号
- 仍采用子网掩码的概念
私有IP地址
- A类:10.0.0.0 ~ 10.255.255.255
- B类:172.16.0.0~172.31.255.255
- C类:192.168.0.0~192.168.255.255
** 所有路由器对目的地址是私有地址的IP数据报均不转发 **
NAT
1. 是什么
- (p151)Net Address Transfer 网络地址转换,将专用网络地址转换为公用网络地址
- 可以对外隐藏内部管理的IP地址,内部网络的IP地址可以复用,大大节省了IP地址的消耗
2. IP地址转换过程
- 使用本地的主机和外界通信时,NAT转换表中存放着{本地IP地址 :端口}到{全球IP地址:端口}的映射(这种方式可以让多个私有IP地址映射到同一个全球IP地址上)
例子:我在家访问某一个共有IP地址 - 家里的网关路由器开启NAT功能
- 网关路由器会把本地IP地址映射成共有IP,然后发送到因特网,本地IP->共有IP的转换
(网关路由器的LAN(局域网)端接收到本地发出的IP数据报,这个时候就把本地IP地址映射成全球IP地址,发送到路由器的WAN(广域网)端,WAN(广域网)端就把这个数据发送到因特网上 - 因特网返回数据的时候,网关路由器又将全球IP地址转换成本地IP地址,再发送到设备上,这个就是地址转换的过程
ARP
(p155)Adress Resolution Protocol:IP地址 -> MAC地址
路由算法
1. 距离-向量算法 (动态)
- 距离:路由器的条数,经过一个路由器条数就+1,加到16就不能再加了,此时默认路由不可达
- 好消息传得快,坏消息传得慢
- “收敛”:路由表的信息与网络的实况保持一致
- 与直接相邻的结点做交换路由信息,所有结点都必须参与路由向量交换
2. 链路状态路由算法 OSPF(动态)
- 主动测试所有邻接结点的状态,会定期地将链路状态传播给所有其他结点
- 一个结点检查所有结点
路由协议
域内路由协议
- RIP 距离-向量
- OSPF 算法
域间路由协议
BGP:边界网关协议
三、传输层
UDP
无连接,不可靠
TCP
有连接、可靠
3次握手
- 客户端-服务器:SYN连接请求
- 服务器-客户端:ACK确认 + SYN连接请求
- 客户端-服务器:ACK确认
目的是为了确认全双工的通道是否能够正常的传输数据
4次挥手
-
客户端-服务器:FIN连接释放请求
-
服务器-客户端:AKC确认
这个时候从客户端-服务器的传输通道已经关闭了 -
服务器-客户端:FIN连接释放请求
-
客户端-服务器:AKC确认
服务器-客户端的通道关闭
3次握手的本质也是4次握手
为什么要3次握手?2次不行?
全双工通道,2次只能确认一个方向的传输是否通畅
TCP粘包
四、应用层
DNS
DNS是什么
p254
- 域名系统,用于域名解析(域名-IP地址之间互相转换的过程)
- 使用UTP协议
DNS解析过程
- 客户机向本地域名服务器发出DNS请求报文
- 本地域名服务器,先在本地DNS缓存中查找请求的域名,有就直接返回
- 没有就以DNS客户的身份依次向根域名服务器、顶级域名服务器、权限域名服务器发送请求,依次查找
- 找到之后,本地域名服务器再将解析到的IP地址返回给客户端
HTTP
基于TCP的
http和https的区别
- 安全:https使用了ssl进行加密
- 端口:http-80 https-443
- https需要有CA整数,http不需要
- http-明文传输,https-加密传输
- http速度比https快
Http1 和 Http2 的区别
http1 是字符串传送,http2 是二进制传送
http响应码
3开头:重定向有关
301和302的区别
- 301:永久转移
- 302:暂时性转移
4开头:请求错误
- 400 : (错误请求) 服务器不理解请求的语法
- 404 (未找到) 服务器找不到请求的网页
- 407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理
- 408 (请求超时) 服务器等候请求时发生超时
baidu.com 的过程
这个问题主要涉及两个过程
域名解析
- 本地域名服务器
- 根域名服务器、顶级域名服务器、权限域名服务器
网络应用模型
P2P
客户机和客户机之间直接通信
C/S
客户端/服务器:对客户端计算机的性能要求比较高;客户端需要安装和配置相应的软件
B/S
浏览器/服务器:对客户端计算机的性能要求没那么高;客户端不需要安装和配置相应的软件,有浏览器即可
FTP
文本传输协议
SMTP POP3
邮件传输协议
SMTP采用“推”的方式,POP3采用“拉”的方式