计算机网络

计算机网络从网络覆盖范围上,可以分为局域网、广域网与城域网

广域网内部通常使用多个结点交换机相互连接;
局域网内部则有多种形式如总线型、星型、环形,局域网和广域网两者之间使用路由器连接,实现异构网络互联。

双绞线由两个具有绝缘保护层的铜导线按一定密度互相绞在一起组成,降低信号干扰的程度。
绞合可以减少对相邻导线的电磁干扰。为了进一步提高抗电磁干扰能力,可在双绞线的外面再加上一个由金属丝编织成的屏蔽层,即屏蔽双绞线(STP),无屏蔽层的双绞线就称为非屏蔽双绞线(UTP)

计算机网络中的常见硬件设备介绍:

物理层:

实现网络互连的主要设备有中继器和HUB(集线器)
中继器的主要功能是对接收到的信号进行再生整形放大以扩大网络的传输距离;
集线器在此基础上将所有的节点集中在以它为中心的节点中,可组成星型拓扑结构。

数据链路层:

实现网络互联的主要设备有二层交换机和网桥
交换机是一种基于MAC识别,能完成封装转发数据包功能的网络设备。它可以“学习”MAC地址,并把其存放在内部地址表中,当一个数据帧的目的地址在MAC地址表中有映射时,它被转发到连接目的节点的端口而不是所有端口。 交换机将局域网分为多个冲突域,每个冲突域都是有独立的宽带,因此大大提高了局域网的带宽。
网桥是数据链路层互联的设备,在网络互联中可起到数据接收、地址过滤与数据转发的作用,可用来实现多个不同网络系统之间的数据交换。

网络层:

实现网络互连的主要设备有三层交换机和路由器。路由器用于连接多个逻辑上分开的网络,具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网。

传输层(包括传输层)以上:

实现网络互连的设备有网关。网关在网络层以上实现网络互连,用于两个高层协议不同的网络互连。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。

图片说明

应用层

7.1 DNS(Domain Name System,域名系统)

DNS是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 端口 53。当前,对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符。
域名 ::= {<三级域名>.<二级域名>.<顶级域名>},如:blog.huihut.com

7.2 FTP(File Transfer Protocol,文件传输协议)

FTP是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式,使用 TCP 数据报,提供交互式访问,双向传输。
TFTP(Trivial File Transfer Protocol,简单文件传输协议)一个小且易实现的文件传输协议,也使用客户-服务器方式,使用UDP数据报,只支持文件传输而不支持交互,没有列目录,不能对用户进行身份鉴定

  • TP需要建立双重连接

    一个控制连接,一个是数据连接。
    控制连接用于传输FTP的控制命令和服务器的回送信息;
    数据连接用于数据的传输,完成文件内容的传输

21 控制端口
20 数据端口

7.3 TELNET

TELNET 协议是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。

7.4 HTTP(HyperText Transfer Protocol,超文本传输协议)

HTTP是用于从 WWW(World Wide Web,万维网)服务器传输超文本到本地浏览器的传送协议。

协议格式

HTTP请求报文与响应报文格式
请求报文包含三部分:

请求行:包含请求方法、URI、HTTP版本信息
请求首部字段
请求内容实体

响应报文包含三部分:

状态行:包含HTTP版本、状态码、状态码的原因短语
响应首部字段
响应内容实体

请求方法

图片说明

常见http首部字段

通用首部字段(请求报文与响应报文都会使用的首部字段)

Date:创建报文时间
Connection:连接的管理
Cache-Control:缓存的控制
Transfer-Encoding:报文主体的传输编码方式

请求首部字段(请求报文会使用的首部字段)

Host:请求资源所在服务器
Accept:可处理的媒体类型
Accept-Charset:可接收的字符集
Accept-Encoding:可接受的内容编码
Accept-Language:可接受的自然语言

响应首部字段(响应报文会使用的首部字段)

Accept-Ranges:可接受的字节范围
Location:令客户端重新定向到的
URI Server:HTTP服务器的安装信息

