计算机网络汇总
应用层(应用,表示,会话)
http
https
工作原理HTTPS工作原理
- 一、首先HTTP请求服务端生成证书,客户端对证书的有效期、合法性、域名是否与请求的域名一致、证书的公钥(RSA加密)等进行校验;
- 二、客户端如果校验通过后,就根据证书的公钥的有效, 生成随机数,随机数使用公钥进行加密(RSA加密);
- 三、消息体产生的后,对它的摘要进行MD5(或者SHA1)算法加密,此时就得到了RSA签名;
- 四、发送给服务端,此时只有服务端(RSA私钥)能解密。
- 五、解密得到的随机数,再用AES加密,作为密钥(此时的密钥只有客户端和服务端知道)。
DNS
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。2.1 本地域名服务器LDNS
每个电脑里面都设置了本地DNS服务器(简称LDNS),需要的时候,就向LDNS发出请求,LDNS在网上问权威域名服务器(简称权威DNS)得到答案。
权威域名服务器
问我一个域名,我告诉你IP,如果我不知道,我告诉你谁可能知道,你再去问它。
负责对请求作出权威的回答。权威DNS中存储着记录,最常见的3种:A记录(记录某域名和其IP的对应),NS记录(记录某域名和负责解析该域的权威DNS),CNAME记录(负责记录某域名及其别名)。权威能直接回答的,就回A记录;需要其他权威DNS回答的,就回NS记录,然后LDNS再去找其他权威DNS问;如果该记录是别名类型的,就回CNAME,LDNS就会再去解析别名。
根域名服务器—根DNS
当LDNS啥都不知道的时候(也即没有任何缓存),就去问根DNS,根能告诉LDNS下一步该问谁。
具体过程
- 权威DNS:权威能直接回答的,就回ip;需要其他权威DNS回答的,就回NS记录(记录某域名和负责解析该域的权威DNS),然后LDNS再去找其他权威DNS问;如果该记录是别名类型的,就回CNAME(负责记录某域名及其别名),LDNS就会再去解析别名。
- 递归DNS:通常就是LDNS,它接受终端的域名查询请求,负责在网上问一圈后,将答案返回终端。
传输层
TCP
主要特点(1)慢启动
每当建立一个TCP连接时或一个TCP连接发生超时重传后,该连接便进入慢启动阶段。进入慢启动后,TCP实体将拥塞窗口的大小初始化为一个报文段,即:cwnd=1。此后,每收到一个报文段的确认(ACK),cwnd值加1,即拥塞窗口按指数增加。当cwnd值超过慢启动阐值(ssthresh)或发生报文段丢失重传时,慢启动阶段结束。前者进入拥塞避免阶段,后者重新进入慢启动阶段。
(2)拥塞避免
在慢启阶段,当cwnd值超过慢启动阐值(ssthresh)后,慢启动过程结束,TCP连接进入拥塞避免阶段。在拥塞避免阶段,每一次发送的cwnd个报文段被完全确认后,才将cwnd值加1。在此阶段,cwnd值线性增加。
(3)快速重传
快速重传是对超时重传的改进。当源端收到对同一个报文的三个重复确认时,就确定一个报文段已经丢失,因此立刻重传丢失的报文段,而不必等到重传定时器(RTO)超时。以此减少不必要的等待时间。
(4)快速恢复
快速恢复是对丢失恢复机制的改进。在快速重传之后,不经过慢启动过程而直接进入拥塞避免阶段。每当快速重传后,置ssthresh=cwnd/2、ewnd=ssthresh+3。此后,每收到一个重复确认,将cwnd值加1,直至收到对丢失报文段和其后若干报文段的累积确认后,置cwnd=ssthresh,进入拥塞避免阶段。
UDP
UDP(用户数据报协议):是OSI参考模型中的一种无连接传输层协议,提供面向事务的简单不可靠信息传输服务。
特点:
(1)udp是无连接的 即发送数据报无需建立连接,并因此减少了开销和发送数据之前不必要的时延;
(2)使用尽量大努力交付;
(3)是面向报文的
网络层
ARP
每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。
当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址。
如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。
此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。
如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中。
如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址。
源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。
如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
RARP
ARP协议是根据IP地址找其对应的MAC地址,而RARP则是根据MAC地址找其对应IP地址,所以称之为"反向ARP"。具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址,然后即可直接用ARP协议找出与其对应的主机MAC地址。但是无盘机,如X终端或无盘工作站,启动时是通过MAC地址来寻址的,这时就需要通过RARP协议获取IP地址。
RARP的基本工作原理如下:
(1)发送端发送一个本地的RARP广播包,在此广播包中声明自己的MAC地址,并且请求任何收到此请求的RARP服务器分配一个IP地址。
(2)本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址。如果存在,RARP服务器就给源主机发送一个响应数据包,并将此IP地址提供给对方主机使用;如果不存在,RARP服务器对此不做任何响应。
(3)源端在收到从RARP服务器来的响应信息后,利用得到的IP地址进行通信;如果一直没有收到RARP服务器的响应信息,则表示初始化失败。
链路层
以太网协议
以太网规定,一组电信号构成一个数据包,叫做帧,每一帧分成两个部分:标头(Head)和数据(Data)。
“标头”包含数据包的一些说明项,比如发送者、接受者、数据类型等等;“数据”则是数据包的具体内容。
“标头”的长度,固定为18字节。“数据”的长度,最短为46字节,最长为1500字节。因此,整个帧最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。
MAC地址
发送者和接受者如何标识呢?
以太网规定,进入网络所有设备,都必须具有“网卡”接口。数据包必须是从一块网卡。传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。
每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示。