分层
1.1 为什么要分层
硬件没有统一标准,软件也没有统一标准,单独的一台计算机,只是一台普通的计算机。全球互联网,网络之间需要通信,不同厂商之间的设备无法通信。为了有统一的标准。
1.2分层思想
1.2.1将复杂的流程分解为几个功能相对单一的子过程
1.2.2 整个流程更加清晰,复杂问题简单化
1.2.3更容易发现问题并及时解决问题
1.3层次划分的办法
1.3.1网络的每层应当具有独立的功能(便于排错)这个功能用不了必然是你这层除了问题
1.3.2梳理功能之间的关系,使上一个功能可以实现为另一个功能提供必要的服务,从而形成系统的层次结构
1.3.3为了提高系统的工作效率,相同或相近的功能仅在一个层次中实现,而且尽可能在较高的层次中实现
1.3.4每一层只为相邻的上一层提供服务
1.4层次划分的优点
1.4.1各层之间相互独立,每一层实现一种相对独立的功能,使问题复杂程度降低,利于针对解决问题
1.4.2灵活性好,各层内部的操作不会影响其他层
1.4.3结构上可分割开,各层之间都可以采用最合适的技术来实现
1.4.4易于实现和维护,因为整个系统已被分解成相对独立的子系统
1.4.5能促进标准化工作,因为每一层的功能及其提供的服务都有了精确的说明
OSI七层模型
2.1OSI七层模型划分
![](https://i-blog.csdnimg.cn/blog_migrate/1b3ddf7cf4f6e093e365d062be1762ad.png)
应用层: 网络服务与用户的一个接口(用户操作)人机交互窗口 把我们 (人)的语言输入到计算机当中。
表示层: (翻译)把人的语言翻译成计算机能懂的语言(计算机只懂0和1),并且对数据进行压缩和解压和数据加密解密等工作。
会话层:找到对方,并和对方建立会话关系(会话属于软件层面,允许不同的机器上用户之间建立会话连接的关系)。
传输层:同一个软件,两个相同的端口号进行数据传输。
网络层:知道对方的IP地址,并选择最快最优的路线进行传输。
数据链路层:在接收到网络层传来的ip地址后,进行唯一地址寻址,并往下传输
物理层: 数据到达物理层后,变成信号传输(bit流)数据到达目标主机后,开始进行一个逆向的过程。
2.1端到端与点到点的区别
网络层及以下的通信为点到点通信(主机与主机)
传输层的通信为端到端(端口到端口)
TCP/IP协议
3.1TCP/IP的定义
TCP/IP是传输控制协议/网际协议(TransmissionControlProtocol/InternetProtocol)的简称,是一系列协议的集合,所以严格的称呼应该是TCP/IP协议簇(例如TCP,UDP,FTP等)
3.2 TCP/IP参考模型
![](https://i-blog.csdnimg.cn/blog_migrate/f5251367c53d5503da352105c787525d.png)
3.3TCP/IP协议簇
![](https://i-blog.csdnimg.cn/blog_migrate/ca005303d94973e020eaa30b154da259.png)
3.3.1应用层
HTTP超文本传输协议:是一个简单的请求-响应协议,现在主要的场景是web服务,就是网页的传输,默认使用tcp的80端口
HTTPs:是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,默认使用tcp的443端口
FTP文件传输协议:FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限,默认使用tcp的20,21端口
TFTP简单文件传输协议:是一个小而易于实现的文件传送协议,TFTP只支持文件传输,不支持交互,没有庞大的命令集。也没有目录列表功能,以及不能对用户进行身份鉴别,默认使用udp的69端口
SNMP简单网络管理协议:是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,默认使用udp的161端口
SMTP简单邮件传输协议:一组用于从源地址到目的地址传送邮件的规则,并且控制信件的中转方式,用于邮件的发送,默认使用tcp的25端口
POP3邮局协议版本3:用于邮件的接收,默认使用tcp的110端口
telnet远程登陆协议:一种字符模式的终端服务,可以使用户通过网络进入远程主机或网络设备,然后对远程主机或设备进行操作,默认使用tcp的23端口
ssh安全的远程登陆协议,默认使用tcp的22端口
DNS域名解析系统:将域名和IP地址相互映射,默认使用tcp和udp的53端口
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,默认使用udp的67和68端口
3.3.2传输层
TCP(传输控制协议):可靠的,安全的,速度较慢的传输层协议
UDP(用户数据报协议):不可靠的,不安全的,速度较快的传输层协议
3.3.3网络层
ARP(Address Resolution Protocol)地址解析协议,,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源.
ICMP(网际控制报文协议): 用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息
RARP(逆地址解析协议)
IGMP(网际组管理协议)
3.3.4物理层和数据链路层
物理层和数据链路层,TCP/IP 并没有定义任何特定的协议。它支持所有标准的、专用的协议,网络可以是局域网(如广泛使用的以太网)、城域网或广域网。所以,TCP/IP实际上只有三个层次。
封装与解封装
4.1数据封装过程
![](https://i-blog.csdnimg.cn/blog_migrate/c07dc2f29b47448bad20ec912b213d67.png)
4.1.1应用层,数据被“翻译”为网络世界使用的语言——二进制编码数据。大家可以试想一下,人们需要通过计算机传输数据的形式千变万化、各式各样,有字母、数字、汉字、图片、声音等。这些信息对于单一通过弱电流传输的计算机来说太过于“复杂”,因此这些人类方便识别的信息被应用层通过各种特殊的编码过程转换成二进制数据。这就是上面所描述的“翻 译”过程,也是应用层在网络数据传输过程中最为核心的贡献。
4.1.2传输层,上层数据被分割成小的数据段,并为每个分段后的数据封装TCP报文头部。它不可能看懂应用层传输具体数据的内容的,因此只能借助一种标识来确定接收到的数据对应的应用程序,这种标识就是端口。
4.1.3网络层,上层数据被封装上新的报文头部——IP头部。值得注意的是,这里所说上层数据包括TCP头部,也就是说,这里的上层是指传输层。对于网络层而言,它是看不懂TCP报文头部中内容的,在IP头部中有一个关键的字段信息——IP地址,一组32位的二进制数组成的,用于标识网络的逻辑地址。网络层的传输过程与其很类似,在IP头部中包含目标IP地址和源IP地址,在网络传输过程中的一些中间设备,如路由器,会根据目标IP地址来逻辑寻址,找到正确的路径将数据转发到目的端。如果中间的路由设备发现目标的IP地址根本是不可能到达的,它将会把该消息传回发送端主机,因此在网络层需要 同时封装目标IP和源IP。
4.1.4数据链路层,在数据链路层,上层数据被封装一个MAC头部,其内部有一个关键的字段信息——MAC地址,它由一组48位的二进制数组成。在目前阶段,我们先把它理解为固化在硬件设备中的物理地址,具有全球唯一性。网卡就有属于自己的唯一的MAC地址。和IP头部一样,在MAC头部也同时封装着目标MAC地址和源MAC地址。
4.1.5物理层,传输过程无论在之前哪一层封装的报文头部还是上层数据信息都是由二进制数组成的,在物理层,将这些二进制数字组成的比特流转换成电信号在网络中传输
4.2数据解封装过程
![](https://i-blog.csdnimg.cn/blog_migrate/3c6af437eec5e0207ef6f0a4f499f7bf.png)
4.2.1物理层,首先将电信号转换成二进制数据,并将数据送至数据链路层。
4.2.2数据链路层,将查看目标 MAC 地址,判断其是否与自己的 MAC 地址吻合,并据此完成后续处理。如果数据报文的目标MAC 地址就是自己的MAC地址,数据的MAC头部将被“拆掉”,并将剩余的数据送至上一层;如果目标MAC地址不是自己的MAC地址,对于终端设备来说,它将会丢弃数据。
4.2.3网络层与数据链路层类似,目标IP地址将被核实是否与自己的IP地址相同,从而确定是否送至上一层;
4.2.4传输层,首先要根据TCP头部判断数据段送往哪个应用层协议或应用程序,然后将之前被分组的数据段重组,再送往应用层;
4.2.5应用层,这些二进制数据将经历复杂的解码过程,以还原发送者所传输的原始信息。
4.3相关数据传输及概念
4.3.1PDU:Protocol Data Unit,协议数据单元
![](https://i-blog.csdnimg.cn/blog_migrate/34bdf1bb9a9417a70d18115fc212dda7.png)
4.3.2TCP/IP五层结构体系中,上层数据被封装TCP头部后,这个单元称为段(Segment);数据段向下传到网络层,被封装IP头部后,这个单元称为包(Packet);数据包继续向下传送到达数据链路层,被封装MAC头部后,这个单元称为帧(Frame);最后帧传送到物理层,帧数据变成比特(Bits)流;比特流通过物理介质传送。
4.4设备与各层的关系
![](https://i-blog.csdnimg.cn/blog_migrate/f9ffc7b6a4fdc70b26391ac36b841305.png)