实体首部字段(请求报文与响应报文的的实体部分使用的首部字段)

Allow:资源可支持的HTTP方法
Content-Type:实体主类的类型
Content-Encoding:实体主体适用的编码方式
Content-Language:实体主体的自然语言
Content-Length:实体主体的的字节数
Content-Range:实体主体的位置范围,一般用于发出部分请求时使用

Q.当你输入一个网址/点击一个链接,发生了什么?(以为例)

1.点击网址后,应用层的DNS协议会将网址解析为IP地址;
DNS查找过程:浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存(hosts文件)中是否有这个域名对应的DNS解析结果。若还没有,此时会发送一个数据包给DNS服务器,DNS服务器找到后将解析所得IP地址返回给用户。

2.在应用层,浏览器会给web服务器发送一个HTTP请求;
请求头为:GET

3.在传输层,(上层的传输数据流分段)HTTP数据包会嵌入在TCP报文段中;
TCP报文段需要设置端口,接收方(百度)的HTTP端口默认是80,本机的端口是一个1024-65535之间的随机整数,这里假设为1025,这样TCP报文段由TCP首部(包含发送方和接收方的端口信息)+ HTTP数据包组。

4.在网络层中,TCP报文段再嵌入IP数据包中;
IP数据包需要知道双方的IP地址,本机IP地址假定为192.168.1.5,接受方IP地址为220.181.111.147(百度),这样IP数据包由IP头部(IP地址信息)+TCP报文段组成。

5.在网络接口层,IP数据包嵌入到数据帧(以太网数据包)中在网络上传送;
数据帧中包含源MAC地址和目的MAC地址(通过ARP地址解析协议得到的)。这样数据帧由头部(MAC地址)+IP数据包组成。

6.数据包经过多个网关的转发到达百度服务器,请求对应端口的服务;
服务接收到发送过来的以太网数据包开始解析请求信息,从以太网数据包中提取IP数据包—>TCP报文段—>HTTP数据包,并组装为有效数据交与对应线程池中分配的线程进行处理,在这个过程中,生成相应request、response。

7.请求处理完成之后,服务器发回一个HTTP响应;
请求处理程序会阅读请求及它的参数和cookies。它会读取也可能更新一些数据,并将数据存储在服务器上。处理完毕后,数据通过response对象给客户输出信息,输出信息也需要拼接HTTP协议头部分,关闭后断开连接。断开后,服务器端自动注销request、response对象,并将释放对应线程的使用标识(一般一个请求单独由一个线程处理,部分特殊情况有一个线程处理多个请求的情况)。
响应头为:HTTP/1.1 200 OK

8.浏览器以同样的过程读取到HTTP响应的内容(HTTP响应数据包),然后浏览器对接收到的HTML页面进行解析,把网页显示出来呈现给用户。
客户端接收到返回数据,去掉对应头信息,形成也可以被浏览器认识的页面HTML字符串信息,交与浏览器翻译为对应页面规则信息展示为页面内容。

7.5 SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)

SMTP是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。它是在 Internet 传输 Email 的标准,是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过 Telnet 程序来测试一个 SMTP 服务器,SMTP 使用 TCP 端口 25。

7.6 DHCP(Dynamic Host Configuration Protocol,动态主机设置协议)

DHCP是一个局域网的网络协议,使用 UDP 协议工作,主要有两个用途:
用于内部网络或网络服务供应商自动分配 IP 地址给用户
用于内部网络管理员作为对所有电脑作中央管理的手段

7.7 SNMP(Simple Network Management Protocol,简单网络管理协议)

SNMP构成了互联网工程工作小组(IETF,Internet Engineering Task Force)定义的 Internet 协议族的一部分。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。

传输层

支持的协议:

  • TCP(Transmission Control Protocol,传输控制协议)
  • UDP(User Datagram Protocol,用户数据报协议)

应用层协议端口号

TCP

TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,其传输的单位是报文段。

