一. 网络是由网络连接设备通过网络传输介质将网络终端设备连接起来,进行资源共享,信息传递的平台。
二. OSI七层参考模型——开放式系统互联模型
核心思想——分层
目的:降低层次间的关联性,标准化的制定
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。(物数网传会表应)
面向数据传输的层次:
1.物理层 ——定义电器电压,光学特性,接口规范
2.数据链路层 ——
MAC媒介访问控制子层 通过MAC地址进行物理寻址
LLC逻辑链路控制子层 为上层服务提供FCS校验(一 一 对应)
3.网络层 ——通过IP地址来逻辑寻址,编制,寻址。
负责数据从一台主机到另一台主机间的传输。
4.传输层 ——通过网络端口号区分不同的服务
负责建立主机间进程与进程之间的连接。
(1)端口号:0-65535(不够用)静态端口号:0-1023 动态端口:1024-65535; 0是特殊端口号 (所有)
(2)提供可靠的传输:
TCP ——传输控制协议
特点:
面向连接 | 可靠传输 | 流控 | 速度慢 |
TCP的数据段:
源端口 | 目的端口 | 序列号 |
确认号 | 报头长度 | 校验和 |
窗口 | 紧急 | 应用层数据 |
面向连接:三次握手,四次挥手 (Ack=Sep+1)
三次握手是为了建立可靠的数据传输通道,四次挥手则是为了保证等数据完成的被接收完再关闭连接
三次握手才可以阻止重复历史连接的初始化(主要原因)
三次握手才可以同步双方的初始序列号
三次握手才可以避免资源浪费
第一次握手,客户端发送同步报文到服务端,客户端知道自己有发送数据能力,不知道服务端是否有发送、接受数据能力。
第二次握手,服务端收到同步报文,并回复确认同步报文,此时,服务端知道自己有接收、发送数据能力,并且客服端有发送数据能力,但不知道客户端是否有接收数据能力。
第三次握手,当客户端收到确认同步报文后,知道服务端具备发送、接收能力,也知道自己具备,但是服务端只知道客户端具备发送能力,还不知道也有接收能力,所以需要发送确认报文,告诉服务端自己具备接收能力。
当三次握手流程结束后,客户端服务端都知道自己和对方具备发送、接收数据能力,建立连接完成,就可以进行数据传输了。
所以两次握手是无法满足以上条件的, 因为服务端并不知道客户端是具备接收数据的能力,需要第三次握手,客户端告知服务端自己有接收能力。
第一次挥手客户端发起关闭连接的请求给服务端;
第二次挥手:服务端收到关闭请求的时候可能这个时候数据还没发送完,所以服务端会先回复一个确认报文,表示自己知道客户端想要关闭连接了,但需要等待数据传输完;
第三次挥手,当数据传输玩,服务端会主动发送FIN报文,告知客户端,标识数据已发送万传给你,服务端准备关闭连接了。
第四次挥手,当客户端收到服务端的FIN报文后,会回复ACK报文,告知服务端自己知道了,在等待一会就关闭连接。
服务端的SYN和ACK报文可以一起发送,但是挥手时有数据传输,ACK和FIN报文不能同时发送,需要分为两步,所以多了一步流程。
可靠:确认 重传 排序 流控。
UDP ——用户数据报文协议
特点:
简单 | 不可靠 | 尽力传输 | 无连接 | 速度快 |
UDP的数据段:
源端口 | 目的端口 |
长度 | 校验和 |
应用层数据 |
(3)数据分段 ——MSS最大段长度1480B MTU最大传输单元1500B.(8位=1字节).
数据的封装和解封装。
面向程序的层次:
5.会话层 ——发现,建立,维护,终止会话进程。
6.表示层 ——数据的编码,解码;加密,解密;压缩和解压缩
7.应用层 ——如应用程序,通过人机交互完成各种各样的服务。常见的应用层协议:http(80), ftp(20/21), dns(50)等。
三.数据的封装和解封装。
封装过程:
第5.6.7层产生数据,到第4层经过TCP/UDP后知道源端口和目的端口,并进行数据分段等。第3层知道源IP和目的IP。第2层知道源MAC和目的MAC并且由LLC为上层校验(校验在数据的尾部)。第1层(物理层)变为电信号。
可以解封装到几层就是基层设备。 PDU——协议数据单元(插板)
PDU:五六七层——数据报文,四层——数据段,三层——数据包,
二层——数据帧,一层——比特流。