第1章 OSI 7层网络模型
1.1 概念
OSI7层网络模型是开放系统互连参考模型,是个灵活的、稳健的和可互操作的模型,并不是协议,是用来了解和设计网络体系结构的,目的是规范不同系统的互联标准,使两个不同的系统能够较容易的通信,而不需要改变底层的硬件或软件的逻辑。
1.2 结构
由下到上依次为:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
1.2.1 各层的功能说明
- 应用层:为应用程序提供服务
常见的应用层协议:http(端口80)、ftp(20/21)、telnet(23非加密的)、ssh(22加密的)、HTTPS(443) - 表示层:对数据进行转换、加密和压缩
- 会话层:建立、管理和维护会话。Linux C /Unix C语言编程等属于这一层
- 传输层:建立、管理和维护端到端的连接,TCP稳定传输,ssh服务等
- 网络层:IP选址及路由选址。 IP地址就属于这一层
- 数据链路层:将分组数据封装成帧;提供介质访问和链路管理。Mac地址就属于这一层
- 物理层:在媒体上传输比特。网线、集线器等属于传输介质
1.2.2 7层结构的特点:
1、OSI模型每层都有自己的功能集
2、层与层之间相互独立又互相依靠
3、上层依赖于下层,下层为上层提供服务。
1.3 OSI 7层模型中数据的传输结构
1.3.1 7层模型封包的过程
- 应用层(表示层、会话层):应用程序准备要传输的数据。
- 传输层:将文件分段并编号
- 网络层:在数据上加上目标IP地址和原IP地址,封装成数据包
- 数据链路层:添加一个以太信息,即Mac地址,将数据包封装成帧
- 物理层:网卡调制,以比特流传输数据
1.3.2 7层模型解包的过程
- 物理层:接收比特流数据,网卡解调
- 数据链路层:将比特流解析为数据帧(校验位+原Mac地址+目标Mac地址+原IP地址+目标IP地址)
- 网络层:将数据帧解封装,只剩下数据和IP地址
- 传输层:将数据包解封装为数据段
- 会话层:建立SOCKET连接
- 表示层:解析数据类型
- 应用层:接收数据
第2章 TCP/IP协议的三次握手和四次挥手
2.1 TCP/IP的五层模型
由下到上依次为:物理层,数据链路层,网络层,传输层,应用层
2.2 IP协议
IP协议是TCP/IP协议中最重要的协议,它为TCPUDP ICMP等协议提供传输的通路。IP层主要目的是提供子网互联,形成较大的网络,使不同的子网之间能传输数据。
2.2.1 IP层主要的作用
1、数据传送将数据从一个主机传输到另一个主机
2、寻址根据子网划分和IP地址,发现正确的目的主机地址
3、路由选择选择数据在互联网上的传送路径。
4、数据报文的分段将数据进行分段发送和接收并组装。
2.3 TCP协议
TCP是传输控制协议,简称TCP协议,它在原有IP协议的基础上,增加了确认重发、滑动窗口和复用,提供一种可靠的面向连接的字节流的服务。最大的特点就是可靠性。
2.4 TCP/IP协议建立连接3次握手的过程
TCP的连接建立是一个三次握手过程,目的是为了通信双方确认开始序号,以便后续通信的有序进行。主要步骤如下:
- 连接开始时,连接建立方(客户)发送SYN包,并包含了自己的初始序号x;
- 连接接受方(服务器)收到SYN包以后会回复一个SYN包,其中包含了对上一个x包的回应信息ACK,回应的序号为下一个希望收到包的序号,即x+1,然后还包含了自己的初始序号y;
-
连接建立方(客户)收到回应的SYN包以后,回复一个ACK包做响应,其中包含了下一个希望收到包的序号即y+1。
2.5 TCP/IP协议断开连接4次挥手的过程
TCP终止连接的四次握手过程如下:
- 首先进行关闭的一方(客户)发送第一个FIN(包含了自己的初始序号u)将执行主动关闭,而另一方(服务器)收到这个FIN执行被动关闭。
- 当服务器收到这个FIN,它发回一个ACK,包含确认序号为u+1和自己的序号v。和SYN一样,一个FIN将占用一个序号。
- 同时TCP服务器还向客户发传送一个FIN,包含了自己的序号w,接着服务器就关闭与客户端的连接。
-
客户必须发回一个ACK确认,并将确认序号设置为w+1。