本科网站开发毕业设计,个人网站如何做流量,云南省疾控中心最新提示,dw做的网站怎样做成手机版的纯手工总结超详细关于计算机网络的五层知识点#xff0c;看看你都掌握了没 文章目录 纯手工总结超详细关于计算机网络的五层知识点#xff0c;看看你都掌握了没1.应用层1.1 HTTP协议1.1.1 URL1.1.2 HTTP方法1.1.3 HTTP请求1.1.4 HTTP状态码1.1.5 HTTP会话保持 1.2 HTTPS协议 …纯手工总结超详细关于计算机网络的五层知识点看看你都掌握了没 文章目录 纯手工总结超详细关于计算机网络的五层知识点看看你都掌握了没1.应用层1.1 HTTP协议1.1.1 URL1.1.2 HTTP方法1.1.3 HTTP请求1.1.4 HTTP状态码1.1.5 HTTP会话保持 1.2 HTTPS协议 2.传输层2.1 UDP协议2.1.1简介2.1.2 UDP协议报头格式 2.2 TCP协议2.2.1 简介2.2.2 TCP协议报头格式2.2.3 TCP三次握手四次挥手2.2.4 滑动窗口2.2.5 拥塞控制2.2.6 延迟应答 3.网络层3.1 IP协议3.1.1 IP协议报头格式3.1.2 IP地址3.1.3 解决IP不够用的方法 3.2 ICMP协议 4.数据链路层4.1 以太网4.1.1 以太网的帧格式 5.物理层 计算机网络是现代不可或缺的一个技术点也是随着万物互联所发展的一个必然趋势。
关于计算机网络前有OSIOpen System Interconnection模型将网络从低到高划分成了七个网络层次。但是按照逻辑来讲我更喜欢将其按照逻辑上精确划分成五大部分物理层、数据链路层、网络层、传输层、应用层。这五个层级相互依存相互配合构成了我们今天网络世界的蓝图。那么我们今天就按照这五层来具体罗列一下我们计算机网络的知识点做到心中有图像心中有知识。 1.应用层
应用层是用来满足用户日常需求的层级。下面有著名的HTTP和HTTPS协议。
1.1 HTTP协议
1.1.1 URL
http是一种超文本传输协议。具体来说我们平时所输入的网址URL就是由http相关协议来规定的。端口号往往是80。
1.1.2 HTTP方法
HTTP还具体划分有各种方法用来区分HTTP的提交格式。
具体最常用的就是GET方法和POST方法。
在用GET方法提交的HTTP不够私密我们具体的用户私密数据如密码等容易回显到我们的网址上。
在用POST方法的时候提交的方式比GET方法更私密一点例如登录注册的时候我们的私密数据会进行加密保存但不是绝对安全。 1.1.3 HTTP请求
我们一份正式的HTTP请求的格式应该是 首行[方法] [URL] [版本] Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束 Body: 空行后面的内容都是Body. Body允许为空字符串. 如果Body存在, 则在Header中会有一个Content-Length属性来标识Body的长度; 但是我们在输入网页的时候不要这么麻烦是因为浏览器自动我帮我们填充了字段可是正式格式却必须是这样 1.1.4 HTTP状态码
我们在访问网页的时候如果访问失败了有时候网页会给我们返回一个三位数字例如下图的404 实际上返回的正是我们的HTTP状态码404表示错误。具体如下 简单总结来说 1xx:正在处理 2xx:成功 3xx:需要额外的操作(重定向) -- 分为永久重定向和临时重定向 4xx: 客户端错误 5xx:服务端错误 1.1.5 HTTP会话保持
在HTTP协议中我们有时候一个网页需要使用多次如果按照往常的做法一直断掉再重连的话就无法追踪用户的状态。于是HTTP会话保持就应运而生。例如我们在一个淘宝网站登录则只需登录一次后即便关掉网页打开后还是有登陆状态而无需再次登录。
常用的会话保持机制 cookiecookie是用来存储用户信息从而在文件级别上使得服务器能够再次识别客户端。 session: 类似于cookie可是比起cookiesession一般习惯先创建session ID之后再在后台保存起来。 1.2 HTTPS协议
HTTPS协议往往是在HTTP协议上增加了安全层级的加密层协议保证了更为安全的操作。端口号往往是443。
如果说HTTP是以明文传输的那么HTTPS就是以密文传输。也就是说HTTPS在安全性方面下足了功夫。
关于如何加密我们一般是使用SSL协议加密通信。具体采用公钥加密(锁)与私钥(钥匙)配对的方式进行。
具体还有分为对称加密加解锁都是同一个公钥和非对称加密(反之)
具体安全措施还有
数据摘要利用Hash函数运算加密信息从而成为数字签名。
CA认证有时候我们不知道服务器端是否安全那么我们需要引入一种由第三方提供的权威认证叫做CA认证。对于认证通过的服务器端网页我们会颁发CA证书。证书中会包含服务器的公钥和相关信息客户端在链接的时候会受到证书是否有效和可信。 2.传输层
传输层是用来具体将数据从A端发送到B端的一个层级。著名的UDP/TCP协议即于此。
2.1 UDP协议
2.1.1简介
UDP协议是计算机网络传输层的一种协议。它提供了一种无连接、不可靠、面向数据报的传输机制。 面向数据报数据分成一个个独立的数据包往外发送每个包都是实体且独立。但是显然不够灵活。 我们在网络传输过程中数据是以报头 有效载荷的形式发送的报头中包含了发送数据的相关信息。当我们还未发送的时候数据都是存在发送缓冲区和接收缓冲区的。但是UDP协议没有真正意义上的发送缓冲区。因为udp如果调用发送的sendto内容会直接交给内核处理
那么数据如果发送过去了我们面临的一个问题是报头和有效载荷该如何分离呢
在UDP下我们UDP报头有固定长度即前8字节都是固定为报头的这意味着我们拿到数据后直接取前8字节数据为报头后面即为真实数据的有效载荷。
2.1.2 UDP协议报头格式
整个UDP报头占8字节。在协议格式的下图中我们看的非常清楚包含了我们从哪里来(16位源端口号),说明了我们要往哪里去(16位目的端口号)。我们的数据有多大(16位UDP长度)以及确认我们发送过程中没有丢失数据(16位校验和) 2.2 TCP协议
2.2.1 简介
TCP协议也是一种传输层的协议但与UDP协议相反TCP提供了一种可靠、有连接、面向字节流的传输机制。 面向字节流发送数据时数据被视为一串连续而灵活的字节流这意味着可被拆分成任意TCP段。数据太长则拆成多个数据包数据太短则等缓冲区到达一定长度后再发送。这样TCP发送时读与写就无需一一匹配了灵活性大大提高。 TCP的可靠不仅仅体现在有连接、面向字节流还有更多后文要提到的滑动窗口、拥塞控制等一系列的机制可以说,TCP协议的生态是非常好的在整体的安全性、便捷性、错误反馈性上都比UDP要好很多。
那么我们讲了面向字节流那么我们的TCP有连接体现在哪里呢? 体现在我们接下来要讲的连接断开方式TCP三次握手连接四次挥手断开。 2.2.2 TCP协议报头格式
整个TCP报头占20字节。在如下图的TCP报头格式中我们发现条目比UDP更多了除了包含应该有的我们从哪里来(16位源端口号),说明了我们要往哪里去(16位目的端口号)确认我们发送过程中没有丢失数据(16位校验和)还有确认数据的发送与接收顺序32位序列号与确认序列号还有我们根据对方接收能力确认流量(16位窗口大小)等等 其中很重要的一点是TCP没有UDP中有的数据总长度字段这是为什么呢 A因为TCP是面向字节流的在发送数据的时候数据被视为一个连续的字节流而不是被固定分割这意味着数据可以被任意拆分成TCP段每个段都包含头部信息。既然可以被随意拆分那么就没有必要加入总长度这种字段了这也是面向字节流的一种体现 2.2.3 TCP三次握手四次挥手
三次握手指的是连接四次挥手指的是断开。
首先我们要知道计算机网络中未能发送到对方主机的数据行为叫丢包那么为了避免丢包我们很好的解决方案是引入确认应答机制收到后发送收到的消息即让客户端知道已收到就能避免丢包。那么我们三次握手四次握手的连接过程必定也少不了应答。
可是我们怎么标识应答呢 所以我们在TCP中引入了标志位,用ACK来标识应答相同的还有用SYN来请求连接用FIN来请求断开。
三次握手 1.客户端发送连接请求(SYN)。 2.服务端收到请求后响应(ACK),并且同时请求客户端连接(SYN)。 3.客户端收到请求后也响应(ACK)。 至此一个最基本的连接就连接上了。我们要知道三次是连接的最少次数。那么少一点次数和多一点可不可以呢
首先少于三次连接肯定是连不上的因为我们刚才说了三次是通信连接的最低成本就像男女生告白场景 男生 可以做我女朋友吗 女生可以什么时候开始 男生就现在 这三次至关重要的响应回答一次都不可缺少否则连接失败
高于三次后我们将次数分为奇数和偶数
高于三次偶数次握手不可以 因为你会发现所有偶数次握手最后一次发送消息的一定是服务端而服务端往往面临成千上百个用户这样就会造成server端繁忙甚至导致SYN洪水问题伪造SYN请求耗尽计算机资源从而容易受到外部攻击。
但是高于三次奇数次可以但是没必要因为三次能完成的连接为什么要多次呢 四次挥手 1.客户端发送断开请求(FIN)。 2.服务端应答请求(ACK)。 3.服务端也发送断开请求(FIN)。 4.客户端应答请求(ACK)。 四次挥手分别是客户端和服务端的两次请求断开和应答。断开连接是由于双方地位对等必然需要双方各请求与应答一次才行。否则只是断开了一方发送数据的权利另一端还可以发送的话就不叫断开连接了。
在挥手中值得我们注意的是双方的状态变化
Client发送后变为FIN_WAIT_1状态服务端接收后直接成为CLOSE_WAIT状态
服务端发完后变为LAST_ACK状态后客户端接收到变为TIME_WAIT状态
最后都变为CLOSED状态。
2.2.4 滑动窗口
滑动窗口是一种流量控制的可靠数据传输机制常用于TCP协议中。
我们都知道在TCP中有发送缓冲区和接收缓冲区而滑动窗口就是发送缓冲区的一部分。其有发送窗口和接收窗口。 当接收方受到数据包后向发送方发送应答ACK标识成功接收到数据之后发送方会向前滑动窗口并准备发送下一个窗口的数据包。
说到底滑动窗口本质就是一段char型的指针数组而滑动就只是修改下标指针的指向而已。
那么如果说为什么滑动窗口能进行流量控制我想是因为每个窗口大小都是提前固定好的都是按照规定发送一个个窗口的数据包而无法越过窗口大小进行超量传送。
不过滑动窗口的发送能力也是结合着许多因素就比如下面我们要谈的拥塞控制的相关因素。 2.2.5 拥塞控制
当因为网络问题而出现大量丢包的时候此时的网络就称为网络拥塞发送方会等待合适时机再择机发送。
当发生拥塞TCP会引入慢启动机制也就是先发送少量数据探探路再按照拥塞情况择机添加或者减少数据发送那么这个增长或者减少倍数往往是指数级别的能够在较短时间增加或减少到一个相当高的数量级之后再恢复平稳增长或减少。
也就是说我们拥塞窗口大小是变化的所以结合以上的滑动窗口可知滑动窗口发送的数据量 min对方接受能力拥塞窗口。 2.2.6 延迟应答
最后我们要提到一个保证TCP性能的机制是延迟应答。
如果接收数据主机立刻返回应答ACK那么返回的窗口就比较小因为反应速度快了所以我们一般延迟应答就能保证返回的吞吐量大从而通信效率变高。 3.网络层
网络层是用来具体确认传输路径的层级。著名的IP/ICMP协议即坐落于此。
3.1 IP协议
如果说TCP协议是制定协议大方向的话事人那么IP协议就是具体完成任务的打工人。也就是说TCP提供执行策略和能力
IP具体执行。
在IP协议中我们常谈到一个概念分片指的是**当一个IP数据报报大小超过最大传输单元后会将原始数据报切分成多个较小片段进行传输的过程。**这是IP中最常使用的策略之一在下面我们会具体谈到。
3.1.1 IP协议报头格式
IP协议报头一般20字节。也包含我们从哪里来(32位源IP地址)要到哪里去(32位目的IP地址)数据有多大16位总长度数据是否完整16位首部校验和多了指定服务类型8位服务类型分片的片偏移量13位片偏移到底要不要分片3位标志等 3.1.2 IP地址
谈到IP协议我们就不得不谈到IP地址了。一般地IP地址 目标网络 目标主机。例如192.168.128.10中192.168.128叫做目标网络10叫做目标主机一般IP地址的范围是从0.0.0.0到255.255.255.255。其中有一些特殊用途的IP地址 一、127.0.0.1 表示本地主机叫做本地环回内部是从自顶向下交付后再自下向上返回一遍不做数据交换所以叫本地环回。 二、拥有以下格式IP的都是用于组建局域网的私有IP地址 Ⅰ 10.* Ⅱ 172.16. ——172.31. Ⅲ 192.168.* 3.1.3 解决IP不够用的方法
既然IP地址上限只到了255那么面对全球成千上亿台3设备IP地址就必然不够用了那么为了解决IP不够用我们有哪些解决策略呢
第一点
CIDR技术标准引入了子网掩码的概念将IP地址 子网掩码 网络号相当于一个真正使用的网络号不仅仅由IP地址评判也加上了子网掩码这种32位正整数的量来衡量这样一来可以使用的IP地址就从2的32次方再次幂上了子网掩码的2的32次方正好较好的解决了不够用的方法。
例如 140.252.20.68 255.255.255.0 140.252.20.0
第二点
IPV6协议被设计之初衷就是用来解决IPV4数量不足的问题IPV6使用128位地址分配理论上可以提供340万亿亿个IP地址。
第三点
NAT技术是路由器一个重要的功能用来尝试解决IP地址不够用的问题。原理通过将私有IP和全局IP互相动态转化的原理实现。
第四点
私有网络或者局域网的部分网段可以重复。在同一个局域网中我们通常可以将不同设备的网络号标成一致而主机号不一致。这样就可以用最小代价来表示不同主机同时我们的部分网段也得到了重复利用。 3.2 ICMP协议
ICMP协议是主要提供网络测试的一种协议。最有名的测试网络联通状态的ping命令即来源于此。而且ICMP协议是基于IP协议工作的。
它的主要功能是
1.确认IP数据包是否到达
2.如果包被丢弃那么告知原因
在这里面试官喜欢挖坑问ping是什么端口? 千万注意这是圈套 因为两者根本不在同一层
ping是ICMP网络层协议而谈论端口一般是传输层协议根本不在同一个维度上ping不关心这些内容
4.数据链路层
数据链路层是用来确认两个主机或者节点之间来进行数据交互的层级。著名的以太网就是它的缩影。
4.1 以太网
以太网是一种技术标准也是最广泛的局域网技术规定了例如网络拓扑结构传输速率等还规定了以太网中的网线必须是双绞线等。 在数据链路层中MAC硬件地址是用来表示局域网中唯一主机的重要标识。硬件地址例如00:1A:2B:3C等
4.1.1 以太网的帧格式
首先MAC帧或者说以太网帧是一种数据单位是用来在局域网中传输数据。 在格式中我们依旧发现了我们熟悉的我们从哪里来源地址要到哪里去目的地址以及有效载荷数据等。
但是我们在数据链路层真实传送数据的已经不是IP地址了而是MAC帧。那么我们要通过MAC帧发送数据就要封装MAC帧那么我们具体封装MAC帧的MAC地址从哪里来呢 答案是通过ARP协议将IP地址转换成MAC地址进而封装MAC帧发送数据。 ARP协议是在数据链路层中专门将IP地址转化为MAC地址从而封装MAC帧发送数据的协议 5.物理层
计算机网络的物理层是网络协议栈中的最底层负责实际的物理传输和信号传输以及接口和介质的规范。物理层主要关注的是如何在物理媒介上传输原始比特流。
在物理设备上有网卡、路由器、转换器等。其中我们之前提到过的路由器NAT技术也是解决IP地址不够的一大法宝之一。
以下是物理层的主要功能和特点
传输介质物理层定义了数据传输所使用的物理介质如双绞线、同轴电缆、光纤等。它规定了传输介质的特性、连接方式和传输速率。数据编码和调制物理层负责将数字数据转换为模拟信号以供传输并在接收端将模拟信号转换回数字数据。这包括数据编码和调制技术如将比特转换为电压、频率或光强度等。传输方式物理层定义了数据的传输方式包括串行传输和并行传输。串行传输是逐位地发送数据而并行传输是同时发送多个比特。时钟同步物理层需要确保发送方和接收方的时钟同步以便正确地解释传输的比特流。时钟同步可以通过在数据中引入时钟信号或通过特定的同步协议来实现。基本连接方式物理层规定了设备之间的基本连接方式如点对点连接、多点连接和广播连接。数据传输速率物理层定义了数据传输的速率即比特率。它决定了在给定的时间内可以传输的比特数量。链路管理物理层负责管理链路中的物理连接、插拔和识别设备之间的连接状态。
总之物理层提供了网络中各种设备之间的物理连接和数据传输的基础。它确保了可靠的信号传输和物理介质的适配为上层的数据链路层和网络层提供了可靠的传输基础。