计算机网络
https://blog.csdn.net/weixin_44751294/article/details/104851920
1. 计算机网络概述#
1.1 计算机网络在信息时代的作用#
互联网的两个重要基本特征:连通性和共享。
1.2因特网概述#
1.2.1 网络,互联网,因特网#
- 网络:许多计算机连接在一起
- 互联网:internet许多网络连接在一起
- 因特网:internet全球最大的一个互联网
1.2.2 因特网的三个发展#
ISP结构
1.2.3 因特网的标准化(了解)#
1.3 因特网的组成#
1.3.1 边缘和核心部分#
因特网的边缘部分:主机之前的通信方式有两类#
因特网的核心部分:数据交换的方式#
电路交换方式
(典型应用是打电话,交换机将需要通信的电话相连,通话之后释放)
电路交换的过程:
此时,A正在与B进行通话,如果C想要和A页建立一个通话的连接会失败,因为资源正在被占用,也就是占线中。
电路交换适合于数据量很多的实时性传输:核心路由器之间可以使用电路交换。
分组交换技术
进行分组,都会写上目标地址和原地址,并且数据是第几部分
接收端收到之后,首部就不用了。其中的首部地址就是为了让数据发送到接收端中。
把首部去掉一传就被接收端收到了。
ps:分组转发不需要建立连接,电路交换需要建立连接。所以分组交换是不占线的。并且路由器具有存储转发功能,可以暂存数据,如果多个数据想要经过同一条线路的时候需要进行排队等候。
分组交换的总结:
优点:高效,灵活,迅速,可靠
延迟,开销
报文交换方式
特点:不分组,直接传走,一般比分组长得多,而且报文交换的时延较长。
三种交换方式的比较(电路交换,报文交换,分组交换)
1.4计算机网络的类别#
计算机网络最简单的定义:一些互相连接的,自治的计算机的集合
对于城域网和局域网的新理解:不单单从网络覆盖范围的来区分
广域网:应用了广域网技术 花钱买服务 花钱买带宽 别人维修
局域网:应用了局域网技术 自己购买设备 自己维护 带宽固定 100M 1000M 距离100米
1.5计算机网络的性能指标#
速率:#
链接在计算机网络上的主机在数字信道上传送数据位数的速率,也称为data rate或bit rate。单位是b/s,kb/s,Mb/s,Gb/s
带宽:#
数据通信领域中,数字信道所能传送的最高数据率。单位是b/s,kb/s,Mb/s,Gb/s
吞吐量:#
在单位时间内通过某个网络的数据量。
时延:#
时延带宽积:#
-
利用率#
计算机网络的非性能指标:费用,质量,标准化,可靠性,可扩展性,可升级性,管理与维护
1.6计算机网络的体系机构#
OSI七层结构:#
网络的层级结构是为了标准化和每一个步骤之间的相互关联。
应用层:#
能够产生网络流量能够和用户交互的应用程序
表示层:#
会话层:#
服务和客户端建立的会话,可以查木马 netstat -nb(加一个b可以查看木马名称)
ps:木马产生危害,一定会与外界进行会话,而只有建立了会话,就能查找到这个建立会话的执行程序也就是可以查找到后台运行的木马
netstat /? 可以查看其它的功能
传输层:#
可靠传输建立会话TCP协议,不可靠传输不建立会话UDP协议,这两个都属于传输层 流量控制(服务器处理不过来的时候需要通知客户端稍微暂停一下从而实现流量的控制)
网络层:#
IP地址编址 选择最佳路径(自动选择的,动态路由协议实现)
数据链路层:#
规定了输入的数据如何封装 添加物理层地址 现在的计算机网卡称为MAC地址
物理层:#
规定了电压(几V代表1,几V代表0)和接口标准(网线的接口有8根线)
区别:
- 程序的开发人员只要是解决应用层,表示层,会话层的问题
网络工程师主要是解决传输层,网络层,数据链路层的问题
网络排错:(一般从底层到高层逐一排查)#
比如,如果计算机不能上网了?
查看网线是否插好,物理层有无连通
查看ip地址有无设置错误,网络层的问题
浏览器有无中了恶意插件,这是应用层的问题
(路由器网线拔了重插,路由器的电源关了重开,欠费)
网络安全和OSI参考模型:#
物理层安全:别人能私自接入你的网络,应该拔掉不用的网线或接口
数据链路层安全:AP密码 ADSL账号密码,VLAN,交换机端口绑定Mac地址
网络层安全:路由器上使用ACL(访问控制列表)控制数据包流量;防火墙设置;
应用层安全 SQL注入漏洞 上传漏洞,应用程序有没有漏洞
OSI七层模型与TCP/IP四层模型:#
开放系统信息交换涉及的几个概念:#
五层协议对应的数据单元#
2. 物理层#
2.1物理层的基本概念#
物理层解决如何在链接各种计算机的传输媒体上传输数据比特流而不是指具体的传输媒体。
物理层的主要任务描述为:确定与传输媒体的接口的一些特性,既:
机械特性:例如接口形状,大小,引线数目
电器特性:例如规定电压范围(-5V到+5V)
功能特性:例如规定-5V表示0.+5V表示1
过程特性:也称规程特性,规定建立连接时各个相关部件的工作步骤
2.2数据通信的基础知识#
- 相关术语
通信的目的是传送消息
数据(data)-----运送消息的实体
信号(signal)-----数据的电气的或电池的表现
模拟信号-----代表消息的参数的取值是连续的
数字信号-----代表消息的参数的取值是离散的
码元(code)-----在使用时间域的博洗净表示数字信号时,则代表不同离散数值的基本波形就成为码元
(在数字通信中常常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为二进制码元。而这个间隔被称为码元长度。1码元可以携带nbit的信息量)
- 有关信道的几个基本概念
信道一般表示向一个方向传送信息的媒体,所以我们所说的平常的通信线路往往包含一条发送信息的信道和一条接受信息的信道。
单向通信(单工通信)-----只能有一个方向的通信而没有反方向的交互。
双向交替通信(半双工通信)-----通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接受)
双向同时通信(全双工通信)-----通信的双方可以同时发送和接受信息
————————————————
版权声明:本文为CSDN博主「Clichong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44751294/java/article/details/104864680
- 基带(baseband)信号和带通信号(band pass)信号
基带信号(既基本频带信号)-----来至信源信号。像计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。基带信号就是发出的直接表达了要传输的信息的信号,比如我们说话的声波就是基带信号。
带通信号-----把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(既仅在一段频率范围内能够通过信道)因此,在传输距离较劲时,计算机网络通常采用基带传输的方式。因为近距离范围内的基带信号衰减不大,从而信号内容不会发生变化。诸如计算机到监视器,打印机等外设的信号就是基带传输的。
- 几种最基本的调制方法
调幅(AM):载波的振幅随基带数字信号而变化(水平线到幅度发生变化是0-1变化的过程)
调频(FM):载波的频率随基带数字信号而变化(较低频率到较高频率是0-1的过程)
调相(PM):载波的初始相位随基带数字信号而变化(正弦波变成余弦波时是0-1的过程)
- 常用编码
曼彻斯特编码:低-高跳转表示0,高-低跳转表示1。一个时钟周期只可表示一个bit,并且必须通过两次采样才能得到一个bit但它能携带时钟信号,且可表示没有数据传输,也就是能区分此时是没有信号还是信号为0。
差分曼彻斯特编码:bit与bit之间有信号跳变,表示下一个bit为0,bit与bit之间没有信号跳变,表示下一个bit为1。差分曼彻斯特编码与曼彻斯特编码相同,但是抗干扰性强与曼彻斯特编码。(知道结果便可)
例子:将1000100111进行曼彻斯特和差分曼彻斯特编码
ps:曼彻斯特编码低-高跳转表示0,高-低跳转表示1。而差分曼彻斯特编码是bit与bit之间有信号跳变,表示下一个bit为0,bit与bit之间没有信号跳变,表示下一个bit为1。
- 奈氏准则
在理想条件下(无噪声/干扰/失真),为了避免码间串扰,码元的传输速率是有上限的。如果信道的频带越宽(信号高频分量越多),则用更高的速率传输码元也不会出现码间串扰。
- 信噪比
香农(Shannon)用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率。
信道的极限信传输速率C可表示为
也就是说,当噪声比较大的时候,把速率降低,对方也可以没有差错的接受到。
- 奈氏(Nyquist)准则和香农公式的应用范围
2.3物理层下面的传输媒体#
单模光纤只能传输一种电磁波模式,多模光纤只可以传输多个电磁波模式,实际上单模光纤和多模光纤之分,也就是铅芯的直径之分。多模光纤可以折射前进,而单模光纤基本不能折射。所以在有线电视网络中使用的光纤全部是单模光纤,传播特性好。带宽可达10GHz,可以在一根光纤中传输60套PAL-D电视节目。
非导向传输媒体
非导向传输媒体指自由空间,其中的电磁波传输称为无线传输。
无线传输的频段很广。
短波通信主要是靠电离层的反射,但短波信道的通信质量较差;
微波在空间主要是直线传播(延迟大),比如有地面微波接力通信;卫星通信。
2.4信道复用技术#
1. 频分复用技术(FDN: frequency division multiplexing)
用户在分配到一定的频带猴,在通信过程中自始至终都占用这个频带。频分复用的所以用户在同样的时间占用不同的带宽资源(请注意,这里的“带宽”是频率带宽而不是数据的发送速率)
(使用不同的过滤器进行调制解调接可以解出信号的不同频率信号)
2.时分复用技术(TDN: time division multiplexing)
(用户量一多,分的时间会变少,速率也就会变慢,也就是每条线数据每次只能传输小一部分。)
实现效果:
实现机制:
实现性能:
时分复用可能会造成线路资源的浪费,由于计算机数据的突发性质,用户对分配到的子信道的利用率一般不高。
3. 统计时分复用(STDM: statistic TDM)
通过加标记来讲进行区分。
4. 波分复用技术(WDM: wavelength division multiplexing)
(其实也就是光的频分复用)
5.码分复用技术CDM(Code Division Multiplex)
常用的名词是码分多址CDMA(Code Division Multiple Access)
各用户使用经过特殊挑选的不同码型,因此彼此不会造成干扰。
这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
每一个比特时间划分为m个短的间隔,称为码片(chip)。
规格化内积:
任何一个码片向量和该码片向量自己的规格化内积都是1
一个码片向量和该码片反码的向量的规格化内积值都是-1
例子:
A结果是1,B结果是-1,C结果是0,D结果是1,所以ABD在通讯,C没有。
缺点:表示一个bit需要更多的数据。
2.5数字传输系统#
脉码调制(PCM)技术。欧洲是E1标准(30路),北美是T1(24路,时分复用)。(我国采用E1标准)
E1标准:(一个采样8bit数据,32路,传输速率是2.048M带宽)
T1标准:(24个语音信道,1个控制信道,1.544M带宽)
2.6 带宽接入技术#
非对称数字用户链路ADSL
使用电话线。用数字技术对现有的模拟电话用户线进行改造(xDSL),把0-4kHz留给传统电话使用,把原来没有利用的高频谱段留给用户上网使用。
标准模拟电话信号的频带被限制在300~3400Hz的范围内,但用户线本身实际可通过的信号频率仍然超过1MHz。
实现机制:低频接电话,高频接猫,再接电脑
基于ADSL的接入网组成:
数字用户线接入复用器DSLAM(DSL Access Multiplexer)
接入端单元(Access Termination Unit)
ATU-C(C表示端局Central Office)
ATU-R(R代表远端Remote)
电话分离器PS(POTS Splitter)
DMT技术
采用频分复用,把40kHz以上一直到1.1MHz的高频谱划分为徐队子信道,其中25个子信道用于上行信道,249个子信道用于下行信道(因为下载的情景多于上传)。每个子信道占据4kHz的带宽,并使用不同的载波进行数字调制。这种做法相当于在一对用户线上使用许多小的调制解调器并行地传输数据。
DMT技术图标:
- 光纤同轴混合网HFC(Hybrid Fiber Coax)
HFC网是在目前覆盖范围很广的有线电视网CATV基础上开发的一种居民宽带接入网。除了可以传送CATV外,还可以提供电话/数据/和其它宽带交互型业务。现有CATV网是树形拓扑结构的同轴电缆网络,它采用 模拟技术的频分复用 对电视节目进行单向传输。HFC需要对CATV网进行改造。
HFC网采用结点体系结构:
HFC网具有比CATV网更宽的频谱,且具有双向传输特性
每个用户要安装一个用户接口盒
- FTTx技术(光纤直接接Internet)
3.数据链路层#
知识点:
- 基本概念和三个基本问题
- 两种情况数据链路层
- 点对点
- 广播信道
- 以太网
- 以太局域网
- 扩展以太网
- 高速以太网
3.1 数据链路层的基本概念#
1.数据链路层的数据发送模型#
主机H1想要给主机H2拷数据的过程如下:
(此为应用层与应用层之间的通讯)
–>在传输层分段
–>在网络层分地址
–>在链路层加MAC地址封装成帧
–>然后转化为比特流
–>传送到路由器需要解信息
–>继续发送时选择好一个路口再封装信息成比特流发送出去
(此章只关心如何封装,不考虑物理层的复用方式和传输的介质)
2.数据链路层的信道类型#
信道类型主要有两种:
–>点对点信道:这种信道使用一对一的点对点通信方式
–>广播信道:这种信道使用一对多的广播通信方式,必须使用专用的共享信道协议来协调这些主机的数据发送
3.链路与数据链路#
链路(link)
是一条点到点的物理线路段,中间没有任何其他的交换节点。一条链路只是一条通路的一个组成部分。
数据链路(data link)
除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。最常用的方法是使用适配器(网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。
4.帧#
数据链路层传送的是帧
(在网络层,给数据包增加了接收端和发送端的IP地址。在数据链路层里,增加了帧头帧尾,MAC地址和校验值。)
–>数据报装入的时候会增加一个帧头帧尾(帧的开始,帧的结束)
–>物理层会将帧变成比特流
–>传送结束后掐头去尾上传得到数据
3.2数据链路层的三个基本问题#
问题一、封装成帧#
封装成帧(framing)就是在一段数据的前后分别添加手首部和尾部后然后构成了一个帧。确定帧的界限。
首部和尾部的一个重要作用就是进行帧定界
问题二、透明传输(字节填充解决)#
透明传输是指传输的过程中增加了别人不知道的标志。
帧的收发可能会出现的问题:
用字节填充解决透明传输的问题
发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(十六进制数1B)。
字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在数据送往网络层之前杀出插入的转义字符。
如果转义字符也出现在数据之中,那么应该在转义字符前插入一个转义字符。当接收端收到连续的两个转义字符时,就删除前面的那一个。
问题三、差错控制(CRC技术解决)
传输过程中可能会产生bit差错:1可能会变成0,而0也可能变成1
在一段时间内,传输错误的比特率占所传输比特总数的比率称为误码率BER(bit error rate)。
误码率和信噪比的关系很大。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检验措施。
循环冗余检验CRC
–>接受:
上图的001就是FCS帧检验序列。接收端计算101001001(也就是原数据加上FCS)除以1101,如果商为0,意味着传输过程没有差错,就接受,否则丢弃。
小结
不能确定出错的bit的是哪一位;
可能会出错,但只要经过严格的挑选,并且除数位数足够大,就可以极大减少出错概率;(比如如果除数是2,极其容易出现错误)
CRC只能做到无差错接受(意思是传输过程没有差错,有差错的一律丢弃);
要做到可靠传输,必须加上确认和重传机制。
3.3PPP协议—(使用点对点信道的数据链路层)#
现在全世界使用得最多的数据链路层协议是点对点协议PPP协议(Point-to-Point Protocol)
用户使用拨号电话线接入因特网时,一般都是使用PPP协议。
(可以记账,具有身份验证的功能)
(1)PPP协议(point to point protocol):
是数据链路层协议,例如用户使用拨号上网。
(2)PPP协议应该满足:
简单;封装成帧;透明性;多种网络层协议;多种类型链路;差错检验;检测连接状态;最大传送单元;网络层地址协商;数据压缩协商;
(3)PPP协议不需要满足:
纠错;流量控制;序号;多点链接;半双工或单工连接。
(4)PPP协议的组层部分:
数据链路层协议可以用于异步串行或同步串行介质;
使用LCP(链路控制协议)建立并维护数据链路连接,可以实现身份验证和欠费管理;
网络控制协议(NCP)允许在点到点连接上使用多种网络层协议,如下图;
(其中,链路控制协议复制身份验证。其通过之后,网络控制协议才可以正常通)
(5)PPP协议帧格式
标志字段F = 0x7E(PPP协议里面头尾是一样的)
地址字段A = 0xFF,它并不起作用
控制字段C = 0x03
PPP协议是面向字节的,所以所有的PPP帧的长度都是整数字节。
(6)字节填充(类似于透明传输)
此时,信息部分是以字节为单位的。
将信息字段中出现的每个0x7E字节转变成为2字节序列(0x7D,0x5E);
将信息字段中出现的每个0x7D字节转变成为2字节序列(0x7D,0x5D);
将信息字段中出现的每个ASCII码控制字符(小于0x20字符),在前面加入一个0x7D,同时将该字符的编码加以改变
(7)0比特填充(类似于透明传输)
此时,信息部分是二进制流。PPP协议在SONET/SDH链路时,是使用同步传输。(避免出现7e)
在发送端,只要发现有5个连续的1,则填充一个0,接收端删掉对应的0。
(8)PPP协议不使用序号和确认机制的原因
在数据链路层出现错误的概率不大时,使用较简单的PPP协议较为合理;
在Internet环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能保证网络层的传输也是可靠的;
帧检验序列FCS字段可以保证无差错接受。
3.4使用广播信道的数据链路层(局域网)#
1、局域网的拓扑结构#
其中的总线型是最早的
2、局域网的特点与优点#
局域网最主要的特点是:
网络为一个单位所拥有,且地理范围和站点数目均有限。
局域网具有以下的主要优点:
1)具有广播功能,从一个站点可以很方便地访问全网。局域网上的主机可共享连接局域网上的各种硬件和软件资源。
2)便于系统的扩展和逐渐地演变,个设备的位置可灵活调整和改变。
3)提高了系统的可靠性、可用性和生存性。
3、共享通信媒体#
静态划分信道(麻烦):
频分复用;时分复用;波分复用;码分复用;
动态媒体接入控制(多点接入):
随机接入(主要是以太网);受控接入,如多点线路探询(polling),轮询(不采用了)。
4、认识以太网#
最初的以太网是将许多计算机都连接到一根总线上,当初认为这样连接即简单又可靠,因为总线上没有有源器件。
总线上每一个主机都能检测到B发送的数据。但是只有D的地址和数据帧首部写入的地址一致,所以只有D接收。其余计算机都能检测到这不是发送给他们的数据帧,所以就丢弃这个数据帧。
这是一种具有广播特性的总线上实现了一对一通信。这种方式不安全。
优点:不用划分信道
缺点:一个链路上,只能一个发一个收,且安全性能不太好。
5、带冲突检测的载波监听/碰撞检测#
以太网使用CSMA/CD协议
CSMA/CD:
Carrier Sense Multiple Access with Collision Detection
多点接入:
许多计算机以多点接入的方式连接在一根总线上。
载波监听:
每一个站在发送数据之前都先要用电子技术检测一下总线时候有其它计算机在发送数据信号,如果有则不发送数据,以免发生碰撞;
碰撞检测
碰撞检测就是计算机边发送数据边检测信道上信号电压的大小。
–>当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大;
–>当一个站检测到信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站在同时发送数据,表明产生了碰撞;
–>碰撞就是冲突,碰撞检测也称冲突检测。
检测到碰撞后:
–>在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息;
–>每一个正在发送数据的站,一旦发现总线上出现了碰撞,就立即停止发送,避免浪费网络资源,等待一个随机的时间后再次发送。
6、传播时延对载波监听的影响#
网线越长,发现冲突的时间就越长,所以以太网不超过100米。
7、CSMA/CD的重要特性#
使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工);
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能;
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
8、争用期#
最先发送数据帧的站,在发送数据帧后至多经过时间2t(2倍的端到端往返时延)就可知道发送的数据帧是否发生了碰撞。
经过争用期这段时间还没有检测到碰撞,就可以肯定不会发生碰撞;
以太网的争用期:
->以太网的端到端往返时延2t称为争用期,或碰撞窗口,通常取51.2微秒为争用期的长度;如果网线过长,会导致争用期时间的延长,这也是为什么网线一般不超过100m;
->对于10Mb/s的以太网,在争用期可以发送512bit,也就是64 byte;
->以太网在发送数据的时候,若前64字节没有冲突,后续也不会发生冲突;
最短有效帧长:
->如果发生冲突,一定是前64字节;
->由于一旦发生冲突就立刻停止,所以已发送的数据一定小雨64字节;
->以太网规定了最短有效帧长为64字节,凡事小雨64字节的帧一定是因为冲突而异常终止的无效帧。
9、二进制指数类型退避算法
发送碰撞的站在停止发送数据后,要推迟一个随机事件才能发送数据。
–>确定基本退避时间,一般是争用期2t;
–>定义参数k = min(重传次数,10); k最大的取值是10,超过了10就不再扩大
–>从整数集合{0,1,…,2^k-1}中随机取出一个数,记为r,重传所需的时延就是r倍的基本退避时间;
–>当重传达16次时仍不能成功时就丢弃该帧,并向高层报告。
其中:重传次数从1开始,如果每次两台机器取值都恰巧一样,则其整数集合可拿取的随机数会越来越大。
3.5以太网#
1、以太网的两个标准#
DIX Ethernet V2一般是指这个。
IEEE 802.3 两个标准差别很小。
以太网 是满足DIX Ethernet V2标准的局域网。
2、以太网与数据链路层的2个子层#
为了使数据链路层更好的适应多种局域网标准,802委员会把局域网拆分为:
->逻辑链路控制LLC(Logical Link Control)子层;
->媒体接入控制MAC(Medium Access Control)子层。
与接入到传输媒体有关的内容都放在MAC子层上,而LLC子层与传输媒体无关,不管什么协议的局域网对LLC子层都是透明的;
由于局域网标准一般是DIX Ethernet V2而不是IEEE 802.3,所以802.2标准的LLC子层作用已经不大了,很多厂商适配器没有LLC协议;
3、以太网提供的服务#
以太网提供服务是不可靠的交付,即最大努力的交付;
当接收站收到的有差错的数据帧时就丢弃此帧,其它什么也不做,差错的纠正由高层来处理;
如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新帧发送。
(差错校验由两端的计算机决定的,中间的设备不管,只会把数据丢弃。)
4、以太网的星型拓扑结构#
物理上是星型,逻辑上是总线型。
为了降低成本,最初由粗的同轴电缆变成细的同轴电缆最后变成无屏蔽双绞线。每个站需要用两对双绞线,分别用于发送和接收;
在星形的中心增加了一种可靠性高的设备,为集线器(hub)。
(了解即可,现在基本用交换机,不再使用集线器)
5、集线器的特点#
集线器使用电子器件来模拟实际电缆线的工作,因此整个系统仍然是像一个传统的以太网那样运行。由于集线器使用了大规模集成电路芯片,所以可靠性更高;
使用集线器逻辑上仍然是一个总线网,各工作站使用的还是CSMA/CD协议,共享逻辑网络上的总线;
集线器像一个多接口的转发器,工作在物理层。
6、10Base-T 基于集线器的以太网标准(10倍以太网)#
它的通信距离稍短,每个站到集线器的距离不超过100m。
这种10MB/s的无屏蔽双绞线星形网的出现,能降低成本和提高可靠性。
10Base-T的出现有很大的意义,类似标准有100Base-FX(代表快速以太网),10Base-T,100Base-T4.
7、以太网的信道利用率#
争用期长度为2t;帧长为L bit,数据发送旅为C b/s,帧的发送时间为L/C = T0 秒。
一个帧从开始发送,经可能发生的碰撞后,将再次重传多次,直到发送成功且信道转为空闲(即再经过t使得信道上没有信号在传播)时为止,是发送一帧所需的平均时间。
定义a = t / T0,是单程端到端时延t与帧发送时间T0的比值。a越小,说明碰撞检测越快,信道利用率高。
当数据率(网速)一定时,以太网的连线长度受到限制,否则t会太长;
以太网的帧长不能太短,否则T0太小,使a太大。
8、信道利用率的最大值#
假设理想状态下,以太网上的各站发送的数据都不会碰撞,一旦总线空闲就能有站立即发送数据,所以没有争用期;
发送一帧需要占用总线T0+t,而帧本身需要发送时间为T0,于是理想情况下极限信道利用率Smax = T0 / (T0 + t) = 1 / (1 + a).
3.6MAC层#
1、MAC层的硬件地址(MAC地址)#
硬件地址 = 物理地址 = MAC地址
MAC地址前3个字节(24位)是厂家分配的地址字段,后3个字节(24位)是厂家自定义,称为扩展标识符;
一个地址块可以产生2^24个地址,这种48位地址称为MAC-48,通用名为EUI-48,这就是MAC地址;
MAC地址实际上是每一个站的名字或标识符。
查看MAC地址 命令ipconfig /all
3、适配器检查MAC地址#
适配器从网络上每收到一个MAC帧就要用硬件检查MAC帧中的MAC地址:
->如果是发往本站的帧就收下,然后进行其它处理;
->否则丢弃。
发往本站的帧包括:
->单播帧(unicast)(一对一)
->广播帧(broadcast)(一对全体)(全1,收到了FFFFFF就是表示给自己的)
->多播帧(multicast)(一对多)
4、MAC帧格式#
–>类型指明了里面是什么协议
–>FCS是帧校验序列
–>以太网的帧最短是64字节,而现在目的地址,原地址,类型和FCS占了18字节,所以IP数据报有效数据最小是46字节。
–>后面没有信号就代表结束,所以只要头,没有尾
前8个字节的作用是实现比特同步,第一个字段共7个字节,称为前同步码,作用是实现快速MAC帧的比特同步;第二个字段是帧开始定界符,表示后面的信息是MAC帧。
6、无效的MAC帧#
帧的长度不是整数个字节;
用收到的帧检验序列FCS查出有错误;
数据字段的长度不在46-1518字节内;
对于检查出来的无效MAC帧简单的丢弃。以太网不负责重传丢弃的帧。
7、帧间最小间隔#
为9.6微秒。相当于96bit的发送时间。
一个站在检测到总线空闲时,还需要等待9.6微秒后才能再次发送数据,这样做是为了使刚刚收到的数据帧的站接收缓存来得及清理,做好接收下一帧的准备。(也就是缓存处理做准备)
3.8虚拟局域网(VLAN)与局域网(LAN)#
交换机的使用是的VLAN的创建称为可能
虚拟局域网VLAN是有一些局域网网段构成的与物理位置无关的逻辑组。
–>这些网段具有某些共同的需求
–>每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的工作站是属于那一个VLAN
虚拟局域网其实只是局域网给用户提供的一个服务,而并不是一种新型局域网。
1、VLAN示意图
一个VLAN = 一个广播域 = 逻辑网段(子网)
网络层#
知识点:
- 网络层提供的两种服务
- 网际协议IP
- 网际控制报文协议ICMP
- 因特网的路由选择协议
- IP多播
- 虚拟专用网络VPN和网络地址转换NAT
4.1网络层提供的两种服务#
网络层关注的是如何将分组从源端沿着网络路径送达目的端。
在计算机网路领域,网络层应该向运输层提供怎样的服务("面向连接"还是“无连接”)曾引起了长期的争论
争论的焦点是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?(端系统,也就是主机)
两种服务:网络层应该向运输层提供怎样的服务?
虚电路服务
数据报服务
1、电信网:虚电路#
虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储收发方式传送,而并不是真正建立了一条物理连接。
请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
可以不写地址,因为管理员已经固定好了地址,提前配置路径。
2、因特网:数据报服务#
网络在发送分组时不需要先建立连接。每一个分组(既IP数据报)独立发送,与其前后的分组无关(不进行编号)
网络层不提供服务质量的承诺。既所传送的分组可能出错、丢失、重复和失序(不按顺序到达终点),当然也不保证分组传送的时限。当数量包过多的时候,超过存储承受能力的数据就会被丢弃。
路径由路由器临时决定。(比如光缆断了可以走卫星信号)
3、虚电路与数据报服务的比较#
现在互联网用的就是数据报服务,没有用虚电路的。(只是曾经想用)
4.2网际协议IP#
一、虚拟互联网#
1、网络互连的设备
中间设备又称为中间系统或中继(relay)系统。
物理层中继系统:转发器(repeater),有点像集线器(hub,物理层设备)。
数据链路层中继系统:网桥或桥接器(bridge),交换机。
网络层中继系统:路由器(router)。
传输层/应用层中继系统:网关(gateway)。(现在的配置网络的那个网关就是路由器的地址,不是网络层以上的)。网关就是路由器接口的地址。一般是本网段第一个地址。
2、网络的互连设备:路由器
默认网关就是路由器的接口,如果要发数据给其他的网段要给到路由器。如果没有配网段,计算机将不能到其他的网段,但是可以访问本网段的计算。
计算机还可以配置两个网关。但是添加的网关必须存在这个路由器接口才行,否者配置了错误的网关不能上网。
正常来说,网关可以是本网段的任何一个地址。但是网关一般都是用本网段的第一个地址,或者是最后一个地址。(用中间的容易和其他计算机地址重合,导致其他计算机网络出不去)
3、网络互联的问题
互连在一起的网络要进行通信,会遇到许多问题需要解决,如:
只考虑网络层的
4、互联网络与虚拟互联网络
虚拟网络把复杂的Internet看成一个网络,化简问题。虚拟互联网络就是逻辑互联网络,他的意思就是互联起来的各种物理网络的异构性本来就是客观存在的, 但是我们利用IP协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络,而不用考虑具体的网络异构细节。
5、IP协议简介
网际协议IP是TCP/IP体系中两个最主要的协议之一。与IP协议配合使用的还有四个协议:
地址解析协议ARP(Address Resolution Protocol)
逆地址解析协议RAPP(Reverse Address Resolution Protocol)
网际控制报文协议ICMP(Internet Control Message Protocol)
网际组管理协议IGMP(Internet Group Management Protocol)
以下是这四个协议的关系:
ARP协议负责解析网卡或者路由器的MAC地址
ICMP协议负责报告网络的故障(比如不可到达等等)
IP协议:把数据包从一个网段转到另一个网段,就是用来选择路径用的。ARP为IP服务,IP为ICMP/IGMP服务。
二、IP地址#
1、层次化IP地址
层次化IP地址将32位 的IP地址分为网络ID和主机ID
在同一个网段,只需要知道主机ID,便可以轻松找到,就不需要注意网络ID,这就是层次化的作用。
2、网络地址
网络地址(网络号)唯一指定了每个网络。同一网络中的每台计算机都共享相同的网络地址,并用它作为自己IP地址的一部分。ABC对应的子网掩码分别是255.0.0.0和255.255.0.0和255.255.255.0
- A类地址:0-127(不含127);
- B类地址:128-192(不含192);
- C类地址:192-224(不含224);
- D类地址224-240(不含240);
- E类地址240-248(不含248);
以下介绍特殊的几个地址:
127.0.0.1 本地换回地址
169.254.0.0 不能自动的获得IP地址(可能是地址不够用的原因,就会分配一个这样的地址)
保留的A类私网地址10.0.0.0,保留的B类私网地址172.16.0.0–172.31.0.0(32个),保留的C类私网地址192.168.0.0–192.168.255.0 (256个)(这些地址没有给服务器用,可以给政府或学校等用,对于这些私网地址是不能正常的连过去的)
C类地址解析
194.34.32.34是一个C类地址
子网掩码只要按一个table键,就知道生成255.255.255.0,目的就是为了告诉主机194.34.32是网络部分,34是主机部分。也就是255.255.255是网络部分,0是主机部分。
B类地址解析
133.2.32.32是一个B类地址
子网掩码只要按一个table键,就知道生成255.255.0.0,目的就是为了告诉主机133.2是网络部分,32.32是主机部分。也就是255.255是网络部分,0.0是主机部分。
在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的,图中的网络号就是IP地址中的net-id。
3、子网掩码
子网掩码的作用
A发数据到B子网掩码作用例子
对于一个IP地址是192.168.80.123,网关是192.168.80.1的计算机A,想要传输数据给192.168.90.123的计算机B
若子网掩码是255.255.255.0,对于A计算机其网络号是192.168.80.而对于B计算机其网路号是192.168.90。这就表明这两个计算机不在同一个网段,所以A计算机不能直接发数据给B计算机,只能发给路由器(网关),由其进行中转到B计算机中。
若子网掩码是255.255.0.0,对于A计算机其网络号是192.168,而对于B计算机其网路号也是192.168。这就表明这两个计算机在同一个网段中,A计算机不需要通过网关中转数据,可以直接发数据给计算机B。
三、子网划分#
1、一个C类网络等分成两个子网
主机部分不能全为0(全0表示的是一个网段不能表示一个主机ID),也不能全为1(255表示主机部分全为1,这是一个广播)
将一个C类的网络等分成两部分,0-127为第一部分,128-255为第二部分。
由于主机ID不能全为0,所以第一部分最先开始的范围是1(0x00000001)。(0是本网段)。且主机ID不能全为1,所以第一部分的最后范围是126(0x01111110)。(127是本网段的广播地址)
由于主机ID不能全为0,所以第二部分最先开始的范围是129(0x10000001)。(128表示本网段)。且主机ID不能全为1,所以第二部分的最后范围是254(0x11111110)。(255是本网段的广播地址)
由于第8位现在已经当成是网络ID,所以只需要将子网掩码的第八位也置为1便可,也就是255.255.255.128(10000000)
路由器一般是用本网段的第一个地址。所以第一个部分的路由器网关(地址)是192.168.0.1,第二个部分的路由器网关(地址)是192.168.0.129。
4、子网划分的补充与规律
- 补充1:点对点的子网源码是252(0x11111100),也就是对等平分了6次,平分到成64份。
- 补充2:子网掩码的划分遵循一定的规律,除2除2的关系。也就是如果将200台机器在C类网络上划分为150台和50台的情况是不可能的。因为150大于128.
- 补充:主机位 全0和全1 的不能用 ,一个代表区域,一个代表广播
5、变长子网划分
6、变长子网掩码的确定
题目如下:
分析:
对于Laser Fa0/0 IP网段有12台机器,所以只需要划分范围比12稍大即可。当C类网络分成16份时(16范围,除了4次2),一份的可用范围是14,满足条件。此时的子网掩码是240,也就是28位的子网掩码。选择192.168.201.196/28即可。
对于Inkjet Fa0/0 IP网段有24台机器,所以只需要划分范围比24稍大即可。当C类网络分成8份时(32范围,除了3次2),一份的可用范围是30,满足条件。此时的子网掩码是224,也就是27位的子网掩码。选择192.168.201.131/27即可。
对于Inkjet S0/1 IP网段是点对点的网段,子网掩码移了6位,所以是30位的子网掩码。但是对于IP不能全1也不能全0,而168是(0x1010 1000),主机号是00,不能给计算机用。而169是(0x1010 1001),主机号是01,可用给计算机用。
四、超网#
1、超网现象
本来计算机A和计算机B在同一个网段,可以直接的进行数据的收发,但是由于子网掩码设置错误,导致网络ID不一样。也就是机器觉得他们不在同一个网段上。
在这种情况下,A计算机到B计算机通信,必须通过路由器转发,如下图所示,这样两个子网能够通信。但是本来这些计算机物理上就是在同一个网段,还需要路由器转发,效率不高。
2、合并两个网段
如图所示,将192.168.0.0和192.168.1.0两个C类网络合并。将IP地址地3,4字节写成2进制,可以看到将子网掩码往左移动1位,网络部分就一样了,这两个网段就在一个网段了。
解决效果:
4、合并网络的规律总结
五、IP地址与MAC硬件地址#
1、计算机A和计算机B通信过程
- 交换机基于数据帧的MAC地址转发数据帧,路由器基于数据包的IP地址转发数据包。
- 数据包在传输过程中不变,过网络设备数据帧要用新的物理层地址重新封装。
- MAC地址决定了数据帧下一跳哪个设备接收,而IP地址决定了数据包的起点和终点。
- 基于MAC地址控制代理服务器只能控制本网段的计算机,不能获取其他网段计算机的MAC地址。
2、ARP协议
ARP协议是将IP地址解析成MAC地址。
ARP协议将IP地址通过广播(本网段,不通过路由器),目标MAC地址是FF-FF-FF-FF-FF-FF,解析目标IP地址的MAC地址。
ARP是解决同一个局域网上的主机或路由器的IP地址和MAC地址的映射关系。如果所找的主机和原主机不在同一个局域网上,那么就要通过ARP找一个位于本局域网上的某个路由器的MAC地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
从IP地址到MAC地址的解析是自动进行的,主机的用户对这种地址解析过程是不知情的。
只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的MAC地址。
3、使用ARP协议的四种典型情况
发送方是主机,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
发送方是主机,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;
发送方是路由器,要把IP数据报发送到本网络的另一个主机,此时用ARP找到目标主机的MAC地址;
发送方是路由器,要把IP数据报发送到另一个网络的另一个主机,此时用ARP找到本网络上一个路由器的MAC地址,剩下的工作由路由器进行;
4、逆地址解析协议RARP
只知道自己MAC地址就能获得其IP地址。
六、IP数据报#
1、IP数据报(包)的组成格式
一个IP数据包有首部和数据两个部分组成。
首部:第一部分是固定长度,20字节,是所有IP数据包必须具有的。
在首部的固定部分的后面是一些可选字段,其长度是可变的。
2、IP数据报首部的固定部分中的各字段
首部是一共20字节,但是没行是32bit(4字节),所以整个首部占5行。详细划分如下所示:
以下是各个部分的分析:
版本——占 4 位,指 IP 协议的版本。目前的 IP 协议版本号为 4 (即 IPv4)
首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节)。因此 IP 的首部长度的最大值是 60 字节。
区分服务——占 8 位,用来获得更好的服务。(着急的先过,不着急的慢慢排队,语音优先,文字可以排队)。在一般的情况下都不使用这个字段 。
总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节(216-1)。总长度必须不超过最大传送单元 MTU。
标识(identification)——占 16 位,它是一个计数器,用来产生数据报的标识。 b不是序号,每产生一个数据包,就增加1.
标志——占 3 位,告诉后面的数据包是不是分片的。目前只有前两位有意义。标志字段的最低位是 MF (More Fragment)。MF=1 表示后面“还有分片”。MF=0 表示最后一个分片。标志字段中间的一位是 DF (Don’t Fragment) 。只有当 DF=0 时才允许分片。
片偏移——占 3 位,较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。(也就是偏移等于当前字节在数据部分的第几个再除以8,因为8字节为1单位)。例如:
- 生存时间——占 8 位,记为 TTL (Time To Live),数据报在网络中可通过的路由器数的最大值。每过一个路由器就减1,防止数据包在网络中循环。
协议——占 8 位,字段指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程。用协议号标识数据部分是什么数据。
ICMP协议号:1;
IGMP协议号:2;
TCP协议号:6;
UDP协议号:17;域名解析
IPv6协议号:41;
OSPF协议号:89;
首部检验和——占 16位,只检验数据报的首部,不检验数据部分。这里不是采用CRC检验码而是采用简单的计算方法。每经过一个路由器就会检验一次。
- 源地址和目的地址都是IP地址,32位,只符合IPv4。IPv6是128位。
- 可变部分:IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。长度可变。增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际很少使用。
七、数据路由#
1、网络畅通条件
数据路由路由器在不同网段转发数据包。能去能回,网络才能畅通。
沿途的路由器必须知道到目标网络下一跳给哪个接口。
沿途的路由器必须知道到源网络下一跳给哪个接口。
分析:
计算机PC0 ping PC1,网络要想通,要求沿途的路由器Router0,Router1,Router2和Router3都必须有到192.168.1.0/24网段的路由,这样数据包才能到达PC1.
PC1要回应数据包给PC0,沿途所有的路由器必须有到192.168.0.0/24网络的路由,这样数据包才能回来。
2、配置静态路由
需要管理员告诉路由器所有没有直连的网络下一跳给谁。
适合于小规模网络,不能自动调整路由。
4.3网际控制报文协议ICMP#
1、ICMP简介#
为了提高IP数据包交付成功的机会,在网际层使用了网际控制报文协议。
ICMP:在IP之上,用来测试网络层有没有故障。使用最多的命令是ping。
为了提高IP数据报交付成功的机会,在网络层使用了ICMP(Internet Control Message Protocol)。
ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告;
ICMP不是高层协议,而是IP层协议;
ICMP报文件为IP层数据报的数据加上数据报的首部,组成IP数据报发送出去。
2、ICMP报文格式#
3、 ICMP 报文的种类#
ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
ICMP 询问报文有2种:回送请求和回答报文;时间戳请求和回答报文
ICMP 差错报告报文共有 5 种 :终点不可达 ;源点抑制(Source quench) ;时间超过 ;参数问题 ;改变路由(重定向)(Redirect) 。ICMP 差错报告报文的数据字段的内容 如下所示:
4、ICMP的应用举例#
(1)ping命令—网络层命令
PING 用来测试两个主机之间的连通性。
PING 使用了 ICMP 回送请求与回送回答报文。
PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。
特点:
(1)PING,因特网包套所起,用于测试网络连接量的程序。ping发送一饿ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。
(2)ping指端对端联通,通常用作可用性检测,但是某些病毒会强行大量远程执行ping命令抢占你的网络资源,导致系统网速变慢。严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。
(3)如果打开IE浏览器访问网站失败,可以通过ping命令测试到Internet的网络连通,可以为你排除网络故障提供线索。
(2)ping和pathping命令
QQ能登上,网页打不开是为什么? 网络层没有问题,域名解析有问题。
pathping 能跟踪数据包路径,发现出问题的位置。
5、动态路由协议#
简介
如果路由器存在一个环形的结构,可以使用动态路由让其自行寻找一个最佳的路径,并且可以有其他备用的路径选择,而不用管理员进行一条条的静态路由配置。而且对于静态路由存在某一个网段更改,需要将之前静态路由配置的内容全部删掉。而动态路由则不用。
5.1动态路由协议1----RIP协议(选路径)
周期性广播(30s)路由表,选择路径的依据是最少的跳数,最大跳数是15跳,所以一般不适合大网络。(不考虑带宽,只考虑路径最短)
5.2动态路由协议2—OSPF (Open Shortest Path First)协议(选带宽)#
1、OSPF协议的三个要点
向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是 路由器所知道的部分信息。(“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。)
只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
2、OSPF每个路由器维护三部分内容
邻居状态;链路状态数据库(link-state database) ;路由表
4.4 IGMP协议和多播组播#
点到点通信:
广播:目标MAC地址全是F,目标IP地址全是255,也就是全是1.全网广播不能跨越路由器。
组播=多播:分组广播。
-
使用多播一般用于直播,网络会议,能够节省带宽。
-
IGMP协议的作用就是周期性扫描本网段内有没有主机在访问多播数据包。
4.5 VPN技术和网络地址转换#
- 本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。
- 全球地址——全球唯一的IP地址,必须向因特网的管理机构申请
A与B内部的通信本来不经过互联网,如果两者之间想要通信,可使用VPN技术,A将数据报作为内部数据发给路由器R1,路由器R1收到数据报后,对内部数据报加密(保证数据安全),然后重新加上数据报的首部,封装成互联网的外部数据报,到达R2,然后在进行解密,从而实现两者间的通信。
网络地址转换NAT#
NAT原理:
内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。根据 NAT 转换表,NAT 路由器将目的地址 IPG转换为 IPX,转发给最终的内部主机 X。
现常用的NAT转换表利用运输层的端口号,使得多个拥有本地地址的主机共用一个路由器上的全球IP地址,使用端口号的NAT也叫网络地址与端口号转换NAPT。
5. 传输层#
回顾和前提知识:
网络层IP协议:网际控制报文协议ICMP,网际组管理协议IGMP,地址解析协议ARP和选路协议(RIP最短路径,OSPF最好带宽,BGP发言人外部网关协议)
传输层协议:TCP流模式,UDP数据包模式
应用层:http网页协议,https,ftp站点,DNS域名解析,SMTP发邮件协议,PoP3收邮件协议,RDP远程桌面协议
传输层两个协议的应用场景:
TCP:分段 编号(为了拼接) 流量控制 需要建立会话 netstat -n命令可以查看会话
UDP:一个数据包就能完成数据通信 不建立会话 多播(不可靠传输)
(QQ聊天是使用的是UDP协议,QQ传输文件是TCP协议可靠传输,根据不同的应用使用了不同的传输协议)
5.1传输层的功能#
一、OSI七层模型和TCP/IP四层模型#
传输层最大数据包是65535字节,而网络层数据最大只有1480字节。所以需要分段,但是只要分段,就有可能丢包,因为网络层不负责可靠传输。所以要求服务器和客户端保持会话,直到数据传输完成。
-
TCP(Transmission Control Protocol)传输控制协议
应用场景:需要将要传输的文件分段传输时;就需要TCP协议来建立会话实现可靠传输;同时也有流量控制功能。(例如QQ传文件)
查看会话 netstat -n
查看建立会话的进程 netstat -nb -
UDP(User Data Protocol)用户数据报协议
应用场景:一个数据包就能完成数据通信;不需要建立会话和流量控制;多播/广播;是一种不可靠传输。(例如QQ聊天,屏幕广播)
二、传输层和应用层之间的关系#
- TCP和UDP协议和不同的端口即可对应一个应用层的协议。注意,53大部分是与UDP相连。
- 熟知数值一般为0-1023;登记端口号数值1024-49151(为没有熟知端口号的应用程序使用的),客户端口号数值为49152-65535(留给客户进程选择暂时使用)。
- 常用的应用层协议使用的端口(号):
ftp = TCP + 21
telnet = TCP + 23
SMTP = TCP + 25
DNS = UDP + 53 或 TCP + 53
http = TCP + 80
POP3 = TCP + 110
Https = TCP + 443
共享文件夹 = TCP + 445
SQL = TCP + 1433
RDP = TCP + 3389
(以上的端口是可以更改的) - 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。
关于端口的补充:
用来区别服务,同时让不同操作系统的相同应用可以通信。
运行在计算机中的进程是用进程标识符来标志的。运行在应用层的各种应用进程却不应当让计算机操作系统指派它的进程标识符。这是因为在因特网上使用的计算机的操作系统种类很多,而不同的操作系统又使用不同格式的进程标识符。为了使运行不同操作系统的计算机的应用进程能够互相通信,就必须用统一的方法对 TCP/IP 体系的应用进程进行标志。
解决这个问题的方法就是在运输层使用协议端口号(protocol port number),或通常简称为端口(port)。虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点,因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由 TCP 来完成。
三、应用层协议和服务之间的关系#
防火墙是基于网卡的,只打开必要的端口,不必要的端口不允许接收数据,不影响服务的运行和监听。
服务使用TCP或UDP的端口侦听客户端请求;
客户端使用IP地址定位服务器,使用目标端口,定位服务;
可以在服务器网卡上设置只开放必要的端口,实现服务器网络安全。
- 用端口来定位服务,用IP地址来定位计算机
- 服务(对外)运行后在TCP或UDP的某个端口监听客户端的请求
- 如果装了一个服务不能访问,可能原因是服务没有启动,这时需要手动的启动服务,端口监听。
四、传输层为相互通信的应用进程提供了逻辑通信#
两个主机进行通信实际上就是两个主机中的应用进程互相通信。
应用进程之间的通信又称为端到端的通信。
运输层的一个很重要的功能就是复用和分用。应用层不同进程的报文通过不同的端口向下交到运输层,再往下就共用网络层提供的服务。
“运输层提供应用进程间的逻辑通信”。“逻辑通信”的意思是:运输层之间的通信好像是沿水平方向传送数据。但事实上这两个运输层之间并没有一条水平方向的物理连接。
五、传输层协议和网络层协议的主要区别#
六、传输层的主要功能#
- 传输层为应用进程之间提供了端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。
- 传输层还要对收到的报文进行差错检验。
- 传输层提供面向连接(TCP)和无连接(UDP)的服务。
七、传输层的端口#
八、两种不同的传输协议#
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。
当运输层采用面向连接的 TCP 协议时,尽管下面的网络是不可靠的(只提供尽最大努力服务),但这种逻辑通信信道就相当于一条全双工的可靠信道。
当运输层采用无连接的 UDP 协议时,这种逻辑通信信道是一条不可靠信道。
5.2传输层协议UDP和TCP#
TCP/IP 的运输层有两个不同的协议:
用户数据报协议 UDP (User Datagram Protocol)
传输控制协议 TCP (Transmission Control Protocol)
一、TCP与UDP#
两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。TCP 传送的数据单位协议是 TCP 报文段(segment)。 UDP 传送的数据单位协议是 UDP 报文或用户数据报。
UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。
TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
二、UDP协议#
1、UDP协议的介绍
UDP是无连接的,即发送数据之前不需要建立连接。
UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。
UDP是面向报文的,适合多媒体通信的要求。
UDP支持一对一,一对多,多对一,多对多交互通信。
UDP首部开销小,只有8个字节
2、UDP的首部格式
用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节。
在计算检验和时,临时把“伪首部”和 UDP 用户数据报连接在一起。伪首部仅仅是为了计算检验和。
三、TCP协议#
学习TCP协议主要解决三个问题:
- TCP协议如何实现可靠传输
- TCP协议如何实现流量控制
- TCP协议如何避免网络拥塞
1、TCP协议的特点
- TCP是面向连接的传输层协议。(三次握手,确保网络没有问题才开始传输)
- 每一条TCP连接智能有两个端点(endpoint),每一条TCP连接只能时点对点的(一对一)。
- TCP提供可靠交付的服务。(确保不丢包)
- TCP提供全双工通信。(因为需要接收端的反馈,例如如果接收端处理不过来,可让发送端慢一点,流量控制)
面向字节流。
如果要传输一个比较大的数据,首先一次只会传输一小块,这个数据块的大小是没有规律的。加上数据包数据帧的头,发送给接收端,接收端去掉首部,再次拼接起来。
2、TCP的连接
-
TCP把连接作为最基本的抽象。
-
每一条TCP连接有两个端点。
-
TCP连接的端点不是主机,不是主机的IP地址,不是应用程序,也不是传输层协议端口,TCP连接的端点叫 套接字(socket).
套接字socket = (IP地址:端口号) -
每一条TCP连接唯一地被通信两端的两个套接字所确定,即:
-
TCP连接 ::= {socket1, socket2} =
-
端口号拼接到(contatenated with) IP 地址即构成了套接字。
5.3TCP的可靠性传输实现#
一、可靠传输的工作原理—停止等待协议#
- 无差错情况的默认行为:只要不确认,就重传
- 超时重传的默认行为:没有告诉M1收到了,所以还是会重传
- 确认丢失的默认行为:确认的包丢失了,没有收到确认收到还是会重传,但是B已经收到了所以重新确认收到M1,但是新的M1会丢弃
- 确认迟到的默认行为:确认收到的包走了原路教慢的传到了A中,但是A还是会重传M1,直到收到确认。但是第二个M1的确认就会忽视。
使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。这种可靠传输协议常称为自动重传请求ARQ (Automatic Repeat reQuest)。
ARQ 表明重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组 。
注意:
- 在发送完一个分组后,必须暂时保留已发送的分组的副本。
- 分组和确认分组都必须进行编号。
- 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些。
二、信道利用率#
参数分析:
- TD:A发数据包所需要的时间
- TA:B收确认数据包所需要的时间(比较固定)
- RTT:数据包传输的往返时间(固定的)
- U:信道利用率(发数据包的时间和总共所需要时间的比值)
只需要提高TD,就可以提高信道利用率,让其一直发包。
三、流水线传输#
流水线传输是为了提高TD,提高信道利用率。
发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认。由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。
1、流水线传输的可靠性原理 ----- 连续ARQ协议
到收到1的应答信号时,就可以将1从缓存信号中丢弃不再需要。发送窗口向右移动,此时6被框柱了,所以也就将6发送出去。不断移动,依次类推。
在发送窗口中的数据不能删除缓存,必须等到对应的ACK应答信号才可以清除。
如果12收到了,3没有收到,则滑动窗口会会回溯到3位置,重新发送。
2、累积确认 ----- 提高确认回复效率
接收方一般采用累积确认的方式。即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了。
如果3收到了,B向1发了一个3的确认收到回复,就表示1,2也确认了。
如果3没有收到,但是1,2,4收到了,B就会向A发一个2确认收到的回复,4需要重传。
- 优点:容易实现,信道利用率高。
- 缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。
四、TCP 可靠通信的具体实现#
- TCP 连接的每一端都必须设有两个窗口——一个发送窗口和一个接收窗口。
- TCP 的可靠传输机制用字节的序号进行控制。TCP 所有的确认都是基于序号而不是基于报文段。
- TCP 两端的四个窗口经常处于动态变化之中。
- TCP连接的往返时间 RTT 也不是固定不变的。需要使用特定的算法估算较为合理的重传时间。
五、以字节为单位的滑动窗口技术#
1、正常状态(无丢包)
-
在没有收到B确认收到之前,A不能删掉滑动窗口内的内容。A可以持续给B发送,直到A的滑动窗口内数据都发了。A的发送窗口是由B的接受窗口长度决定的。(接受窗口决定发送窗口)
-
B收到后给A发确认收到的反馈ACK,序号是下一个应该发送的字节的序号。(确认号是7,序列号是1)。A收到后,就可以滑动窗口到对应的位置。例如B反馈ACK是7,那么A的滑窗可以移动到7位置,1-6删除。21-26可以发送。
2、出现丢包情况
-
如丢失情况,例如7-9丢失,此时B反馈的ACK=7.因为10-12收到了,因此B发送SACK(选择性确认),A只发送7-9,不必再重新发送10-12
-
接着A便再不断的发送13及后面的数据,最终B收到了一个连续的直接,如下所示,便会给A确认(确认号是16),A就可以往前移动窗口。(没收到一个确认都会移动发送窗口,当然接受窗口也是对照的移动)
六、超时重传时间的选择
TCP美发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到了,但是还没有收到数据,那么就重传这一报文段。
RTTs(new) = (1 - alpha) x (RTTs(old)) + alpha x (new RTT样本)
超时重传时间应略大于上面得出的加权平均往返时间RTTs。alpha推荐值是0.125.
这个公式的目的是根据网速和带宽的实时情况调整往返时间。
5.4 TCP 报文段的首部格式#
以下是各字段的介绍:
- 源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
- 序号字段 seq ——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
- 确认号字段ack ——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
- 数据偏移(即首部长度)——占 4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远,也就是当前TCP报文段第多少个字节后是TCP的数据部分了。数据偏移最多表示1111,即15,他最多可以表示15乘以4,即60个字节的偏移量,所以选项+填充最多只能是40个字节。
- 保留字段——占 6 位,保留为今后使用,但目前应置为 0。
- 紧急 URG —— 当 URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送,最好不要排队(相当于高优先级的数据)。
- 确认 ACK —— 只有当 ACK = 1 时确认号字段才有效。当 ACK = 0 时,确认号无效。
- 送 PSH (PuSH) —— 接收 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。
- 复位 RST (ReSeT) —— 当 RST = 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
- 同步 SYN —— 同步 SYN = 1 表示这是一个连接请求或连接接受报文,要发起会话。 (发送会话请求和同意会话)
其中,利用同步SYN字段可以制造一些程序对目标的主机进行攻击。
syn攻击:伪造大量的不存在的地址请求,占用xp电脑CPU资源
land攻击:目标地址和原地址都是xp自己,也就是让xp给自己建立大量的会话,让其把自己CPU资源奔溃
终止 FIN (FINis) —— 用来释放一个连接。FIN = 1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。
窗口字段 —— 占 2 字节,用来让对方设置发送窗口的依据,单位为字节。例子如下:(接受窗口确定发送窗口)
- 检验和 —— 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。
- 紧急指针字段 —— 占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。
- 选项字段 —— 长度可变。TCP 最初只规定了一种选项,即最大报文段长度 MSS。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。” (MSS (Maximum Segment Size)是 TCP 报文段中的数据字段的最大长度。数据字段加上 TCP 首部才等于整个的 TCP 报文段。)
- 填充字段 —— 这是为了使整个首部长度是 4 字节的整数倍。
5.5 TCP的流量控制实现#
3、会话建立具体过程#
从建立会话,到传输数据到确认反馈的一个过程如下(15-19过程):
过程分析如下:
xp向Web站点发送了一个数据包。目标端口是80;源端口是1057;序列号是1表示这个数据包的数据是整个数据的第一个字节;确认号也是1;这个数据包的数据部分有1-203这么多个字节。
Web站点发了一个回返数据包给xp。目标端口是1057;源端口是80;序列是1表示网站给xp数据中的第一个数据所以是1;确认号是204表示确认收到了xp前一步发送的203个数据,现在是想xp发送第204以后的字节;不过这个数据包的长度是0,只有一个首部没有其他数据。
Web站点又发了一个回返数据包给xp真正的开始发数据。目标端口是1057;源端口是80;序列是1表示因为上一个包没有发数据,所以网站给xp数据中的第一个数据还是1;确认号还是204因为还是想xp开始发204以后的数据但是xp还没有发所以保持不变知道xp发了数据;这个数据包的数据部分有1-1460这么多个字节。
Web站点又发了一个回返数据包给xp。目标端口是1057;源端口是80;序列号是1461因为上一个数据包发了1460个数据;确认号还是204保持不变;这个数据包的长度是593,从1461开始,再加592,所以数据包部分是1461-2053字节。
此时xp向Web站点发了一个数据包。目标端口是80;源端口是1057;序列号是204表示之前这个数据已经发送了203个字节,现在从204开始;确认号是2054表示收到了Web站点之前发送的2054个数据;不过这个数据包的长度同样是0,只有一个首部没有其他数据。
————————————————
版权声明:本文为CSDN博主「Clichong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44751294/java/article/details/105057420
流量控制的实现#
解决通信两端处理时间不一样的问题。通过实时调整滑窗尺寸的大小(尺寸甚至可以是0)来实现流量控制。接收端主动调整滑窗大小,发送端根据接收端发送的报文调整相应的滑窗。发送端也会定时发送报文向接收端确认滑窗信息,避免接收端发送的相关调整滑窗大小的报文丢失带来的影响。
#
3.1.利用滑动窗口实现流量控制
- 一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。
- 流量控制(flow control)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
- 流量控制举例:
A 向 B 发送数据。在连接建立时,B 告诉 A:“我的接收窗口 rwnd = 400(字节)”。
由图可知,利用滑动窗口机制可以很方便地在 TCP 连接上实现流量控制。
l
5.6TCP的拥塞控制实现#
一、拥塞控制与流量控制的关系#
出现资源拥塞的条件: 对资源需求的总和 > 可用资源
拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。
拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。
流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。 流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
二、拥塞控制起到的作用#
三、慢开始和拥塞避免#
1、控制拥塞窗口的原则
只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去;
只要网络出现拥塞,拥塞窗口就减少一些,以减少注入到网络中的分组数。
2、慢开始算法的原理
3、慢开始门限状态变量ssthresh设置
慢开始门限状态变量ssthresh的用法如下:
当cwnd<ssthresh时,使用慢开始算法;
当cwnd>ssthresh时,停止使用慢开始算法,改用拥塞避免算法;
当cwnd=ssthresh时,使用慢开始算法或拥塞避免算法均可;
4、拥塞避免算法的思路
让拥塞窗口cwnd缓慢地增大,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍,使拥塞窗口cwnd按线性规律缓慢增长。
5、当网络出现拥塞时对策
无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有按时收到确认),就要把慢开始门限ssthresh设置为出现拥塞时的发送方窗口值的一半(但是不能小于2)。
然后把拥塞窗口cwnd重新设置为1,执行慢开始算法。
这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够的时间吧队列中积压的分组处理完毕。
6、慢开始和拥塞避免算法的实现举例
过程分析:
-
当 TCP 连接进行初始化时,将拥塞窗口置为 1。图中的窗口单位不使用字节而使用报文段。慢开始门限的初始值设置为 16 个报文段,即 ssthresh = 16。
-
发送端的发送窗口不能超过拥塞窗口 cwnd 和接收端窗口 rwnd 中的最小值。我们假定接收端窗口足够大,因此现在发送窗口的数值等于拥塞窗口的数值。
-
在执行慢开始算法时,拥塞窗口 cwnd 的初始值为 1,发送第一个报文段 M0。
-
发送端每收到一个确认 ,就把 cwnd 加 1。于是发送端可以接着发送 M1 和 M2 两个报文段。
-
接收端共发回两个确认。发送端每收到一个对新报文段的确认,就把发送端的 cwnd 加 1。现在 cwnd 从 2 增大到 4,并可接着发送后面的 4 个报文段。
-
发送端每收到一个对新报文段的确认,就把发送端的拥塞窗口加 1,因此拥塞窗口 cwnd 随着传输轮次按指数规律增长。
-
当拥塞窗口 cwnd 增长到慢开始门限值 ssthresh 时(即当 cwnd = 16 时),就改为执行拥塞避免算法,拥塞窗口按线性规律增长。
-
假定拥塞窗口的数值增长到 24 时,网络出现超时,表明网络拥塞了。
-
更新后的 ssthresh 值变为 12(即发送窗口数值 24 的一半),拥塞窗口再重新设置为 1,并执行慢开始算法。
-
当 cwnd = 12 时改为执行拥塞避免算法,拥塞窗口按按线性规律增长,每经过一个往返时延就增加一个 MSS 的大小。
需要注意:
- “拥塞避免”并非指完全能够避免了拥塞。利用以上的措施要完全避免网络拥塞还是不可能的。
- “拥塞避免”是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。
四、快重传和快恢复#
1、快重传介绍
快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认。这样做可以让发送方及早知道有报文段没有到达接收方。
发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段。 不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。
2、快恢复算法
当发送端收到连续三个重复的确认时,就执行“乘法减小”算法,把慢开始门限 ssthresh 减半。但接下去不执行慢开始算法。
由于发送方现在认为网络很可能没有发生拥塞,因此现在不执行慢开始算法,即拥塞窗口 cwnd 现在不设置为 1,而是设置为慢开始门限 ssthresh 减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。
3、发送窗口的上限值
发送方的发送窗口的上限值应当取为接收方窗口 rwnd 和拥塞窗口 cwnd 这两个变量中较小的一个,即应按以下公式确定:
发送窗口的上限值 = Min [rwnd, cwnd]
当 rwnd < cwnd 时,是接收方的接收能力限制发送窗口的最大值。
当 cwnd < rwnd 时,则是网络的拥塞限制发送窗口的最大值。
5.6TCP的传输连接管理#
传输连接有三个阶段,即:连接建立,数据传送,连接释放。
运输连接的管理就是使运输连接的建立和释放都能正常地进行。
一、客户服务器方式#
TCP连接的建立都是采用客户服务器方式。
主动发起连接建立的应用进程叫做客户(client)。
被动等待连接建立的应用进程叫做服务器(server)。
二、TCP的连接建立#
用三次握手建立TCP连接,过程分析如下:
- A 的 TCP 向 B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x,ACK=0,表明传送数据时的第一个数据字节的序号是 x。
- B 的 TCP 收到连接请求报文段后,如同意,则发回确认。B 在确认报文段中应使 SYN = 1,使 ACK = 1,其确认号ack = x + 1,自己选择的序号 seq = y。
- A 收到此报文段后向 B 给出确认,其 ACK = 1,确认号 ack = y + 1。A 的 TCP 通知上层应用进程,连接已经建立。
- B 的 TCP 收到主机 A 的确认后,也通知其上层 应用进程:TCP 连接已经建立。
- 如此,连接成功建立
头两次握手除了确定双方都能联通外,还通知了双方的一些端口信息。
第三次握手原因:
-
假如把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机A和B之间的通信,假定A给B发送一个连接请求分组,B收到了这个分组,并发送了确认应答分组。按照两次握手的协定,B认为连接已经成功地建立了,可以开始发送数据分组。可是,B的应答分组在传输中被丢失的情况下,A将不知道B是否已准备好,A认为连接还未建立成功,将忽略B发来的任何数据分组,这样就形成了死锁。
-
假如把三次握手改成仅需要两次握手,服务器会白白等待浪费资源是可能发生的。作为例子,考虑计算机A和B之间的通信,假定A给B发送一个连接请求分组,请求发送在中途比较慢,导致A从新发送连接请求分组,B收到了这个分组,并发送了确认应答分组,建立连接,开始发送数据,过了一会中途耽误的请求发送到了B,B就又开辟资源发送建立连接回应,按照两次握手的协定,A认为连接已经成功地建立了,将忽略第二次的建立连接回应。可是,B的应答分组在传输中被A忽略的情况下,将继续SYN-REVD状态浪费资源,情况过多会导致崩掉。
三、TCP的连接释放#
用四次挥手释放TCP连接,过程分析如下:
- A 的应用进程先向其 TCP 发出连接释放报文段,并停止再发送数据,主动关闭 TCP 连接。A 把连接释放报文段首部的 FIN = 1,其序号seq = u,等待 B 的确认。
- B 发出确认,确认号 ack = u + 1,而这个报文段自己的序号 seq = v。TCP 服务器进程通知高层应用进程。从 A 到 B 这个方向的连接就释放了,TCP 连接处于半关闭状态。但是A此时仍然可以接受来自B的数据,只不过自己不能向B发送数据了。
- 若 B 已经没有要向 A 发送的数据,其应用进程就通知 TCP 释放连接。
- A 收到连接释放报文段后,必须发出确认。在确认报文段中 ACK = 1,确认号 ack = w + 1,自己的序号 seq = u + 1。
TCP 连接必须经过时间 2MSL 后才真正释放掉。
A要等待2MSL,是怕服务器没有收到自己最后一次的请求,一直停留在LAST—ACK状态。,如果B没有收到,B会从新上传FIN,这样A才收到,重新发送最后一次关闭请求,让B结束LAST—ACK状态。
应用层#
6.1.应用层概述#
一、简介#
数据传输的三种划分模型:
这些应用层协议可以想象为不同的服务,因为每一个服务需要用的不同的协议。
1.1.应用层协议的特点
- 每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。应用层的具体内容就是规定应用进程在通信时所遵循的协议。
- 应用层的许多协议都是基于客户服务器方式。
二、四层、五层和七层体系结构的区别#
这里所说的是关于计算机数据通信的分层。
2.1.OSI七层模型
OSI七层协议模型主要是:
- 应用层(Application);
- 表示层(Presentation);
- 会话层(Session);
- 传输层(Transport);
- 网络层(Network);
- 数据链路层(Data Link);
- 物理层(Physical)。
2.2.TCP/IP四层模型
TCP/IP是一个四层的体系结构,主要包括:应用层、运输层、网际层和网络接口层。从实质上讲,只有上边三层,网络接口层没有什么具体的内容。
2.3.五层协议的体系结构
五层体系结构包括:
- 应用层;
- 运输层;
- 网络层;
- 数据链路层;
- 物理层。
五层协议只是OSI和TCP/IP的综合,实际应用还是TCP/IP的四层结构。为了方便可以把下两层称为网络接口层。
2.4.三种模型结构:
6.2.域名系统DNS#
参考:
一、域名简介#
1.1.DNS服务的作用
负责解析域名,将域名解析成IP地址。
1.2.域名系统概述
- 由于32位的IP地址并不容易记忆,人们往往喜欢记忆网站的域名。所以当我们访问网站时,是通过输入的域名解析为对应IP地址,对该IP地址进行访问的。
- 名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
1.3.因特网的域名结构
- 因特网采用了层次树状结构的命名方法。
- 任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
- 域名的结构由标号序列组成,各标号之间用点隔开:
- 上图的各标号:三级域名、二级域名等分别代表不同级别的域名。
1.4.域名只是个逻辑概念
- 域名只是个逻辑概念,并不代表计算机所在的物理地点。
- 变长的域名和使用有助记忆的字符串,是为了便于人来使用。而 IP 地址是定长的 32 位二进制数字则非常便于机器进行处理。
1.5.顶级域名 TLD (Top Level Domain)
-
国家顶级域名 nTLD:如: .cn 表示中国,.us 表示美国,.uk 表示英国,等等。
-
通用顶级域名 gTLD:最早的顶级域名是:
.com (公司和企业);
.net (网络服务机构);
.org (非赢利性组织);
.edu (美国专用的教育机构);
.gov (美国专用的政府部门);
.mil (美国专用的军事部门);
.int (国际组织);
新增的有:
.aero (航空运输企业);
.biz (公司和企业);
.cat (加泰隆人的语言和文化团体);
.coop (合作团体);
.info (各种情况);
.jobs (人力资源管理者);
.mobi (移动产品与服务的用户和提供者);
.museum (博物馆);
.name (个人);
.pro (有证书的专业人员);
.travel (旅游业);
-
基础结构域名(infrastructure domain):这种顶级域名只有一个,即 arpa,用于反向域名解析,因此又称为反向域名。
1.6.因特网的域名空间
比如域名:www.cnblogs.com 。该域名由三部分组成:三级域名www;二级域名cnblogs;顶级域名com;每部分之间用点隔开。
需要注意的是:
- 域名也可以由两部分组成、四部分组成,域名组成部分数量是不定的;
- 并非所有的域名都以www开头,也可以使用其他的三级域名比如:mail.cnblogs.com 。只不过按照习惯通常把www作为域名的开头。
1.7.关于域名注册
为了保证域名的唯一性,需要相关机构管理,我们想要申请域名则必须花钱购买。在购买域名时只需要选择相应的顶级域名和二级域名,若这两部分组成的域名全球唯一,那么在此基础上加上三级域名、四级域名组成的域名也都是全球唯一。
比如购买了域名:cnblogs.com,在此域名基础上派生出www.cnblogs.com 、mail.cnblogs.com等都是免费的,只要你有服务器派生出多少个域名都只用缴纳cnblogs.com一个域名的费用。并且由于cnblogs.com的全球唯一性,所以其派生出的域名都是全球唯一的。
二、域名服务器#
- 域名服务器的作用为,把网站域名解析成对应的IP地址。
- 一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。
- 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
2.1.树状结构的 DNS 域名服务器
域名服务器有以下四种类型 :
- 根域名服务器
- 顶级域名服务器
- 权限域名服务器
- 本地域名服务器
关系为:
根域名服务器:
-
根域名服务器是最重要的域名服务器。根域名服务器并不直接把域名直接转换成 IP 地址,而是存储着所有的顶级域名服务器的域名及其 IP 地址。在使用迭代查询时,根域名服务器把下一步应当查找的顶级域名服务器的 IP 地址告诉本地域名服务器。
-
当本地域名服务器无法解析特定的域名时,首先求助于根域名服务器。
比如某本地域名服务器负责abc.com区域的域名解析,当本地用户输入abc.cn时,该本地域名服务器无法对其进行解析,于是第一时间求助于根域名服务器,询问负责.cn的顶级域名服务器的IP地址。
-
在因特网上共有13 个不同 IP 地址的根域名服务器,它们的名字是用一个英文字母命名,从a 一直到 m(前13 个字母)。
-
根域名服务器共有 13 套装置,它由分布在世界各地的许多台作为根域名服务器的机器组成。目的是为了方便用户,使世界上大部分 DNS 域名服务器都能就近找到一个根域名服务器。
这些根域名服务器相应的域名分别是:
a.rootservers.net;
b.rootservers.net;
…
m.rootservers.net;
顶级域名服务器(即 TLD 服务器)
-
这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
比如顶级域名服务器.CN负责所有以.CN结尾的域名的解析。
-
当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的 IP 地址)。
**权限域名服务器 **
-
负责一个区的域名服务器。
比如:在顶级域名服务器.com负责下的权限域名服务器abc.com,负责的是所有以abc.com结尾的域名的解析。
-
当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的 DNS 客户,下一步应当找哪一个权限域名服务器。
比如:在权限域名服务器abc.com负责下的用户查询域名xyz.com,该权限域名服务器无法告诉客户最终结果,而是告诉客户权限域名服务器xyz.com的IP地址。
**本地域名服务器(默认域名服务器) **
- 本地域名服务器即在权限域名服务器下的负责更小区域的域名服务器。比如某个大学里面的域名服务器,某公司的域名服务器。
- 当一个主机发出 DNS 查询请求时,这个查询请求报文就发送给本地域名服务器。
- 可以安装字节的DNS服务器(本地域名服务器)。
2.2.提高域名服务器的可靠性
- DNS 域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。
- 当主域名服务器出故障时,辅助域名服务器可以保证 DNS 的查询工作不会中断。
- 主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。
2.3.域名解析过程举例
本地域名服务器再告诉用户。最后用户得以通过该网站的IP地址访问该网站。
可见,顶级域名服务器com不知道的域名可以求助于根DNS服务器,根DNS服务器会告诉它去哪找相应域名,最后总能得到域名解析结果。所以,只要用户指定了一处DNS服务器,无论是88.88.88.88还是22.22.22.22,能把全球的域名解析出来。
总结
-
主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
递归查询(较少用):
-
本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
迭代查询:
域名服务器的高速缓存
- 每个域名服务器都维护一个高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。
- 可大大减轻根域名服务器的负荷,使因特网上的 DNS 查询请求和回答报文的数量大为减少。
- 为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项(例如,每个项目只存放两天)。
2.4.安装自己的DNS服务器
自己的DNS服务器相当于负责区域更小的本地DNS服务器。
适用场景
-
提供内网网站的域名解析服务。
比如学校内网中可能存在许多的网站,这些网站仅供内部使用,并不在互联网上开放,域名可能与互联网中的部分网站冲突。这时可以再内网中安装一个DNS服务器,提供内网网站的域名解析服务。
并且内网的DNS服务器也知道互联网中的根域名服务器地址,只要内网DNS服务器能够访问互联网,当内网用户访问外网时也能提供相应的域名解析服务。
-
降低到Internet的域名解析流量。
即使无内部网站,假如校园内网2000人使用,每人访问百度时都要发送一个数据包给外网的DNS服务器进行域名解析,造成的网络流量是不可忽视的,若安装了内网DNS服务器只要有一个人访问百度,发送了一个数据包给外网的DNS服务器解析出来的IP地址会在内网DNS服务器上缓存一段时间,该段时间内内网的其余用户访问百度时,内网DNS服务器都能直接告诉它们缓存的IP地址,由此节省了重复域名解析造成的大量网络流量。
-
存在域环境。
查看域名地址
可通过以下命令在命令行窗口查看域名地址:以搜狐网为例
nslookup www.sohu.com
“非权威应答”表示,该域名的解析是借助外网的其他DNS服务器的。
6.3.动态主机配置协议DHCP#
6.4.文件传送协议#
6.5.远程终端协议 TELNET#
6.6.远程桌面协议RDP#
6.7.万维网(WWW)#
一、万维网概述#
- 万维网 WWW (World Wide Web)是一个大规模的、联机式的信息储藏所。
- 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
- 这种访问方式称为“链接”。
- 万维网提供分布式服务:
1.1超媒体与超文本
- 万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。
- 一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。
- 超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。
1.2.万维网的工作方式
- 万维网以客户服务器方式工作。
- 浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。
- 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
- 在一个客户程序主窗口上显示出的万维网文档称为页面(page)。
1.3.万维网必须解决的问题
1.怎样标志分布在整个因特网上的万维网文档?
- 使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。
- 使每一个文档在整个因特网的范围内具有唯一的标识符 URL。
2.用什么协议实现万维网上各种超链的链接?
- 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
- HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送,一般使用80端口。
3.怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
- 超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
二、统一资源定位符 URL#
- 统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。
- URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。
2.1.URL 的一般形式
- 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。
- URL 的一般形式是:
image-20200201222926900
2.2.使用 HTTP 的 URL
使用 HTTP 的 URL 的一般形式:
- "http"——表示使用HTTP协议;
- "://"——冒号和两个左斜杠是规定的格式;
- "<主机>"——表示主机的域名;
- "<端口>"——HTTP的默认端口号是80,通常可省略;
- "<路径>"——表示文件路径,若再省略文件的<路径>项,则 URL 就指到因特网上的某个主页(home page)。
三、超文本传输协议HTTP#
3.1.HTTP 的操作过程
- 为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。
- 从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
3.2.HTTP 的报文结构
HTTP 有两类报文:
- 请求报文——从客户向服务器发送请求报文。
- 响应报文——从服务器到客户的回答。
- 由于 HTTP 是面向正文的(text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个字段的长度都是不确定的。
3.3.HTTP 请求报文的结构
报文由三个部分组成,即开始行、首部行和实体主体。在请求报文中,开始行就是请求行。
-
方法字段——对所请求的对象进行的操作,即一些命令。请求报文的类型是由它所采用的方法决定的;
HTTP 请求报文的一些方法
- OPTION:请求一些选项的信息;
- GET:请求读取由 URL所标志的信息;
- HEAD:请求读取由 URL所标志的信息的首部;
- POST:给服务器添加信息(例如,注释);
- PUT:在指明的 URL下存储一个文档;
- DELETE:删除指明的 URL所标志的资源;
- TRACE:用来进行环回测试的请求报文;
- CONNECT:用于代理服务器;
-
URL字段——所请求的资源的 URL;
-
版本字段——表示 HTTP 的版本;
3.4.HTTP 响应报文的结构
响应报文的开始行是状态行。状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。
-
状态码
状态码都由三个数字组成:
- 1xx 表示通知信息的,如请求收到了或正在进行处理;
- 2xx 表示成功,如接受或知道了;
- 3xx 表示重定向,表示要完成请求还必须采取进一步的行动;
- 4xx 表示客户的差错,如请求中有错误的语法或不能完成;
- 5xx 表示服务器的差错,如服务器失效无法完成请求;
3.5.超链接的工作过程
用户点击"链接"后所发生的事件 :
-
浏览器分析"文本"超链指向页面的 URL;
-
浏览器向 DNS 请求解析 www.123.edu.cn 的 IP 地址;
-
域名系统 DNS 解析出服务器的 IP 地址;
-
浏览器与服务器建立 TCP 连接
-
浏览器发出取文件命令:
GET /chn/yxsz/index.htm。
-
服务器给出响应,把文件 index.htm 发给浏览器。
-
TCP 连接释放。
-
浏览器显示“文本”文件 index.htm 中的所有文本。
3.6.请求一个万维网文档所需的时间
RTT表示数据包(报文)往返时间。
3.7.持续连接 (persistent connection)
- HTTP/1.1 协议使用持续连接。
- 万维网服务器在发送响应后仍然在一段时间内保持这条TCP连接,使同一个客户(浏览器)和该服务器可以继续在这条TCP连接上传送后续的 HTTP 请求报文和响应报文。
- 这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。
3.8.持续连接的两种工作方式
- 非流水线方式:客户在收到前一个响应后才能发出下一个请求。与非持续连接相比节省了建立 TCP 连接所需的一个 RTT 时间。但服务器在发送完一个对象后,其 TCP 连接就处于空闲状态,浪费了服务器资源。
- 流水线方式:客户在收到 HTTP 的响应报文之前就能够接着发送新的请求报文。一个接一个的请求报文到达服务器后,服务器就可连续发回响应报文。使用流水线方式时,客户访问所有的对象只需花费一个 RTT时间,使 TCP 连接中的空闲时间减少,提高了下载文档效率。
3.9.在服务器上存放用户的信息
- 万维网站点使用 Cookie 来跟踪用户。
- Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。
- 使用 Cookie 的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪该用户在该网站的活动。
四、代理服务器 (proxy server)#
- 代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代替浏览器发出 HTTP 请求;
- 可以在代理服务器中设置哪些网段的计算机能通过代理服务器上网,能通过代理服务器上什么网;
- 万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中;
- 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去因特网访问该资源。
4.1.使用代理服务器的场合
1.节省内网访问 Internet 的带宽。
安装代理服务器前:
内网的所有计算机上网的流量都通过这条2Mb/s的链路,这会造成该链路时延过大。
安装了代理服务器后:
- 浏览器访问因特网的服务器时,要先与校园网的代理服务器建立 TCP 连接,并向代理服务器发出 HTTP 请求报文。
- 若代理服务器已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器。
- 否则,代理服务器就代表发出请求的用户浏览器,与因特网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。
image-20200201234244220
- 源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的代理服务器。
image-20200201234358629
- 代理服务器收到此对象后,先复制在其本地存储器中(为今后使用),然后再将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器。
image-20200201234447694
2.绕过路由器的防火墙访问外网
- 路由器设置的防火墙会拦截目标地址或源地址为特定地址的数据包。
- 路由器只识别数据包的源地址和目标地址,不关心数据包内容。
image-20200201235329890
如图所示,在国内的用户PC1想访问国外的某些网站时,路由器收到PC1的请求后,判断出目标地址为国外的某网于是路由器的防火墙截断了该请求,导致PC1无法成功访问;
如果PC1通过国外的代理服务器中转就可以访问外网。PC1发出的请求数据包目标地址为国外某代理服务器,请求数据包到达路由器时,路由器判断出数据包的目标地址不是防火墙设置的屏蔽地址,故能够把数据包传输给国外的代理服务器,代理服务器再把数据包传输给外网的源服务器;从外网返回的数据包通过代理服务器中转之后到达路由器时源地址变为代理服务器地址,故能绕开路由器的防火墙,成功到达PC1;由此PC1能够访问外网。
3.避免IP地址被跟踪
当我们在网上发表言论时,有时候隐藏个人计算机的IP地址能够带来很大便利。通过代理服务器在网络上进行活动能够有效地防止个人计算机地IP地址被跟踪。
原理为改变数据包地目标地址或源地址,过程与"上2"类似。
五、浏览器#
浏览器就是在用户计算机上的万维网客户程序,相当于客户端。
5.1.浏览器的结构
5.2.浏览器中的缓存
- 浏览器将它取回的每一个页面副本都放入本地磁盘的缓存中。
- 当用户用点击某个超链接时,浏览器首先检查磁盘的缓存。若缓存中保存了超链接的URL指向的文件,浏览器就直接从缓存中得到该文件副本而不必从网络获取,这样就明显地改善浏览器的运行特性。 。
- 但缓存要占用磁盘大量的空间,而浏览器性能的改善只有在用户再次查看缓存中的页面时才有帮助。许多浏览器允许用户调整缓存策略。
虚拟主机#
使用不同的 IP ,端口 ,主机名(域名)
6.8.电子邮件#
Internet上使用的安全协议#
网络安全是分层实现的,从应用层安全到数据链路层安全。
一、运输层安全协议:安全套接字SSL#
1.1.简介
- SSL 是安全套接层 (Secure Socket Layer),可对万维网客户与服务器之间传送的数据进行加密和鉴别。
- SSL 在双方的联络阶段协商将使用的加密算法和密钥,以及客户与服务器之间的鉴别。
- 在联络阶段完成之后,所有传送的数据都使用在联络阶段商定的会话密钥。
- SSL 不仅被所有常用的浏览器和万维网服务器所支持,而且也是运输层安全协议 TLS (Transport Layer Security)的基础。
1.2.SSL 的位置
image-20200206165343194
- 在发送方,SSL 接收应用层的数据(如 HTTP 或 IMAP 报文),对数据进行加密,然后把加了密的数据送往运输层 TCP 套接字。
- 在接收方,SSL 从 TCP 套接字读取数据,解密后把数据交给应用层。(发送方和接收方都有SSL层)
1.3.使用SSL技术的例子
当我们访问网站时,一般不涉及输入账号密码等操作的网页使用的都是 "HTTP" 协议(使用80端口),即网站域名开头为:http://;当涉及账号密码等敏感信息的操作时,网站一般都会使用 "HTTPS"协议(使用443端口),"S"表示的即是SSL (Secure Socket Layer),即网站域名开头为:https://。
例如,我们访问中国工商银行的官网:
image-20200206170948893
在主页处的域名栏中可以发现浏览器提醒的 "不安全" 字样,实际上该主页使用的就是HTTP协议,即不加密信息,明文传输。由于这是谷歌浏览器,没有显示 "http://" 的域名前缀。
当点击登录时,跳转到另外一个网页:
image-20200206171337136
从网站域名开头的 "https://" 可以看出,涉及到账号密码等敏感信息的登录页面使用的是HTTPS协议,说明网页使用了SSL技术。
补充
HTTP协议使用了安全套接字(SSL)变成了HTTPS协议,使用的端口由80变为443,其他应用层的协议也可以使用安全套接字:
- IMAPS:TCP-993;
- POP3S:TCP-995;
- SMTPS:TCP-465;
1.4.安全套接字实现的过程:https
image-20200206223547589
https既采用了对称加密的效率,也采用了非对称加密的安全。
通信前Web服务器先把证书中的公钥交给IE浏览器(客户),IE浏览器根据收到的公钥生成一个对称密钥,然后使用公钥加密对称密钥并发送给Web服务器。
Web服务器使用私钥解密收到的加密后的对称密钥,随后使用对称密钥加密需要传输的数据。在之后的通信中都采用该对称密钥对数据加密和解密。
在传输对称密钥的过程中使用非对称加密,在传输数据过程中使用对称加密。这样既保证了数据传输的安全,也提高了效率。
所以,在使用https通信的时候一开始都不会太快,因为要协商对称密钥,协商好之后才会快起来。
查看使用https网站的证书
例如:百度。
点击 "锁" 图标。
点击 "证书" 即可查看到该网站使用的证书。
image-20200206224149426
image-20200206224207086
1.5.SSL 实现的三个功能
- SSL 服务器鉴别 :允许用户证实服务器的身份。具有 SSL 功能的浏览器维持一个表,上面有一些可信赖的认证中心 CA (Certificate Authority)和它们的公钥。
- 加密的 SSL 会话 :客户和服务器交互的所有数据都在发送方加密,在接收方解密。
- SSL 客户鉴别 :允许服务器证实客户的身份。
上图为颁发给百度首页的证书,可以看到SSL除了可以加密会话信息之外,还可以鉴别服务器和客户身份。
作者:Esofar
出处:https://www.cnblogs.com/firsthelloworld/p/13554823.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)