一、ISO/OSI七层模型的分层与作用
1、ISO/OSI的七层模型
2、作用
- 应用层:为用户提供服务,给用户一个操作界面
- 表示层:数据提供表示;加密;压缩;
- 会话层:确定数据是否需要进行网络传递
- 传输层:
- 对报文进行分组(发送时)、组装(接收时)
- 提供传输协议的选择:
- UDP(用户数据报协议):不可靠的,面向无连接的传输协议(快,不可靠)
- TCP(传输控制协议):可靠的,面向连接的传输协议(可靠,准确,慢)
- 端口封装
- 差错校验
- 网络层:
- IP地址编码
- 路由选择:静态路由、动态路由
- 传输链路层:MAC地址编制、MAC地址寻址、差错校验
- 物理层:数据实际传输、电气特性定义
3、扩展
TCP/IP协议族的组成:
二、TCP三次握手和四次挥手
1、传输层协议
- TCP协议(传输控制协议):可靠的,面向连接的传输协议
- UDP协议(用户数据报协议):不可靠的,面向无连接的传输协议
2、TCP协议数据格式
3、TCP包头作用
- 序号:Seq序号,占32位,用来标记从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记
- 确认号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1
- 标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:
- URG:紧急指针(urgent pointer)有效
- ACK:确认序号有效
- PSH:接收方应该尽快将这个报文交给应用层
- RST:重置连接
- SYN:发起一个新连接
- FIN:释放一个连接
4、TCP三次握手
- 第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
- 第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack序号J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
- 第三次握手:Client收到确认后,检查ack序号是否为J+1,标志位ACK是否为1,如果正确则将标志位ACK置为1,ack序号=K+1,并将该数据包发送给Server;Server检查ack序号是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client和Server之间可以开始传输数据了。
5、TCP四次挥手
- 第一次挥手:Client发送一个标志位为FIN包,Seq序号=m,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态
- 第二次挥手:Server收到标志位FIN包后,发送一个标志位ACK给Client,Ack确认序号为m+1,Server进入CLOSE_WAIT状态
- 第三次挥手:Server发送一个标志位FIN=1,ACK=1,Seq序号=n,Ack确认号=m+1,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态
- 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK标志给Server,Ack确认序号=n+1,Server进入CLOSED状态,完成四次挥手
三、子网掩码的计算
1、子网掩码的作用
- 子网掩码必须和IP地址成对出现,否则没有意义
- 子网掩码是用于给IP地址划分网络地址与主机地址的
- 和子网掩码1对应的IP地址,代表网络位;和子网掩码0对应的IP地址,代表主机位
- 子网中只要1是连续的,就是合理子网掩码
2、网络地址与主机地址
3、标准子网掩码
4、子网掩码计算公式
- 网络地址:把IP地址和子网掩码的二进制,按位进行逻辑与运算
- 广播地址:有效子网掩码中,有几个0,就把IP地址的后几位换位1
- 子网个数:有效子网掩码中,有几个1,子网数就是2的几次方
- 主机个数:有效子网掩码中,有几个0,主机数就是2的几次方减2