一、网络模型
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四次挥手

 
 


















