1. OSI七层:
- 物理层:在物理媒体上为数据端设备透明地传输比特流
- 数据链路层:将网络层传来的IP数据报封装成帧,并且可以实现差错控制、流量控制和传输管理
- 网络层:对数据报进行分组,实现流量控制、拥塞控制、差错控制
- 传输层:提供两个进程间端到端的通信服务,提供流量控制、差错控制、服务质量、数据传输管理等服务
- 会话层:会话层允许不同主机上的各个进程之间进行会话(建立连接、传输数据)
- 表示层:主要处理在两个通信系统中交换信息的表示方式(数据格式变换、数据加密解密、数据压缩和恢复)
- 应用层:是用户与网络的界面,产生网络流量的程序
2. TCP/IP模型:
- 接口层(对应OSI参考模型中的物理层和数据链路层)
- 网际层
- 传输层
- 应用层(对应OSI参考模型中的会话层、表示层和应用层)
3. 流量控制
3.1滑动窗口机制
在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;接收方也维持一组连续的允许接收帧的序号,称为接收窗口,发送窗口的大小WT代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧,若接收到的数据帧落在窗口之外,则一律丢弃
4.IPv4地址
4.1IP地址结构
IP地址由网络号和主机号组成
网络号标志主机(或路由器)所连接到的网络,主机号标志该主机(或路由器)
IP地址分为A、B、C、D、E五类,其中D类为多播地址,E类保留为今后使用,长度为32位二进制
ABCDE五类地址可从以下树来进行分类:
可以看到,0开头的为A类地址,10开头的为B类地址,110开头的为C类地址,1110开头的为D类地址
在A类地址中,前8位为网络号
在B类地址中,前16位为网络号
在C类地址中,前24位为网络号
有几类特殊的IP地址不用做主机的IP地址:
- 主机号全0表示网络本身
- 主机号全1表示为本网络的广播地址,又称广播地址
- 127.0.0保留为环路自检,此地址表示任意主机本身
- 32位全为0,即0.0.0.0表示本网络上的本主机
- 32位全为1,即255.255.255.255表示整个TCP/IP网络的广播地址,在实际使用中,255.255.255.255等效为本网络的广播地址
私有IP地址段有:
- A类:1个A类网段,即10.0.0.0~10.255.255.255 (00001010.00000000.00000000.00000000~00001010.11111111.11111111.11111111)
- B类:16个B类网段,即172.16.0.0~172.31.255.255 (10101000.00010000.00000000.00000000~10101000.00011111.11111111.11111111)
- C类:256个C类网段,即192.168.0.0~192.168.255.255)
网络地址转换NAT可以将本地IP转换为公网IP
4.2子网划分
三级IP地址结构如下:IP地址={<网络号>,<子网号>,<主机号>}
子网划分是一个单位内部的事情
子网掩码,由一串1和一串0组成,其中1对应于IP地址中的网络号及子网号,而0对应主机号,将IP地址与子网掩码按位与运算即可得出子网对应的网络地址。
所有的网络都必须使用子网掩码,如果一个网络未划分子网,则使用默认的子网掩码,A类子网掩码:255.0.0.0,B类子网掩码:255.255.0.0,C类子网掩码:255.255.255.0
CIDR标记法 :128.14.32.5/20表示子网掩码前20位为1,后12位为0,按位与可以得出子网
5. 端口号
应用进程通过端口号进行标识,以下是一些常用的熟知端口号:
应用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP |
---|---|---|---|---|---|---|---|
熟知端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 |
套接字: 在网络中采用发送方和接收方的套接字来组合识别端点。格式
套接字 = (主机IP地址, 端口号)
6.面向连接和无连接服务
面向连接:即通信双方在进行通信之前,需要建立连接
无连接:指两个实体之间的通信不需要先建立好连接
7.UDP
UDP的优点:
- 无需建立连接
- 无连接状态
- 分组首部开销小,8B的开销
- 应用层能更好地空值要发送的数据和发送时间
- 尽最大努力交付(不保证可靠交付)
- 面向报文。面对应用层交下来的报文,在添加首部后就向下交付给IP层
UDP的首部格式
UDP数据报包含两个部分:UDP首部和用户数据,有8B,4个字段组成:
- 源端口
- 目的端口
- UDP数据报长度(包含首部和数据)
- 校验和
8.TCP
TCP的特点:
- 面向连接
- 点对点连接(一对一)
- 全双工通信
- 面向字节流
TCP的首部格式
TCP数据报首部大小最小为20B,后面的大小通常为4B的整数倍
首部的各个字段的意义: - 源端口和目的端口字段。各占2B
- 序号字段,占4B。序号字段的值指的是本报文段所发送的数据的第一个字节的序号。例如一报文字段值是301,而携带的数据共有100B,表明本报文段的数据的最后一个字节的序号是400,下一个报文段应从401开始
- 确认号字段:占4B,是期望收到对方的下一个报文段的数据的第一个字节的序号
- 数据偏移(即首部长度),表示TCP首部的长度,占4位,指出TCP报文段的数据起始处距离TCP报文段的起始处有多远
- 保留字段,占6位
- 紧急位URG
- 确认位ACK,只有当ACK=1时确认号字段才有效
- 推送位PSH(push)
- 复位位RST(reset)
- 同步位SYN,SYN=1表示这是一个连接请求或连接接收报文
- 终止位FIN=1表明此报文字段请求释放连接
- 窗口字段,占2B。指出现在允许对方发送的数据量
- 校验和,占2B
- 紧急指针字段,占16位
- 选项字段(长度可变)
- 填充字段。为了使整个首部长度是4B的整数倍