深入原理64式:20 网络基础总结

目标:
整理网络知识,主要包含如下内容:
1、基础
2、传输层与socket
3、网络层与路由选择
4、数据链路层与网桥
5、应用层

第一部分 基础


1 OSI参考模型各层的作用是什么?分别有什么设备?
1)
OSI参考模型分为: 
应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。
物理层: 考虑在传输媒体上传输数据的比特流
数据链路层: 包含逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)。主要用于分配48比特长的物理地址。
网络层: 对数据包进行路由选择和存储转发。有IP,ICMP,IGMP,RAP,RARP等协议。
传输层: 进程到进程的层次,可以复用和分用。有TCP,UDP,SCTP等。单位:保温或数据段
会话层: 允许不同主机各进程之间的会话,例如失效时从校验点恢复通信。
表示层: 处理两个通信系统中交换信息的标识方式,例如数据压缩与解密。
应用层: 为应用供访问接口,FTP,HTTP等。
2)
物理层: 中继器和集线器
数据链路层: 网桥或交换机
网络层: 路由器
网络层以上: 网关

2 什么是TCP/IP模型?
分为: 
应用层,传输层,网际层,网络接口层。
应用层:高层协议等
传输层: 进程到进程的层次,有TCP和UDP协议。
网际层:定义了分组格式的IP协议
网络接口层:对应OSI中物理层和数据链路层。

第二部分 传输层与socket


1 什么是udp协议?
udp协议是用户数据报协议,无连接,不可靠,不保证数据包到达的先后顺序。
udp客户与服务器不必存在长期关系。实时性较好。

2 什么tcp协议?
传输控制协议,面向连接,可靠(要求对端返回确认),每个字节关联序列号用于排序,
提供流量控制(告诉对端它能接受多少字节数据)。

3 tcp的连接建立与终止的过程是怎么样的?
服务端:
初始化socket,bind(),listen(),accept(),read(),write(),close()
客户端:
初始化socket,connect(),write(),read(),close()
过程:
先调用socket函数返回套接字,将套接字与地址,端口绑定,然后对端口监听,调用
accept阻塞等待客户连接。
此时若客户端调用socket函数,返回套接字,然后连接服务器,连接成功,则建立了连接。

4 请说明三次握手建立连接的过程?为什么不是二次握手?
1)三次握手:
客户端向服务端发送一个同步SYN J;
服务执行确认ACK J+1,并发送一个同步SYN K;
客户端执行确认ACK K+1
客户端                        服务端
                            LISTEN
SYN_SENT    -->SYN J    
            ACK J+1,SYN K<--SYN_RECVD
ESTABLISHED -->ack K+1        
                            ESTABLISHED
        
2)失效请求可能重传到服务端造成错误。
例如:第一次的连接请求因网络原因延迟到达服务器,服务器以为是新的连接,
服务器同意连接并向客户端确认,客户端不予理会,造成服务器陷入死等状态。

5 请说明4次挥手释放连接的过程?四次挥手过程中服务端的哪几种状态,哪几种包?为什么需要四次挥手?
1) 4次挥手是因为TCP的半关闭造成的。因为TCP是全双工的,
每个方向必须单独关闭。
四次挥手具体过程如下:
客户端调用close,发送FIN M字节表示数据发送完毕;
服务端执行被动关闭,对FIN确认ACK M+1,将文件结束符传递给服务端应用进程;
接收到文件结束符的应用进程调用close关闭套接字,也发送一个FIN N;
客户端确认ACK N+1
客户端会进入TIME_WAIT状态,持续时长为2MSL(最长分节生命周期)
2) 服务端的状态有
CLOSE_WAIT(被动关闭),LAST_ACK,CLOSED
有FIN保温,ack报文。
具体如下:
客户端                        服务端
主动关闭FIN_WAIT_1->FIN M
                <-ACK M+1    CLOSE_WAIT(被动关闭)
FIN_WAIT2
                <-FIN N        LAST ACK
TIME_WAIT
                ->ack N+1
                            CLOSED
3) 关闭连接时,仅仅表示对方没有数据发送给你了,
但未必你的所有数据都发送给对方,所以你未必会马上关闭socket,
需要发送数据全部完成后,再发送FIN来表示你没有数据要发送给对方了。
因为对每个FIN保温都需要一次ack握手,所以需要四次挥手。

第三部分 网络层与路由选择


