传输层
- 传输层协议UDP和TCP
- 网络安全
- TCP可靠传输的实现
- TCP的流量控制
- TCP的拥塞控制
- TCP的运输连接管理
一、相关概述
传输层为相互通信的应用进程提供了逻辑通信【端到端的通信】
1. 应用场景
-
TCP:分段(编号)、流量控制、拥塞控制、建立会话、可靠传输
- 举例:访问WEB网页、QQ传文件
-
UDP:一个数据包就能完成数据通信、不可靠传输
-
【注】一个给数据链路层的数据包大小是46-1500
-
举例:QQ聊天(可靠传输由上层协议控制)、广播、DNS解析
-
-
netstat -n
- 可以查看会话,UDP不建立会话,所以不会看到UDP;
- 也可以查看木马
2. 传输层和应用层之间的关系
应用层协议 = 传输层协议 + 端口号
应用层协议 | 传输层协议 | 端口号 |
---|---|---|
http | tcp | 80 |
https | tcp | 443 |
文件传输FTP | tcp | 21 |
发邮件SMTP | tcp | 25 |
收邮件POP3 | tcp | 110 |
RDP | tcp | 3389 |
共享文件夹 | tcp | 445 |
SQLServer连接 | tcp | 1433 |
TELNET | tcp | 23 |
DNS | udp/tcp | 53 |
TFTP | udp | 69 |
SNMP | udp | 161 |
RIP | udp | 520 |
3. 应用层协议和服务之间的关系
-
安装服务后,在TCP和UDP上某个端口侦听客户端(端口就代表服务,即进程,如果TELNET端口失败,说明不能访问这个服务)
-
通过IP地址找到服务器,通过端口找到服务
-
可以在服务器网卡上只开发必要的端口,实现服务器安全
4. 网络安全
-
如何在Windows上安装额外的服务?
-
如何查看本地服务侦听的端口?
netstat -an //查看本地服务的所有情况netstat -n //可查看外部连接本地服务的情况telnet (IP地址)10.7.1.53 (端口)21 //测试服务器上打开的端口;
- 端口扫描工具:SSport.exe
-
如何设置网络安全?
-
更改服务的默认端口;
-
在服务器上只开放必要的端口 【配置服务器的TCP/IP筛选】
(1)本地连接(属性)——(2)Internet协议(TCP/IP)属性——(3)高级TCP/IP设置——(4)选项——(5)属性——(6)TCP/IP筛选——(7)重启系统
-
Windows防火墙
-
防火墙将网段的端口关闭【单向:服务器能够访问外部,外部不能访问服务器】
-
防火墙不能控制灰鸽子木马,有木马的机器可向外访问
-
-
5. 传输层的端口号
-
网络层使用协议号标识上一层【TCP-6、UDP-17、TGMP-1】
-
传输层实时端口号标识上一层
-
端口号是16位字节【0-65535】,只具有本地意义
-
熟知端口:0-1023
-
登记端口【服务器】:1024-49151
-
客户端端口:49152-65535
-
二、用户数据协议UDP
1. 主要特点(P215)
2. 首部格式
伪首部、源端口、目标端口、长度、检验和
三、传输控制协议TCP
1. 主要特点
2. 首部格式
a.【实验】抓包分析TCP首部
b.【案例】建立TCP会话发送攻击
-
【SYM攻击器】伪造一堆IP地址向服务器发送TCP连接请求,服务器无法及时处理
-
【LAND攻击】将目标IP地址和源IP地址设置一样,都是服务器自身的IP地址
3. TCP如何实现可靠传输?
-
自动重传请求ARQ协议
- 超时重传
- 停止等待协议
- 确认丢失和确认迟到
-
信道利用率
-
连接ARQ协议
- 发送窗口
- 累计确认
-
以字节为单位的TCP滑动窗口实现可靠传输
- SACK选择性确认选项
- 时间戳选项:超时重传时间的选择(RTT)等待时间
4. TCP如何实现流量控制?
-
什么是流量控制?
- 流量控制往往是指点对点通信量的控制,是个端到端的问题。
-
如何进行流量控制?
- 发送接收端窗口大小
- 定时发送测定窗口数据报【探测报文段】
5. TCP协议如何避免网络拥塞?
-
什么是网络拥塞?
- 若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就变坏了。
-
拥塞控制起到什么作用?
- 拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至于过载。
-
拥塞控制的方法
-
基于窗口的拥塞控制:发送方维持一个拥塞窗口cwnd
-
慢开始(慢开始门限-会调整)和拥塞避免
-
快重算和快恢复
-
-
发送方窗口上限值 = Min[rwnd,cwnd]
-
四、TCP传输连接管理
1. 建立连接
-
为什么有第三次握手?
-
建立连接的状态
2. 连接释放
-
四次挥手
-
释放连接的状态