传输层协议TCP
TCP协议
- 传输控制协议,面向字节流按顺序、连接、可靠、全双工,可变滑动窗口、缓冲累积传送。
- 协议号6
TCP协议几个重要字段
- 源端口、目的端口: 16位,$2^{16}$(0-65535)
- URG:紧急指针有效
- ACK:应答顺序号有效
- PSH:推进功能有效
- RST:复位为初始状态
- SYN:建立同步连接
- FIN:结束释放连接
- 校验和:包括TCP段头、数据、伪段头
TCP端口
端口 | 服务 | 端口 | 服务 |
---|---|---|---|
20 | 文件传输协议(数据) | 80 | 超文本传输协议 |
21 | 文件传输协议(控制) | 110 | POP3服务器(邮箱发送) |
23 | Telnet终端仿真协议 | 139 | Win98共享资源端口 |
25 | SMTP简单邮件发送协议 | 143 | IMAP电子邮件 |
42 | WINS主机名服务 | 161 | NMP-snmp |
53 | 域名服务器(DNS) | 162 | SNMP-trap-snmp |
TCP三次握手:防止产生错误的连接
- SYN码:1为肯定,0为否定
TCP四次挥手:释放连接
TCP拥塞控制机制
- 报文到达速率大于路由器的转发速率,产生拥塞
- 解决方法
- 重传计时器
- 慢启动
- 拥塞避免
- 快速重传
- 可变滑动窗口
- 选择重发ARQ
- 总结:差错控制、流量控制、拥塞控制
超时重传计时器
- 重传是为了保证TCP可靠的重要措施。TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的时间到了,但还没有收到确认,就重传这一报文段
- 重传时间要设置的合理,一般和 往返时间、 平均时延、 时间偏差 等有关。大多数采取观察最近一段时间的报文时延来估算往返时间
慢启动
- 发送方在接收到确认之前逐步扩大窗口的大小
1、2、4、8等按指数规律翻倍,最后达到门限阈值。出现超时,将拥塞窗口回到1,再次开始慢启动
拥塞避免
- 窗口达到门限阈值以后,进入拥塞避免阶段,TCP采用线性增加方式放大窗口,按照+1递增。发生拥塞,门限阈值减半。再发生再减半。按指数规律成倍减半
快速重传
发送端一连收到3个重复ACK,就重传,不等待计时器
传输层协议UDP
UDP协议
- 用户数据报协议,无连接的、不可靠的、不保证顺序的、无差错流控机制
- 校验和包括:UDP头部、数据、伪头部
- 协议号17
UDP报文格式
- 少量传输数据,高层程序负责解决数据排序、差错控制等
开销少,网络管理经常使用
TCP支持数据传输,UDP支持音视频传输
场景应用层协议
电子邮件协议SMTP
- SMTP简单邮件传输协议,负责将邮件==上传到服务器==,采用TCP的25端口,C/S工作模式,仅传送ASCII码文本
电子邮件协议POP3
- POP3邮局协议,负责将邮件==下载到客户机==,采用TCP的110端口,C/S工作模式
用户从服务器读取邮件后,服务器就删除该邮件
电子邮件协议S/MIME
- S/MIME多用途互联网邮件扩展协议,负责将多媒体邮件安全 ==上传到服务器中==,包含文本、图像、音频、视频以及其他应用程序专用的数据
电子邮件协议IMAP4
- IMAP4互联网消息访问协议,提供摘要浏览,选择下载
- 采用TCP的142端口,C/S工作模式
- 用户从服务器读取邮件后,服务器 仍会保存该邮件
电子邮件协议PGP
- PGP电子邮件加密协议,数据加密、鉴别、签名和压缩等技术
- 使用IDEA(128位)加密数据,RSA加密密钥,MD5认证
- PEM增强保密邮件协议
- 使用多种加密方法提供机密性、认证和信息完整性的因特网电子邮件协议,采用每个报文 一次一密的方法加密 ,其他和PGP功能差不多
文件传输协议FTP
- FTP文件传输协议,赋值文件通过服务器 ==上下传送==,
- 采用TCP的两条连接
- 数据连接20端口
- 控制连接21端口
- C/S工作模式
- 分为合法访问和匿名访问
ftp://192.168.12.106
的格式访问,或把IP改为域名也可访问,但必须加上ftp://
协议头
FTP的传输模式
- FTP的传输模式
- 主动模式(PORT/Standard)
- 被动模式(PASV/Passive)
区别为:服务器主动使用20端口传数据,被动随机传端口
远程登录协议Telnet
- TCP/IP仿真协议,登录到远程主机上操作,网络虚拟终端NVT致辞异构主机,采用TCP的23端口,C/S工作
使用命令
telnet 192.168.1.254
超文本传输协议HTTP
- 万维网WWW(Web)服务器提供全球的、分布的、动态的、多平台的、交互的多媒体信息
- 使用TCP的80端口,B/S工作模式,统一资源定位符URL
- 编程语言为HTML
练习例题
如果一个TCP连接处于ESTABISHED状态,则表示[]{.gap} {.quiz}
- 已经发出了连接请求 {.options}
- 处于连接监听状态 {.options}
- 连接已经建立 {.correct}
- 等待对方的释放连接响应 {.options}
{.options}
下面哪个字段的信息出现在TCP头部而不出现在UDP头部? ([]{.gap} )。{.quiz}
- 目标端口号 {.options}
- 顺序号 {.correct}
- 源端口号 {.options}
- 校验和 {.options}
{.options}- 数据排列:TCP有序,UDP无序
SMTP协议用于 ([]{.gap} ) 电子邮件。 {.quiz}
- 接受 {.options}
- 发送 {.correct}
- 丢弃 {.options}
- 阻挡 {.options}
{.options}
POP3协议采用 ([]{.gap} ) 模式进行通信。 {.quiz}
- B/S {.options}
- C/S {.correct}
- P-to-P {.options}
- P-to-C {.options}
{.options}
在POP3协议中,当客户机需要访问时,客户端软件与POP3服务器建立 ([]{.gap} ) 连接。 {.quiz}
- TCP {.correct}
- UDP {.options}
- PHP {.options}
- IP {.options}
{.options}
在TCP/IP协议中,合法的端口地址的范围是 []{.gap} {.quiz}
- 1-255 {.options}
- 1-1023 {.options}
- 1-1024 {.options}
- 1-65535 {.correct}
{.options}
FTP需要建立两个连接,当工作与PSVE模式时,其数据连接的端口号是 []{.gap} {.quiz}
- 20 {.options}
- 21 {.options}
- 用户确定 {.options}
- 服务器确定 {.correct}
{.options}- FTP 默认是主动模式 使用20 21端口,PSVE是随机的,由服务器确定端口号