一、计算机网络概述
按网络范围分:广域网、城域网、局域网;
根据网络用户:公网、专网。
1.2 计算机网络的层次结构
TCP/IP四层模型与OSI体系结构的比较:
速率:bps=bit/s时延:传输时延、传播时延、排队时延、处理时延往返时间RTT:端到端通信中数据报文往返一次的时间。
二、物理层物理层的功能:连接不同的物理设备,传输比特流。这一层为上层协议传输数据提供了可靠的物理介质。简单来说,物理层保证原始数据可以在各种物理介质上传输。
物理层设备:
信道的基本概念:信道是单向传递信息的介质,通信电路包括发送信道和接收信道。
数据链路层在物理层提供服务的基础上为网络层提供服务,其最基本的服务是将数据从网络层可靠地传输到邻居节点的目标网络层。数据链路层通过不可靠的物理介质提供可靠的传输。
这一层的功能包括:物理地址寻址、数据成帧、流量控制、数据检错重传等。
关于数据链路层的重要知识点:
封装成帧:“帧”是数据链路层数据的基本单位;
透明传输:“透明”是指即使控制字符在帧数据中,也应被视为不存在。也就是说,转义字符ESC被添加在控制字符之前。
错误检测:奇偶校验码,循环冗余校验码
MTU(最大传输单元(Maximum Transmission Unit,MTU),数据链路层的数据帧不是无限的,数据帧的长度受到MTU的限制。
路径MTU:由链路中MTU的最小值决定。
MAC地址:每台设备都有一个唯一的48位MAC地址,用十六进制表示。
以太网协议:这是一种广泛使用的局域网技术,也是一种应用于数据链路层的协议。利用以太网可以完成相邻设备的数据帧传输;
以太网以太网IEEE802.3:
网络层的目的是实现两端系统之间透明的数据传输,具体功能包括寻址和路由、连接建立、维护和终止等。数据交换技术是报文交换(基本被包代替):采用存储转发方式,数据交换单位是报文。
网络层涉及的协议很多,其中最重要的协议,也是TCP/IP-IP协议的核心协议。IP协议非常简单,只提供不可靠和无连接的传输服务。IP协议的主要功能是无连接的数据报传输、数据报路由和差错控制。
用于实现其功能的其他IP协议包括ARP、RARP、ICMP和IGMP。我们将在下一部分总结具体的协议,重点是网络层,如下所示:
路由器相关协议
IP互联网协议是互联网网络层的核心协议。虚拟互联网的出现:实际的计算机网络是复杂的;物理设备通过使用IP协议屏蔽物理网络之间的差异;当网络中的主机使用IP协议进行连接时,不需要关注网络的细节,就形成了虚拟网络。
IP协议使复杂的实际网络成为一个虚拟的互联网络;解决了虚拟网络中数据报传输路径的问题。
其中,版本是指IP协议的版本,占4位,如IPv4、IPv6;第一部分的长度表示IP头的长度,占4位,最大值为15位;总长度代表IP数据报的总长度,占16位,最大值为65535位;TTL表示IP数据报文在网络中的使用寿命,占8位;协议表示IP数据承载的具体数据是什么协议,比如TCP和UDP。
4.2 IP协议的转发流程
4.3 IP地址的子网划分
A类(8个网络号+24个主机号)、B类(16个网络号+16个主机号)和C类(24个网络号+8个主机号)可以用来标识网络中的主机或路由器。D类地址用作组播地址,E类地址保留。
用在私有网络中,多台主机通过一个公共IP访问Internet,它减缓了IP地址的消耗,但增加了网络通信的复杂性。
NAT 工作原理:来自内网的IP数据报将其IP地址替换为NAT服务器拥有的合法公有IP地址,并将替换关系记录在NAT转换表中;
从公网返回的IP数据报根据其目的IP地址搜索NAT转换表,用检索到的内部私有IP地址替换目的IP地址,然后将IP数据报转发到内部网络。
4.5 ARP协议与RARP协议地址解析协议ARP(Address Resolution Protocol):提供网卡(网卡)IP地址与对应硬件地址的动态映射。网络层32位地址可以转换为数据链路层MAC48位地址。
ARP是即插即用的,自动建立一个ARP表,不需要系统管理员配置。
RARP(反向地址解析协议)是指反向地址解析协议,可以将数据链路层的48位MAC48地址转换为网络层的32位地址。
4.6 ICMP协议详解互联网控制消息协议可以报告错误消息或异常情况,ICMP消息封装在IP数据报中。
对路由算法的要求:正确完整,计算尽可能简单,适应网络的变化,稳定公平。
自治系统AS:指一个管理组织下的一组网络设备。AS内部网络自主管理,对外提供一个或多个出入口。自治系统的内部路由协议是内部网关协议,如RIP和OSPF。自治系统外部的路由协议是外部网关协议,如BGP。
静态路由:手动配置,难度和复杂度高;
动态路由:
路由信息协议RIP (应用层],基于距离向量的路由算法,小型AS(自治系统),适用于小型网络;RIP数据包,封装到UDP数据报中。
RIP协议特性:开放式最短路径优先协议OSPF(网络层),基于链路状态的路由选择算法(Dijkstra算法),大规模AS,适用于大规模网络,都直接封装在IP数据报传输中。
OSPF协议优点:与OSPF的比较(路由算法决定其性质):
BGP(边界网关协议)边缘网关协议【应用层】:是运行在AS之间的协议,寻找一个好的路由:第一次交换所有的信息,然后只交换改变的部分,BGP封装到TCP段。
五、传输层第一个端到端,即主机到主机的层次结构。传输层负责将上层数据分段,并提供端到端、可靠或不可靠的传输。此外,传输层必须处理端到端的错误控制和流量控制。
传输层的任务是根据通信子网的特点,最大限度地利用网络资源,提供两端系统会话层之间建立、维护和取消传输连接的功能,负责可靠的端到端数据传输。在这一层,信息传输的协议数据单元称为段或消息。
网络层只根据网络地址将数据包从源节点传输到目的节点,而传输层负责将数据可靠地传输到相应的端口。
有关网络层的重点:
UDP(用户数据报协议)是一个非常简单的协议。
UDP协议的特征:
报头:8B,四个字段/2B[源端口|目的端口| UDP长度|校验和]数据字段:应用数据
5.2 TCP协议详解
Tcp(传输控制协议)是计算机网络中非常复杂的协议。
最大数据段长度:封装在数据段中的应用层数据的最大长度。
TCP标头:
基本原则:
检错:通过编码实现数据包传输过程中的比特错误检测和确认:接收方将接收状态重传反馈给发送方:发送方重新发送接收方没有正确接收的数据的序列号:保证数据按顺序提交给定时器:解决数据丢失问题;
Stop协议:是最简单可靠的传输协议,但是这种协议的信道利用率不高。
ARQ(自动重复请求ARQ)协议:滑动窗口+累积确认,大大提高了信道的利用率。
5.3.1TCP协议的可靠传输基于连续ARQ协议,在某些情况下,重传的效率并不高,一些已经成功接收的字节会被重复发送。
5.3.2 TCP协议的流量控制流量控制:让发送方不要发送太快。TCP协议使用滑动窗口实现流量控制。
拥塞控制和流量控制的区别:流量控制考虑的是点对点流量的控制,而拥塞控制考虑的是全网,是全局的考虑。拥塞控制的方法:慢启动算法+拥塞避免算法。
慢启动和拥塞避免:
快速重传和快速恢复:
TCP三次握手使用说明:
面试官:为什么需要三次握手?
建立连接(三次握手):
第一次:客户向服务器发送连接请求段,建立连接请求控制段(SYN=1),表示发送报文段第一个数据字节的序号为X,这个序号代表整个报文段的序号(SEQ = X);客户端进入SYN_SEND(同步发送状态);
第二次:服务器发回确认消息段,同意建立新的连接确认段(SYN=1),确认序列号字段有效(ACK=1)。服务器告诉客户端消息段的序列号为y(seq=y),表示服务器已经收到客户端X序列号的消息段,准备接受客户端x+1序列号的消息段(ACK _ SEQ = X+1);由服务器监听进入SYN_RCVD(同步接收状态);
第三次:客户确认服务器连接相同。确认序列号字段有效(ACK=1),客户这次的报文段序列号为x+1(seq=x+1),客户期望接受服务器序列号为y+1的报文段(ACK _ seq = y+1);当客户端发送ack时,客户端进入建立状态;当服务收到客户发送的ack时,也进入建立状态;三次握手便携式数据;
释放(四波)
第一次:客户向服务器发送释放连接的消息段,当发送方的数据结束时,请求释放连接(FIN=1),发送的第一个数据字节的序号为x(seq = x);客户端状态从ESTABLISHED进入FIN_WAIT_1(停止等待1状态);
第二次:服务器向客户发送确认段,确认字体大小段有效(ACK=1),服务器发送的数据序号为y(seq=y),服务器期望从客户接收的数据序号为x+1(ACK _ seq = x+1);服务器状态从ESTABLISHED更改为CLOSE _ WAIT客户端收到ACK段后,从FIN_WAIT_1进入FIN _ WAIT _ 2;
第三次:服务器向客户发送释放连接的消息段,请求释放连接(FIN=1),确认字体大小段有效(ACK=1),表示服务器期望接收序列号为x+1的客户数据(ACK _ seq = x+1);表示自身发送的第一个字节的序列号为Y+1(SEQ = Y+1);服务器状态从CLOSE_WAIT变为LAST_ACK(最后确认状态);
第四次:客户向服务器发送确认段,确认字体大小段有效(ACK=1),表示客户发送的数据序列号为x+1(seq=x+1),表示客户期望收到的服务器数据序列号为Y+1+1(ACK _ SEQ = Y+1+1);客户端状态从FIN_WAIT_2变为TIME_WAIT,等待2MSL时间,进入关闭状态;收到最后一个ACK后,服务器进入关闭状态;由LAST _ ACK
为什么我要等2MSL?
为操作系统或网络应用程序提供访问网络服务的接口。应用层要点:
DNS(域名系统)[C/S,UDP,port 53]:解决IP地址复杂难记的问题,存储并完成辖区内主机的域名到IP地址的映射。
域名解析的顺序:
DHCP(动态配置协议):是一种局域网协议,也是使用UDP协议的应用层协议。功能:自动为临时接入局域网的用户分配IP地址。
6.3 HTTP协议详解文件传输协议(FTP):控制连接(端口21):7位ASCII码格式的传输控制信息(连接,传输请求)。会议期间一直开放。
HTTP(超文本传输协议)[TCP,端口80]:是一种可靠的数据传输协议。在浏览器向服务器发送和接收消息之前,会建立一个TCP连接。http使用TCP连接(HTTP本身没有连接)。
HTTP请求消息模式:
6 . 3 . 1 HTTP工作的结构
HTTPS(安全)是一种端口号为443的安全HTTP协议。SSL或TLS基于HTTP协议,提供加密处理数据、认证对方身份和数据完整性保护。
https://blog.csdn.net/Royalic/article/details/119985591的原始链接