特征:

面向连接
只能点对点(一对一)通信
可靠交互
全双工通信
面向字节流

TCP如何保证可靠传输?

确认和超时重传
数据合理分片和排序
流量控制
拥塞控制
数据校验

TCP报文结构
图片说明

TCP首部
图片说明

  • 状态吗

    ACK:确认比特(Acknowledge)。只有当 ACK=1 时确认号字段才有效,代表这个封包为确认封包。当 ACK=0 时,确认号无效。
    SYN:同步比特(Synchronous),SYN 置为 1,就表示这是一个连接请求或连接接受报文,通常带有 SYN 标志的封包表示『主动』要连接到对方的意思
    FIN:终止比特(Final),用来释放一个连接。当 FIN=1 时,表明此报文段的发送端的数据已发送完毕,并要求释放传输连接

流量控制

概念:流量控制(flow control)就是让发送方的发送速率不要太快,要让接收方来得及接收。
方法:利用可变窗口进行流量控制

图片说明

拥塞控制

概念:拥塞控制就是防止过多的数据注入到网络中,可以使网络中的路由器或链路不致过载。

解决方法:

慢启动( slow-start )
拥塞避免( congestion avoidance )
快重传( fast retransmit )
快恢复( fast recovery )
图片说明

TCP拥塞控制流程图
图片说明

TCP建立连接:三次握手

图片说明

TCP 建立连接全过程解释:

1.客户端发生SYN给服务器,表示客户端向服务器请求建立连接;
2.服务端收到客户端的SYN,并回复SYN+ACK给客户端(同意建立连接);
3.客户端收到来自服务器的SYN+ACK后,回复ACK给服务端(表示客户端收到了服务端发的同意报文);
4.服务端收到客户端的ACK,连接已建立,可以进行数据传输。

建立连接的详细过程:

a.B的TCP服务器进程首先创建传输控制块TCB,准备接受客户进程的连接请求。然后服务器进程就处于LISTEN(收听)状态,等待客户的连接请求。如有,就做出响应。
b.A的TCP客户进程也是首先创建传输控制模块TCB,然后向B发出连接请求报文段,这时首部中的同步位SYN=1,同时选择一个初始序号seq=x。TCP规定,SYN报文段(即SYN=1的报文段)不能携带数据,但是要消耗一个序号。这时,TCP客户进程进入SYN-SENT(同步已发送)状态。
c.B收到连接请求报文段后,如同意建立连接,则向A发送确认。在确认报文段中应把SYN和ACK位都置1,确认号是ack=x+1,同时也为自己选择一个初始序号seq=y。注意:这个报文段也不能携带数据,但同样要消耗一个序号。这时TCP服务器进程进入SYN-RECV(同步收到)状态。
d.TCP客户进程收到B的确认后,还要向B给出确认。确认报文段的ACK置1,确认号ack=y+1,而自己的序号seq=x+1。TCP标准规定,ACK报文段可以携带数据。但如果不携带数据则不消耗序号。在这种情况下,下一个数据报文段的序号仍然是seq=x+1。这时,TCP的连接已经建立,A进入ESTABLISHED(已建立连接)状态。当B接收到A的确认后,B也进入ESTABLISHED(已建立连接)状态。

TCP为什么要进行三次握手?

  • 因为信道不可靠,而 TCP 想在不可靠信道上建立可靠地传输,那么三次通信是理论上的最小值。(而 UDP 则不需建立可靠传输,因此 UDP 不需要三次握手)
  • 因为双方都需要确认对方收到了自己发送的序列号,确认过程最少要进行三次通信
  • 为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误

TCP断开连接:四次挥手

图片说明

TCP 断开连接全过程解释:

