文章目录
前言
为什么要分层?:将复杂的流程分解为几个功能相对单一的子过程
整个流程更加清晰,复杂问题简单化
更容易发现问题并针对性的解决问题
一、OSI参考模型
1、网络协议与标准
①数据通信协议:决定数据的格式和传输的一组规则或一组惯例
②标准:将网络通信的协议标准化
ISO(国际标准化组织)
IEEE(电气与电子工程师学会)
ANSI(电子工业联盟)
2、OSI
服务与服务访问点
服务:是网络中各层向其相邻上层提供的一组操作
服务访问点(SAP):N+1层实体是通过N层的SAP来使用N层所提供的服务,SAP相当于相邻层之间的接口
该模型是一个开放式体系结构,它规定将网络分为七层,从上至下一次是:

注:始终是相邻下层为相邻上层提供服务,相邻上层为相邻下层发送指令,不能跨层。只能实现对等层之间的通信,对等层中只有物理层是直接实现的,实现的是物理通信,其他层次的通信是逻辑通信,层和层之间有特定的接口,这样做可以使网络结构变得特别清晰。

二、TCP/IP协议簇
1、TCP/IP参考模型(传输控制协议/网络互联协议)

2、模型对应的一些协议
①应用层
HTTP(超文本传输协议 80):用于浏览器和Web服务器之间的请求和响应的交互
FTP(文件传输协议 21):用于控制连接FTP服务器
SMTP(简单邮件传输协议 25):用于接收邮件
DNS(域名系统 53):用于连接DNS服务器
②传输层
TCP(传输控制协议)
功能:—将报文划分为较小的片段,称为数据段
—数据段按顺序编号
—如果发送方在规定时间内未收到确认,则会认为数据段已丢失并重新传输
面向连接(三次握手,四次挥手);可靠的(重新传输)
UDP(用户数据报协议)
功能:—不需要确认接收,是效率最高的传送机制
—无确认和重传机制
—是音频流、视频流和IP语音之类应用程序的首选
面向无连接,不可靠的
③网络层
本层TCP/IP定义了IP协议,而IP协议又由四个支撑协议组成
ARP(正向地址解析协议):用于在局域网中根据IP地址获取物理地址
数据传输通讯地址:源IP、源MAC、目标IP、目标MAC
使用场合:已知目标源IP,未知目标MAC时候用
工作原理:PC1已知PC2的IP地址,未知PC2的MAC地址,PC1发送ARP广播给二层交换机,二层交换机接收到ARP广播消息后无条件泛洪处理,连接到二层交换机下的所有PC都将接收到此广播,每个PC都会把自身的IP地址和目标IP地址进行对比,若一致则接收此广播消息,并回数据包给PC1,PC1接收到返回的数据包后会记录下PC2的IP和MAC地址,记录到ARP缓存表中;若不一致则丢弃处理。
RARP(反向址解析协议):用于在局域网中通过ARP表根据物理地址请求IP地址
使用场合:已知目标MAC,未知目标IP时候用
工作原理:PC1已知PC2的MAC地址,未知PC2的IP地址,PC1发送ARP广播给二层交换机,二层交换机接收到ARP广播消息后无条件泛洪处理,连接到二层交换机下的所有PC都将接收到此广播,每个PC都会把自身的MAC地址和目标MAC地址进行对比,若一致则接收此广播消息,并回数据包给PC1,PC1接收到返回的数据包后会记录下PC2的IP和IP地址,记录到ARP缓存表中;若不一致则丢弃处理。
ICMP(网际控制报文协议):测试网络的联通性并给予一定的反馈
组成:ping/traceroute(tracert)
IGMP(网际组管理协议):用于主机与组播路由器之间组播通信
④物理层和数据链路层
IEEE802.3 有线局域网(以太网)标准
IEEE802.11 无线局域网标准
TCP/IP模型与OSI模型的比较
相同点:
①两者都是以协议栈的概念为基础
②协议栈中的协议彼此相互独立
③下层对上层提供服务
不同点:
①OSI是先有模型;TCP/IP是先有协议,后有模型
②OSI适用于各种协议栈;TCP/IP只适用于TCP/IP网络
③层次数量不同
三、TCP三次握手
TCP是使用IP服务(逻辑),是虚连接而不是物理连接,TCP报文段封装成IP数据报后,每个IP数据报可以走不同的路径到达终点,因此IP数据报可能不按顺序到达,甚至损坏或丢失。这个时候,TCP会保证报文段是有序有效的。
而TCP建立连接的过程为三次握手,主要是为了确认双方收发数据的能力