1 ip地址是怎样构成的?分类的ip地址是如何构成的?网络本身是什么?
广播地址是什么?如何计算有多少个主机地址?
1)ipv4地址是32位bit构成,ip地址编码方法分为:
分类的ip地址,子网的划分和CIDR。
2)分类的ip地址=网络号 + 主机号
网络号表示连接的网络,主机号表示主机或路由器在网络终的地址。
A类: 0 + 7位网络地址 + 24位主机地址
B类: 10 + 14位网络地址 + 16位主机地址
C类:110 + 21位网络地址 + 8位主机地址
D类: 1110 + 多目的广播地址(28位)
E类: 11110 + 保留将来使用
3) 网络本身主机号全为0
4) 广播地址主机号全为1
5) 先根据掩码计算主机号的位数n,然后减去主机号全0的网络本身和
主机号全为1的广播地址,即
2^n - 2,其中n为主机号的位数

2 网络地址转换NAT的原理是什么?
网络地址转换可以将内网地址转换为公网地址,对外隐藏内部管理IP地址。
划分出部分IP地址为私有Ip地址。
私有IP网段有
10.0.0.0~10.255.255.255等
因特网上的路由器对目的地址是私有地址的数据包不转发,需要在
专用网的路由器上安装NAT软件,路由器至少有一个外部全球地址。
NAT路由器转发IP数据包时,会更换其IP地址。

3 如何进行子网划分?举一个实际例子?
1)
子网划分的本质就是将主机位中的一部分划分位子网位。
各地址的默认子网掩码:
A类: 255.0.0.0
B类: 255.255.0.0
C类: 255.255.255.0
子网划分的格式时:
A类: 8位 + 子网X位 + 24-X位
B类: 16位 + 子网X位 + 16-X位
C类: 24位 + 子网X位 + 8-X位
3) 使用子网掩码255.255.255.224将C类地址203.67.12.0可以划分成()个子网
224对应1110 0000
所以网络号有24位,子网有3位,主机号有5位。
共有2^3=8个子网
总结:计算全为1的个数减去对应分类IP的网络号个数就是子网个数。

4 什么是无分类编址CIDR?什么是超网?举例?
1) CIDR消除传统A,B,C类网络划分,实现抄网构造的IP地址网络划分方法。
采用网络前缀代替子网和网络号,即ip地址=网络前缀 + 主机号
使用斜线记录, IP地址/网络前缀所占比特数。
2)将网络前缀相同的IP地址组成CIDR地址快,这种地址聚合叫做超网。
3)192.168.10.0/20所能包含主机的最大地址范围是多少
把IP地址中第17到第20bit写出为:
0000 1010
这8位中前4位为前缀,后4为为主机号,
最小是:
192.168.0.1
最大是:
192.168.15.254
注意:
主机号不能全为0或全为1

5 浏览器输入网址后发生了什么?
浏览器向DNS查询url对应ip地址,
浏览器打开tcp连接,向web服务器发送http请求
服务器处理请求,返回html响应,
浏览器接受请求页面源码并渲染,浏览器关闭tcp连接。

6 ping命令输入后发生了什么?
ping命令ICMP回送请求和回答报文的应用。探测主机之间是否可达。
1) ping判断发送的是主机名还是ip地址,解析主机名,转换为ip地址
(DNS过程)
2) ICMP协议打包数据包和机器B的IP地址转交给IP协议层。
3) 若主机A和B在同一个局域网,则调用ARP协议在局域网内
发送ARP请求广播,查找主机B的硬件地址,主机B收到请求,
将本机的硬件地址填充后应答给主机A;主机A发送ICMP数据包到主机B
主机B收到后发送响应的ICMP包。
4) 否则,表示主机A和主机B不在同一个局域网,待补充。


7 什么是静态路由?什么是动态路由?
1)静态路由算法是指管理员手工配置的路由信息。大型和复杂网络不宜采用静态路由。
2)动态路由算法是指路由器上路由表是通过路由器之间彼此交换信息优化出来的。
动态路由算法分为:
距离向量路由算法和链路状态路由算法。


8 距离-向量路由算法是什么?RIP算法的处理过程是什么?
1)所有节点定期将整个路由选择表传递给直接相邻节点。路由选择表包含:
每条路径的目的地,路径的代价(距离)。
最常见的距离向量算法有RIP算法。
2)RIP算法流程如下:
收到相邻路由器发文
该表与原路由表比较
没有目的网络,添加;否则,下一跳地址为X,距离d小于原表中距离,是则更新,不是则不更新。