1.客户端发送 FIN 给服务器,说明客户端不必发送数据给服务器了(请求释放从客户端到服务器的连接);
2.服务器接收到客户端发的 FIN,并回复 ACK 给客户端(同意释放从客户端到服务器的连接);
3.客户端收到服务端回复的 ACK,此时从客户端到服务器的连接已释放(但服务端到客户端的连接还未释放,并且客户端还可以接收数据);
4.服务端继续发送之前没发完的数据给客户端;
5.服务端发送 FIN+ACK 给客户端,说明服务端发送完了数据(请求释放从服务端到客户端的连接,就算没收到客户端的回复,过段时间也会自动释放);
6.服务端收到客户端的 ACK 后,断开从服务端到客户端的连接

释放连接的详细过程:

a.A和B都处于ESTABLISHED状态,A的应用进程首先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。A把连接释放报文段首部的FIN置1,其序列号seq=u,它等于前面已经传送过的数据的最后一个字节的序号加1。这时,A进入FIN-WAIT-1(终止等待1)状态,等待B的确认。注意:TCP规定:FIN报文段即使不携带数据,它也会消耗一个序号。
b.B收到连接释放报文段后即发出确认,确认号是ack=u+1,而这个报文段自己的序号是v,等待B前面已经传送过的数据的最后一个字节的序号加1。然后B就进入CLOSE-WAIT(关闭等待)状态。TCP服务器进程这时应通知高层应用进程,因而从A到B这个方向的连接就释放了,这时的TCP连接处于半关闭状态,即A已经没有数据要发送了,但B若发送数据,A仍要接收。也就是说,从B到A这个方向的连接并没有关闭,这个连接可能会持续一段时间。
c.A收到来自B的确认后,就进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文段。如果B已经没有要向A发送的数据,其应用进程就会通知TCP释放连接。这时B发出的连接释放报文段必须使FIN=1。现假定B的序号为w(在半关闭状态B可能又发送了一些数据)。B还必须重复上次已经发送过的确认号ack=u+1。这时,B就进入LAST-ACK(最后确认状态),等待A的确认。
d.A在收到B的释放连接报文段后,必须对此发出一个确认。在确认报文段中把ACK置1,确认号ack=w+1,而自己的序号是seq=u+1(根据TCP标准,前面发送过的FIN报文段要消耗一个序号)。然后经过时间等待计时器(TIME-WAIT)设置的时间2MSL后,A才进入到CLOSED状态。时间MSL叫做最长报文段寿命

  • Q2:TCP 为什么要进行四次挥手?

    因为 TCP 是全双工模式,客户端请求关闭连接后,客户端向服务端的连接关闭(一二次挥手),服务端继续传输之前没传完的数据给客户端(数据传输),服务端向客户端的连接关闭(三四次挥手)。所以 TCP 释放连接时服务器的 ACK 和 FIN 是分开发送的(中间隔着数据传输),而 TCP 建立连接时服务器的 ACK 和 SYN 是一起发送的(第二次握手),所以 TCP 建立连接需要三次,而释放连接则需要四次。

  • Q3:为什么 TCP 建立连接时可以 ACK 和 SYN 一起发送,而断开连接时则 ACK 和 FIN 分开发送呢?(ACK 和 FIN 分开是指第二次和第三次挥手)

    因为客户端请求释放时,服务器可能还有数据需要传输给客户端,因此服务端要先响应客户端 FIN 请求(服务端发送 ACK),然后数据传输,传输完成后,服务端再提出 FIN 请求(服务端发送 FIN);而连接时则没有中间的数据传输,因此连接时可以 ACK 和 SYN 一起发送。

  • Q4:为什么客户端断开连接时,最后需要 TIME-WAIT 等待 2MSL 呢?

    1.为了保证客户端发送的最后一个 ACK 报文能够到达服务端。若未成功到达,则服务端超时重传 FIN+ACK 报文段,客户端再重传 ACK,并重新计时。
    2.防止已失效的连接请求报文段出现在本连接中。TIME-WAIT 持续 2MSL 可使本连接持续的时间内所产生的所有报文段都从网络中消失,这样可使下次连接中不会出现旧的连接报文段。

UDP

