一、了解OSI七层模型
国际标准化组织(International Standard Organization,ISO)于1984年颁布了开放式系统互连参考模型(Open System Interconnection,OSI)。OSI参考模型是一个开放式体系结构,它规定将网络分为七层,从下往上分别是:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。
分层 | 功能 |
应用层 | 网络服务与最终用户的一个接口 |
表示层 | 数据表示、安全、压缩 |
会话层 | 建立、管理、中止会话 |
传输层 | 定义传输数据的协议端口号,以及差错校验 |
网络层 | 进行逻辑地址的寻址,实现不同网络之间的路径选择 |
数据链路层 | 建立逻辑连接、进行硬件地址寻址、差错校验等功能 |
物理层 | 建立、维护、断开物理连接 |
二、TCP/IP参考模型
TCP/IP是(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)的简称。早期的TCP/IP模型是一个四层结构,从下往上依次是网络接口层、网际层、传输层、应用层;在后来的使用中,借鉴OSI的七层参考模型,将网络接口层划分为物理层和数据链路层,姓曾一个新的五层结构。TCP/IP是一系列协议的集合,因此称为TCP/IP协议
TCP/IP四层参考模型 | TCP/IP五层参考模型 | OSI |
应用层 | 应用层 | 应用层 |
表示层 | ||
会话层 | ||
传输层 | 传输层 | 传输层 |
网际层 | 网络层 | 网络层 |
网络接口层 | 数据链路层 | 数据链路层 |
物理层 | 物理层 |
TCP/IP协议簇 | |
应用层 |
HTTP(超文本传输协议)、FTP(文件传输协议)、TFTP(简单邮件传输协议)、SMTP(电子邮件传输协议)、SNMP(简单网络管理协议)、DNS(域名解析) |
传输层 | TCP(传输控制协议)、UDP(用户数据报协议) |
网络层 | ICMP(Internet控制 报文 协议)、IGMP(Internet组管理协议)、IP(网际互连协议)、ARP(地址解析协议)、RARP(反向地址转换协议) |
数据链路层 | 由底层网络定义的协议 |
物理层 |
三、数据的封装/解封过程
数据包在从应用层到物理层的过程中,我们叫做数据的封装过程。
我方:数据封装的过程(顺序:应传网数物)
应用层:原始数据
传输层:TCP封条
网络层:IP封条
数据链路层:MAC封条
物理层:封装后的数据包从网卡出去了,转换成二进制变成比特流从网线发送。
数据包在从物理层到应用层的过程中,我们叫做数据的解封过程
对方:数据的解封过程(顺序:物数网传应)
物理层:数据包从网卡进入
数据链路层:数据包到了数据链路层,数据链路层只能看MAC封条数据,不能拆封(看不到IP封条)
网络层:数据包到了网络层,拆掉了MAC封条,看到了IP封条,读取IP封条数据,不能拆封IP
)
传输层:数据包到了传输层,拆掉了IP封条,看到了TCP封条,读取TCP封条里的信息,但是拆不掉TCP封条
应用层:拆掉TCP封条,显示出原始数据。
四、网络各层典型硬件设备
层名称 | 典型设备 |
应用层 | PC |
传输层 | 防火墙 |
网络层 | 路由器、 |
数据链路层 | 交换机 |
物理层 | 网卡 |
五、了解TCP和UDP协议
TCP传输控制协议和UDP用户数据报协议。
特点 | |
TCP | 面向连接的,可靠的进程到进程通信的协议 |
TCP提供全双工服务,即数据可在同一时间双向传输 | |
TCP将若干字节构成一个分组,此分组称为报文段 | |
UDP | UDP是一个无连接,不保证可靠性的传输层协议,也就是说发送端不关心发送的数据是否 到达目标主机,数据是否出错等,收到数据的主机也不会告诉发送方是否收到了数据,它 的可靠性由上层协议来保障 |
UDP的首部 结构简单,在数据传输时能实现最小的开销,如果进程想发送很短的报文而不关心可靠 性,就可以使用UDP |
TCP三次握手:
1.客户端给服务端发送一个数据包,并发送随机码。
2.服务端接收这个数据包和随机码,并检查数据包的TCP封条SYN=1字段,知道有客户端想和自己进行连接。然后服务端给客户机返回一个数据包和随机码。(但并不知道客户端是否可以收到该包)
3.客户端收到数据包,得知对方的SYN=1。(他要知道对方是否为自己想建立连接的服务端和是否对方是把自己当服务端的客户端)客户端通过检查ack发现对方是自己发送seq的那台服务器。(客户端发送的seq回来时值会+1,用于表示双方设备,以此建立连接)然后他在服务端发送过来的seq上加一,用作标识自己,再发送给服务端。
4.服务端接受客户端的数据包,然后建立连接。(ESTABLISHEND并发连接状态)
TCP四次挥手:
1.客户端向服务端发送一个断开包。
2.服务端确认主机为之前发送seq+1,于是确认断开连接请求。
3.如果FIN=1,那么服务端就会同一断开请求(三次挥手);如果FIN=0,那么表示服务端在给客户端进行数据传输,会先发送知道断开,但需要等待,等文件传输完毕,再给客户端发送可以断开的数据包(四次挥手)
4.客户端收到服务端发来的数据包,检查ack发现是与其连接的服务器,如果对方FIN=1,表示服务器同意断开,然后客户端会给服务器发送seq包确认断开数据包,服务器检查数据包后,确认客户机无误将直接断开连接;如果FIN=0,表示服务器有任务正在进行中,客户端知道服务器没同意断开,会等待,等服务器任务完成,FIN=1时,确认服务端无误后,发送确认断开的数据包,服务器收到后,进行断开连接操作。
图示:
常用端口号:
分类 | 端口 | 协议 | 说明 |
TCP |
21 |
FTP | 文件传输协议 |
23 | TELNET | 远程登陆协议 | |
25 | SMTP | 简单邮件传输协议,用于邮件发送 | |
80 | HTTP | 超文本传输协议 | |
110 | POP3 | 用于邮件接收 | |
UDP | 69 | TFTP | 简单文件传输协议 |
111 | RPC | 远程过程调用 | |
123 | NTP | 网络时间协议 |