物理层

三大特性:机械【规定连接采用的接口形状和数据】,电气【规定传输二进制位数,电压范围】,功能【指明某电平标识何意义】

数据:传输信息实体【串行传输:1bit按照时间顺序传输。  并行传输:若干bit通过多通信通道同时传输,网卡与芯片之间信息传输】

信号:数据的电气或电磁表现形式,是数据传输过程中存在形式

模拟信号-连续变化的信号。   数字信号-取值仅允许有限的几个数值的信号

码元:是指一个固定时长的信号波形表示的一位K进制数字,是数字信号的计量单位。

速率:数据率,数据传输的速率。表示单位时间内传输的数据量。

—般数据率使用“码元传输速率…波特率”和“信息传输速率…比特率”表示。

带宽:最高数据率

电路交换

在数据传输前,两节点必须建立一条专用的物理通信通道【传输时延小,有序传输没有乱序行为,没有冲突,实用性强。但灵活性差,没有存储能力】

报文交换

数据交换的单位是报文,报文携带有目的地址,源地址等信息。存储-转发方式。

特点:存储接收到的报文,判断其目的地址以选择路径,最后,在下一跳转发设备空闲时,将数据转发给下一跳设备。【无需建立连接设备,可为多个目标服务。但时延大,只适用数子信号】

分组交换【数据报分组交换,虚电路分组交换】

通信双方以分组为单位,用存储-转发机制实现数据交互的適信方式。…包交换

【线路利用率高、简化数据存储过程。加建传输:逐个报文单验选抒链路进行发送,同步进行。减小了数拟出错的几率。   但含要传输额外的信息---每个小的分红都需要添加上控制信息(迎WIP、说HMAC)。而且因为分组是间步传物的,所以可能出现失序、丢失】

数据链路层

网络两个节点间逻辑通道,实现数据传输的硬件和软件加载到物理链路上,形成数据链路

拥有的特征:封装成帧-数据帧长度-帧定界-最大传输单元(MTU)【提高数据帧传输效率,内容数值不能过大】-数据帧编码【首部标志,曼切斯特编码】

介质访问控制层

MAC子层:连接物理硬件【共享介质:半双工通信,令牌通信;非共享介质:以太网组织全双工通信】

LLC子层为逻辑链路提供服务

网络层

特征:逻辑寻址,路由选择,分组转发,转发信息表(FIB表单)

DHCP:动态主机配置协议   C/S架构协议:应用层协议,也用UDP67服务端/68客户端    网络层使用IP协议封装。源IP:0.0.0.0 目IP:255.255.255.255

数据链路层使用以太网协议封装。源MAC:PC发送本数据的网卡的MAC地址 目MAC:全F

交换机特征:记录查看MAC地址,会进行洪泛广播信息

传输方式

单播【offer报文:封装拆解,根据目标IP发送数据包】

广播【request报文:会携带要申请的IP地址】

URL资源定位符=协议+主机+端口+文件名+路径

DNS协议:通过域名解析对应的IP地址【终端请求解析IP用的是UDP,进行区域传输用TCP,一般是服务器之间交互时】

查询方式:递归查询【每一次的请求发起者在变化】,迭代查询【每一次的请求发起者都是自身,但每一次会从对端得到部分信息】

路由器转发原理

路由器是基于数据包中的目的IP地址,查询本地路由表。若表中存在记录项,则无条件按照记学转发。若没有记录,则直接丢弃该数据报文。【前提是,该报文的目的MAC地址是路由嚣本身。】

获取未知路由信息

直连路由:路由器默认生成可用接口直连网段的路由条目

静态路由:网络管理员手工配置的    动志路由:通过运行某种算法计算得出的

传输层

TCP协议【传输控制协议】:一种面向连接的可靠传输协议。数据有序,无丢失

面向连接:数据传输前双方需要建立一条逻辑通道

无面向连接:数据可以自由传输,无需建立逻辑通道

TCP提供全双工通信【TCP首部最短20字节】

发送缓存:存放TCP准备发送的数据,存放已经发送但未收到确认的数据

接收缓存:不安序到达的数据,未被应用程序接收的数据

TCP是面向字节流的,既可以运载信息,也可以建立连接,释放连接和应答

确认序列号:是收到的报文的序列号+收到的数据部分字节大小确认机制:没收到一个发送方发出的数据,都需要回复一个确认报文。

1、表明接收方期望收到发送方发送的下一个字节的序号。

2、代表接收方已经收到了确认序列号之前的所有字节数据。

