一、网络模型
1.1 osi七层参考模型
物理层:连接通信链路、传输比特流数据链路层:数据封装成帧,在节点与节点间实现可靠物理地址寻址,进行差错校验、流量控制网络层:逻辑地址寻址,路由选择 IP(IPV4IPV6) ICMP IGMP传输层:建立,管理和维护端到端的连接,对上层数据进行分段和重组 TCP,UDP会话层:建立、管理、终止会话表示层:数据格式转换:数据加解压缩;数据加解密;数据编码解码应用层:应用程序、服务所在,人类语言转化为编码HTTP HTTPS FTP TFTP SMTP SNMP DNS DHCP TELNET POP3
1.2 TCP/IP 五层(有时候说是四层模型)
四层就是数据链路层和物理层被叫做:网络接口层
①应用层:通过应用进程间的交互来完成特定网络应用
数据:报文
协议:HTTP, SMTP(邮件), FTP(文件传送)
②运输层:向两个主机进程之间的通信提供通用的数据传输服务。
数据:TCP:报文段,UDP:用户数据报
协议:TCP, UDP
③网络层:为分组交换网上的不同主机提供通信服务
数据:包或IP数据报
协议:IP
④数据链路层:
数据:帧
⑤物理层:
数据:比特
1.3 两种模型的比较
结构对比
osi的失败
二、 物理层
2.1作用:用来连接各种计算机的传输媒体,传输数据比特流
粗略的理解:在电线上,把数据以比特流的形式传过去
2.2物理介质:
①引导性介质:光纤、铜、电缆
②非引导型介质:信号 例如无线电
信道的基本概念:信道是往一个方向传输信息的媒体,一条通信电路包含一个发送信道和一个接受信道。
三 数据链路层
3.1作用:把源自网络层来的数据可靠地传输到相邻节点的目标机网络层
3.2 可靠机制:通过物理地址寻址、数据的成帧、流量控制、数据的检错、重发等
最大传输单元是MTU,数据帧长度受MTU限制.
①成帧 (Framing)
将比特流划分成“帧”的主要目的是为了检测和纠正物理层在比特传输中可能出现的错误,数据链路层功能需借助“帧”的各个域来实现
②差错控制 (Error Control)
处理传输中出现的差错,如位错误、丢失等
③流量控制 (Flow Control)
确保发送方的发送速率,不大于接收方的处理速率,避免接收缓冲区溢出
3.2数据成帧:
将比特流划分成“帧”的主要目的是为了检测和纠正物理层在比特传输中可能出现的错误,数据链路层功能需借助“帧”的各个域来实现
四、网络层
4.1作用:则负责数据从一台主机到另外一台主机之间的传递。
1.网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;
2.基本数据单位为IP数据报;
网络层关键功能
①路由(控制面)
选择数据报从源端到目的端的路径
核心:路由算法与协议
②转发(数据面)
将数据报从路由器的输入接口传送到正确的输出接口
传输层负责建立主机直接按进程与进程之间的连接,而网络层则负责数据从一台主机到另外一台主机之间的传递。
4.2.包含的主要协议:
IP协议(Internet Protocol,因特网互联协议);
ICMP协议(Internet Control Message Protocol,因特网控制报文协议);
ARP协议(Address Resolution Protocol,地址解析协议);
RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。
4.2.1IP协议
IP协议是我们最常见的一种通信协议,它为每一台主机赋予了身份,使得不同主机之间可以通过IP进行访问,IP地址有32位和48位两种,32位的是IPv4,目前这种IP将要被分配完,之后将逐渐过渡到IPv6,更长的位数意味着可以分配更多不同的IP。
IPv4报文格式
IP地址分类(IPv4把IP地址分为五类):
IP地址的计算?
IP地址 = 网络地址 + 主机地址
或
IP地址 = 网络地址 + 子网地址 + 主机地址
为什么要划分子网?
子网划分的目的是:节约IP地址,避免浪费,限定广播的传播,保证网络的安全,有助于覆盖大型地理区域。一个B类地址用于一个广播域,地址浪费
广播域太庞大,一旦发生广播,内网不堪重负。
将一个网络号划分为多个子网,每个子网分配给一个独立的广播域。
如此一来广播域的规模更小,网络规划更加合理。
IP地址得到合理的利用
特殊IP地址?
私网IP地址?
私有IP的出现是为了解决公有IP地址不够用的情况。从A、B、C三类IP地址中拿出一部分作为私有IP地址,这些IP地址不能被路由到Internet骨干网上,Internet路由器也将丢弃该私有地址。如果私有IP地址想要连至Internet,需要将私有地址转换为公有地址。这个转换过程称为网络地址转换(Network Address Translation,NAT),通常使用路由器来执行NAT转换。
范围如下:
A: 10.0.0.0~10.255.255.255 即10.0.0.0/8
B:172.16.0.0~172.31.255.255即172.16.0.0/12
C:192.168.0.0~192.168.255.255 即192.168.0.0/16
4.2.3ICMP
说明:
网际控制报文协议(Internet Control Message Protocol),可以报告错误信息或者异常情况,ICMP报文封装在IP数据报当中。
作用
Ping应用:网络故障的排查;
Traceroute应用:可以探测IP数据报在网络中走过的路径。
4.2.3 ARP协议与RARP协议
说明:
地址解析协议 ARP(Address Resolution Protocol):为网卡(网络适配器)的IP地址到对应的硬件地址提供动态映射。可以把网络层32位地址转化为数据链路层MAC48位地址。
ARP 是即插即用的,一个ARP表是自动建立的,不需要系统管理员来配置。
RARP(Reverse Address Resolution Protocol)协议指逆地址解析协议,可以把数据链路层MAC48位地址转化为网络层32位地址。
五、传输层
5.1UDP协议
5.1.1特点
UDP是无连接协议;
UDP不能保证可靠的交付数据;
UDP是面向报文传输的;
UDP没有拥塞控制;
UDP首部开销很小。
5.1.2结构
首部:8B,四字段/2B【源端口 | 目的端口 | UDP长度 | 校验和】
数据字段:应用数据
5.2TCP协议
5.2.1功能
对应用层报文进行分段和重组;
面向应用层实现复用与分解;
实现端到端的流量控制;
拥塞控制;
传输层寻址;
对收到的报文进行差错检测(首部和数据部分都检错);
实现进程间的端到端可靠数据传输控制。
5.2.2特点
TCP是面向连接的协议;
TCP是面向字节流的协议;
TCP的一个连接有两端,即点对点通信;
TCP提供可靠的传输服务;
TCP协议提供全双工通信(每条TCP连接只能一对一);
5.2.3结构
TCP首部:
序号字段:TCP的序号是对每个应用层数据的每个字节进行编号
确认序号字段:期望从对方接收数据的字节序号,即该序号对应的字节尚未收到。用ack_seq标识;
TCP段的首部长度最短是20B ,最长为60字节。但是长度必须为4B的整数倍
TCP标记的作用:
5.2.4TCP协议的拥塞控制
拥塞控制与流量控制的区别:流量控制考虑点对点的通信量的控制,而拥塞控制考虑整个网络,是全局性的考虑。拥塞控制的方法:慢启动算法+拥塞避免算法。
慢开始和拥塞避免:
【慢开始】拥塞窗口从1指数增长;
到达阈值时进入【拥塞避免】,变成+1增长;
【超时】,阈值变为当前cwnd的一半(不能<2);
再从【慢开始】,拥塞窗口从1指数增长。
快重传和快恢复:
发送方连续收到3个冗余ACK,执行【快重传】,不必等计时器超时;
执行【快恢复】,阈值变为当前cwnd的一半(不能<2),并从此新的ssthresh点进入【拥塞避免】。
5.2.5tcp三次握手
5.2.6tcp四次挥手