<p id="main-toc"><strong>目录</strong></p>
讯享网
一、网络 7 层架构(ISO/OSI协议参考模型)
二、TCP/IP 原理
1、应用层(Application Layer)
2、传输层(Tramsport Layer-TCP/UDP)
3、网络层(Internet Layer)
4、网络访问层(Network Access Layer)
5、四层协议和对应的标准七层协议的关系如下图
三、TCP 三次握手/四次挥手
1、三次握手
2、四次挥手
3、TCP/IP状态
四、TCP 长连接与短连接
1、长连接和短连接使用原因
2、HTTP的长连接和短连接
3、TCP—长连接
4、TCP—短连接
5、应用场景
五、 HTTP 原理
1、地址解析
2、封装 HTTP 请求数据包
3、封装成 TCP 包并建立连接
4、客户机发送请求命
5、服务器响应
6、服务器关闭 TCP 连接
六、HTTPS
1、SSL/TLS之间的关系
2、建立连接获取证书
3、证书验证
4、数据加密和传输
七、CDN 原理
1、分发服务系统
2、负载均衡系统
3、管理系统
八、TCP/IP协议族
1、应用层协议—文件传输服务(FTP)
2、应用层协议—远程登录协议(Telnet)
3、应用层协议—电子邮件协议(SMTP)
4、传输层协议—TCP
5、传输层协议—UDP
6、网际层协议—IP
7、网际层协议—ICMP
8、网际层协议—ARP和RARP
9、网络接口层协议—以太网(Ethernet IEEE 802.3
10、网络接口层协议—令牌环网(Ethernet IEEE 802.5)
11、网络接口层协议—光纤分布式数据接口(FDDI)
12、网络接口层协议—点对点协议(PPP)
13、其他—ADSL(非对称用户数据线)
14、其他—IPv4和IPv6
一、网络 7 层架构(ISO/OSI协议参考模型)
物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的模数转换与数模转换)。这一层的数据叫做比特。
数据链路层:主要将从物理层接收的数据进行 MAC 地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧。在这一层工作的设备是交换机,数据通过交换机来传输。
网络层:主要将从下层接收到的数据进行 IP 地址(例 192.168.0.1)的封装与解封装。在这一层工作的设备是路由器,常把这一层的数据叫做数据包。
传输层:定义了一些传输数据的协议和端口号(WWW 端口 80 等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与 TCP 特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如 聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段进行传输,到达目的地址后在进行重组。常常把这一层数据叫做段。
会话层:通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或或者接受会话请求(设备之间需要互相认识可以是 IP 也可以是 MAC 或者是主机名)
表示层:主要是进行对接收的数据进行解释、加密与解密、压缩与解压缩等(也就是把计算机能够识别的东西转换成人能够能识别的东西(如图片、声音等))
应用层:主要是一些终端的应用,比如说FTP(各种文件下载),WEB(IE浏览),之类的(你就把它理解成我们在电脑屏幕上可以看到的东西.就 是终端应用)。

二、TCP/IP 原理
TCP/IP 协议不是 TCP 和 IP 这两个协议的合称,而是指因特网整个 TCP/IP 协议族。从协议分层模型方面来讲,TCP/IP 由四个层次组成:网络接口层、网络层、传输层、应用层。

1、应用层(Application Layer)
2、传输层(Tramsport Layer-TCP/UDP)
3、网络层(Internet Layer)
4、网络访问层(Network Access Layer)
5、四层协议和对应的标准七层协议的关系如下图

三、TCP 三次握手/四次挥手
1、三次握手
第一次握手: 主机 A 发送位码为 syn=1,随机产生 seq number= 的数据包到服务器主机 B,由 SYN=1 知道,A 要求建立联机;
第二次握手: 主机 B 收到请求后要确认联机信息,向 A 发 送 ack number=( 主 机 A 的seq+1),syn=1,ack=1,随机产生 seq= 的包
第三次握手: 主机 A 收到后检查 ack number 是否正确,即第一次发送的 seq number+1,以及位码ack 是否为 1,若正确,主机 A 会再发送 ack number=(主机 B 的 seq+1),ack=1,主机 B 收到后确认。

2、四次挥手
TCP 建立连接要进行三次握手,而断开连接要进行四次。这是由于 TCP 的半关闭造成的。因为 TCP 连接是全双工的(即数据可在两个方向上同时传递),所以进行关闭时每个方向上都要单独进行关闭。这个单方向的关闭就叫半关闭。当一方完成它的数据发送任务,就发送一个 FIN 来向另一方通告将要终止这个方向的连接。
关闭客户端到服务器的连接:首先客户端 A 发送一个 FIN,用来关闭客户到服务器的数据传送,然后等待服务器的确认。其中终止标志位 FIN=1,序列号 seq=u
服务器收到这个 FIN,它发回一个 ACK,确认号 ack 为收到的序号加 1。
关闭服务器到客户端的连接:也是发送一个 FIN 给客户端。
客户段收到 FIN 后,并发回一个 ACK 报文确认,并将确认序号 seq 设置为收到序号加 1。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

主机 A 发送 FIN 后,进入终止等待状态, 服务器 B 收到主机 A 连接释放报文段后,就立即给主机 A 发送确认,然后服务器 B 就进入 close-wait 状态,此时 TCP 服务器进程就通知高层应用进程,因而从 A 到 B 的连接就释放了。此时是“半关闭”状态。即 A 不可以发送给B,但是 B 可以发送给 A。此时,若 B 没有数据报要发送给 A 了,其应用进程就通知 TCP 释放连接,然后发送给 A 连接释放报文段,并等待确认。A 发送确认后,进入 time-wait,注意,此时 TCP 连接还没有释放掉,然后经过时间等待计时器设置的 2MSL 后,A 才进入到close 状态。
为什么会有TIME_WAIT状态:
3、TCP/IP状态
1、LISTENING(listening)
FTP服务启动后首先处于侦听(LISTENING)状态。
2、ESTABLISHED(established)
建立连接。表示两台机器正在通信。
3、CLOSE_WAIT
对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT,此时我方要调用close()来使得连接正确关闭。
4、TIME_WAIT
我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。
5、SYN_SENT
SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为 ESTABLISHED。
四、TCP 长连接与短连接
1、长连接和短连接使用原因
2、HTTP的长连接和短连接
在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。
而从HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入这行代码:
讯享网
在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。
3、TCP—长连接
连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接(一个TCP连接通道多个读写通信);
这就要求长连接在没有数据通信时,定时发送数据包(心跳),以维持连接状态;
TCP保活功能,保活功能主要为服务器应用提供,服务器应用希望知道客户主机是否崩溃,从而可以代表客户使用资源。如果客户已经消失,使得服务器上保留一个半开放的连接,而服务器又在等待来自客户端的数据,则服务器将应远等待客户端的数据,保活功能就是试图在服务器端检测到这种半开放的连接。
4、TCP—短连接
连接→数据传输→关闭连接;
5、应用场景
例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。
短连接: 像WEB网站的http服务一般都用短链接(http1.0只支持短连接,1.1keep alive 带时间,操作次数限制的长连接),因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好;
五、 HTTP 原理
1、地址解析
如用客户端浏览器请求这个页面:http://www.lydms.com:8080/index.htm 从中分解出协议名、主机名、端口、对象路径等部分,对于我们的这个地址,解析得到的结果如下:
协议名: http
主机名: www.lydms.com
端口: 8080
对象路径: /index.htm
在这一步,需要域名系统 DNS 解析域名 localhost.com,得主机的 IP 地址。
2、封装 HTTP 请求数据包
3、封装成 TCP 包并建立连接
4、客户机发送请求命
5、服务器响应
服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容。
6、服务器关闭 TCP 连接
六、HTTPS

1、SSL/TLS之间的关系
SSL 是英文“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。
为啥要发明 SSL 这个协议呢?因为原先互联网上使用的 HTTP 协议是明文的,存在很多缺点——比如传输内容会被偷窥(嗅探)和篡改。发明 SSL 协议,就是为了解决这些问题。
到了1999年,SSL 因为应用广泛,已经成为互联网上的事实标准。IETF 就在那年把 SSL 标准化。标准化之后的名称改为 TLS(是“Transport Layer Security”的缩写),中文叫做“传输层安全协议”。
很多人都把这两者并列称呼(SSL/TLS),因为这两者可以视作同一个东西的不同阶段。
2、建立连接获取证书
3、证书验证
4、数据加密和传输

七、CDN 原理
1、分发服务系统
2、负载均衡系统
3、管理系统
包括用户管理、产品管理、计费管理、统计分析等。
八、TCP/IP协议族
传输之前需要进行三次握手。
IP的主要功能包括将上层数据(如TCP、UDP数据)或者同层的其它数据(如ICMP数据)封装到IP数据报中,将IP数据报传送到最终目的地;为了使数据能够在链路层上进行传输,对数据进行分段,确定数据报到达其它网络中的目的地的路径。
1、应用层协议—文件传输服务(FTP)
实际Internet的FTP服务是一种匿名(anonymous)FTP服务,设置一个特殊的用户名-anonymous,供公众使用。
匿名登录到FTP服务器后,其工作方式与常规FTP相同。通常处于安全目的,大多数匿名FTP服务器只允许下载,不允许上传文件。
FTP在客户端到服务器建立2条TCP连接,一条是控制连接,主要用于传输命令和参数(端口21);另一条是数据连接,主要用于传输文件(端口号20)。
2、应用层协议—远程登录协议(Telnet)
由客户端软件、服务器软件以及Telnet通用协议三部分组成。
3、应用层协议—电子邮件协议(SMTP)
基于客户端/服务器模式,有E-mail客户端软件、E-mail服务器、通信协议三部分组成。发送邮件,首先到达自己注册的邮件服务器主机,再在网络传输中经过多个计算机和路由中转到达目的地的邮件服务器主机,进入收件人的电子邮箱,最后邮件的接收者上网并启动电子邮件管理程序,会自动下载到自己计算机,完成接受邮件。
SMTP:简单邮件传输协议
MIME:Internet邮件扩充协议
PEM:增强私密邮件保护协议
POP:来保管用户未能及时取走的邮件,简单的纯文本协议,每次传输以正规E-mail为单位,不提供部分传输。
4、传输层协议—TCP
TCP采用了重发技术: 发送数据时,启动定时器,在规定时间内没有收到确认信息,就重新发送数据包。
5、传输层协议—UDP
TCP:交互式会话应用程序(FTP等)。
UDP:自己进行错误检测、不需要检测错误(DNS、SNMP)。
6、网际层协议—IP
IP只提供无连接、不可靠的服务,把差错检测和流量控制之类的服务授权给了其他层的协议。
IP的主要功能:
将上层数据(TCP、UDP数据)或同层其他数据(ICMP数据)封装到IP数据报中;
将IP数据报传送到最终目的地;
为了使数据能够在链路层上进行传输,对数据进行分段;
确定数据报到达其它网络中的目的地的路径。
7、网际层协议—ICMP
5种差错报文:(源抑制、超时、目的不可达、重定向和要求分段)
4种信息报文:回应请求、回应应答、地址屏蔽码请求和地址屏蔽码应答。
8、网际层协议—ARP和RARP
ARP的作用是将IP地址转为物理地址,RARP的作用是将物理地址转为IP地址。每台设备都有唯一的物理地址(通过网卡给出),为了屏蔽底层协议及物理地址上的差异,IP协议又使用了IP地址。因此,在传输过程中,必须对IP地址和物理地址进行相互转换。
9、网络接口层协议—以太网(Ethernet IEEE 802.3
Ethernet IEEE 802.3:标准局域网,速度10Mps,传输介质为铜缆。
Ethernet IEEE 802.3u:快速以太网,速度100Mps,传输介质为双绞线。
Ethernet IEEE 802.3z:千兆以太网,速度1000Mps,传输介质为光纤或双绞线。
10、网络接口层协议—令牌环网(Ethernet IEEE 802.5)
2、发送数据时,需要捕获一个令牌。
3、令牌不为空,需要等待。
11、网络接口层协议—光纤分布式数据接口(FDDI)
采用双环体系结构,两环上的信息反方向流动。双环中一环称为主环,另一个环称为次环。正常情况下,主环传输数据,次环处于空闲状态。
双环设计的目的是提供高可靠性和稳定性。FDDI定义的传输介质有单模光纤和多模光纤两种。
12、网络接口层协议—点对点协议(PPP)
利用以太网(Ethernet)资源在以太网上运行PPP来进行用户认证接入的方式成为PPPoE。是目前ADSL接入方式中最广泛的技术标准。
ATM网络撒花姑娘运行PPP来管理用户再认证的方式成为PPPoA。
PPPoA和PPPoE运行原理相同,不同的是运行环境的不同。
13、其他—ADSL(非对称用户数据线)
ADSL独享带宽,安全可靠。费用低廉,使用过去的电话线路,可以分离电话机和ADSL Modem(上网)。
14、其他—IPv4和IPv6
IPv6:128位二级制,能表示IP地址个数:2128=3.4*1038。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/138376.html