数据偏移:TCP报文段的数据起始处距离TCP报文段的起始处的距离。其本质是在描述TCP首部大小。

紧急指针:紧急数据会被TCP放置在数据部分的最前方,即从第0个字节开始,而紧急指针是为了表明紧急数据的结束位置。   例如:紧急指针为70,则紧急数据位置为0字节到69字节。

标志位:

• 紧急位URG:报文段中包含紧急数据,是高优先级的数据,应尽快传输,不再缓存队列中排队。

•确认位ACK:当确认位置位1,则确认序列号有意义。在连接连接以后所有传输的报文段都必须把ACK置位1。

• 推送位PSH:接收方应尽快将数据交付给应用程序,不再等待缓存填满再向上提交。

• 复位RST:表明TCP连接中出现错误,必须释放连接,然后重新建立连接

• 同部位SYN:表明这是一个连接请求报文

•终止位FIN:表明发送方数据已完全发送,要求释放连接。

排序机制

最大字节数由MSS控制。该参数是需要在TCP连接握手的过程中,通过前两次SYN报文段来进行参数协商。

如果双方的MSS数值不同,则选择数值较小的作为传输标准。|MSS受到MTU的限制。

MTU:最大传输单元,指的是数据链路层在封装成帧时所允许携带的最大数据量,在以太网当中,MTU数值为1500字节。

MSS:数据段中携带的数据字节数。

MSS===MTU-IP首部-TCP首部

分段:这个操作是由传输层的TCP协议来执行。

分片:这个操作是由网络层的IP协议来执行。

PMTU--路径MTU

在工P报头中,有一个DF学段,该宁段表明了IP报文是否允许被分片,PMTU功能开启后,该字段为工,标识不能分片。此时当需要进行分片是,发现该报文无法分片,设备会丢弃该报文,并向发送源回复一个ICMP报文(数据不可达)

通过序列号字段,保证分段的有序性。将根据序列号的大小,将乱序的报文段进行重组。

确认机制【是TCP保障可靠性的核心点

TCP协议保证对方能够收到本端发送的数据段的方式,就是让对方回复一个确认报文段。这是确认机制的做法。

确认报文是唯一一种不需要被确认的数据段信息。

重传机制

快速传递机制

在TCP中,发送方可以通过接收方的反馈,在超时时间到达前,意识到数据包丢失的现象,并进行重传。这种情况一般出现在接收端收到一个失序报文的情况下。

快速重传机制不是因为RTO时间到达而触发,这种重传机制是以数据包为驱动的一种重传机制。

当接收方意识到自己所期望的报文段丢失,服务器不能调取失序报文,并且不能确认这些报文信息。

因为TCP协议无法直接发送一个否认确认报文(没有办法直接发送一个数据报文段,告诉对端自己哪个报文没有收到),所以,TCP将采用冗余ACK的方式来完成缺失报文通告。

SACK机制-选择确认机制

TCP的确认是累积确认机制,正确接收失序的报文段是不会被接收方逐个确认的。因此,发送方在重传的时

候,需要将冗余ACK报文及之后的报文段都鱼新发送一遍。--导致资源浪费。

选择确认机制,不是所有运行TCP协议的没备都支持的。该机制会在TCP三次握手的前两次SYN报文中进行协商

TCP在可选项字段中,添加了一个变量。该变量中携带的就是自己已经收到的数据信息。

TCP流量控制

滑动窗口:窗口大小可以指定,其实是接收缓存区的大小

窗口关闭:

窗口扩大因子占据3字节大小,取值仅为0-14。是用来将TCP的窗口的值左移的位数,使得原本的窗口值加倍【只能出现在同步报文段中,否则将被忽略。】

TCP拥塞控制机制

流量控制是为控制接收方能来得及接收,拥塞控制是为降低整个网络的堵塞程度

TCP判断网络环境堵塞:数据包确认超时,或收到接收方发送的沉余ACK报文

拥塞窗口:限制字节大小,发送方发出未接收到确认的报文的字节数,必须小于或等于拥塞窗口和接收窗口的最小值。

拥塞控制法:慢启动,拥塞避免【降低窗口增大速率使得网络不容易拥塞】,快速恢复【网络没有发生拥塞,拥塞窗口就会无时无刻增长,出现了就会停止】

延迟确认机制;收到数据以后不立即返回确认报文,而是延迟一段时间。

在没有收到2*MSS的数据为止,不做确认应答。

其他情况,最大延迟0.5秒发送确认应答。

捎带应答:TCP的应答和回执数据可以通过一个数据包发送【延迟确认和捎带应答共同使用】

TCP三次握手:

