这是我参与更文挑战的第19天,活动详情查看: 更文挑战
四、网络层
4.1 网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务
4.2 网际协议IP
-
地址解析协议ARP
- IP地址---->物理地址
-
逆地址解析协议RARP
- 物理地址---->IP地址
-
网际控制报文协议ICMP
-
提高IP数据报交付成功的机会
-
报文种类
-
差错报告报文
- 终点不可达
- 时间超过
- 参数问题
- 改变路由(重定向)
- 源点抑制
-
询问报文
- 回送请求和回答
- 时间戳请求和回答
-
-
不应该发送ICMP差错报告报文的4种情况
-
-
网际组管理协议IGMP
4.3 IP地址划分
-
两级IP地址:网络号+主机号
-
分类
-
A:8(1~126)+24
- 每个网络主机数很多
-
B:16(128~191)+16
- 65534
-
C:24(192~223)+8
- 254
-
D:1110+...(多播地址)
-
E:1111+...
-
-
注意事项
-
网络号,主机号全0或全1一般不用
-
私有IP地址
- 10.0.0.0~10.255.255.255
- 172.16.0.0~172.31.255.255
- 192.168.0.0~192.168.255.255
-
-
-
三级IP地址:网络号+子网号(由主机号产生)+主机号
-
子网掩码:采用连续的1
-
网络地址=子网掩码&IP地址
- 不同的掩码可能得到相同的网络地址
- 但是不同掩码的效果是不一样的,支持不同数量的主机数
-
4.4 IP数据报
-
首部
-
固定部分
-
版本
- 占4位,ip协议的版本
-
首部长度
-
区分服务
-
总长度
- 首部和数据之和的长度
-
标识
- 占16位,计数器,用来产生数据报的标识
-
标志
- 占3位,目前只有前两位有意义
- 标志字段中最低位即为MF
- MF=1,表示后面还有分片,MF=0表示是最后一个
- 中间位DF=0,才允许分片
-
片偏移
- 以8个字节为偏移单位
-
生存时间TTL
- 能经过路由器的最大数量,这是数据报在网络中的寿命
-
协议
-
首部校验和
-
源地址
-
目的地址
-
-
可选部分
-
-
数据部分
4.5 IP层转发分组
-
目的网络地址,下一跳地址
-
查找路由表
- 只有到达最后一个路由器的时候,才试图像目的主机直接交付
4.6 自治系统
-
内部网关协议
-
RIP
-
分布式基于距离向量的路由选择协议
-
从一路由器到它直接相连的网络的距离定义为1
-
允许一条路径最多只包含15个路由器,距离16相当于不可达
-
路由器越少越好
-
适用于小型网络
-
RIP特点
- 仅和相邻网络之间交换信息
- 交换信息为:当前路由器所知道的全部信息,即:自己所在的路由表
- 按固定时间间隔交换信息
- 好消息快,坏消息慢(进而网络开销比较大)
- 实现简单,开销较小,但是....随着网络规模的变大,开销也变大
-
-
OSPF:开放最短路径优先
-
分布式链路状态协议
-
三大要点
- 向本自治系统中的所有路由器发送信息---洪泛法
- 发送信息:相邻的所有路由器的链路状态
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息
-
链路状态数据库---全网的拓扑结构图
-
OSPF将一个自治系统再划分为若干个更小的范围,区域
-
OSPF直接用IP数据报传送
-
OSPF五种分组类型
- 问候
- 数据库描述
- 链路状态请求
- 链路状态更新
- 链路状态确认
-
-
-
外部网关协议
-
BGP
- 不同自治系统的路由器之间交换路由信息的协议
- 边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由
-
4.7 vpn
- 在公网上建立一个安全链路(隧道)供远程用户安全访问内网
4.8 NAT(网络地址转换)
- 所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接
五、传输层
5.1 相关概念
-
应用进程之间的通信(端对端的通信)
-
主要功能
-
为应用程序之间提供端对端的逻辑通信
- 网络层:为主机之间提供逻辑通信
-
对收到报文进行差错检测
-
两种传输协议
-
TCP
-
面向连接
- 传输控制协议
-
-
UDP
-
无连接
- 用户数据报协议
-
-
-
5.2 UDP
- 无连接
- 用尽最大努力交付
- 面向报文
- 一对一,一对多,多对多。。。
- 首部开销小,只占8个字节
5.3 TCP
- 面向连接
- 每一条TCP连接只能有两个端口(点对点)
- 可靠交付的服务
- 全双工通信
- 面向字节流
5.4 UDP与TCP格式
-
UDP
-
首部字段
- 源端口
- 目的端口
- 长度
- 检验和
-
数据字段
-
-
TCP
-
首部字段
-
源端口
-
目的端口
-
序号
-
确认号
-
数据偏移(首部长度):数据距离tcp段起始处的长度
-
保留字段
-
6个状态码
-
紧急URG
- URG=1,表明紧急指针字段有效,也就是相当于高优先级
-
确认ACK
- ACK=1,确认字段有效
-
推送PSH
- 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程
-
复位RST
- RST=1,表明tcp连接出现严重差错,必须立即释放连接,然后重新建立传输连接
-
同步SYN
- 同步 SYN = 1 表示这是一个连接请求或连接接受报文
-
终止FIN
- 用来释放一个连接。FIN =1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接
-
-
窗口
- 用来让对方设置发送端口的依据
-
检验和
- 检验和检验范围包括:首部和数据
-
紧急指针字段
- 本报文段中紧急数据共有多少字节
-
选项字段
- 最初:MSS(最大报文段长度)---报文段最大数据长度为MSS字节
-
-
数据字段
-
5.5 常见TCP端口
- 20:ftp数据端口
- 21:ftp控制端口
- 23:telnet端口
- 25:SMTP端口
- 53:DNS端口
- 80:http端口
- 443:https端口
5.6 TCP流量控制和TCP拥塞控制
-
流量控制
-
拥塞控制
-
拥塞控制 VS 流量控制
-
流量控制
- 点对点通信量的控制,是一个端对端的问题(接收方控制发送方)
- 抑制发送方发送数据的速率,以便接收方能来得及接收
-
拥塞控制
- 是一个全局性的过程,涉及所有主机,所有路由器,所有因素...
- 前提:网络能够承担现有的网络负荷
-
-
拥塞控制产生原因
- 网络中对需求资源的总和大于当前可用资源
-
拥塞控制一般原理
- 分组丢失是发生拥塞的征兆,但不是原因
-
拥塞控制分类
-
开环控制
- 设计网络事先将有关发生拥塞的因素考虑周到
-
闭环控制
-
基于反馈环路的概念
-
-
TCP的拥塞控制方法(闭环控制)
-
基本概念
-
tcp基于窗口的方法进行拥塞控制
-
发送方维持一个拥塞窗口CWND
-
真正的发送窗口值=min(接收方公告窗口的接收窗口,拥塞窗口值)
-
控制拥塞窗口原则
- 只要没有出现拥塞,就将窗口调大点
- 如果出现了拥塞,就将窗口调小点
-
拥塞的判断
- 重传定时器超时
- 收到三个相同(重复)的ACK
-
-
TCP拥塞控制算法
-
慢开始
- 从小到大逐渐增大拥塞窗口的数值
- 拥塞窗口控制方法:每收到一个新的报文段的确认后,可以把拥塞窗口增加最多一个SMSS的数值
-
拥塞避免算法
- 线性的增长
-
快重传
- 直接进行重传操作
-
快恢复
- 当发送方收到连续三个确认后,发送方认为当前网络没有发生拥塞,不执行慢开始,而是快恢复
- 快开始门限=当前拥塞窗口/2
- 新拥塞窗口=快开始门限
- 开始执行拥塞避免算法,使拥塞窗口
-
-
-
5.7 TCP运输连接管理
-
运输连接的三个阶段
-
连接建立
-
tcp连接过程叫做:握手
-
握手需要在客户端和服务器发送三个tcp报文段
-
三报文握手(三次握手
- 防止已失效的连接请求报文段,突然又传送到了,因而产生错误
- 第三次:对确认的再确认非常重要
-
-
-
数据传送
-
连接释放
-
四次挥手
-
A必须等待2MSL时间
- 设一个足够长的时间,使得的网络资源都释放掉
-
-
-
运输连接的管理:就是使运输连接的释放和管理都能正常的进行
5.8 三次握手
5.9 IP数据段=首部+数据(tcp/udp 首部+数据字段)
5.10 注意
连接是一条虚连接,而非真正的物理连接
TCP连接的端口是套接字或者插口
ip地址+端口号=套接字
ARQ:自动请求重传
CRC:循环冗余校验
特点:检错能力极强;开销很小;易于实现
5.11 FCS码的生成
-
选择一除数(一多项式)
- 多项式的最高位和最低位必须存在
-
补0
- 多项式长度减一
-
做除法
-
做减法(异或运算)
-
余数比除数少1,停止运算