传输层
传输层提供的服务
传输层的功能
- 端到端逻辑通信
- 复用和分用
- 差错检测
- 传输协议TCP和UDP
传输层的端口
端口用来标识和区分一台主机中的不同应用进程。
端口号分为客户端的端口号(动态选择)和服务器端的端口号(熟知端口号和登记端口号)。
套接字 = (主机号,端口号):唯一标识网络中一台主机及其上的一个应用
传输层提供的服务:面向连接服务(TCP)和无连接服务(UDP)。
传输层协议
UDP协议基本服务:复用、分用和差错检测。
特点:无连接,不可靠,尽最大可能交付。
TCP协议解决传输的可靠、有序和不重复问题。
TCP报文段
重要字段:序号字段seq、确认字段ack、确认位ACK,同步位SYN(用于连接请求、连接接收报文)、终止位FIN(释放一个连接),窗口字段。
TCP规定,在连接建立后所有传送的报文段都必须把ACK置1。
TCP连接管理
TCP连接阶段:连接建立、数据传送和连接释放。
(1)连接建立(三次握手)
(2)连接释放(四次握手)
SYN洪泛攻击
三次握手时,攻击方不给服务器发确认,TCP处于挂起状态,服务器会重复发送ACK,造成服务器资源的浪费。
TCP可靠传输、流量控制和拥塞控制
TCP可靠传输机制
(1)序号:保证有序传送数据
(2)确认:累计确认
(3)重传:超时重传(计时器)和冗余ACK(收到三个冗余ACK则认为报文丢失,进行重传)
TCP流量控制
TCP流量控制:匹配发送方的发送速率和接收方的读取速率。
流量控制机制:基于滑动窗口协议的流量控制机制——接收窗口rwnd,拥塞窗口cwnd。
传输层与数据链路层的区别
传输层 | 数据链路层 | |
---|---|---|
流量控制 | 端到端之间的流量控制 | 两个相邻中间的节点之间的流量控制 |
窗口大小的区别 | 滑动窗口可以动态变化 | 滑动窗口不能动态变化 |
TCP拥塞控制
拥塞控制: 防止过多数据注入网络,保证网络中路由器或链路不致过载。
拥塞控制和流量控制的区别
相同点都是通过控制发送方的发送速率来达到控制效果。
- 拥塞控制: 让网络承受现有的网络负荷,是一个全局性的过程,涉及所有主机、路由器。
- 流量控制: 点对点的通信控制,抑制发送端发送速率。
相关概念
概念 | 解释 |
---|---|
MSS | 最大报文长度 |
RTT | 往返时延,即一个传输轮次 |
cwnd | 拥塞窗口,反映当前网络的容量 |
rwnd | 接收窗口,反映接受窗口的容量 |
ssthresh | 慢开始门限 |
慢开始 | cwnd=1开始,指数式增长至ssthresh |
拥塞避免 | ssthresh=cwnd/2,cwnd线性增长 |
快重传 | 使用冗余ACK检测丢包,无需等待计时器 |
快恢复 | cwnd=ssthresh=cwnd/2,cwnd线性增长 |
TCP拥塞控制流程
网络拥塞产生的原因
(1)发生超时事件:未按时收到确认,重传计时器超时;
(2)收到三个重复ACK报文。
应用层
应用模型
-
客户/服务器模型
- 客户是服务请求方,服务器是服务提供方,网络中各计算机地位不平等。 - 客户机之间不可以直接通信。 - 应用于:Web、文件传输协议FTP、远程登录、电子邮件。
-
P2P模型
- 每个结点既可以作为客户访问其他结点的资源,又可以作为服务器提供服务。 - 任意一对计算机称为对等方(peer)。 - 减轻了服务器的压力,但会使网络变的拥塞。
域名系统DNS
DNS采用客户/服务器模式,将主机名转化为IP地址。
层次域名空间:国家顶级域名(.cn)、通用顶级域名(.com、.net、.gov)、基础结构域名(只有一个arpa,用于反向解析)。
域名服务器类型: 根域名服务器、顶级域名服务器、授权域名服务器、本地域名服务器。
域名解析过程
查询方式(1)递归查询(;2)递归与迭代结合的查询。
文件传输协议FTP
FTP采用客户/服务器工作方式,适用于异构网络的任意计算机之间传送文件。
TCP连接方式
FTP在工作时使用两个并行的TCP连接。
- 控制连接: 端口号为21,服务器监听21号端口,等待客户连接,传输的控制信息都是以7位ASCII码格式传送,控制连接在整个会话期间保持连接。
- 数据连接: 端口号是20,传送完毕后关闭“数据传送连接”,结束运行。
电子邮件
基于万维网的电子邮件
浏览器—HTTP—>邮件服务器—SMPT—>邮件服务器—HTTP—>用户代理
超文本传输协议HTTP
HTTP是面向事务的应用层协议。
HTTP的特点
(1)HTTP是无状态的——第二次访问页面时的响应与第一次访问的相同,本身无连接但是采用有连接的TCP,保证数据的可靠性。
(2)Cookie+数据库跟踪用户的活动;
(3)HTTP既可以使用非持久连接,也可以使用持久连接。
【总结】 常见的应用层协议小结
应用程序 | FTP控制链 | FTP数据链 | TEINET | SMTP | DNS | TFTP | HTTP | POP3 | SNMP |
---|---|---|---|---|---|---|---|---|---|
使用协议 | TCP | TCP | TCP | TCP | UDP | UDP | TCP | TCP | UDP |
熟知端口号 | 21 | 20 | 23 | 25 | 53 | 69 | 80 | 110 | 161 |