a发SYN:1及seq:x b发ACK:1及ack:x+1 SYN:1及seq:y a再发ACK:1及ack:y+1 seg:x+1

TCP四次挥手:

a发FIN:1 b发ACK:1 然后不合并发FIN:1      a发ACK:1

TCP面向连接—连接管理【建立连接,数据传输,连接释放】

建立连接

•TCP建立的双方都需要知晓对方的存在

• 要允许双方协议参数协商

• 设备可以为TCP连接分配相应资源(缓存空间)

TCP现定SYN接设置为1的授文段不能携带数据,但是要消耗一个序号。

TCP服务常见的问题

问题一:初始序列号是什么产生的?为什么是随机值,而不是固定值?

初始序列号-2ISN:初始序列号产生是通过源地址、目的地址、源端口。目的端口和一个随机因子通过哈希算法计算得出的。后续又加入了时间因子。

出于安全性考虑,如果被知道了初始序列号,那么很容易可以构造出一个在对方窗口内的序列号。从而伪造出TCP报文,实现TCP会话劫持。

TCP序号绕回:

•重复序号:当序号绕回后,之前已经使用过的序号可能会再次出现,导致接收方错误的将重复的报文段当做新的报文段处理。从而丢弃正常的报文。

•延迟确认:因为延迟确认是收到一定数量的数据后才发送,而序号绕回会导致延迟确认的触发时间延后,从而降低数据传输的效率。

解决思路:使用时间戳选项来增加序号的有效范围。

问题二:什么是时间戳?【时间戳是双向选择,需要建立连接协商】

TCP时间戳-->记录数据报文发送的时间,其中有两个字段,分别为发送方时间:回是时间。

•发送方发送数据时,将本地时间记录在发送方时间中。

•接收方收到数据报文后,将收到的时间戳原封不动的返回给发送方,并在其中记录自己发送报文的时间。

• 发送方收到回应报文后,根据报文中的回显时间字段来判断该报文是否是正确的报文,如果是,则根据该时间计算RTT数,并计算RTO数值。

问题三:是否可以使用“两次握手报文”建立连接

采用三次握手形式,不是因为两次握手无法建立连接,而是为了防止已经失效的连接请求报文奕然又传送到TCP服务端,从而导致服务端回复信息,建立连接,凭空消耗资源。

问题四:三次握手如何阻止历史连接

当客户端发送连接建立请求报文后,因为网络阻塞,导致密户端重新发送一个连接建立请求报文,这两个报文的序列号不同(因为为初始序列号)。

当网络阳塞减小时,可能旧的报文先到达服务端,而导致服务端回复SYN+ACK报文。此时服务端处于同步已接收状态(SYN-RCVD),但是此时对于客户端而言,服务端回复的报文是错误的报文,因为其确认序列号与喜户端将要发送的报文的序列号不匹配,则客户端发送RST报文,断开连接。

当连接断开,服务端恢复到侦听状态,此时客户端发送的第二个连接请求报文到达。之后,正常建立TCP连接。

如果是两次握手,那么服务端在收到日的SYN报文后,会直接进入到连接已建立状态。在该状态意味着已经可以发送数据,可能会存在数据传输。但是又因为此时的连接对于客户端而言时错误的,所以此时服务端传输的数据客户端不会接收。

问题五:如果已经建立了连接,但是客户端突然故障,怎么办?

TCP设计了一个保活计时器。

如果客户端出现故障,服务端不能一直等待下去,因为会白白浪费资源。

服务端没收到一次客户端的请求后都会复位保活计时器,一般为2小时,当保活计时器为0时,服务端主动发送探测报文,并每隔75秒发送一次。如果连续十次报文都没有接收到对端回复,则服务端认为客户端出现故障,关闭连接。

问题六:如果一个TCP连接存在两个客户端,是否可以正常建立连接

可以,TCP支持一对一和一对多连接,为了使一个服务器端能被多个客户端连接我们采用线程的方法,服务器创建一个线程之后,打开的套接字就被线程所继承,线程可以和连接的客户进行通信,而主线程(主服务器)可以继续接受以后的客户连接。

万物互联

数据之间互联计算【互联的管道叫数通网络】

园区:一个城市,除了马路,都是园区。

园区网指的是服务于园区和园区内部组织的网络架构。

园区发展:

第一代:从共享性网络->交换网络。   电子邮件;公告板

第二代:

万维网:www【89年,每一个人都需要接入网络】

• 即时通讯软件

• 想要每个人接入网络,带宽。

将路由器的功能附加到交换机上。三层交换机替代了路由器在园区网内部的地位。