9 什么是RIP协议?路由表的条目是哪3样?
对相邻路由器发送过来的RIP报文处理过程是怎样的?
为什么要这样处理?请完成下面题目。
1)RIP即Routing Information Protocol,路由信息协议。
2)到目录网络N,距离是d,下一跳路由器是X
3)对相邻路由器发送过来的RIP报文,进行如下处理:

        下一跳地址改为X,距离+1
                |
                |
                V                    N
            路由表没有目的网络N-------------
                |Y                            |
                |                            |
                V                            V        N
            添加条目                下一跳地址是X---------------
                                            |                    |
                                            |Y                    |
                                            V                    V
                                        替换条目        小于路由表中到目的网络N的距离d
                                                                |
                                                                |
                                                                V
                                                            更新
                                                            
若3分钟没有收到相邻路由器的更新路由表,则把相邻路由器标记为不可达,距离设置为16

4)已知路由器R6有如下路由表,现在收到相邻路由器R4发来的路由更新信息,
请更新路由器R6的路由表。
R6路由表如下:
目的网络        距离        下一跳路由器
Net2            3            R4
Net3            4            R5

R4发来的路由更新信息如下:
目的网络        距离        下一跳路由器
Net1            3            R1
Net2            4            R2
Net3            1            直接交付

解:
先设置R4发送过来的路由信息,下一跳设置为本身R4,距离+1,得到如下信息:
目的网路        距离        下一跳路由器
Net1            4            R4
Net2            5            R4
Net3            2            R4
然后按照上述比对法则,对每一行,判断如果没有目的网络,则加入这一行;
否则,如果下一跳路由器与R6相同,则更新这一行;
否则,如果距离d小于R6中对应距离,则更新这一行。
因为,Net1这一行在R6路由信息表没有,则添加一行。
因为到Net2中两者下一跳路由器都是R4,则替换;
因为到Net3中距离减少了,则更新。
最终R6更新后的路由表信息如下:

目的网络        距离        下一跳路由器
Net1            4            R4
Net2            5            R4
Net3            2            R4


10 链路状态路由算法的原理是什么?
要求参与算法的每个节点都有完全网络拓扑信息。
1)主动给测试所有邻接节点的状态
2)定期将链路状态传播给所有其他节点。
典型的链路状态算法有OSPF算法。
节点对更新的网路用dijkstra最短路径算法重新计算路由。
具有较好的规模可伸展性,距离向量路由算法可能遇到路由环路问题。

11 如何计算子网网络号?
1)将子网掩码与IP地址逐位相与,可以得到子网的网络地址。
例如:
ip地址为136.34.5.56,子网掩码是: 255.255.255.0,那么子网的网络号是: 136.34.5.0

12 路由表一行包含哪些内容?
使用子网掩码时路由器的分组转发算法是什么?
请完成如下使用子网时分组转发的题目。
1)路由表中包含的内容有:
目的网络地址    子网掩码    下一跳地址
2)路由器分组转发算法如下:
s1)提取目的IP地址,记为D
s2)对路由器相连的网络逐个检查,用各网的子网掩码与目的IP地址逐位相与,看是否和相应网络地址匹配;
若匹配,直接交付;否则,执行3)
s3)若路由表中有目的地址为D的的特定主机路由,则将分组转发给下一跳路由器,否则,执行4)
s4)对路由表中每一行中子网掩码和D逐位相与,其结果为N,若N与该行的目的网络地址匹配,
则将分组转发给对应下一跳路由地址,否则执行5)
s5)将分组转发给默认路由器,否则报告分组转发出错。
总结:
路由器相连网络->特定主机路由->路由表中每一行->默认路由
3)已知如下的互联网,以及路由器R1中的路由表。现在主机H1向H2发送分组。
试讨论R1收到H1向H2发送的分组后查找路由表的过程。
128.30.33.13
H1                子网1:    网络地址 128.30.33.0
                        子网掩码 255.255.255.128
----------------------------------------------------------------------------
            128.30.33.1        |0
                            |
                            R1
                            |            子网2: 网络地址 128.30.33.128
            128.30.33.130    |1                    子网掩码 255.255.255.128
