文章目录
参考: 地址
思维导图: 地址
五层协议体系结构
五层协议体系结构:应用层、运输层、网络层、数据链路层、物理层。
自上而下,介绍其结构中各层的作用。
应用层
应用层的作用
通过应用进程间的交互完成特定网络应用。
主要协议
用于制定应用进程间的通信和交互的规则,如 HTTP协议、域名系统DNS、SMTP邮件协议等
HTTP:超文本传输协议
详见:https://blog.csdn.net/MOKEXFDGH/article/details/88407618
DNS:域名系统
一个可以将域名和IP地址相互映射的分布式数据库,使我们能通过域名访问互联网,而不用记住复杂的IP数串。
运输层
运输层的作用
负责向两台主机进程之间的通信提供通用的数据传输服务。
主要协议
- 传输控制协议 TCP:提供面向连接的,可靠的数据传输服务。
- 用户数据协议 UDP:提供无连接,尽最大努力的数据传输服务。
TCP的主要特点
- 面向连接,且每条连接是点对点的(一对一)
- 提供可靠交付的服务,提供全双工通信
- 面向字节流,即 TCP 把应用程序交下来的数据仅仅看成是一连串的无结构的字节流
UDP的主要特点
- 是无连接的,支持多点间的交互通信
- 尽最大努力交付,即不保证可靠交付
- 面向报文
- 没有拥塞控制,网络拥塞不会使发送速率降低
网络层
网络层的作用
两个计算机之间的通信可能或经过多个数据链路和通信子网,而网络层会选择合适的网间路由和交换结点,确保数据及时传送
IP协议
将运输层产生的报文段或用户数据报封装成分组和包进行传送,分组被称为 IP 数据报。
ICMP协议
用于在主机与路由之间传递控制消息,如网络通不通、主机是否可达、路由是否可用等网络本身的消息。
arp协议
地址解析协议。arp攻击:ARP协议发送应答消息中的IP地址和MAC地址被伪造。
数据链路层和物理层
链路层的作用
两台主机之间的数据传输是在一段一段的链路上传送的,这时就需要使用专门的链路层的协议(如 MAC 协议)。数据链路层将网络层交下来的 IP 数据报组装成帧。
物理层的作用
实现相邻计算机节点之间比特流的透明传输,尽可能屏蔽掉具体传输介质和物理设备的差异
TCP三次握手和四次挥手
三次握手
三次握手图解
三次握手,即建立一条 TCP 连接的步骤:
三次握手的目的
为了建立可靠的通信信道,前两次握手都是为了确认双方的发送与接收都是正常的,最后一次握手才真正的建立连接。
SYN和ACK的作用
SYN用于证明发送方到接受方的信道没有问题,而ACK用于证明接受方到发送方的信道也没问题。
四次挥手
四次挥手图解
TCP 的可靠传输
保证可靠传输的四个主要技术:
- 检验和
检查出数据在传输中有任何变化,则直接丢弃此报文段并不确认收到。 - 流量控制
TCP 利用滑动窗口实现流量控制。 - 拥塞控制
当网络拥塞时,减少数据的发送。 - 停止等待协议
每发完一个分组就停止发送,等待对方确认。如果长时间没有收到确认消息,则进行超时重传(定时器)。
停止等待协议
停止等待过程
- 无差错
- 有差错
- 确认丢失
- 确认迟到
连续ARQ协议
上面的过程中使用的使自动重传请求ARQ协议,虽然简单,但是信道利用率低。
使用连续ARQ协议可以提高信道利用率,其原理:
发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。接收方一般采用累计确认,对按序到达的最后一个分组发送确认。
缺点:不能向发送方反映出接受方已经正确收到所有分组的信息。
流量控制
滑动窗口
- 滑动窗口是一种流量控制技术,早期不知道网络拥塞状况的时候,所产生的滑动窗口机制。
- 发送方可以通过滑动窗口的大小来确定应该发送多少字节的数据,并还可以确定接收方还有多大的缓冲区可以用于接收数据。
- 接受方发回给发送方的确认报文中,包含发送窗口的大小信息
流量控制
- TCP 利用滑动窗口实现流量的控制
- 流量控制是为了控制发送速率,以免接受方来不及接收
拥塞控制
当对网络中某一资源的需求超过该资源所能提供的可用部分时,网络中的路由器或链路就可能会过载,所以我们需要拥塞控制机制来防止过多的数据注入到网络中。
原理
TCP 发送方维持一个拥塞窗口,窗口的大小取决于网络的拥塞程度,并且动态变化。
注:发送窗口的值取接收窗口和拥塞窗口中的最小值。
拥塞控制采用了四种算法:
- 慢开始
由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口数值。避免因为把大量数据字节注入到网络而引起网络阻塞。
- 拥塞避免
让拥塞窗口cwnd缓慢增大,即每经过一个往返时间RTT就把发送放的cwnd加1。由慢开始的图可知,慢开始的数值是乘法增长的,而拥塞避免是线性缓慢增长的。
慢开始会设置一个门限ssthresh状态变量(起始:ssthresh=16,cwnd=1),用来防止cwnd增长过大:
当cwnd<ssthresh时,使用慢开始算法。
当cwnd>ssthresh时,改用拥塞避免算法。
当cwnd=ssthresh时,慢开始与拥塞避免算法任意。
注: 当网络拥塞时就把ssthresh为出现拥塞时的发送窗口大小的一半,然后把cwnd设置为1,然后执行慢开始。 - 快重传与快恢复
快重传:发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设置的重传计时器时间到期。
快恢复:配合快重传使用,ssthresh为出现拥塞时的发送窗口大小的一半,此时不会进行慢开始(因为网络不一定拥堵);而是进行快恢复,即将cwnd设置为ssthresh的大小,然后执行拥塞避免算法。
从浏览器URL到显示主页的过程
- DNS解析
- TCP连接
- 发送HTTP请求
- 服务器处理请求并返回HTTP报文
- 浏览器解析渲染页面
- 连接结束
HTTP与HTTPS的区别
HTTPS
HTTPS,安全的超文本传输协议,在常规的TCP协议层之上加入了一层TLS或者SSL协议。
区别
- http 无需证书,而 https 必须要认证证书
- http 是明文传输,而 https 是加密的安全传输;
- 连接所用端口不同,http是80,https是443
- http 是无状态协议,而 https 是 ssl 加密的传输,需要身份认证的协议,比HTTP要安全
路由器和交换机的区别
- 工作层次不同:交换机在数据链路层,而路由器在网络层
- 数据转发所依据的对象不同:交换机的数据转发是使用 MAC 地址,而路由器是依据 IP 地址。