专用集成电路芯片。支持硬件路由查找功能。三层交换机成为全硬件转发模式。

以太网发展爆发期。

SNMP--简单网络管理协议

园区网络可以灵活调整,并且是方便管控的。

三层交换机和路由器的区別

  1. 功能不同

路由器主要功能是路由数据,在路由的基础上增加一些附加功能。NAT三层交换机主要功能是数据交换,增加了一部分路由功能。

  1. 适用环境不同

三层交换机,一股应用在简单的局域网还接中。

路由器,体现在不同类型网络之问的互联。

第三代:

• 实现了多业务融合的园区网络。

。 智能移动终端—>智能手机

• SDN--软件定义网络

第四代:云环境【全世界可通】

园区网三层结构

接入层:提供用户终端接入。二层交换机

汇聚层:流量汇聚地,通常也是终端设备默认网关所在地。冗余【备份】

核心层:实现模块之间流量高速转发

vlan【虚拟局域网】

vlan标签在交换机内部永久携带

将不带VLAN标签的数据帧,即传统以太网数据帧,称为无标记帧。乡终端设备的网卡只能发送和接收无标记数据帧。

交换机在收到无标记顿后,会根据自己接口的VLAN配置,将802.1Q标签插入到无标记帧中,形成标记帧。接下来,交换机依照MAC地址表查询数据顿的目的MAC地址(只查询与VLAN 10相关的表项),从而转发数据。

vlan划分

基于接口划分

。 网络管理员预先给交换机的每个接口分配PVID。

• PVID---Port VLANID--接口的缺省VLAN。

。目前网络中应用最广泛的划分方式。人员或设备流动不大的场累使用。

基于MAC地址划分

根据数据帧中的源MAC地址来划分。

通过网络管理员,提前在交换机上配置MAC地址与VLAN的映射关系表。

划分较为复杂,提高了灵活性。适用于人员或设备经常流动的场景。

基于IP地址划分:根据数据包中的深护和子网掩码进行划分。

基于协议划分:根据数据帧所属的协议类型及封装格式来划分。

基于策略划分:组合划分

基础配置

access类型【通常用于连接终端设备】

该接口类型的VLAN List只会存在一个VLAN信息,并且该VLAN信息等于PVID数值,并且该信息属于U列表。

接收数据:当数据帧携带的VID=PVID,则接收数据。当数据帧携带的VID*PVID,则丢弃数据。   如果收到无标记帧,则将PVID数值添加到数据帧中

发送数据:此时的数据一定是标记帧。因为交换机内部必须携带VLAN标签。只要数据帧中的VID在VLAN列表中存在,那么就可以向外发送,并且剥离VLAN标签。Access向外发数据时,一定是无标记帧。

Trunk类型

Trunk干道在创建时,默认放通van1。默认具备PVID=1。

Trunk类型的接口是可以接收或发送多种不同VLAN的数据信息。经常被用于交换机与交换机之间的连接。

接收数据:

收到一个无标记帧,根据PVID数值,添加标签。如果添加的PVID数值,不再允许列表中,则丢弃数据。一般情况下,PVID数值一定在允许列表。

收到一个标记帧。 将数据帧中的VID与允许列表进行对比,若在允许列表中,则接收数据帧。否则丢弃。

发送数据:发送信息时,首先将VID与允许列表进行对比,若在允许列表中,则可以发送,否则丢弃。

。如果VID在允许列表中,分两种情况

• 在U列表,则将数据帧中的标签剥离发送

•在T列表,不做额外处理,直接发送

Hybrid--混杂接口【华为私有设计的接口类型】

PVID----孩口的缺价VLAN---在接收数帮时,给无标记帧打上标记

tagged---接口允许通过列表,几携带标签

Untagged--按日允许通过列表,几不能携带标签

接收数据:

• 收到一个无标记帧

•根据PVID数值,添加标签。

•如果添加的PVID数值,不再允许列表中,则丢弃数据。

。收到一个标记帧

•将数据帧中的VID与允许列表进行对比,若在允许列表中,则接收数据帧。否则丢弃。

发送信息:

。发送信息时,首先将VID与允许列表进行对比,若在允许列表中,则可以发送,否则丢弃。

。如果VID在允许列表中,分两种情况

•在U列表,则将数据帧中的标签剥离发送

•在T列表,不做额外处理,直接发送

Hybrid类型实际上就是在Trunk类型上进行了修改。

Hybrid类型中U列表中可以存在多个VLAN信息,并且PVID可以不两允许列表中。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