一,OSI参考模型----OSI/RM
应用层
应用层提供各种各样的应用层协议,这些协议嵌入在各种我们使用的应用程序中,为用户与网络之间提供一个打交道的接口。---- ”人机交互的接口“
表示层
数据格式进行编译,对收到或发出的数据根据应用层的特征进行处理
会话层
负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
1、建立会话
2、保持会话(不是所有应用都需要维持)
3、断开会话
传输层
实现端到端的数据传输,及实现应用对应用的数据传输。设置一种类似于ip地址的端口号,用来区分应用端口,端口号是由16位二进制(两字节)构成,范围是0-65535。
端口号分类
0 保留端口号
1-1023 知名端口号,也叫系统端口
1024-65535 高位随机端口
网络层
基于数据包的逻辑地址进行转发,寻找网络中目的的位置,并在去往目的的多条路径中选择一条最佳的路径。添加源IP和目的IP
数据链路层
读取二进制,把二进制转为成相应的电流信号。添加源MAC和目的MAC
获取MAC地址通过ARP获取目的MAC地址
ARP协议---地址解析协议
正向ARP:通过已知IP地址,获取未知MAC地址;并存储在ARP缓存表中,老化时间180S
反向ARP:通过已知MAC地址,获取未知IP地址;
免费ARP:利用正向ARP的原理请求自己的IP地址,1、介绍自我;2、冲突检测 TCP/IP模型 PDU----协议数据单元
物理层
物理层通过各类协议定义了网络的机械特征、电气特征、功能特征和规程特征。
二,跨层封装
跨四层封装---仅仅应用于直连路由设备之间
跨三四层封装----仅仅应用于直连交换设备之间
三,IP地址
单播地址:一对一
组播地址:一对多
广播地址:一对所有(相同广播域)
A---8
B---16
C---24
四,IP地址根据二进制前8位数字特征进行分类
A:0xxx xxxx----10.0.0.0-10.255.255.255
B:10xx xxxx----172.16.0.0-172.31.255.255
C:110x xxxx----192.168.0.0-192.168.255.255
D:1110 xxxx
E:1111 xxxx
五,特殊IP地址
127.0.0.1-127.255.255.254------环回地址
169.254.0.0/16---本地链路地址
255.255.255.255---受限广播地址
主机位全1---直接广播地址
主机位全0----网段地址
0.0.0.0----代表没有IP地址、代表所有IP地址
VLSM----可变长子网掩码
思路:从主机位向网络位借位 192.168.1.0/24 192.168.1.0 0000000/25--192.168.1.0/25 192.168.1.1 0000000/25--192.168.1.128/25
CIDR----无类域间路由
思路:取相同,去不同 192.168.0.0/24 192.168.1.0/24 192.168.2.0/24 192.168.3.0/24 192.168.0000 0000.0 192.168.0000 0001.0 192.168.0000 0010.0 192.168.0000 0011.0 192.168.0000 0000.0/22--192.168.0.0/22---超网 172.16.0.0/24 172.16.1.0/24 172.16.2.0/24 172.16.3.0/24 172.16.0.0/22----子网汇总
六,应用层 Discover
传输层 UDP;源端口:68;目标端口:67
网络层 源IP:0.0.0.0;
目的IP:255.255.255.255
数据链路层 源MAC:PC;
目的MAC:FFFF-FFFF-FFFF(广播) 中继路由器发送单播给DHCP路由器
七,应用层 Offer 传输层 UDP;
源端口:67;目标端口:68
网络层 源IP:68.85.2.1;
目的IP:68.85.2.101 数据链路层
源MAC:DHCP服务器;目的MAC:PC
八,应用层 Request
传输层 UDP;源端口:67;目标端口:68
网络层 源IP:0.0.0.0;
目的IP:255.255.255.255 数据链路层
源MAC:PC;
目的MAC:FFFF-FFFF-FFFF
九,应用层 Ack
传输层 UDP;源端口:68;目标端口:67
网络层 源IP:68.85.2.1;
目的IP:68.85.2.101 数据链路层
源MAC:DHCP服务器;目的MAC:PC
十,TCP---传输协议机制
确认机制
重传机制
排序机制
流控机制(滑动窗口机制):通过调节窗口大小对流量进行控制
窗口大小---指无需等待确认就可以连续发送数据最大值
分片---MTU(最大传输单元)
分段---MSS(最大传输段)====MTU-IP头部-TCP头部
十一,PMTU---路径MTU发现
三次握手
第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
四次挥手
第一次挥手:客户端向服务器端发送断开 TCP 连接请求的FIN=1报文,在报文中随机生成一个序列号 SEQ=x,表示要断开 TCP 连接。
第二次挥手:当服务器端收到客户端发来的断开 TCP 连接的请求后,回复发送标志位ACK=1报文,表示已经收到断开请求。回复时,随机生成一个序列号 SEQ=y。由于回复的是客户端发来的请求,所以在客户端请求序列号 SEQ=x的基础上加 1,得到确认序列号ACK=x+1。
第三次挥手:服务器端在回复完客户端的 TCP 断开请求后,不会马上进行 TCP 连接的断开。服务器端会先确认断开前,所有传输到客户端的数据是否已经传输完毕。确认数据传输完毕后才进行断开,向客户端发送FIN=1报文。再次随机生成一个序列号 SEQ=z。由于还是对客户端发来的 TCP 断开请求序列号 SEQ=x 进行回复,因此确认序列号ACK依然为 x+1
第四次挥手:客户端收到服务器发来的 TCP 断开连接数据包后将进行回复,表示收到断开 TCP 连接数据包。向服务器发送标志位ACK=1 报文,生成一个序列号 SEQ=x+1。由于回复的是服务器,所以确认序列号ACK字段的值在服务器发来断开 TCP 连接请求序列号 SEQ=z 的基础上加 1,得到ACK=z+1