3.1 第一次握手:PC1 向 PC2 发送建立连接请求(SYN)
3.2 第二次握手:PC2 收到后,首先回复一个确认消息(ACK),然后也回复一个建立连接请求(SYN),这时 PC2 确认了自己的接收与对方的发送能力是正常的
3.3第三次握手:PC1 收到 PC2 的回复(ACK/SYN)后,也要回复一个确认消息(ACK),PC2 收到后,这时双方就能知晓自己的收发能力皆正常
四、TCPD四次挥手

4.1 PC1 向 PC2 发送断开请求(FIN),从这时起,PC1 就不能再向 PC2 发数据,但还可以正常接收数据
4.2 PC2 收到后首先回复确认消息(ACK),这时处于等待关闭的状态而不是立即发送 FIN 报文,因为服务端可能还有数据没传完
4.3 PC2 回复 断开请求(FIN)
4.4 PC1 收到后,最后回复一个确认报文(ACK
五、数据封装与拆封装的过程
1.数据封装过程 ——(从高到底) —— 发送方

- 在应用层,用户的数据被转换成二进制数据
- 在传输层,上层数据被分割成很小的数据段,并为每个分段后的数据封装TCP报文头部
- 在网络层,上层数据被封装上新的报文头部—IP头部
- 在数据链路层,上层数据被封装一个MAC头部,其内部有一个关键的字段信息—MAC地址
- 在物理层,无论在之前封装的报文头部还是上层的数据信息都是由二进制数字组成的,在物理层,将这些二进制数字组成的比特流转换成电信号在网络中传输
2.数据解封装过程 ——(自下而上)——接收方
数据被封装完毕通过网络传输到接收方以后,将进入数据的解封装过程,这将是封装过程中的一个逆过程
在物理层,首先将电信号转换成二进制数据,并将数据送至数据链路层
在数据链路层,查看目标MAC地址,如果吻合就“拆掉”,将剩下的数据送至上一层
在网络层,核实目标MAC地址是否与自己的IP地址相同,从而确定是否送至上一层
在传输层,首先根据TCP头部判断数据送往哪个应用层协议或应用程序,将之前被分组的数据重组,再送至上一层
在应用层,这些二进制数据将经历复杂的解码过程还原发送者所输送的最初信息
3.常见设备与五层模型的对应关系
设备属于哪一层要看这个设备主要工作在哪一层,有什么对应的功能
| 应用层 | 计算机 |
|---|---|
| 传输层 | 防火墙 |
| 网络层 | 路由器 |
| 数据链路层 | 交换机 |
| 物理层 | 网卡 |
4.各层间通信

六、端口号
介于1—65535之间
——公认端口:1—1023
——注册端口:1024—49151
——私有端口:49152—65535
常用端口号:
| TCP | 20 | FTP Data | 数据 |
|---|---|---|---|
| TCP | 21 | FTP Control | 控制 |
| TCP | 23 | TELNET | 远程 |
| TCP | 25 | SMTP | 邮件发 |
| TCP/UDP | 53 | DNS | 域名解析 |
| UDP | 69 | TFTP | 简单的文件传输 |
| TCP | 80 | HTTP | 网址 |
| TCP | 110 | POP3 | 邮件收(查看) |
| UDP | 137 | NBNS | 跨平台 |
| TCP | 143 | IMAP4 | 邮件收(下载) |
| TCP | 161 | SNMP | 简单网络管理 |
| UDP | 67 | DHCP v4 client | 分发IP地址 |
| UDP | 68 | DHCP v4 server | 分发IP地址 |
| TCP | 443 | HTTPS | 服务器给客户端颁发证书 |
总结:
物理层数据传输是否可同时在两个方向上进行?
答:取决于是否开全双工,开了就可以,没开的话则不可
端到端和点到点通信有何区别?
端到端与点到点是针对网络中传输的两端设备间的关系而言的。端到端传输指的是在数据传输前,经过各种各样的交换设备,在两端设备间建立一条链路,就象它们是直接相连的一样,链路建立后,发送端就可以发送数据,直至数据发送完毕,接收端确认接收成功。点到点系统指的是发送端把数据传给与它直接相连的设备,这台设备在合适的时候又把数据传给与之直接相连的下一台设备,通过一台一台直接相连的设备,把数据传到接收端。
在一个网络系统的不同分层中,可能用到端到端传输,也可能用到点到点传输。如Internet网,IP及以下各层采用点到点传输,4层以上采用端到端传输。
总之,一句话概括就是端到端是由无数的点到点实现和组成的。
指的是发送端把数据传给与它直接相连的设备,这台设备在合适的时候又把数据传给与之直接相连的下一台设备,通过一台一台直接相连的设备,把数据传到接收端。
在一个网络系统的不同分层中,可能用到端到端传输,也可能用到点到点传输。如Internet网,IP及以下各层采用点到点传输,4层以上采用端到端传输。
总之,一句话概括就是端到端是由无数的点到点实现和组成的。
- 相同网络连接用交换机,不同网络连接用路由器