欢迎批评指正
网络层
网络层要素(TCP/IP体系结构):
- 网络层提供的服务与服务特点、
- 网际协议IP,ARP,
- IP地址的编址方式(子网超网等),
- ICMP(ping与traceroute),
- 路由器,路由选择协议(RIP,OSPF,BGP),
- IP多播(IGMP),
- VPN与NAT。
1.网络层提供的服务与服务特点?
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换节点,确保数据及时传送。
特点:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务(网络层不提供服务质量的承诺)。
2.网际协议IP(Internet Protocol)
由于网际协议IP是用来使互联起来的许多计算机网络能够通信的,因此TCP/IP体系中的网络层常常被称为网际层或IP层。使用“网际层”这个名词的好处是强调这是由很多网络构成的互连网络,利用IP协议可以使性能各异的网络在网络层上看起来好像是一个统一的网络。
3.地址解析协议ARP(Address Resolution Protocol)
ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
-
不管网络层使用的是什么协议,在实际网络的链路上传数据帧时,最终还是必须使用硬件地址。
-
每一个主机都有一个ARP高速缓存(ARP cahe) ,里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表。
-
当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可以查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。
4.IP地址的编址方式
-
分类的IP地址
A类地址:以0开头, 第一个字节范围:0~127(1.0.0.0 - 126.255.255.255);
B类地址:以10开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);
C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);
10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255, 192.168.0.0—192.168.255.255。(Internet上保留地址用于内部)
-
子网的划分
划分子网的基本思路
子网掩码:可以找出IP地址中的子网部分 -
无分类编址CIDR(Classless Inter-Domain Routing)(构造超网)
CIDR消除了传统的A类、B类、C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。
CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
IP地址从三级编址(使用子网掩码)又回到了两级编址,如下图
5.网际控制报文协议ICMP(Internet Control Message Protocol)
种类:①ICMP差错报文②ICMP询问报文
- ICMP差错报文种类:
①终点不可达
②时间超过
③参数问题
④改变路由(重定向) - ICMP询问报文种类:
①回送请求和回答
②时间戳请求和应答
应用:PING与Traceroute
- PING(分组网间探测):用来测试两台主机之间的连通性。PING使用了ICMP回送请求和回送回答报文。例:一台PC向新浪的邮件服务器发出四个ICMP回送请求报文,如果服务器正常工作而且响应这个ICMP回送请求报文,那么它就发回ICMP回送回答报文。由于往返的ICMP报文上都有时间戳,因此很容易得出往返时间。
- Traceroute:用于跟踪一个分组从源点到终点的路径。
6.路由器
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
7.路由选择协议(内部网关协议RIP)
工作原理:RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议(RFC 1058),它的中文名称叫做路由信息协议,但很少被使用,RIP是一种分布式的基于距离向量的路由选择协议,要求网络中的每一个路由器都要维护它自己到其他每一个目的网络的距离纪录(最大距离15),是互联网的标准协议,其最大优点就是简单。
特点:
①仅和相邻路由器交换信息
②路由器交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表
③按固定的时间间隔交换路由信息
自治系统中所有节点得到正确的路由选择信息的过程快(收敛快),实现简单,“坏消息传的慢”。
8.内部网关协议OSPF(Open Shortest Path First)
是为克服RIP的缺点开发出来的,原理简单,实现复杂,“Open”指其是公开发表的,使用了Dijkstra提出的最短路径算法SPF。
特征:使用分布式的链路状态协议。
特点(也区别于RIP):
①使用洪泛法向本自治系统中所有路由器发送信息。
②发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
③只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息。区别于RIP无论网络拓扑有无变化,路由器之间都要定期交换路由表的信息。
优缺点:更新过程收敛得快,坏消息不会传的慢
9.外部网关协议BGP
BGP是不同自治系统的路由器之间交换路由信息的协议。
10.网际组管理协议IGMP(Internet Group Management Protocol)
为了使路由器知道多播组成员的信息,需要利用IGMP。
IGMP可分为两个阶段:
第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。
第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。
但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
11.虚拟专用网VPN(Virtual Private Network)
VPN属于远程访问技术,简单地说就是利用公用网络架设专用网络。例如某公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。
12.网络地址转换NAT(Network Address Translation)
NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
运输层
1.简述分用与复用
复用:是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据(当然需要加上适当的首部)。
分用:是指接收方的运输层在剥去报文的首部后能够把这些数据正确交付目的应用进程。
2.简述UDP和TCP的特点和区别
- UDP(User Datagram Protocol):用户数据报协议。
特点:
①无连接的
②尽最大努力交付
③面向报文的
④没有拥塞控制
⑤支持一对一、一对多、多对一和多对多的交互通信
⑥首部开销小
- TCP(Transmission Control Protocol):传输控制协议。
特点:
①面向连接的
②提供可靠交付的服务
③面向字节流
④提供全双工通信
⑤每一条连接只能有两个端点(两个socket)
3.连续ARQ协议
ARQ(Automatic Repeat-reQuest):自动重传请求。
https://blog.csdn.net/jmq_0000/article/details/7299910
4.TCP如何实现可靠传输
-
校验和
-
以字节为单位的滑动窗口(连续ARQ)
-
超时重传的选择:计算往返时间,使用合理的计时器
-
选择确认SACK:对字节流不连续的两个字节块进行确认
5.SACK
SACK:Selective ACK,一种只传送缺少的数据而不重传已经正确到达接受方的数据的方法。
6.流量控制如何实现
流量控制就是让发送方的发送速率不要太快,要让接收方来得及接受。
使用滑动窗口
7.TCP如何实现拥塞控制
TCP的拥塞控制方法
①慢开始
②拥塞避免
③快重传
④快恢复
重要概念:拥塞窗口cwnd,慢开始门限ssthresh,传输轮次,接受窗口rwnd
8.简述三次握手和四次挥手
三次握手:
①连接建立:客户端向服务器发送连接请求报文,带同步位SYN
②数据传送:服务器收到连接请求后,如同意则发回确认,带同步位SYN,ACK
③连接释放:客户端收到确认后向服务器发送确认,带同步位ACK
四次挥手
①客户端请求释放:客户端应用进程向服务器发送连接释放报文,并停止发送数据,置终止控制位FIN为1
②服务器确认释放:服务器收到请求后向客户端发回确认,置同步位SYN为1
③服务器请求释放:服务器没有要向客户端发送数据了,服务器向客户端发送连接释放报文,置FIN为1,同步位SYN为1
④客户端确认释放:应答对服务器的请求,发出确认,在确认报文段置ACK为1。客户端进入TIME-WAIT状态,2MSL后进入CLOSED状态
9.三次握手为什么是三次
防止已失效的连接请求报文突然传送到了B,因而发送错误
已失效的连接请求:假设客户端第一次发送连接请求时,请求滞留在了网络中,客户端迟迟没收到服务器的确认,于是重传连接请求。
后来连接建立了,服务器和客户端交换完了数据,释放了连接。服务器又收到了请求(是之前滞留的请求),而客户端并不想新建连接,此时如果采用两次握手,则客户端到服务器的连接就因这个失效请求而再次被打开,但而客户端一直不传数据,就会造成资源浪费。
10.四次握手能不能是三次
四次挥手区别于三次握手,主要是四次挥手的第二第三次挥手与三次握手的第二次握手区别。三次握手中的第二次握手把连接确认和请求连接的报文段放在了一起进行传送,而四次挥手则把确认释放报文和请求释放报文分开传送(即第二次挥手和第三次挥手),这是因为服务器关闭了客户端到服务器的数据传输后,服务器仍有数据要向客户端进行传送(即你不传数据我了,那好,但是我还要传数据给你)。
11.为什么要等2MSL
①为了保证客户端发送的最后一个ACK报文段能够到达服务器。如果最后一个ACK服务器没有收到,服务器就会以为第三次挥手发送的报文段客户端没有接受,就会超时重传FIN加ACK报文段,而客户端就会在2MSL内收到这个重传的FIN加ACK报文段。接着客户端重传一次确认,重新启动2MSL计时器。
②防止上面提到的“已失效的连接请求报文段”出现在本连接中,客户端发送完最后一个ACK报文段后,在经过时间2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。
应用层
http状态码
https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81/5053660
一个http请求要经过什么
token和session的区别
token和session的区别