第6章传输层协议
学习目标
理解传输层功能及主要协议;
理解端口的概念;
掌握TCP协议和UDP协议的异同;
了解TCP连接的建立过程及可靠性机制。
6.1 传输层概述
6.1.1 传输层及其功能
我们通常将OSI模型中的下面三层称为面向通信子网的层,而将传输层及以上的各层称为面向资源子网或主机的层。只有资源子网中的端设备才会具有传输层,通信子网中的设备至多只具备OSI下面三层的功能即通信功能。
6.1 传输层概述
6.1.1 传输层及其功能
传输层是OSI参考模型的第4层,它提供了端到端(end-to-end)的信息传递。传输层的最终目标是向其用户(应用层的进程)提供有效、可靠的服务。
具体来说,传输层具有以下功能和特点:
(1)传输层只在两端(发送端和接收端)存在,因此传输层的功能和实现与当前使用的网络无关,传输层也不管理或干涉数据在网络中传输的路径和过程。
(2)传输层负责操作系统的进程和通信子网之间的接口,即通过传输层将操作系统的不同进程在通信子网中传输的数据加以区分,从而保证在接收端接收的数据能正确的发送到各进程。
(3)传输层提供端到端的错误恢复与流量控制,能对网络层出现的丢包、乱序或重复等问题作出反应。
(4)提供数据分段功能,从而便于丢包重传并较少网络阻塞的概率。当上层的协议数据包的长度超过传输层所能承载的最大数据传输单元时,要提供必要的分段功能,在接收方的对等层还要提供合并分段的功能。
6.1 传输层概述
6.1.2 传输层端口
传输层端口是逻辑意义上的端口,它是网络通信进程的一种标识。属于一种抽象的软件结构,包括一些数据结构和I/O(输入输出)缓冲区。
端口在传输层的作用有点类似IP地址在网络层作用或MAC地址在数据链路层的作用,只不过IP地址和MAC地址标识的是主机,而端口标识的是网络进程。
由于同一时刻一台主机上会有大量的网络进程在运行,所以需要有大量的端口号来标识不同的需要访问网络进程。
每个端口都有一个端口标识,一般称为端口号,其长度为16Bit,也就是说在一个IP上可以定义216=65536个端口,其端口号范围从0到65535。由于TCP/IP 传输层的TCP和UDP两个协议是两个完全独立的软件模块,因此各自的端口号也相互独立,即各自可独立拥有216个端口。
每个IP上的65536个端口又被分为两部分:静态端口和动态端口。
静态端口的范围是0-1023 ,又称固定端口。它们一般位于应用层协议的服务器端;动态端口的范围是1024-65535,又称随机端口。它们一般位于应用层协议的客户端。
5
6.1 传输层概述
6.1.2 传输层端口
传输层端口结构如下图所示:
6.1 传输层概述
6.1.2 传输层端口
常见静态端口表
6.1 传输层概述
6.1.2 传输层端口
使用netstat命令查看本机开放端口
6.2 TCP协议
6.2.1 TCP协议格式
6.2 TCP协议
6.2.2 TCP连接建立和拆除过程
(1)TCP连接建立
TCP协议在传输有效数据之前必须先在两端之间建立连接以确保线路和设备的可用性,整个连接过程需要发送和接收3个特定格式的TCP数据包,一般被称为三次握手。
6.2 TCP协议
6.2.2 TCP连接建立和拆除过程
(2)TCP连接拆除
由于TCP连接是全双工的,可以看作两个不同方向的单工数据流传输,因此一个完整连接的拆除涉及两个单向连接的拆除。拆除连接的握手过程分为四步。
6.2 TCP协议
6.2.3 TCP可靠性传输机制
(1)序列号
TCP发送端要为所发送的每一个分段加上序列号(Sequence Number),保证每个分段能被接收端接收,并只被正确地接收一次。
(2)确认重传
接收端在正确收到发送端数据分段之后向发送端回送一个确认信息,如发送方收不到此确认信息将认为此数据丢失,并重新发送此数据。
6.2 TCP协议
6.2.3 TCP可靠性传输机制
(3)滑动窗口
滑动窗口(Sliding window)是一种流量控制技术,可以避免网络拥塞情况的发生。
滑动窗口的大小意味着接收方还有多大的缓冲区可以用于接收数据,发送方可以通过滑动窗口的大小来确定应该发送多少字节的数据。
在TCP段首部的窗口(Window)字段写入的数值就是滑动窗口的大小,其单位为字节。当滑动窗口为0时,发送方一般不能再发送数据。
滑动窗口工作过程如下:
(1)TCP连接阶段,双方协商窗口尺寸,同时接收方预留数据缓存区;
(2)发送方根据协商的结果,发送符合窗口尺寸的数据字节流,并等待对方的确认;
(3)发送方根据确认信息,改变窗口的尺寸,增加或者减少发送未得到确认的字节流中的字节数。调整过程包括:如果出现发送拥塞,发送窗口缩小为原来的
一半,同时将超时重传的时间间隔扩大一倍。
6.3 UDP协议
6.2.3 TCP可靠性传输机制
UDP(User Datagram Protocol,用户数据报协议)是非连接的、不可靠的端到端传输层协议,只提供一种基本的、低延迟的被称为数据报的通信。
UDP协议格式如下:
6.4 应用案例
公司网络拓扑
6.4 应用案例
公司子网划分表
1、了解常见的影响网络性能的因素。
2、理解子网划分的作用;
3、理解带宽和TCP连接数的概念
4、掌握网络性能优化的常见办法。
应用案例四:网络性能优化
案例描述
公司领导发现近期网络较慢,交给小朱一项任务:分析当前网络较慢的原因并提出解决方案。
当前公司的网络拓扑如图所示,其中A楼中的所有主机在C类网192.168.0.0中,B楼中的所有主机在B类网172.16.0.0中,没有划分子网。内部所有光纤和双绞线均为百兆速率,公司通过租用ISP的一条百兆光纤专线接入Internet。
案例四:网络性能优化
案例分析
如个别电脑网速较慢,则很可能是该电脑中了病毒或木马导致的系统资源不足,如果整个网络中的电脑普遍网速较慢,则常见原因包括:
(1)网络内蠕虫等病毒大规模爆发;
(2)网络中存在环路且没有正确配置;
(3)防火墙过滤策略过多影响出口速度;
(4)网络过大导致广播包过多而降低网络性能;
(5)网络设备硬件故障引起的广播风暴;
(6)出口线路或内部骨干线路带宽不足;
(7)个别电脑建立了过多的连接数,或占用了过多的带宽。
案例四:网络性能优化
案例分析
小朱经过分析发现,公司的电脑普遍网速较慢,因此不是个别电脑的问题,而是整个网络出现了一定的问题。
通过杀毒软件检查以及交换机CPU负载检查没有发现蠕虫病毒(该病毒一般会显著提高交换机CPU负载);
通过检查交换机日志没有在网络中发现环路(环路产生时交换机会有记录);防火墙配置较为简单,且移除防火墙后网速没有提高,因此也排除了防火墙的问题。
通过查看交换机接口的数据包统计信息,发现网内广播包数量较多。通过查看防火墙,发现总TCP连接数较大。因此小朱认为公司网速慢的原因应该有可能存在于上述(4)~(7)项中,并提出相应的解决方案。