TCP/IP协议基础
TCP/IP协议栈
UDP协议
用户数据报文协议,是基于IP协议的不可靠(可能丢包)网络传输协议
TCP协议(传输控制协议)
TCP协议是面向连接的单播协议
- 单播
在数据发送和接受前,通信双方必须在彼此间建立一条连接 - 在IP协议的基础上,增加了确认重发、滑动窗口和复用等机制,提供了可靠的、面向连接的、字节流、传输层的服务
字节流服务
使用TCP协议进行数据传输时,应用程序之间传输的数据视为无结构的字节流
基于字节流的服务没有字节序问题的困扰
面向连接的服务
在数据传输前TCP协议要先建立连接,之后的TCP报文在此基础上传输
TCP传输数据的三个阶段
建立连接->数据传输->断开连接
TCP建立连接的过程
三次握手建立一个连接
- SYN_SENT
客户端发送SYN码(请求连接)给服务端 - SYN_RCVD
服务端发送ACK码(确认)和SYN码(请求连接)给客户端 - ESTABLISHED
客户端接收到ACK后就绪,连接建立,客户端发送ACK码(确认)给服务端,服务端接收到ACK后就绪,连接建立
TCP断开连接的过程
四次挥手断开一个连接
- 客户端(FIN_WAIT_1)发送FIN给服务端
- 服务端(CLOSE_WAIT)发送ACK给客户端(FIN_WAIT_2)
- 服务端(LAST_ACK)发送FIN给客户端(TIME_WAIT)
- 客户端发送ACK给服务端(CLOSE)
TCP协议控制位
URG
紧急指针字段
ACK
表示确认号有效
PSH
表示接收方需要尽快的将数据交给应用层
SYN
发起一个TCP连接
FIN
断开一个TCP连接
RST
重新连接
IP协议
互联网/物联网的所有计算机网络实现相互通信的一套规则
- 数据传送:将数据从一个主机传送到另一个主机
- 寻址:根据子网划分和IP地址,发现正确的目的主机和主机地址
- 路由选择:选择数据在互联网上的传送路径
- 数据报文分段:传送的数据大于MTU时,将数据进行分段发送和接受,并重新组装
网关是一个网络通向其他网络的IP地址
IP地址
逻辑地址(可变),标识网络中的主机
- IP协议提供的一种统一的地址格式,为互联网上的每一个网络和主机分配一个逻辑地址
在本地局域网/同一个局域网中,IP地址是唯一的
IP地址构成
- 类型
用来区分IP地址的类型 - 网络标识
网络位(Network ID),表示主机所在的网络 - 主机标识
主机位(Host ID),表示主机在网络中的标识
IP地址分类
IPv4
32位(bit)2进制数,分4组,通常以10进制表示,每组用.隔开
- A类地址(000~127)
最高位为0标识网络类型,网络标识占7位
0.0.0.0 表示任意一个IP地址
127.0.0.1 表示环回地址
- B类地址(128~191)
前两位(高两位)1 0表示网络类型,网络标识占14位 - C类地址(192~233)
高三位1 1 0表示网络类型,网络标识占21位 - D类地址(224~239)
高四位1 1 1 0表示网络类型,24位多播地址 - E类地址(240~255)
高四位1 1 1 1表示网络类型,保留地址
255.255.255.255 有限广播地址
IPv6
128位,分8组,16进制表示,每组用:隔开
私有IP
内网,不接入互联网
公有IP
在互联网中的主机,在全球可以访问
子网掩码
32位字段,来屏蔽原来网络地址的划分情况,从而获得一个范围较小的、可使用的网络
子网掩码分类
- A类
255.0.0.0或 /8(CIDR表示方法) - B类
255.255.0.0或 /16 - C类
255.255.255.0或 /24
子网掩码的作用
- 计算最多容纳主机(IP)数
2^主机位 个,去除0和255即为可用IP数 - 利用子网掩码确定网段
IP地址与子网掩码进行与(&)操作,如果两个IP地址计算出的结果相同,说明在一个网络中