第五章 传输层
1.OSI和DOD模型
- TCP协议:传输控制协议
- UDP协议:用户数据报协议
2.传输层的两个协议
1.TCP:需要将要传输的文件分段、建立会话、可靠传输、流量控制。–QQ、微信传文件。
2.UDP:一个数据包就能够完成数据通信、不分段、不需要建立会话、不需要流量控制、不可靠传输。–QQ、微信打字聊天,屏幕广播,多播,广播。
- 查看会话:netstat -n
- 查看建立会话的进程:netstat -nb
3.传输层协议和应用层协议之间的关系
1.应用层协议=传输层协议+端口号
| 标识应用程序 |
|---|
- RDP:访问远程桌面
- FTP:文件传输
- SMTP:邮件发送
- DNS:域名解析
2.常见的应用层协议使用的端口
- http=TCP+80
- https=TCP+443
- RDP=TCP+3389
- FTP=TCP+21
- 共享文件夹=TCP+445
- SMTP=TCP+25–发邮件
- POP3=TCP+110–收邮件
- telnet=TCP+23
- SQL=TCP+1433
- DNS=UDP+53
4.服务和应用层协议之间的关系
- 服务使用TCP或UDP的端口侦听客户端请求
- 客户端使用IP地址定位服务器、使用目标端口、定位服务
- 可以在服务器网卡上设置只开放必要的端口、实现服务器网络安全
1.如何查看服务侦听的端口
netstat -a或netsat -an:查看侦听的端口
netstat -n:查看建立的会话
netstat -nb:查看建立会话的进程
telnet 192.168.80.100 3386:测试远程计算机某个端口是否打开
2.如何在windows上安装服务
https://www.bilibili.com/video/av9876107?p=58 16分钟处!
3.如何更改服务使用默认端口
https://www.bilibili.com/video/av9876107?p=58 23分钟处–30分钟处!
- 迷惑入侵者,使系统更加安全!
4.如何设置windows网络安全
- 设置计算机网卡只允许指定端口访问:
https://www.bilibili.com/video/av9876107?p=58 32分钟处!
5.传输层功能和端口范围
1.传输层功能:为相互通信的应用进程提供了逻辑通信。
2.传输层协议和网络层协议的主要区别
3.传输层的主要功能:
- 传输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)
- 传输层还要对收到的报文进行差错检测。
- 传输层提供面向连接和无连接的服务。
6.传输层的端口
1.TCP的端口
- 端口用一个16位端口号进行标志。
- 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。
2.三类端口
1.熟知端口,数值一般为0~1023.
FTP:21
TELNET:23
SMTP:25
DNS:53
HTTP:80
https:443
2.登记端口号,数值为1024~49151
RDP:3389
3.客户端端口号,数值为49152~65535
7.UDP首部
1.UDP的主要特点
- UDP是无连接的,即发送数据之前不需要建立连接。
- UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
- UDP是面向报文的。UDP没有拥塞控制,很适合多媒体通信的要求。
- UDP支持一对一、一对多、多对一和多对多的交互通信。
- UDP的首部开销小,只有8个字节。
2.用户数据报协议 UDP
1.UDP的首部格式
2.计算UDP校验和
8.传输控制协议 TCP
1.TCP概述
- TCP是面向连接的传输层协议。(即基于通信线路畅通的前提)
- 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
- TCP提供可靠交付的服务。
- TCP提供全双工通信。
- 面向字节流。
2.TCP协议如何实现可靠传输?
1.TCP的连接
-
点对点
-
TCP连接的端点叫做
套接字-
端口号拼接到IP地址即构成套接字
2.可靠传输的工作原理–停止等待协议
-
- 超时重传情况中,M1等待的时间为数据包的一个来回时间。(M为数据包)
3.确认丢失和确认迟到
这种可靠传输协议常称为自动重传请求–ARQ协议
4.信道利用率(U)
停止等待协议的优点:简单,
缺点:信道利用率太低。
-
TD:发数据包的时间。
-
RTT:等待时间。
-
TA:接收数据包的时间。
5.流水线传输–提高信道利用率 -
发送方可
连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。 -
连续ARQ协议–利用
滑动窗口技术实现可靠传输。
当数据包1收到确认帧后,
从缓存中删除数据包1,当数据包2收到确认帧后,
同理,直到发送完所有数据包。 -
累积确认–接收方
- 优点:容易实现,信道利用率高。
- 缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。
6.滑动窗口技术
以字节为单位的滑动窗口
-
A的发送窗口大小是由B的接收窗口决定的;
-
计算机A只有接收到B的确认帧后,才能删除A缓存中接收到确认帧的数据包;
-
计算机B缓存中的数据包只有当应用程序读取后,才能删除;
-
当A缓存中的数据包接收到确认帧后,A缓存中的滑动窗口继续向未发送的数据包滑动。
-
当B缓存中的数据包被应用程序读取后,B缓存中的滑动窗口继续向未读取的数据包滑动。
-
计算机的缓存空间可重复使用,缓存空间中已删除数据包的部分将填入新的数据包,滑动窗口滑到末尾后将从头开始。
-
当有数据包丢失时,B给A的确认帧中包含丢失数据包的确认号和已收到的数据包等信息,A只会补发丢失的数据包和下一个未发送的数据包。(选择性确认)
7.超时重传时间的选择 -
TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就重传这一报文段。
3.TCP协议如何实现流量控制?
- TCP报文段的首部格式
-
序号:为数据部分,第一个字节的编号,如下所示。
-
确认号:下一个数据包应该发的字节序号,例,(用上图)
序号为1的数据包的确认号为5;
序号为5的数据包的确认号为10;
序号为10的数据包的确认号为15…
-
数据偏移:记录TCP报文段第几个字节后是数据。占4位,最大字节为60B(20B固定+40B可选)
-
标记位:
- URG:为1时,数据包在缓存中不用排队,可直接插队,优先传输。(发送方)
- ACK:为1时,确认号有效;为0时,确认号无效。
- SYN:源主机向目的主机请求建立会话时和目的主机恢复源主机同意建立会话时,为1。
- PSH:为1时,数据包在缓存中不用排队,可直接插队,优先给应用程序。(接收方)
- RST:为1时,表示TCP会话出现了严重的错误,必须释放连接;要想正常通信,还得重新建立连接。(错误中断)
- FIN:为1时,表示所有数据包都已传完,释放连接。
-
窗口:指通信双方协商的共同TCP缓存大小。
-
紧急指针:数据部分,需要紧急处理的字节。
例如紧急指针为50
则数据部分1-50字节为需要紧急处理的数据。
2.抓包分析TCP首部
3.SYN攻击:源主机不停的向目的主机申请建立会话,但是一直使用的都是多个虚假的IP地址,目的主机则一直在等待这些虚假的IP地址的主机与自己建立会话,进而占用系统资源,是系统崩溃。(SYN攻击仅可对XP系统攻击,65集12分钟处!)
4.TCP流量控制
B给A发送第一个数据包
-
Ack=0,确认帧无效,建立会话;rwnd=10,接收方窗口为10个字节,告诉发送方设置的滑动窗口也要为10。
-
当B缓存不足时,通过减小滑动窗口的大小来实现流量控制。Ack=5,下一个数据包应该从字节5开始;rwnd=8,滑动窗口大小变为8字节。若数据包(包含字节5、6)丢失,则不管。直到发送完滑动窗口内的数据包,再重发数据包(包含字节5、6)。
-
Ack=13,rwnd=2,应该发第13个字节的数据包,窗口大小变为2字节。
- rwnd=0,发送方停止发送数据;当B处理完,缓存清空后,又让A继续发送数据包。
- 计算机通过调整滑动窗口的大小,从而达到流量控制。
4.TCP协议如何避免网络拥塞?
5.TCP的传输连接管理
1.TCP的传输连接管理
-
传输连接有三个阶段,即:
连接建立、数据传送和连接释放。 -
TCP连接的建立都是采用
客户服务器方式。 -
主动发起连接建立的应用进程叫做
客户(Client)。被动等待连接建立的应用进程叫做
服务器(server)。
2.TCP的连接建立–用三次握手建立TCP连接
-
同步数据包:同步标记是1,确认标记是0,序号是X(任一数字)。
-
确认数据包:同步标记是1,确认标记是1,序号为y(任一数字,由B指定),确认号是X+1。
-
第三次确认数据包:确认标记是1,序号为X+1,确认号是Y+1。
3.TCP的连接建立–用三次握手建立TCP连接的各状态
各状态的含义: -
CLOSED:关闭状态。
-
LISTEN:收听状态。
-
SYN-SENT:请求连接。
-
SYN-RCVD:同步收到。
-
ESTAB-LISHED:连接已建立。
4.TCP的连接释放
-
MSL:2分钟,2MSL是4分钟。
-
FIN-WAIT-1:是在客户端主动要求关闭TCP连接,并且主动发送FIN以后,等待服务端回复ACK时候的状态。
-
FIN-WAIT-2:收到服务端确认帧后转变的状态。
-
TIME-WAIT:等待客户端给服务端发送的最后一个确认包到达服务端,不丢失的状态。
-
CLOSE-WAIT:被动关闭状态。
-
LAST-ACK:连接中断请求的确认状态。