今天的CCNA课程比较简单,是关于TCP和UDP的,不过CCNA的考点是比较TCP和UDP,了解不同之处,而不是深入了解两种协议,所以这一块的知识只需要知道他们的不同点在哪里即可,不需要深挖。

首先来说,TCP和UDP都是第四层Transport层的协议,用来给终端之间传输数据,另外需要使用L4端口号,并且可以会话复用。

端口号被IANA(internet assigned number authority)分为三类:

Well-known 端口号:0-1023

Registered 端口号:1024-49151

Ephemeral(短暂的)/private/dynamic 端口号:49152-65535

两者的区别主要是在下面四点:

Reliable data transfer

error recovery

data sequencing

flow control

如下图所示,是一个比较典型的TCP流程,即PC1上打开一个网页,然后和服务器进行数据交换的过程。一般来说终端的source端口都是用ephemeral 端口,随机一个出来,而destination端口都是一些常用的well-known端口。

首先来说TCP(Transmission control protocol)

TCP是面向连接的,即在发送数据之前,两侧终端首先要沟通并建立连接,一旦连接建立之后,才会交换数据

TCP是reliable,接收端必须确认接受它收到了每一个TCP段,如果没确认接受,source端会重新发送

TCP支持重新排序,在TCP header中有sequence号码,因此即使是乱序到达目的地,终端依然会将其重新排为正确顺序。

TCP支持流控制,接收端可以告诉发送端去增加或者减少数据流率。

下图则是TCP字段的header,里面很多东西,CCNA没有要求记下来,大致看一下就好。

TCP有一个知识点叫做三次握手协议,用于建立连接,如下图所示,

source端先发出synchronization flag

destination端收到后发回去acknowledge flage和synchronization flag

source端收到synchronization flag后再发回去一个acknowledge flag

这样两侧都可以发送和接受,三次握手完成,连接成功建立,可以开始发送数据。

而相对应的,终止连接就有四次握手协议,如下图所示

source端先发送finish flag,

destination端收到后回复一个acknowledge flag

再发一个finish flag

source端收到后回复一个acknowledge flag

上述两个图表明了TCP是面向连接的,是可靠的,

下面这个图则展示了TCP是支持乱序重排的,首先是三次握手协议,source端发给destination端一个synchronization flag,这个flag的sequence号码假设是10,然后destination端收到后会发回去synchronization flag,和acknowledge flag,seq的号码假设是50,而ack的号码则是11。

这里注意一下,ack的号码并不是和发过来的seq号码一样,而是和接下来的一条一样。这种机制称为forward acknowledgement.

Forward asknowledgement 用来表示和终端所期待的下一条字段的号码。

假如出现了下图的情况,由于destination端没有发回来ack22,所以source端会不断的发seq21字段。

这里插播一条常见的DDOS攻击只是,DDoS就是有人恶意向服务器发syn flag,然后服务器收到后再发回去ack 和 syn flag,但是攻击者不去回应该条syn,服务器会尝试再次或者多次重新发送。如果只是一条则没所谓,如果攻击者不断地这么搞,服务器则会使用大量资源来处理重新发送等,这样正常客户端的请求就会受到影响。通常表现为打不开,连不上,非常卡。

注意:现实情况下每次seq增加不一定是1,其实也不一定是10,50这种

之前还讲到TCP支持流控制,如下图所示,发送端连续发了3个seq,然后接收端回复ack,发送端会继续增加流量,越大越好,直到ack这里显示开始有部分seq丢失,需要重发。减少的原理也是一样。

接下来我们说UDP(User datagram protocol)

和TCP相反,UDP不是面向连接,不提供可靠连接,不支持乱序重排,不支持流控制,header也比TCP简单得多,小得多。

TCP比UDP更加可靠,但是也意味着更大的数据开销,包会更大

使用TCP还是UDP要取决于实际的应用,比如一些可靠性连接就需要TCP,而一些实时音视频就需要UDP

下图是一个简单的对比

下图则是一些常见端口号

YouTube player

YouTube player

——————————————————-分隔符——————————————————————-

——————————————————-分隔符——————————————————————-

——————————————————-分隔符——————————————————————-

——————————————————-分隔符——————————————————————-

——————————————————-分隔符——————————————————————-

——————————————————-分隔符——————————————————————-

——————————————————-分隔符——————————————————————-

——————————————————-分隔符——————————————————————-

——————————————————-分隔符——————————————————————-

——————————————————-分隔符——————————————————————-

Day 30 Anki Flashcard下载:https://drive.google.com/file/d/1TEkE63GXIV0em897VkxG7deyqpg0X0JF/view?usp=sharing

今天的课程没有Cisco Packet Tracker的内容


Chao

一个三天打鱼两天晒网的博主 拖延症严重患者 干啥啥不行,学啥啥不会

0 条评论

发表回复

Avatar placeholder