作为新手学习计算机网络的学习笔记,仅为自用,欢迎交流,不喜勿喷哦
文章目录
前言
本文是对于计算机网络一些基础知识点的总结,方便后续的回顾。
1.计算机网络的各层协议及作用(五层)
- 物理层(Physical Layer):主要负责传输原始比特流,实现物理介质的传输特性。
- 数据链路层(Data Link Layer):提供可靠的点对点数据传输,通过帧(Frame)进行数据封装和传输。
- 网络层(Network Layer):提供网络互联的功能,实现数据的路由和转发。
- 传输层(Transport Layer):提供端到端的数据传输服务,包括了数据分段、传输控制和错误恢复等功能。
- 应用层(Application Layer):提供特定应用程序之间的通信服务。
2.DNS的工作流程
DNS(Domain Name System,域名系统)是互联网中用于将域名转换为对应IP地址的分布式数据库系统。
其工作流程如下:
- 域名解析请求:用户在浏览器中输入网址,操作系统或浏览器会发起域名解析请求。
- 本地域名服务器查询:本地计算机会查询本地域名服务器(通常由ISP提供)。如果本地域名服务器有相应域名的缓存记录,则直接返回对应的IP地址。如果本地域名服务器没有缓存记录,则会向根域名服务器发送查询请求。
- 根域名服务器查询:根域名服务器存储了顶级域名服务器的IP地址。本地域名服务器收到根域名服务器的响应后,会根据顶级域名发送查询请求到对应的顶级域名服务器。
- 顶级域名服务器查询:顶级域名服务器存储了二级域名服务器的IP地址。本地域名服务器收到顶级域名服务器的响应后,会根据二级域名发送查询请求到对应的二级域名服务器。
- 权威域名服务器查询:二级域名服务器是具有权威性的服务器,它们存储了相应域名下的主机记录(Host Record)。二级域名服务器收到查询请求后,会返回相应的主机记录,包括对应的IP地址。
- 返回响应:本地域名服务器收到权威域名服务器的响应后,会将得到的IP地址缓存,并将IP地址返回给用户的计算机。用户的计算机收到IP地址后,就可以向目标服务器发起HTTP请求,获取相应的网页内容。
- 缓存:本地域名服务器会将获取到的IP地址缓存一段时间,以便下次有相同的查询请求时能够直接返回结果,减少查询时间和网络负载。
3.ARP协议
ARP协议属于网络层的协议,主要作用是实现从IP地址转换为MAC地址。在每个主机或者路由器中都建
有一个ARP缓存表,表中有IP地址及IP地址对应的MAC地址。其工作流程如下:
- ARP请求:
当主机A需要与目标主机B通信时,首先检查本地ARP缓存中是否已经有了B的MAC地址。如果没有,主机A会发送一个ARP请求广播包,该广播包包含了主机A的IP地址和MAC地址,以及目标IP地址(即主机B的IP地址)。 - ARP应答:
当目标主机B收到ARP请求后,会检查其中的目标IP地址是否是自己的IP地址。如果是,则会向主机A发送一个ARP应答包,该应答包包含了目标B的MAC地址。如果目标IP地址不是自己的IP地址,则忽略该请求。 - ARP缓存更新:
主机A收到ARP应答后,会将目标B的IP地址和MAC地址的映射关系保存到本地的ARP缓存中,以便下次通信时直接使用。 - 通信建立:
主机A收到了目标B的MAC地址后,就可以通过数据链路层的协议(如以太网)将数据帧发送给目标B,从而建立通信连接。
4.IP地址和MAC地址的区别
- 层次不同:
IP地址是网络层(第三层)的地址,用于在网络中唯一标识一个设备或主机,支持跨网络通信。
MAC地址是数据链路层(第二层)的地址,用于在局域网内唯一标识一个网络接口,支持局域网内的数据通信。
- 作用范围不同:
IP地址用于在全球范围内唯一标识互联网上的设备或主机。
MAC地址用于在局域网范围内唯一标识连接到局域网上的设备的网络接口。
- 编址方式不同:
IP地址是逻辑地址,由网络号和主机号组成,用于路由器在网络中转发数据包。
MAC地址是物理地址,由厂商分配,通常以十六进制表示,用于在局域网上直接传输数据帧。
- 工作层次不同:
IP地址工作在网络层,用于提供端到端的数据传输。
MAC地址工作在数据链路层,用于提供相邻节点之间的直接通信。
- 更改能力不同:
IP地址可以动态分配和更改,由DHCP(动态主机配置协议)来管理IP地址的分配。
MAC地址通常是固定的,由设备的制造商预先分配给设备,一般情况下不会更改。
5.ping的过程
ping是ICMP(网际控制报文协议)中的一个重要应用,ICMP是网络层的协议。ping的作用是测试两个主机
的连通性。其工作过程:
- 向目的主机发送多个ICMP回送请求报文
- 根据目的主机返回的回送报文的时间和成功响应的次数估算出数据包往返时间及丢包率。
6.TCP与UDP有什么区别
是否面向连接 | 可靠性 | 传输形式 | 传输效率 | 消耗资源 | 首部字节 | |
---|---|---|---|---|---|---|
TCP | 面向连接 | 可靠 | 字节流 | 慢 | 多 | 20~60 |
UDP | 无连接 | 不可靠 | 数据报文段 | 快 | 少 | 8 |
7.TCP协议如何保证可靠传输
主要有校验和、序列号、超时重传、流量控制及拥塞避免等几种方法。
- 校验和:
在发送算和接收端分别计算数据的校验和,如果两者不一致,则说明数据在传输过程中出
现了差错,TCP将丢弃和不确认此报文段。
- 序列号:
TCP会对每一个发送的字节进行编号,接收方接到数据后,会对发送方发送确认应答(ACK
报文),并且这个ACK报文中带有相应的确认编号,告诉发送方,下一次发送的数据从编号多少开始
发。
- 超时重传:
在上面说了序列号的作用,但如果发送方在发送数据后一段时间内(可以设置重传计时
器规定这段时间)没有收到确认序号ACK,那么发送方就会重新发送数据。
这里发送方没有收到ACK可以分两种情况,如果是发送方发送的数据包丢失了,接收方收到发送方
重新发送的数据包后会马上给发送方发送ACK;如果是接收方之前接收到了发送方发送的数据包,
而返回给发送方的ACK丢失了,这种情况,发送方重传后,接收方会直接丢弃发送方冲重传的数据
包,然后再次发送ACK响应报文。
如果数据被重发之后还是没有收到接收方的确认应答,则进行再次发送。此时,等待确认应答的时
间将会以2倍、4倍的指数函数延长,直到最后关闭连接。
- 流量控制:
如果发送端发送的数据太快,接收端来不及接收就会出现丢包问题。为了解决这个问
题,TCP协议利用了滑动窗口进行了流量控制。在TCP首部有一个16位字段大小的窗口,窗口的大
小就是接收端接收数据缓冲区的剩余大小。接收端会在收到数据包后发送ACK报文时,将自己的窗
口大小填入ACK中,发送方会根据ACK报文中的窗口大小进而控制发送速度。如果窗口大小为零,
发送方会停止发送数据。
- 拥塞控制:
如果网络出现拥塞,则会产生丢包等问题,这时发送方会将丢失的数据包继续重传,网
络拥塞会更加严重,所以在网络出现拥塞时应注意控制发送方的发送数据,降低整个网络的拥塞程
度。拥塞控制主要有四部分组成:慢开始、拥塞避免、快重传、快恢复。
8.TCP的三次握手
- 客户端发送连接请求:
客户端发送一个带有SYN(同步序列号)标志位的TCP报文段,指明客户端的初始序列号(ISN)。
- 服务器确认连接请求:
服务器收到客户端发送的TCP SYN报文段后,如果同意建立连接,会发送一个带有SYN和ACK(确认)标志位的报文段,其中ACK确认号为客户端的ISN+1,同时也发送一个自己的初始序列号。
- 客户端确认连接:
客户端收到服务器的SYN+ACK报文段后,会发送一个带有ACK标志位的报文段作为确认,确认号为服务器的ISN+1。
经过以上三次握手,TCP连接就建立起来了,双方可以开始传输数据。
9.TCP的四次挥手
- 客户端发送关闭连接请求:
客户端发送一个带有FIN(结束)标志位的报文段,表示客户端已经没有数据要发送了,但仍可以接收数据。
- 服务器确认关闭请求:
服务器收到客户端发送的FIN报文段后,会发送一个带有ACK标志位的报文段作为确认,确认号为客户端发送的序列号+1,表示已经收到客户端的关闭请求。
- 服务器发送关闭连接请求:
当服务器也没有数据要发送时,会发送一个带有FIN标志位的报文段,表示服务器已经完成数据的发送,准备关闭连接。
- 客户端确认关闭请求:
客户端收到服务器发送的FIN报文段后,会发送一个带有ACK标志位的报文段作为确认,确认号为服务器发送的序列号+1,表示已经收到服务器的关闭请求,并进入TIME_WAIT状态。
在客户端发送了确认报文后,服务器会进入TIME_WAIT状态,等待一段时间,确保客户端已经收到了确认报文。客户端等待一段时间后,关闭连接。这样四次挥手完成,TCP连接就关闭了。
10.对称加密和非对称加密的区别
- 对称加密
对称加密指加密和解密使用同一密钥,优点是运算速度快,缺点是如何安全将密钥传输给另一方。
常见的对称加密算法有DES、AES等等。
- 非对称加密
非对称加密指的是加密和解密使用不同的密钥,一把公开的公钥,一把私有的私钥。公钥加密的信
息只有私钥才能解密,私钥加密的信息只有公钥才能解密。优点解决了对称加密中存在的问题。缺
点是运算速度较慢。常见的非对称加密算法有RSA、DSA、ECC等等。
11.Session、Cookie的区别
存放位置 | 占用空间 | 安全性 | 应用场景 | |
---|---|---|---|---|
Cookie | 客户端浏览器 | 小 | 较低 | 一般存放配置信息 |
Session | 服务端 | 大 | 较高 | 存放较为重要的信息 |
总结
以上就是今天要讲的内容,本文仅仅简单介绍了计网的一些基础知识,后续还需要不断地深入探索。