------------------------------------------------------------------------------
    128.30.33.129    |0                    |    128.30.33.138
                    |                    H2
                    R2
                    |                    子网3:    网络地址 128.30.36.0
    128.30.36.2        |1                            子网掩码 255.255.255.0
--------------------------------------------------------------------------------
                            |    128.30.36.12
                            H3
                            
R1的路由表(未给出默认路由器)
目的网络地址            子网掩码            下一跳
128.30.33.0                255.255.255.128        接口0
128.30.33.128            255.255.255.128        接口1
128.30.36.0                255.255.255.0        R2

解:
提取出目的IP地址为H2的IP地址: 128.30.33.138。
1)H1把本子网的掩码: 255.255.255.128与目的IP 128.30.33.138逐位相与,得到网络:
128.30.33.128,它不等于H1的网络地址 128.30.33.0。
说明H2和H1不在同一个子网。H1不能直接将分组直接交付给H2,必须交给子网上的默认路由器R1,
由R1转发。
2)R1收到分组后,查找路由表中第一行,看这行的网络地址和收到分组的网络地址是否匹配。
用子网1的子网掩码:  255.255.255.128与目的IP 128.30.33.138逐位相与,得到网络 128.30.33.128
和这一行的目的网络地址: 128.30.33.0 不等。
对第二行处理,用子网2的掩码 255.255.255.128和目的IP 128.30.33.138逐位相与,得到网络 128.30.33.128
和这一行的目的网络地址匹配,说明子网2就是分组索要寻找的目的网络。
R1把分组从接口1直接交付给H2。


13 路由表例题
某网络拓扑如图,路由器R1通过接口E1,E2分别连接局域网1和局域网2,
通过接口L0连接路由器R2,并通过路由器R2连接域名服务器与互联网。
R1的L0接口的IP地址是202.118.2.1;
R2的L0接口的IP地址是202.118.2.2,
L1接口的IP地址是130.11.120.1,
E0接口的IP地址是202.118.3.1;
域名服务器的IP地址是202.118.3.2

互联网----L1(130.11.120.1)--R2--L0(202.118.2.2)------------L0(202.118.2.1)--R1--E1(局域网1)
                            |                                                  --E2(局域网2)
                            |
                            E0(202.118.3.1)
                            |
                            |
                            域名服务器(202.118.3.2)

请给出R1的路由表,使其明确包括到局域网1的路由,局域网2的路由,域名服务器的主机路由,互联网的路由

分析:
若子网1: 202.118.1.0/25 分配给局域网1
若子网2: 202.118.1.128/25分配给局域网2

目的网络IP地址            子网掩码            下一跳IP地址            接口
202.118.1.0                255.255.255.128        -                        E1
202.118.1.128            255.255.255.128        -                        E2
202.118.3.2                255.255.255.255        202.118.2.2                L0
0.0.0.0                    0.0.0.0                202.118.2.2                L0

分析:
到互联网的路由实质是一个默认路由,默认路由的目的ip是0.0.0.0,子网掩码也是0.0.0.0
域名服务器是设置特定的路由表项,该路由表项中子网掩码为255.255.255.255。


14 路由器的功能是什么?
分组转发和路由计算。
路由器面向协议,根据网络地址进行操作,;
网桥与高层协议无关。

15 一台主机向另一台主机发送报文的过程是什么样的?
1)主机H1构造源IP和目的IP的数据报,主机H1把本子网的子网掩码和H2的IP地址逐位相与,
若不同,说明H1和H2不在同一个子网,则将数据报传送给数据链路层。
2)主机H1通过ARP协议获取路由器R1对应的MAC地址,将将其作为目的MAC地址,H1的MAC地址作为源MAC地址封装成帧,将帧发送
3)路由器R1收到该帧后,去除帧头和帧尾,得到IP数据包,根据数据报中的目的IP地址查找路由表,若得到下一跳地址为直接相连,
则路由器R1通过ARP协议得到主机H2的MAC地址,并将其作为目的MAC地址,将R1的MAC地址作为源MAC地址,填入有封装IP数据报的帧没然后将帧发送到
对应子网上;主机H2收到帧,去除帧头和帧尾,得到从主机H1的发来的IP数据包。
4)若查找路由表,发现下一跳不是直接相连,则继续转发给真正的下一跳地址,重复上述过程。
总结:
构造IP数据报->计算目的IP地址的子网,若不同,则将数据包转发数据链路层->通过ARP获取路由器的MAC地址,发送帧给路由器->
提取数据报中目的IP地址查找路由表,计算下一跳。