UDP是 OSI(Open System Interconnection 开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,其传输的单位是用户数据报。

特征:

无连接
尽最大努力交付
面向报文
没有拥塞控制
支持一对一、一对多、多对多的交互通信
首部开销小

UDP报文结构
图片说明

对比TCP、UDP

TCP面向连接、UDP是无连接的;
TCP提供可靠的服务、也就是说,通过TCP连接传输的数据是无差错、不丢失、不重复且按序到达;UDP尽最大努力交付,即不保证可靠交付
TCP的逻辑通信信息是全双工的可靠信息;UDP则是不可靠信息
每一条TCP连接只能是点对点的;UDP支持一对多、多对一、多对多的交互通信
TCP面向字节流(可能会出现黏包问题),实际上是TCP白数据看成一连串无结构的字节流;UDP是面向报文的(不会出现黏包问题)
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
TCP首部开销20字节;UDP的首部开销小,只有8字节


网络层

  • IP(Internet Protocol,网际协议)是为计算机网络相互连接进行通信而设计的协议。
  • ICMP(Internet Control Message Protocol,网际控制报文协议)
  • IGMP(Internet Group Management Protocol,网际组管理协议)

IP地址

IP数据报格式:

图片说明

IP地址与子网掩码

1.IP地址:Internet上每台主机都必须有一个唯一的地址以区别于其他主机,这个地址就是Internet地址,也称作IP地址;IPv4(第四版本的IP协议)是构成现今互联网技术的基石协议;

2.IP地址的构成:IP地址由32位二进制构成,共约40亿个,由网络地址和主机地址构成;一个IP地址分为四段:a.b.c.d ,段与段之间用原点分开。IP地址表示方法:二进制形式和点分十进制形式

分类:5类(A类地址,B类地址,C类地址,D类地址,E类地址)

图片说明

A类IP地址:
以0开头,前8位为网络地址,后24位为主机地址
1.0.0.0 — 127.255.255.255
(0不行,127为环回地址也不行)

B类IP地址:
以10开头,前16位为网络地址,后16位为主机地址
128.0.0.0 — 191.255.255.255

C类IP地址:
以110开头,前24位为网络地址,后8位为主机地址
192.0.0.0 — 223.255.255.255

IPv6(第六版IP协议):

一个IP地址由128位二进制组成,采用冒分16进制

5.特殊的IP地址:

a.专用IP地址:
三类网络号,这些地址不会被Internet分配因此也不能被路由。

A类:10.0.0.010.255.255.255 (长度相当于1个A类IP地址)
B类:172.16.0.0
172.31.255.255 (长度相当于16个连续的B类IP地址)
C类:192.168.0.0~192.168.255.255 (长度相当于256个连续的C类IP地址)

b. 特殊IP地址:

0.0.0.0 是全零网络代表默认网络,帮助路由器发送路由表中无法查询的包。如果设置了全零网络路由,路由器中无法查询的包都会被送到全零网络的路由中去;

127.0.0.1 称作回送地址,属于环回地址,IP从127.0.0.0到127.255.255.255都将环回到本地主机中;

255.255.255.255 限制广播地址,对本机来说,这个地址指本网段内(同一广播域)所有主机;

子网掩码

是一个32位二进制的值,可以将IP地址分离出网络地址和主机地址,采用点分十进制的形式。子网掩码不能单独存在它必须结合IP地址一起使用。

子网掩码的长度也是32位。左边是网络位,用二进制数字1表示,1的数目等于网络位的长度;右边是主机位用2进制数字0表示,0的数目等于主机位的长度;这样做的目的是为了让掩码与IP地址做与运算时用0遮住原主机数,而不改变网络段的数字;而且很容易通过0的位数确定子网的主机数;将32位IP地址与32位的子网掩码各位进制进行 '与' 运算,得到的是该IP地址的网络地址;

用途

子网掩码可以判断两台计算机是否属于同一网段,将计算机10进制的IP地址和子网掩码转换为2进制的形式,然后进行‘与’运算,如果网络地址是相同的,那么两台计算机就属于同一网段

分为缺省子网掩码和自定义子网掩码

a.缺省(默认)子网掩码:即为划分子网,对应的网络号都是1,主机号位都是0;
A类网络缺省(默认)子网掩码:255.0.0.0
B类网络缺省(默认)子网掩码:255.255.0.0
C类网络缺省(默认)子网掩码:255.255.255.0

b.自定义子网掩码是将一个网络划分为几个子网,需要每一段使用不同的网络号或者子网号,实际上我们可以认为是将主机号分为两个部分:子网号和子网主机号。形式如下:
1.未做子网划分的IP地址:网络号+主机号
2.做子网划分的IP地址:网络号+子网号+子网主机号。也就是说,IP地址在子网划分后,以前的主机号一部分给了子网号,剩下的是子网主机号;

子网掩码通常有两种格式的表示方式:

点分十进制格式,如:255.255.255.128
IP地址后面加上‘/’符号以及1-32位的数字,其中1-32的数字表示子网掩码中网络标识位的长度;例如:192.168.1.1/24的子网掩码也可以表示为255.255.255.0

ICMP网际控制报文协议

报文格式:
图片说明

应用:

  • PING(Packet InterNet Groper,分组网间探测)测试两个主机之间的连通性
  • TTL(Time To Live,生存时间)该字段指定 IP 包被路由器丢弃之前允许通过的最大网段数量

内部网关协议

  • RIP(Routing Information Protocol,路由信息协议)
  • OSPF(Open Sortest Path First,开放最短路径优先

外部网关协议

  • BGP(Border Gateway Protocol,边界网关协议

IP多播

  • IGMP(Internet Group Management Protocol,网际组管理协议)
  • 多播路由选择协议

***和NAT

  • ***(Virtual Private Network,***)
  • NAT(Network Address Translation,网络地址转换

路由器

是连接因特网中的各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按照前后顺序发送信号。连接不同的网络,所谓不同的网络就是网络地址不同;
路由器工作在IP协议网络层,用于实现子网之间转发数据,路由器一般包含多个网络接口,包括局域网和广域网接口,每个网络接口连接不同的网络;
路由器记录着每个网络端口连接的网络信息;
路由器中还包含路由表:记录了去往不同的网络地址应该送往的端口号;

工作流程:

数据包送到路由器后,通过数据包首部的目的主机IP地址和子网掩码计算出网络地址,即目的主机所在的网络,查找当前路由器的路由表,选择端口进行转发;下一台IP路由器收到数据包后继续转发,直到目的地;路由转发策略称为路由选择

路由器和交换机之间的主要区别是:
交换机发生在OSI参考模型的第二层(数据链路层),而路由器发生在第三层(网络层)。路由器是不同网络之间相互连接的枢纽,路由器构成了Internet的骨架;路由器具有判断网路地址,选择IP路径的功能

路由表

分类

静态路由表:由系统管理员事先设定好的路由表;
动态路由表:路由器根据网络系统的运行情况动态调整的路由表;

包含:

  • 网络 ID(Network ID, Network number):就是目标地址的网络 ID。
  • 子网掩码(subnet mask):用来判断 IP 所属哪个子网络
  • 下一跳地址/接口(Next hop / interface):就是数据在发送到目标地址的旅途中下一站的地址。其中 interface 指向 next hop(即为下一个 route)。一个自治系统(AS, Autonomous system)中的 route 应该包含区域内所有的子网络,而默认网关(Network id: 0.0.0.0, Netmask: 0.0.0.0)指向自治系统的出口。
  • 根据应用和执行的不同,路由表可能含有如下附加信息:
    花费(Cost):就是数据发送过程中通过路径所需要的花费
    路由的服务质量
    路由中需要过滤的出/入连接列表

分组转发算法

1)数据报首部提取目的主机的IP地址,得到目的网络地址N;

2)若N是此路由器临近的网络,直接交付;否则执行3);

3)若路由表中有目的地址D的路由,则吧数据报传送给下一跳路由器;否则4)

