图文注解,简单易懂!!!
1.OSI模型
1.1 七层模型
1.2 OSI模型与TCP/IP模型的对应关系
1.3 OSI七层模型每一层对应的作用
1.4 分层模型各个层对应的设备
层 | 设备 |
---|---|
应用层 | 计算机 |
传输层 | 四层交换机 / 四层路由器 / 防火墙 |
网络层 | 路由器 /三层交换机 |
数据链路层 | 网桥 /以太网交换机/ 网卡 |
物理层 | 中继器/集线器/双绞线 / 网卡 |
2.封装与解封装
2.1 什么叫数据封装解封装以及为什么要封装
封装的定义: 封装是把彼此相关数据和操作包围起来,抽象成为一个对象,变量和函数就有了归属,想要访问对象的数据只能通过已定义的接口。
说封装就是将属性私有化,太过狭隘,因为封装不仅仅实现了数据的保护,还把彼此相关联的变量和函数包围了起来。
封装的优点:
- 隐藏类的实现细节
- 让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对成员变量的不合理访问
- 可进行数据检查,从而有利于保证对象信息的完整性
- 便于修改,提高代码的可维护
2.2 数据在TPC/IP协议栈中的封装与解封装
封装
1.首先在应用层,浏览器会将请求数据封装为HTTP协议数据包,在原本数据包中加入HTTP头。
2.传输层:tcp协议将前一个封装的数据包再次封装为tcp数据包。
3.网络层:封装ip协议。
4.数据链路层:封装了数据帧。
5.物理层:转化为比特流(二进制计算机语言)
解封装
1.数据链路层:操作系统在网卡接收到数据之后,再解析接收到的数据包,其.中就会处理数据帧。
2.网络层:系统处理ip头部。
3.传输层:系统处理tcp报头,报头中包括ip和port,知道了端口号,找到对应的应用程序,,系统将数据包交给应用程序来处理数据。
4.应用层:应用程序根据协议处理数据。
4. OSI模型栈各层的主要协议
层 | 作用 | 协议 |
---|---|---|
应用层/表示层/会话层 | 端口号(应用进程端口号) 数据段 | TCP(HTTP /FTP /FTP/) UDP(TFTP/DNS/RPC/SNMP) |
传输层 | 逻辑地址(IP地址)数据包 | TCP UDP |
网络层 | 物理地址(MAC地址)数据帧 | IP(ICMP IGMP RARP ARP) |
物理层 / 数据链路层 | 传输介质(光纤/网线/无线电wifi)比特流 | 由底层网络定义的协议IEEE 802.3 有线局域网(以太网)标准IEEE 802.11 无线局域网标准 |
4.1 端口号
4.11 什么叫端口
所谓的端口,就好像是门牌号一样,客户端可以通过ip地址找到对应的服务器端,但是服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。为了对端口进行区分,将每个端口进行了编号,这就是端口号。
4.12 端口的作用
端口号的主要作用是表示一台计算机中的特定进程所提供的服务。网络中的计算机是通过IP地址来代表其身份的,它只能表示某台特定的计算机,但是一台计算机上可以同时提供很多个服务,如数据库服务、FTP服务、Web服务等,我们就通过端口号来区别相同计算机所提供的这些不同的服务,如常见的端口号21表示的是FTP服务,端口号23表示的是Telnet服务端口号25指的是SMTP服务等。端口号一般习惯为4位整数,在同一台计算机上端口号不能重复,否则,就会产生端口号冲突这样的例外
4.13 端口的分类
按端口号可分为3大类:
(1)公认端口(Well-KnownPorts):范围从0到1023
(2)动态端口(Dynamic Ports):范围从1024到65535
(2.1)注册端口(RegisteredPorts):从1024到49151
(2.2)动态和/或私有端口(Dynamicand/orPrivatePorts):从49152到65535。
4.14 常用的网络协议端口号
POP3:POP3仅仅是接收协议,POP3客户端使用SMTP向服务器发送邮件。POP3所用的端口号是110
SMTP:端口号是25。SMTP真正关心的不是邮件如何被传送,而只关心邮件是否能顺利到达目的地。
Telent:端口号是23
FTP:FTP使用的端口有20和21。20端口用于数据传输,21端口用于控制信令的传输,控制信息和数据能够同时传输,这是FTP的特殊这处。FTP采用的是TCP连接。
TFTP:端口号69,使用的是UDP的连接。
TCP 21端口:FTP 文件传输服务
TCP 23端口:TELNET 终端仿真服务
TCP 25端口:SMTP 简单邮件传输服务
UDP 53端口:DNS 域名解析服务
TCP 80端口:HTTP 超文本传输服务
TCP 110端口:POP3 “邮局协议版本3”使用的端口
TCP 443端口:HTTPS 加密的超文本传输服务
4.2 TCP和UDP的区别
1、基于连接与无连接;
2、对系统资源的要求(TCP较多,UDP少);
3、UDP程序结构较简单;
4、流模式与数据报模式 ;
5、TCP保证数据正确性,UDP可能丢包;
6、TCP保证数据顺序,UDP不保证。
用一张图来理解TCP和UDP的区别