16 什么是ARP协议?工作在哪个层?实现原理是什么?
1) ARP协议,即地址解析协议。
2) 工作在网络层。
3) 实现原理是: 主机A想向本局域网上主机B发送IP数据报,
就在ARP缓存中查看有无主机B的地址,如果有,就找到其硬件地址,
并将硬件地址写入MAC帧并发送给该硬件地址;
如果没有,就通过使用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,
同一个局域网内所有主机收到该请求,主机B收到该请求,就会想主机A发出相应ARP分组,
包含主机B的IP地址和MAC地址映射关系,主机A收到后写入ARP缓存,并发送MAC帧。

17 什么是DHCP协议?工作在哪个层?实现原理是什么?
1)动态主机配置协议,给主机动态分配IP,允许计算机加入新的网络和获取IP地址。
2)工作在应用层,基于UDP。
3)需要IP的主机启动时向DHCP服务器广播发送发现报文,DHCP服务器在数据库查找该
计算机配置信息,若找到,直接返回;否则从服务器IP池中取一个地址分配给该计算机。

18 什么是ICMP协议?工作在哪个层?实现原理是什么?
1)ICMP就是网际控制报文协议,允许主机或路由器报告差错。
2)工作在网络层,是IP层协议。
3) 常用于PING(测试两个主机的连通性,工作在应用层)。PING使用ICMP回送请求和回答报文,
traceroute使用时间超过报文(工作在网络层)。

19 什么是自治系统?什么是内部网关协议?什么是外部网关协议?请画图说明。
1)自治系统是单一技术管理下的一组路由器。一个自治系统的所有网络都属于一个行政单位。
2)内部网关协议即IGP,自治系统内部使用的路由选择协议,例如RIP和OSPF协议。
3)外部网关协议即EGP,若源站和目的站处在不同自治系统中,需要一种协议将路由选择信息
传递到另一个自治系统中。例如BGP-4。
4)
                                            用外部网关协议(例如BGP-4)
自治系统A----------------------->R1-----------------------------------------------R2------自治系统B
用内部网关协议如RIP                                                                            用内部网关协议例如OSPF


20 什么是BGP协议?采用的是什么协议?实现原理是什么?
1)BGP即Border Gateway Protocol边界网关协议,
是不同自治系统路由器之间交换路由信息的协议。
2)采用路径向量路由选择 协议,是应用层协议,基于TCP。
3)每个自治系统选择路由器作为BGP发言人,该BGP发言人与其他自治系统
中BGP发言人交换路由信息,建立TCP连接,交换BGP报文,建立BGP会话,
用会话交换路由信息。

第四部分 数据链路层与网桥


1 什么是网桥?网桥的特点是什么?
什么是交换机?交换机的工作原理是什么?
1)网桥可以连接多个以太网组成更大的以太网。
工作在数据链路层的MAC子层。使以太网的网段成为隔离的碰撞域。
2)网桥特点
具备寻址和路径选择能力,确定帧的传输方向。
优点: 互联不同的局域网,扩大物理范围
缺点: 只适合用户数不多的局域网。
3)交换机工作在数据链路层,相当于多端口网桥,是交换式局域网核心设备。
4)端口之间可建立多个并发连接,实现节点之间并发传输。
每个端口占用的带宽不会因为端口节点数增加而减少。
整个交换机的总带宽会随着端口节点增加和增加。


2 透明网桥的工作原理是什么?
1)从站A出发的帧从某个端口进入网桥,那么从这个端口出发沿相反方向可以把帧传到站A。
2)网桥每接受到一个帧就在转发表中记录其源地址和进入网桥的端口,在转发表中,
将源地址记录在地址栏。
3)转发帧时,根据帧的目的地址在转发表中找到地址作为目的地址和端口转发出去。
通过生成树算法确保源到目的地只有唯一路径。
路由选择过程:
若源LAN与目的LAN相同,丢弃该帧;
若源LAN和目的LAN不同,则转发该帧;
若目的LAN未知,则扩散该帧。

3 源路由网桥的工作原理是什么?
1)主机必须知道网桥的标识和连接到哪个网段上。
2)路由选择由发送帧的源站负责。
3)源站以广播方式向目的地发送发现帧进行探测,
途中的每个网桥都转发次帧,目的站也发送应答帧,途径的网桥将自己的标志记录在应答帧中,
源站选择出最佳路由。

