diff --git a/docs/src/pages/FixedArticle/internet/image-10.png b/docs/src/pages/FixedArticle/internet/image-10.png new file mode 100644 index 0000000..db09341 Binary files /dev/null and b/docs/src/pages/FixedArticle/internet/image-10.png differ diff --git a/docs/src/pages/FixedArticle/internet/image-11.png b/docs/src/pages/FixedArticle/internet/image-11.png new file mode 100644 index 0000000..210f10c Binary files /dev/null and b/docs/src/pages/FixedArticle/internet/image-11.png differ diff --git a/docs/src/pages/FixedArticle/internet/index.md b/docs/src/pages/FixedArticle/internet/index.md index 33fb1ed..2df13ca 100644 --- a/docs/src/pages/FixedArticle/internet/index.md +++ b/docs/src/pages/FixedArticle/internet/index.md @@ -173,4 +173,104 @@ TCP首部报文有20个字节,额外开销大 ![alt text](image-9.png) - TCP是面向连接的协议,建立连接三次握手,断开连接四次挥手。UDP是面向无连接的,数据传输前后不连接,发送端只负责将数据发送到网络,接收端从消息队列读取 -- TCP提供可靠的服务,传输过程采用流量控制、 \ No newline at end of file +- TCP提供可靠的服务,传输过程采用流量控制、编号与确认、计时器等手段确保数据无差错,不丢失。UDP则尽可能的传输数据,但不保证传递交付给对方 +- TCP面向字节流,将应用层报文看成一串无结构的字节流,分解为多个TCP报文传输后,在目的站重新装配。UDP协议面向报文,不拆分应用层报文,只保留报文边界,一次发送一个报文,接受方去除报文首部后,原封不动将报文交给上层应用 +- TCP只能点对点全双工通信。UDP支持一对一、一对多、多对一和多对多的交互通信 +![alt text](image-10.png) + +可以看到,TCP的适用场景对效率要求低,对准确性要求高或者要求有链接的场景,而UDP适用场景则为效率要求高,对准确性要求低的场景 + +# 七层网络模型 +- 应用层 +- 表示层 +- 会话层 +- 传输层 +- 网络层 +- 数据链路层 +- 物理层 + +## 应用层 +应用层位于OSI参考模型的第七层,其作用是通过应用程序之间的交互来完成特定的网络应用 + +该协议定义了应用进程之间的交互规则,通过不同的应用协议为不同的网络应用提供服务。 例如域名系统DNS,支持万维网应用的HTTP协议,电子邮件系统采用的SMTP协议等 + +在应用层交互数据单元我们称之为报文 + +## 表示层 +表示层的作用是使通信的应用程序能够解释交换数据的含义,其位于OSI参考模型的第六层,向上为应用层提供服务,向下接收来自会话层的服务 + +该层提供的主要服务包括,数据压缩,数据加密以及数据描述,是应用程序不必担心在各计算机中表示和存储的内部格式差异 + +## 会话层 +会话层就是负责建立、管理、和终止表示层实体之间的通信会话 + +该层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法 + +## 传输层 +传输层的主要任务是为两台主机进程之间的通信提供服务,处理数据包错误、数据包次序,以及其他一些关键传输问题 + +传输层向高层屏蔽了下层数据通信的细节,因此,他是计算机通信体系中关键的一层 + +其中,主要的传输层协议是TCP和UDP + +## 网络层 + +两台计算机之间传输数据时其通信链路往往不止一条 ,所传输的信息甚至可能经过很多通信子网 + +网络层的主要任务就是选择合适的网间路由和交换节点,确保数据按时成功传送 + +在发送数据时,网络层把传输层产生的报文或用户数据报封装成分组和包,向下传输到数据链路层 + +在网络层使用的协议是无连接的网际协议和许多路由协议,因此我们经常把该层简单的称之为IP层 + +## 数据链路层 + +数据链路层通常也叫做链路层,在物理层和网络层之间。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层协议 + +在两个相邻节点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻的链路上传送帧 + +每一帧可以分为:报头```head```和数据```data```两部分 + +- head 标明数据发送者、接受者、数据类型、如MAC地址 +- data存储了计算机之间交互的数据 + +通过控制信息我们可以知道一个帧的起始位置,此外也能使接收端检测出所收到的帧有无差错,如果发现有差错,数据链路层能够简单的丢弃掉这个帧,以避免继续占用网络资源 + +## 物理层 + 作为OSI最低层,物理层的作用是实现计算机节点之间比特流的透明传送 + + 该层的主要作用是确定与传输媒体的接口的一些特性(机械特性,电气特性、功能特性、过程特性) + + 该层主要和硬件有关,与软件关系不大 + + +## 传输过程 +数据在各层之间的传输如下图所示 + + +![alt text](image-11.png) +- 应用层报文被传送到运输层 +- 在最简单的情况下,运输层收取到报文并附上附加信息,该首部将被接收端的运输层使用 +- 应用层报文和运输层首部信息一道构成了运输层报文段,附加的信息可能包括:允许接收端运输层向上向适当的应用程序交付报文的信息以及差错检测位信息。该信息让接收端能够判断报文中的比特是否在途中已被改变 +- 运输层则向网路层传递该报文段,网络层增加了如源和目的端的系统地址等网络层首部信息,生成了网络层数据报 +- 网络层数据报接下来被传递给链路层,在数据链路层数据包添加发送MAC地址和接收端MAC地址后被封装成数据帧 +- 在物理层数据帧被封装成比特流,之后通过传输介质传送到对端 +- 对端再一步步解开封装,获取到传送的数据 + +# 如何理解TCP/IP协议? + +## 什么是TCP/IP +TCP/IP,传输控制协议/网际协议,是指能在多个不同网络间实现信息传输的协议簇 + +- TCP(传输控制协议) + +一种面向连接的、可靠的、基于字节流的传输层通信协议 + +- IP(网际协议) +用于封装交换数据的网络协议 + +TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由 FTP、SMTP、TCP、UDP、IP 等协议构成的协议簇 + +只是因为在TCP/IP协议中TCP和IP协议最具代表性,所以统称为TCP/IP协议簇 + +## 划分