一 分层思想
因为协议分层就像是计算机软件中的模块化开发,主要是为了对整个网络结构协议进行解耦。分层后就可以把每层都单独使用,就算其中一层出现了什么问题,都不会殃及到整个系统结构,这样拓展性和灵活性较强。
二 OSI参考模型
网络模型的分层是由ISO(国际标准化组织)在1984年颁布的开放系统(OSI)参考模型,可以将网络分为七层,从下往上依次是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
应用层:网络服务与最终用户的一个接口,人机交互窗口,把人的语言输入到计算机中
表示层:将接受到的数据翻译成二进制数组成的计算机语言,并对数据进行压缩,数据加密
会话层:管理是否允许不同计算机的用户之间建立会话连接
传输层:同一个软件中的两个端口进行数据传输且端口号一致 以及流量控制和差错校验
网络层:进行ip地址的寻址,实现不同网络间的路径选择
数据链路层:建立逻辑连接 进行硬件寻址 差错校验等功能
物理层:数据到达物理层后,变成信号传输,bit流
三 TCP/IP协议族
TCP/IP是传输控制协议/网际协议的简称。早期的TCP/IP模型是一个四层结构,从下往上依次是网络接口层、互联网层、传输层和应用层。在后来的使用过程中,借鉴OSI的七层参考模型,将网络接口层划分为物理层和数据链路层,形成了一个新的五层结构。TCP/IP 是一系列协议的集合,所以严格的称呼应该是TCP/IP协议簇
TCP/IP五层模型常见协议如下:
(1)在物理层和数据链路层,TCP/IP并没有定义任何特定的协议。它支持所有标准的、专用的协议,网络可以是局域网(如广泛使用的以太网)、城域网或广域网。所以,TCP/IP实际上只有三个层。
(2)网络层
ICMP(网际控制报文协议) | 是一种面向无连接的协议,用于传输出错报告控制信息,验证网络是否顺畅 |
IGMP(网际组管理协议) | 用于主机与组播路由器之间组播通信 |
IP(网际协议) | 网络之间互连的协议 |
ARP(地址解析协议) | 根据IP地址获取物理地址的一个TCP/IP协议 |
RARP(逆地址解析协议) | 用于局域网中通过ARP 根据物理地址请求ip |
(3)传输层
TCP(传输控制协议):TCP协议传输更加安全 稳定可靠 速度较慢
UDP(用户数据报协议):UDP协议传输效率更高 只管发 不安全
应用决定
(4)应用层
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的22端口 |
ssh安全的远程登陆协议 | 默认使用tcp的22端口 |
DNS域名解析系统 | 将域名和IP地址相互映射,默认使用tcp和udp的53端口 |
DHCP(动态主机配置协议) | 是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,默认使用udp的67和68端口 |
POP3邮局协议版本3 | 用于邮件的接收,默认使用tcp的110端口 |
四 数据封装与解封装过程
应用层:将用户信息转换成电脑的二进制数据如0和1。
传输层:将数据分割成小的数据段,并为每个分段后的数据封装TCP头部{数据段}
网络层:确定IP指定目标,封装IP头部{数据包}
数据连接层:用MAC询问信息是否正确,封装MAC。{数据帧}
物理层:二进制转换为电信号传输{比特流}
数据解封装过程:
物理层:将电信号转换成二进制数据,并将数据传输给数据链路层。
数据链路层:如果与自己的MAC地址一致,将数据传输上一层,MAC头部丢弃。
网络层:IP地址正确,将数据传输上一层后将IP头部丢掉。
传输层:根据TCP头部判断数据段属于哪个应用层协议和应用程序,将数据段传输上一层后将TCP头部丢弃。
应用层:将二进制数据转换成网络信息。
五 数据传输的概念
1 PDU(协议数据单元)指同层之间传递的数据单位名称
TCP/IP五层结构体系中,上层数据被封装TCP头部后,这个单元称为段(Segment);
数据段向下传到网络层,被封装IP头部后,这个单元称为包(Packet);
数据包继续向下传送到达数据链路层,被封装MAC头部后,这个单元称为帧(Frame);
最后帧传送到物理层,帧数据变成比特(Bits)流;
比特流通过物理介质传送。