4 网桥例题
5个站点分别连接在3个局域网上,并且用网桥B1和B2连接起来,每个网桥都有两个接口
(1和2)。以后有以下各站向其他的站发送了数据帧:
A发送给E,C发送给B,D发送给C,B发送给A。请填写信息。

--LAN1-------------1--B1--2----------LAN2----------1--B2--2----------LAN3
        |        |                |                            |    |
        A        B                C                            D    E

发送的帧    B1的转发表        B2的转发表        B1的处理(转发?丢弃?登记?)    B2的处理
            地址    接口    地址    接口
A->E        A        1        A        1        转发,登记                    转发,登记
C->B        C        2        C        1        转发,登记                    转发,登记
D->C        D        2        D        2        丢弃,登记                    转发,登记
B->A        B        1                        丢弃,登记                    接收不到该帧

分析:
A->E:    1 登记过程: 连接在同一个局域网的站点B和网桥B1都接收到A发送的帧。
        网桥B1按源地址A查找转发表,发现没有,则把地址A和收到此帧的接口1写入转发表。
        2 转发过程: 发现目的地址E不在B1的转发表中,于是通过除收到该帧的接口1外所有接口
        (现在是接口2)转发该。网桥B2从其接口1接受到这个转发的帧。
        网桥B2按照同样处理过程,先查找源地址A不在B2的转发表中,则记录源地址A+进入B2的接口1。
        然后查找目的地址E不在B2的转发表中,则B2通过除接受到该帧的接口1之外的所有接口(即接口2)
        转发帧。
C->B:    1 查找源地址C不在B1转发表中,则记录C和进入B1的接口2;
        2 查找目的地址B不在B1转发表中,则通过B1的接口1转发;
        3 查找源地址C不在B2的转发表中,则记录C和进入B2的接口1;
        4 查找目的地址B不在B2的转发表中,则通过B2的接口2转发
        
D->C:    1 源地址D不在B2的转发表中,则记录D和进入B2的接口2;
        2 目的地址C在转发表中,但是对应转发接口是1,和现在登记的接口2不相同,需要转发,所以B2是转发和登记;
        3 根据上面B2通过接口1转发,此时B1和C都接受到该帧。
            源地址D不在B1的转发表中,记录D+进入的接口2;目的地址C在B1转发表中,且进入接口是B1的2和转发的接口是B1的2,
            两者一样,所以丢弃。
B->A:    1 源地址B不在B1的转发表中,则记录B和进入的接口1;目的地址A在转发表中,查表知道转发接口是1和进入接口1是同一个,
            则丢弃,无需让B1转发。
        2 因为B1不转发,则B2接受不到该帧。

原理: 
1) 判断是否登记,如何记录登记内容
判断是否登记: 是通过看源地址是否在转发表中出现。
记录的始终是帧的源站,记录的是接受该帧的那个端口(首次进入的那个)。
记录: 源地址 + 进入网桥的接口
2) 判断是否转发
判断是否转发: 是通过查看目的地址是否在转发表中出现。
若A向B发送帧,则查询目的地址,看目的地址B是否在转发表中,如果不在,
就通过除接收到这个帧的接口之外的所有接口转发。
若已经学习到目的物理地址,则只转发只与之对应的端口,若未学习到,则将
帧转发到各个端口。

5 什么是局域网?什么是广域网?
1)局域网,LAN,较小地理范围内链接起来组成的计算机通信网络。
以太网是局域网拓扑实现的一种方式,逻辑拓扑是总线型结构,物理拓扑是星型结构。
2)广域网是指覆盖范围很广的长距离网络,任务是通过长距离运送主机所发送的数据。

6 什么是隧道?实现原理是什么?
1)隧道是网络间传递数据的方式。
将数据帧或包重新封装在新的包头中发送。
2)隧道中可以使用PPTP协议,即点对点隧道协议,
是PPP协议扩展。


参考:
https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E9%9A%A7%E9%81%93/3993106
https://baike.baidu.com/item/%E9%9A%A7%E9%81%93%E6%8A%80%E6%9C%AF/10774268?fr=aladdin

第五部分 应用层


