2019.3.7 IP通信基础
TCP/IP协议族应用层协议:
SMTP 简单电子邮件传输协议、FTP 文件传输协议(使用传输协议TCP在支持FTP的终端加 执行文件传输)、TFTP 简单文件传输协议(使用UDP提供服务,不可靠)
Telnet 远程登录服务 、DNS 域名解析器 、SNMP 简单网络管理协议 、NFS 网络文件共享、 RPC 远程协议控制(teamviewer )
ICMP ( Internet Control Message Protocol)控制消息是指网络通不通(ping)、主机是否可达、路由是否可用等网络本身的消息
ARP 地址解析 (可查询本机ARP缓存中IP地址和MAC地址的对应关系)
RARP与ARP类似
TCP协议报文格式:由报文头部和数据组成
报文格式:
源端口,目的端口——端口是用于传输层与应用层的服务接口,传输层的复用和分用功能要通过端口才能实现
序号字段——TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值是指本报文段所发送的数据的第一个字节的序号
确认号字段——占四个字节,是期望收到对方的下一个报文段的数据的第一个字节序号
首部长度——占四位,指出TCP首部共有多少个4字节字,首部长度在20-60字节之间,所以该字段的取值范围在5-15之间
保留字段——占六位,保留为今后使用,但目前应置为0
紧急URG——当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)
确认ACK——只有当ACK=1时确认号字段才有效
推送PSH——接收TCP收到PSH=1的报文段,就尽快地交付接受应用进程,不用等到整个缓存填满了后再向上交付
复位RST——当RST=1时,表明TCP连接中出现严重差错,接着再重新建立传输连接
同步SYN——同步SYN=1表示这是一个连接请求或连接接受的报文
FIN——用来释放一个来连接,FIN-1表明此文报段的发送端的数据已发送完毕,并要求释放传输连接
窗口字段——占两字节,用来让对方设置发送窗口一句,单位为字节
检验和——占两字节,检验和字段检验的范围暴扣首部和数据这两部分,在计算检验和时,要在TCP报文段的前面加上12字节的伪首部
紧急指针字段——占16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)
选项字段——长度可变,TCP最初只规定了一种选项,及最大报文段长度 MSS。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节”
填充字段——这是为了是整个首部长度是4字节的整数倍
TCP的连接管理
- 面向连接的传输需要3个阶段:建立连接、数据传输、连接终止。TCP连接的管理就是是传输连接的建立和释放都能正常的进行
- 三次握手过程,采用客户/服务器方式
- 服务器告诉自己的TCP已经准备好接受来凝结,成为被动打开请求(被动等待连接建立)
- 客户程序发出请求叫做主动打开(主动发起连接的建立)