TCP协议:
一、面向连接
TCP协议在传输数据的时候,需要在发送数据之前,先建立一条点到点的连接。
点到点(point to point):在TCP的通讯中,永远只有通讯双方,而不存在第三方。
连接:不是指物理链路上的连接,而是一种逻辑上的连接。
二、报文结构
1、源端口号
16位(2字节),标识发送方主机上的应用程序。
2、目标端口号
16位(2字节),标识接收方主机上需要接收数据的应用程序。
3、序列号
32位(4字节),标识当前报文段中第一个字节的序号(从0或随机初始值开始);
确保数据按序到达:接收方通过序列号重组乱序的数据包;
支持可靠传输:发送方通过序列号确认数据是否被正确接收,丢失时请求重传。
4、确认应答号
32位(4字节),仅当ACK标志位为1时有效,表示接收方期望接收的下一个字节的序号,告知发送方“已收到序号小于该值的所有数据”。
5、头部长度
4位(0.5字节),表示TCP头部的长度(单位:32位字,即4字节),由于选项字段可变,头部长度范围为20字节(无选项)~60字节(最大选项)。
6、保留字段
6位(0.75字节),保留给未来协议扩展使用,当前必须置为0。
7、标志位
6个比特,各占1位,控制TCP连接的状态和数据传输行为。
URG:紧急标志,置1时表示报文段包含紧急数据,需优先处理。
ACK:确认标志,置1时确认应答号有效,除初始SYN外,通常必须为1。
PSH:推送标志,置1时请求接收方尽快将数据交付应用层,不等待缓冲区填满。
RST:重置标志,置1时强制终止连接,用于异常断开,如端口未开放。
SYN:同步标志,置1时用于建立连接,发起三次握手的第一次或第二次握手。
FIN:终止标志,置1时用于关闭连接,发起四次挥手的第一次挥手。
8、窗口大小
16位(2字节),表示接收方当前允许发送方发送的数据量,即接收窗口,用于实现流量控制:防止发送方发送过快导致接收方缓冲区溢出。
9、校验和
16位(2字节),校验头部和数据的完整性,确保传输过程中无比特错误,计算方法:对头部、数据及伪头部,包含源/目标IP地址、协议类型、TCP长度,进行异或校验。
10、紧急指针
16位(2字节),仅当URG标志位为1时有效,指示紧急数据的结束位置,相对于序列号的偏移量,紧急数据位于当前报文段的序列号到,序列号+紧急指针之间,供应用层优先处理,比如中断操作。
11、选项
可变,常见长度:0~40字节,扩展TCP头部的功能
12、 数据
可变,最大为MSS值,受窗口大小限制,承载上层协议,比如HTTP、DNS的实际数据,仅在报文段非纯控制报文,比如SYN/FIN时存在。
区分不同的TCP连接主要靠四个参数 --- 源IP地址,源端口,目标IP地址,目标端口。所以,这四个参数被称为是TCP连接的“四元组”。四元组可以唯一的标识一条TCP连接。
三、异常连接
主机就会给发送源发一个TCP报文段,将其中的RST标记位置1。用来中断这次连接。(一般发送到一个无效的TCP连接时,都会使用RST报文段来终止)。
四、可靠传输机制 连接确认机制,重传,流控,校验和
1、连接确认机制
做法:TCP协议保证对方能够收到本端发送的数据段,就是让对方回复一个确认报文段,这个确认报文段其最主要的标志就是TCP头部中的一个标记位ACK将置1,同时激活了确认序列号。确认序列号的做法
2、重传机制
(1)RTT(Round-Trip Time)往返时间----衡量超时重传的参数
RTT往返时间 --- 指的是发出端将数据发出后,直到接收到对端反馈的确认报文
(2)RTO(Retransmission Timeout 超时重传时间)
是TCP协议中控制数据包重传的核心机制,用于判断数据包是否因网络延迟或丢失而未到达对端,RTO是TCP发送方在发送一个数据包后,等待接收方返回确认ACK的最大允许时间。若在该时间内未收到ACK,TCP会认为数据包丢失或未到达,触发超时重传。
(3)超时间隔加倍
是TCP或应用层为应对网络延迟、拥塞或不稳定场景,主动将超时时间延长为原有时长两倍的一种动态调整策略。其核心目的是避免因短暂网络波动触发频繁重传或连接终止,通过延长等待时间观察网络状态,提升传输效率和可靠性。
超时间隔加倍原因:在网络环境拥塞时,如果还是不停的去重传报文段,只会使拥塞加重。所以,TCP采用了这种超时间隔加倍的方式,来缓解这一点。
(4)快速重传机制
超时重传的问题就是这个超时间隔会越来越长,这样超长时间的重传间隔,会加重端到端之间的时延。在TCP中,发送方可以通过接收方的反馈,在超时时间到达前,意识到数据包丢失的现象,并进行重传。
失序报文:接受方在收到一个数据段中的序列号大于自己期望的序列号,这就说明自己期望的报文可能在茫茫网海中丢失了。
冗余ACK(Duplicate ACK):服务器将会通过再次发送携带确认序列号未丢失报文序号的确认报文,并且连续发送三次。(如上图所示)TCP就是通过这种方式来告知对端,这个报文已经丢失了,期待对方重传。
3、流控机制
目的:为了防止发送方发送流量过大,导致接收方缓存区溢出的问题。
(1)滑动窗口
窗口大小:由接收方通过TCP报文中的窗口字段通知发送方
(2)小窗口处理
零窗口:如果接收方的缓冲区已满,会将窗口大小设置为0,发送方暂停发送数据,直到接收方通知新的窗口大小。
接收方:窗口通告的最小值。这个最小值通常选择MSS或者1/2缓存空间这两个值中较小者。当窗口值小于其二者较小者的值时,将通告窗口值为0。
发送方:而发送方一般的策略是启用延时处理,只有在满足以下两个条件中任意一个时,才会发送数据,否则,将一直囤积数据,直到满足任一条件为止。
条件一:要等到窗口大小 >= MSS 并且 数据大小 >= MSS;
条件二:收到之前发送数据的ack回包;
五、拥塞控制
1、目的:
TCP会观察网络的拥堵情况,如果网络拥塞严重的话,则将降低发送量,以缓解网络塞情况
2、TCP拥塞判断
TCP将连接中出现的丢包行为,视为拥塞的表现。
丢包形式:
就是数据包确认超时;
收到来自接收方发送的3个冗余ACK;
3、TCP拥塞控制方法
(1)拥塞窗口
除了接收方的窗口大小,发送方还会维护一个拥塞窗口,用于控制网络拥塞情况下的数据发送速率。网络没有拥塞,拥塞窗口值大些, 反之,拥塞窗口值小些。
拥塞窗口大小:动态调整,拥塞窗口大小可达1---几百个MSS,受到拥塞窗口和接收窗口共同影响,取两者最小值,一般最小是1个MSS
(2)拥塞控制方法及过程
过程:
初始化阶段:
慢启动算法:在连接刚建立时,拥塞窗口的大小通常初始化为1个MSS,在慢启动阶段,每收到一个应答确认,拥塞窗口大小就会增加a的n次方个MSS,因此拥塞窗口大小呈指数增长。
慢启动门限(ssthresh):为了防止拥塞窗口增长过大造成网络拥塞
拥塞窗口 < ssthresh,使用慢启动算法;
拥塞窗口 > ssthresh,使用拥塞避免算法;
拥塞窗口 = ssthresh,既可以使用慢启动算法,也可以使用拥塞避免算法。
增长阶段:
拥塞避免算法:当拥塞窗口大小达到慢启动阈值时,TCP进入拥塞避免阶段。在这个阶段,每收到一个ACK确认,拥塞窗口大小增加1个cwnd,因此拥塞窗口大小呈线性增长。
拥塞发生:
快速恢复:在快速重传之后,TCP进入快速恢复阶段,拥塞窗口大小减半,并继续发送数据
网络类型及数据链路层协议
(不同网络类型实际为不同的数据链路层技术,由于二层同时作为了物理层的大脑,故当使用不同数据链路层技术,也将调用不同的物理层设备。)
一、网络类型分类
1、多点介入网络 一条网段内上出现多个设备
允许多个终端设备,比如计算机、手机等通过同一条物理链路或共享的通信介质进行数据传输。
BMA:广播型多点接入(broadcast)----支持广播,所有设备之间能互访,例如:以太网
NBMA(NOn-Broadcas Multi-Access):非广播型多点接入-----不支持广播,例如:帧中继网络
2、P2MP(点到多点网络)point-to-Multipoint
是一种单发送端向多个接收端传输数据的网络拓扑结构,核心特点是“一对多”的单向或半双工通信。与点到点或多点接入不同,P2MP通常存在一个中心节点,比如基站、集线器,负责向多个终端节点分发数据,终端节点一般仅接收或有限参与通信。
3、点到点网络(P2P)point-to-point
核心特点是“一对一”的专用连接,无中间中心节点或共享介质,一个网络中只有两台设备,即一根线只能连接两个设备。
二、数据链路层协议
1、MA网络
(1)以太网协议
定义:以太网不是一个网络,而是一个协议,传输标准EthernetII 类型帧的网络
特征:多路访问,广播式的网络,需要使用MAC地址对设备进行区分和标识
所属类型:可细分至BMA----因为其支持多点接入和广播行为
构建方法:使用以太网线连接设备的以太网接口,形成的网络是以太网络,所运行的二层协议就是以太网协议
以太网线:同轴电缆、光纤、双绞线
以太网接口:设备一般提供百兆、千兆、万兆接口
以太网特色:可以提供极大的传输速率---频分技术:一根铜丝上其实可以同时发送不同频段的电波而互不干扰,实现数据的并行发送,起到叠加带宽的效果。
2、P2P网络
(1)HDLC协议,High-Level Data Link Control--高级数据链路控制协议,
私有协议,厂商之间不兼容
分类:
标准HDLC:ISO组织根据SDLC(面向比特的同步数据链路控制协议)发展改进而来
非标准HDLC:各个厂家在ISO标准的HDLC上再进行修改而成
注:思科设备默认采用的串线协议是HDLC,华为设备默认采用PPP协议修改串线协议为HDLC
HDLC协议特点:
无论传输的比特流内容如何(包括与控制字符相同的序列),都能被正确识别和传输,不会导致帧边界混淆。
采用同步传输模式(区别于PPP的异步传输),以固定比特流连续发送,无需添加起始位、停止位等额外开销。
每个帧均包含FCS,帧校验序),通过CRC循环冗余校验算法对除标志字段外的帧内容进行校验,接收端验证FCS以检测传输错误。
统一的帧格式,简化协议实现,支持灵活扩展。
HDLC协议本身未定义身份验证机制,无法验证通信双方的身份合法性,安全性不足。
HDLC仅负责数据链路层的可靠传输,不涉及网络层参数(如IP地址)的协商。
专为同步串行链路设计(如E1/T1专线、光纤直连),要求收发双方严格同步时钟。
(2)PPP协议,point to point protocol--点到点协议
基本概念:ppp协议,公有协议,所有厂商兼容,支持同步和异步线路;同步、异步本质区别:所有电路是否在同一时钟沿下同步地处理数据。
特点:直连间配置不同网段IP地址可以正常通信,ppp协议支持验证,具备错误检测能力,但不具备纠错能力;对网络层地址进行协商,能够远程动态分配IP地址;(一侧给另一侧设备分配IP地址)
ppp数据帧封装结构:
Flag:固定长度8位,固定取值:0X7E
address:固定长度8位,固定取值:0XFF---目标MAC地址
control:固定长度8位,固定取值:0X03
protocol:协议字段,表明其信息部分所采用的协议类型(LCP/NCP)
Information:数据
FCS:帧校验序列---确保数据完整性
ppp协议的组成:
链路层:
主要由LCP、NCP以及用于网络安全的可选验证协议族组成
LCP:链路控制协议--主要是完成ppp会话建立第一阶段的协商,负责建立、配置、测试和维护数据链路连接。
NCP:网络控制协议:完成ppp会话建立的第三阶段,针对网络层协议进行协商,IP地址协商。
验证协议:在LCP阶段协商是否启用认证。
ppp工作过程:
物理链路建立 → LCP协商(链路参数、认证方式) → [可选:PAP/CHAP验证] → NCP配置(网络层协议参数) → 数据传输 → LCP终止链路
链路建立阶段--LCP建立:通过相互发送LCP协议数据包来商议,如:MTU、是否需要认证,以及使用什么方法认证、链路通信模式、接口速率
认证阶段--ppp认证(可选项)
网络层协议协商阶段--NCP协商---IP地址协商
ppp配置命令总结:
主验证方:配置用户列表及验证方式
[R2]aaa
[R2-aaa]local-user wangdaye password cipher wdy12345
[R2-aaa]local-user wangdaye service-type ppp
[R2]int Serial 3/0/0
[R2-Serial3/0/0]ppp authentication-mode chap/pap //设置验证类型
[R2-Serial3/0/0]link-protocol ppp //设置接口报文的封装模式
被验证方:配置验证用户名
[R1]interface Serial 3/0/0
[R1-Serial3/0/0]ppp chap user wangdaye
[R1-Serial3/0/0]ppp chap password cipher (wdy12345)
[R1-Serial3/0/0]ppp pap local-user wangdaye password cipher (wdy12345)

被折叠的 条评论
为什么被折叠?