1 http协议原理是什么?
什么是持久连接和非持久连接?
https原理是什么?
两者有什么区别?
1)http即超文本传输协议。定义浏览器怎样向万维网服务器请求文档,
以及服务器怎样把文档传送给浏览器。
采用TCP作为传输层协议。无连接。
包含持久连接和非持久连接。
2)非持久连接,每个网页对象都需要单独建立TCP连接。
持久连接:同一客户和服务器可以继续在这条连接上传送后续HTTP
请求和相应报文。
3)HTTPS,即Hyper Text Transfer Protocol over SecureSocket Laye
是安全为目标的HTTP通道,通过传输加密和身份认证保证安全。
安全基础是SSL。
4)区别是:
HTTPS:HTTP +SSL/TLS,在HTTP上加了一层处理加密信息模块。
传输数据是加密后的数据。
HTTPS原理:
客户端将支持算法列表和用作产生秘钥的随机数发给服务器。
服务器从算法列表中选择一种加密算法,并将它和
包含服务器共用秘钥证书发给客户端,
客户端对服务器证书验证,并获取公钥,产生pre_master_secret随机密码串,并用公钥加密,
将加密后信息发送给服务器。
客户端与服务器端根据 pre_master_secret 以及客户端与服务器的随机数值独立计算出加密和 MAC密钥(参考 DH密钥交换算法)
客户端将所有握手消息的 MAC 值发送给服务器。
服务器将所有握手消息的 MAC 值发送给客户端。


2 ssl协议是什么?包含哪些层?
原理是什么?
1)SSL,即Secure Sockets Layer安全套接层。
为确保网络通信安全的协议。是在传输层和应用层对网络连接加密。
2)包含SSL记录协议和握手协议。
3)
发送方:
对信息分段,进行数据压缩,使用指定MAC算法生成MAC,对数据加密,
添加SSL记录协议的头
接收方:
从SSL记录协议的头中获取信息,解密数据,用指定MAC算法校验MAC,
对数据解压缩,数据重组。


参考:
https://baike.baidu.com/item/ssl/320778?fromtitle=SSL%E5%8D%8F%E8%AE%AE&fromid=4602579&fr=aladdin

3 TLS协议是什么?体系是什么?
原理是什么?
1)TLS,即传输层安全,是SSL的继任者,提供保密性。
2)包含TLS记录协议和握手协议。位于TCP上面。
3)
将数据分段到可处理快,压缩数据,应用MAC,加密;
对接受数据解密,校验,解压缩,重组。


参考:
https://baike.baidu.com/item/TLS%E5%8D%8F%E8%AE%AE/7129331?fr=aladdin

4 什么是ftp协议?ftp协议原理是什么?
1)ftp协议是文件传输协议,用于异构网络中
任意计算机之间传送文件。
2)使用TCP可靠传输服务,包含主进程接受新请求,
从属进程处理单个请求。
使用两个并行TCP连接,控制连接端口21,数据连接20.
控制连接传输控制信息,将请求发送给控制进程。
控制进程收到请求后创建数据传送进程和数据连接,
数据连接用来连接客户和服务器的数据传送进程。


5 DNS协议是什么?域名解析的过程是怎样的?
1)DNS域名系统,将主机名转换为IP地址。
采用CS模型,协议运行在UDP上,53号端口。
2)构造DNS请求报文,以UDP数据包发送
本地域名服务器,可以采用递归查询和递归与迭代结合查询
主机向本地域名服务器采用递归查询:
查询不到,本地域名服务器以DNS客户向根域名服务器查询。
本地域名服务器向根域名服务器查询采用迭代查询:
根域名服务器收到本地域名服务器请求,要么给出IP,
要么告诉本地域名服务器,你下一步应该向哪个顶级域名服务器进行查询。


参考:
王道程序员求职宝典
计算机网络联考复习指导
计算机网络(第5版)
https://blog.csdn.net/QQ2558030393/article/details/90736514
https://blog.csdn.net/myysophia/article/details/81509804
https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E9%9A%A7%E9%81%93/3993106
https://baike.baidu.com/item/TLS%E5%8D%8F%E8%AE%AE/7129331?fr=aladdin
https://baike.baidu.com/item/ssl/320778?fromtitle=SSL%E5%8D%8F%E8%AE%AE&fromid=4602579&fr=aladdin

https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E9%9A%A7%E9%81%93/3993106
https://baike.baidu.com/item/%E9%9A%A7%E9%81%93%E6%8A%80%E6%9C%AF/10774268?fr=aladdin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值