4)若路由表中有目的网络N的路由,则吧数据报传送给下一跳路由器;否则5)

5)若路由表中有默认路由,则传到默认路由;否则6)

6)报告转发分组出错

数据链路层

  • ARP(Address Resolution Protocol,地址解析协议)
    ARP协议用于将网络中的IP地址解析为Mac地址以保证通信的顺利进行。

主要信道:

点对点信道
广播信道

点对点信道

数据单元:帧

三个基本问题:

封装成帧:把网络层的 IP 数据报封装成帧,SOH - 数据部分 - EOT
透明传输:不管数据部分什么字符,都能传输出去;可以通过字节填充方法解决(冲突字符前加转义字符)
差错检测:降低误码率(BER,Bit Error Rate),广泛使用循环冗余检测(CRC,Cyclic Redundancy Check)

点对点协议(Point-to-Point Protocol):用户计算机和 ISP 通信时所使用的协议

广播信道

硬件地址(物理地址、MAC 地址)
MAC地址长度为6字节(48比特),由IEEE的注册管理结构RA进行管理分配。
作用:MAC地址是计算机的唯一标识,在数据链路层中,交换机通过识别MAC地址进行数据包的传输

单播(unicast) 帧(一对一):收到的帧的 MAC 地址与本站的硬件地址相同
广播(broadcast)帧(一对全体):发送给本局域网上所有站点的帧
多播(multicast)帧(一对多):发送给本局域网上一部分站点的帧

物理层

传输数据的基本单位:比特流0和1

数据传输系统:源系统(源点、发送器) --> 传输系统 --> 目的系统(接收器、终点)
通道:

单向通道(单工通道):只有一个方向通信,没有反方向交互,如广播
双向交替通信(半双工通信):通信双方都可发消息,但不能同时发送或接收
双向同时通信(全双工通信):通信双方可以同时发送和接收信息

通道复用技术:

频分复用(FDM,Frequency Division Multiplexing):不同用户在不同频带,所用用户在同样时间占用不同带宽资源
时分复用(TDM,Time Division Multiplexing):不同用户在同一时间段的不同时间片,所有用户在不同时间占用同样的频带宽度
波分复用(WDM,Wavelength Division Multiplexing):光的频分复用
码分复用(CDM,Code Division Multiplexing):不同用户使用不同的码,可以在同样时间使用同样频带通信

Q

虚电路

虚电路是分组交换的两种传输方式中的一种。在通信和网络中,虚电路是由分组交换通信所提供的 面向连接的通信服务 。在两个节点或应用进程之间建立起一个逻辑上的连接或虚电路后,就可以在两个节点之间依次发送每一个分组,接收端收到分组的顺序必然与发送端的发送顺序一致,因此接收端无须负责在接收分组后重新进行排序

衡量数字通信系统传输质量的指标

衡量数字通信系统传输质量的指标分为两种:
可靠性和有效性指标,有效性主要指标为传输速率,可靠性主要指标误码率或者说是误信率

以太网最小帧长为64B

冲突域

集线器工作在物理层,所有端口在1个广播域和冲突域。
交换机工作在1个广播域,有多少端口有多少冲突域。路由器每个端口都是广播域和冲突域。 广播域是指广播能到达的范围。冲突域是指同一物理线路上节点的集合。

网络-单播、多播(组播)和广播的区别

多天线技术是什么

解释型语言,是在运行的时候将程序翻译成机器语言。

WDM超长距离光传输技术

MIMO系统

白盒测试

主要是检查程序的内部结构、逻辑、循环和路径。
白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。

常用测试用例设计方法有:

  • 逻辑覆盖:以程序的内部逻辑结构为基础,分为语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖等。
  • 基本路径测试:在程序控制流程的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例
全部评论

相关推荐

牛客60022193...:大厂都招前端,他们觉得AI能替代前端,可能他们公司吊打btaj吧
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务