标签:子邮件 ttl 监视 应用层协议 form format blank 字节流 文本
本部分内容从计算机网络体系结构、物理层、数据链路层、网络层、传输层和应用层分别来讲述。
第一章: 计算机网络体系结构
本章内容为基本概念,这是计算机网络的基础。 重点掌握网络的分层结构,尤其是ISO/OSI参考模型各层的功能和协议、接口、服务的概念。
1. 计算机网络的概念
计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
2. 计算机网络的组成
3. 计算机网络的功能
4. 计算机网络的分类
5. 计算机网络的标准化工作及相关组织
制定Internet的正式标准都需要经过下面的四个阶段
(1) 因特网草案 - 有效期为6个月。 这个阶段还不是RFC文档(Request For Comments),Internet的所有标准都以RFC的形式在Internet上发布。
(2)建议标准 - 从这个时候开始成为了RFC文档。
(3)草案标准
(4)因特网标准
在国际上,由众多的标准化组织负责制定、实施相关的标准,主要的有:
6. 计算机网络的性能指标
7. 计算机网络分层结构
两个系统中实体间的通信是一个很复杂的过程,所以为了降低协议设计和调试过程中的复杂性,也为了便于对网络进行研究、实现和维护,促进标准化工作,通常对计算机网络的体系结构以分层的方式进行建模。
我们把计算机网络中的各层及其协议的集合,称为网络的体系结构。
体系结构是抽象的,是实现是具体的。
分层的基本原则:
8. 计算机网络分层的好处与注意事项
由于分层之后各层之间相互独立,灵活性好,因而分层的体系结构易于更新(替换单个模块),易于调试,易于交流,易于抽象,易于标准化。
但是层次太多就会使得某些功能重复出现,产生了额外的开销,整体的运行效率降低。
但是层次太少,就会使得每一层的协议太复杂。
因此,在分层时应该考虑层次的清晰度和运行效率的折中和层次数量的折中。
9. 在计算机网络的分层结构中,第n层的活动元素通常称为n层实体。具体的说,实体是指任何可发送或者可接收信息的硬件或软件进程。 通常是一个特定的软件模块。 不同机器上同一层称为对等层。 同一层的实体称为对等实体。
每一层还有自己传送的数据单位:
上述三者的关系是:n-SDU + n-PCI = n-PCU = (n-1)SDU
即每一层把自己从上层接收到的数据(服务数据单元),加上控制信息,变成协议控制单元,因为每一层中都有相应的协议啊,你得按照协议办事,所以你得变成协议控制单元才能在这一层中存活。然后再把自己作为服务数据单元交给下一层,接收方接受时做相反的处理。
10. 计算机网络协议、接口和服务的概念
(1)协议
在网络中要做到有条不紊的交换数据,就必须要遵循一些实现约定好的原则。 这些规则明确规定了所交换的数据的格式以及有关的同步问题。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议(Network Protocal), 他是控制两个(或多个)对等实体进行通讯的规则的集合。 网络协议也简称为协议。
协议是由语法、语义和同步三部分组成的。其中语法规定了传输数据的格式;语义规定了所要完成的功能,即需要发出何种控制信息、完成何种动作以及做出何种应答; 同步规定了执行各种操作的条件、时序关系等等。
(2)接口
接口是同一节点内相邻两层信息的连接点,是一个系统内部得规定。每一层只能为临近的层次定义接口,不能跨层定义接口。
(3)服务
服务是下层为紧相邻的上层提供的功能调用。
11. 计算机提供的服务可以按以下三种方式分类:
(1)面向连接服务和无连接服务
面向连接服务具有连接建立、数据传输和连接释放这三个阶段。即通信双方必须先建立连接,分配相应的资源(如缓冲区),以保证通信可以正常进行。传输完成之后释放连接和所占用的资源。如电话。
无连接服务是指两个实体之间的通信不需要建立连接,需要发送数据时可以直接发送,是一种不可靠的服务。 这种服务经常被描述为“尽最大努力交付”,如写信交邮局。
(2)有应答服务和无应答服务
有应答服务是指接收方在收到数据后向发送发给出相应的应答,该应答有传输系统内部实现,而不是用户实现,所发送的应答可以是肯定应答也可以是否定应答,通常在接收方接受到错误时就发送否定应答。 如文件传输服务就是一种有应答服务。
(3)可靠服务和不可靠服务
可靠服务是指网络具有纠错、检错、应答机制,能保证数据准确可靠的传送到目的地。
不可靠服务是指网络只是尽可能正确、可靠地传送,但不能保证数据正确、可靠地传送到目的地,是一种尽力而为的服务。
12. 一般网络上的分层主要有三种方式:(1) ISO/OSI 即开放系统互联参考模型 (2)TCP/IP 由于应用广泛成了事实上的标准 (3)将两者综合,我们在研究时就是使用的这种方式
13. ISO/OSI 参考模型
国际标准化组织ISO提出的OSI(开放系统互联参考模型),ISO和OSI刚好反过来,提出名字的时候应该也是故意考虑了吧。
OSI有七层, 自下而上分别是物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。 (先绘画,再平铺,最后可以用了)
下面的三层称为通信子网,他是为了联网而附加上去的通信设备,完成数据的传输功能;高三层统称为资源子网,它相当于计算机系统,完成数据的存储等功能。运输层承上启下。
(1) 物理层
Physical Layer 主要定义了数据终端设备和数据通信设备的物理和逻辑连接方法。 物理层的功能是在物理媒体上透明地传输比特流。
请注意:传输信息所利用的一些物理媒体,如双绞线、光缆、无线信道等,并不在物理层协议之内而在物理层协议的下面,所以有人把物理媒体当做第0层。
(2)数据链路层
由于外界的噪声干扰, 传输的比特流可能会产生错误,而数据链路层(Data Link Layer)的主要功能就是检测并校正物理层传输介质上发送的传输错误。
数据链路层的主要功能为:成帧、差错控制、流量控制和传输管理等四个方面。
(3) 网络层
网络层会把传输层中产生的报文段或用户数据封装成分组(包)进行传送。 常用的协议是IP。 所以因特网的网络层又叫做网际层或IP层。
(4) 传输层
传输层也叫做运输层。 他的工作是端到端或进程到进程的功能层次,使用传输层的服务,高层用户就可以直接进行端到端的数据传输,而忽略通信子网的存在。 传输层的任务就是为高层用户提供可靠地、透明地、有效的数据传输服务,实现端到端(进程到进程)的数据传输管理、差错控制、流量控制和复用管理。
(5) 会话层
会话层(session Layer)允许不同主机上各进程之间的会话。会话层利用的是传输层提供的端到端的服务,想表示层提供他的增值服务。
会话层负责主机间各进程的会话,包括建立、管理以及终止进程间的会话。
(6)表示层
表示层(Presentation Layer)主要用于处理在两个通信系统中交换信息的表示方式。 不同机器采用的编码和表示方法不同,使用的数据结构也不同。为了使不同表示方法的数据可以互相交换,表示层采用抽象的标准方法定义数据结构,并采用标准的解码方式。
(7)应用层
应用层(Application Layer)是OSI模型的最高层,是用户与网络的界面 。
应用层的主要目的是为用户特定类型的应用集成提供访问OSI环境的手段。 应用层也是最为复杂的一层,因为用户的实际应用多种多样。 典型的协议有万维网应用的HTTP,电子邮件使用的SMTP,文件传送的FTP。
14. TCP/IP 模型
此模型和OSI模型不同,它认为从低到高分为4层:网络接口层、网际层、传输层和应用层。TCP/IP由于应用广泛,称为了事实上的标准。
(1)网络接口层
盖层表示与物理网络的接口。 他的责任是从主机或节点接受IP分组,并把它们发送到指定的物理网络上。
(2)网际层
这是TCP/IP的关键部分,他和OSI网络层在功能上非常相似。网际层定义了标准的分组格式和协议,即IP。 当前采用的IP是第4版,即IPv4,下一个版本是IPv6。
(3)传输层
传输层的功能和OSI中的传输层类似,其主要使用下面的两种协议
(4) 应用层
包括文件传输协议(FTP)、域名解析服务(DNS)和电子邮件协议(SMTP)
15. OSI与TCP/IP比较
16. 由于无论是OSI模型还是TCP/IP模型都有一定的局限性,所以我们再讨论的时候是综合起来讨论的,即综合两者的优点,采用有五层协议的体系结构,即我们熟知的物理层、数据链路层、网络层、传输层和应用层。
物理层(数据)
数据链路层(数据包、帧)
网络层(IP包、分组)
传输层(报文段)
应用层(报文)
网关和路由的区别是什么?
在cmd中可以使用 route print查看详细信息。
第二章: 物理层
1. 数据、信号和码元
数据时传送信息的实体。
信号是数据的电气的或电磁的表现,是数据传输过程中的存在形式。
数据和信号都可以使用“模拟的”和“连续的”来修饰,如连续变化的数据(或信号)称为模拟数据(信号),而取之仅允许为几个优先的离散数值的数据(信号)称为数字数据(信号)。
数据的传输方式有并行 -- 多个比特通过多条通信信道传输, 也有串行 -- 一个一个比特按照时间顺序传输。
码元 -- 这是数字通信中数字信号的计量单位,1码元可以携带多个比特的信息量。
2. 信源、信道与信宿
数据通信就是指数字计算机或其他数字终端之间的通信。 一个数据通信系统可以划分为信源、信道和信宿三个部分。
信源: 产生和发出数据的源头。
信宿: 接受数据的终点。
信道:包括信号的传输介质及有关的设备,如双绞线、中继器等。
3. 基带信号和宽带信号
基带信号是将数字信号1和0直接用两种不同的电压表示,然后送到数字信道(传送数字信号的信道)上去传输(基带传输)。
宽带信号是将基带信号进行调制之后形成的频分复用模拟信号,然后传送到模拟信道上去传输(宽带传输)。
4. 从通信双方信息的交互方式来看,可以有三种基本的方式:
5. 速率、波特和带宽
6. 奈奎斯特定理和香农定理
奈奎斯特定理指出在理想低通(没有噪声、带宽有限)的信道中,极限码元传输率为2W Baud。 其中,W是理想低通信道的带宽,单位为hz。 它指出码元传输速率是有上限的,但是没有指出对信息传输速率的限制。
香农定理给出了带宽受限且有高斯白噪声干扰的信道的极限数据传输速率,即
信道的极限数据传输速率 = Wlog2(1+S/N) (bit/s)
根据香农定理,可以得出以下的结论:
7. 编码和调制
数据无论是数字的还是模拟的,为了传输的目的都必须转变成信号,
把数据变换成为模拟信号的过程是调制,
把数据变换成数字信号的过程就是编码。
8. 根据调制和编码的概念我们就可以得知有下面四种方法:
(1) 数字数据编码为数字信号
即将0和1用某种其他的方式表示,就是编码。原则上将1和0区分开即可。
方法有以下的三种:非归零码、曼彻斯特编码、查分曼彻斯特编码、4B/5B编码
(2) 数字数据调制为模拟信号
、 数字数据调制技术即在发送端将数字信号调制为模拟信号,在接收端将模拟信号解调为数字信号, 这分别对应着调制解调器的调制和解调过程。
(3) 模拟数据编码为数字信号
这主要包括了三个步骤,即抽样、量化和编码。
(4) 模拟数据调制成模拟辛哈
9. 传输介质之双绞线
双绞线是最古老、又最常用的传输介质,它由两根采用一定规则并排绞合、相互绝缘的铜线组成。为了提高抗电磁干扰能力,可以在双绞线的外面再加上一个有金属丝编织成的屏蔽层,这就是屏蔽双绞线, 无屏蔽层的双绞线称为非屏蔽双绞线。
特点:价格便宜、在局域网和传统电话网中普遍使用、其带宽取决于铜线的粗细和传输的距离,模拟传输和数字传输都可以使用双绞线, 其通信一般为几公里到数十公里。 距离太远时,对于模拟传输,可以使用放大器来放大衰减的信号; 对于数字传输,要用中继器将失真的信号整形。
10 传输介质之同轴电缆
同轴电缆是由导体铜质芯线、绝缘层、屏蔽层和塑料外层构成。 由于外导体屏蔽层的作用,同轴电缆具有良好的抗干扰特性,其传输距离远,但价格较双绞线贵。
11. 传输介质之光纤
光纤通信就是利用光导纤维(简称光纤)传递光脉冲来进行通信。 有光脉冲则表示1,无光脉冲就表示0,。
光纤主要是由纤芯和包层组成。
若是多条不同角度入射的光线在一条光纤中传输,称为多模光纤,其光源为发光二极管,会失真,所以只适合近距离传输。
若是一条光线在一条光纤中传输,称为单模光纤,其制造成本较高,光源为定向性很好的激光二极管,切单模光纤的衰耗较小,适合远距离传输。
知识补充:
1、在电磁波频谱中,按波长长到短,排列了若干种电磁波类型,波长最长的是无线电波,再短一些的是红外线,再后面是可见光,再是紫外线,X射线和伽玛射线。从这个序列中,可见无线电波是电磁波的一种类型,而微波不是。
2、微波实际上是无线电波的一种,属于波长比较短的无线电波,无线电波按波长可以分为长波,中波,短波,如果波长比短波更短,就成了微波了。
3、不同类型的无线电波,传输方式和作用是不一样的。
(1)比如长波,主要采用地波传输,可以实施远距离对潜通信(注意:对潜);传输距离最远可以达到1万公里以上。
(2)中波、短波一般采用天波传输(电离层反射),可以用来传输广播信号;中波和短波的传输距离要比长波短,一般有几百到几千公里。
(3)微波一般采用视距传输(直线),可以用来传输电视信号。电视信号所属微波传输距离比较短,一般在几十到一两百公里,所以在没有卫星电视的年代,央视的新闻联播就需要通过微波中继站,一站站接力传输到全国各地。现在在很多高山上可以看到一些电视转播塔,就是这个原因。
微波波长很短,波长极短的微波还可以用于雷达测距和卫星通信等等,雷达探测距离长短跟波长、输出功率有关系,像输出功率极大的地面大型雷达站甚至可以探测远达4000-5000公里外的目标。
总结: 无线电波的波长最长,频率最短,其传播方式是全方向的。
微波、红外线、激光的波长很短,频率很高,其传播方式为视距传输。
无论是无线电波、微波、红外线.... 他们都是电磁波。
电磁波谱
12. 传输介质之无线电波
无线电波很容易产生,具有较强的穿透能力,可以传输很长的距离,因此被广泛应用于通信领域,如无线手机通信, 还有计算机网络中的无线局域网(WLAN)。
因为无线电波是全方向的,所以他讲信号发往各个方向,接受设备就不需要正对着它,所以大大简化了通信连接,这也是无线电波的很大的一个优点。
13. 传输介质之微波、红外线和激光
目前高带宽的无线通信主要使用三种技术:微波、红外线和激光。
他们都需要在发送方和接受方之间有一条视线通路,有很强的方向性,都是沿着直线传播,有时统称为视线介质。
卫星通信是利用地球同步卫星作为中继来转发微波信号,可以克服地面微波通信距离受限的缺点。三颗相隔120°的同步卫星几乎能覆盖整个地球表面,因此可以实现全球通信。
卫星通信的优点是通信容量大、距离远、覆盖广,缺点是端到端的传播延迟时间长。
14. 传输媒体是物理层码? 传输媒体和物理层的区别是什么?
传输媒体不是物理层。 有时候,我们成传输媒体是第0层。
在传输媒体中传输的是信号, 但是传输媒体并不知道传输的信号是什么。 也就说传输媒体不知道传输的信号是0还是1。
但是物理层由于规定了电气特性,因此可以识别所传送的比特流。
衡量网络上数据传输速率的单位是bps,其含义是: 每秒传送多少个二进制位。 其中bps即 bits per second的意思。 即每秒多少位。
第三章:数据链路层
1. 数据链路层在物理层提供服务的基础上向上给网络层提供服务,其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的道路。
2. 数据链路层的功能有:
着重介绍 帧定界、帧同步和透明传输。
两个工作站之间传输信息是,必须将网络层的分组封装成帧,以帧的格式进行传输。 将一段数据的前后分别添加首部和尾部,就构成了帧, 首部和尾部中含有很多控制信息,他们的一个作用就是确定帧的界限,即帧定界。
帧同步指的是接收方能从二进制的比特流中区分出帧的起始和结束。 如在HDLC中通信规程中,用标识符F(01111110)来标识帧的开始和结束。如果在数据中恰好出现了与帧定界符相同的比特组合,就要采取有效的解决这个问题的措施即透明传输。
3. 组帧
数据链路层之所以要把比特组合成帧为单位进行传输,是为了在出错时只需要重发出错的帧,而不必重发所有的数据,从而提高了效率。 为了能使得接收方正确的接受并检查所传输的帧,发送方必须依据一定的规则把网络层递交的分组组装成帧(称为组帧)。组帧主要是解决帧定界、帧同步、透明传输等问题。下面的四种方法可以实现组帧:
3.1 字符计数法
字符计数法首先用一个特殊的字符来表示帧的开始,然后用一个记数字段表明帧内的字符数,然后就知道了后面应该紧跟的字符数,从而也就可以确定结束的位置。
问题:一旦计数字段出错,即失去了帧边界划分的依据,接收方就无法判断开始于结束,于是失去了同步。
3.2 字符填充的首尾定界法
该方法使用一些特定的字符来定界一帧的开始(DLE STX)和结束(DLE ETX)。为了使得信息中出现的特殊字符不被误判为帧的首尾定界符,可以在特殊字符钱添加一个转义字符(DLE),这样就实现了数据的透明传输。
如网络层发出的数据是A DLE B ,经数据链路层填充之后就成了 A DLE DLE B,接收方传送给网络层的数据是 A DLE B,所以最后就实现了透明传输。
3.3 比特填充的首尾标志法
即首尾标志法使用一组特定的比特模式(01111110)来标志一帧的开始和结束,其中有6个1,为了防止数据和比特模式相同,在数据链路层中,一旦遇到了连续的5个1,我们就在第5个1的后面添加一个0,这样就不会和比特模式一样了,然后接收方同样地在接收时,如果遇到了连续的5个1,并且连续的5个1后面是个0,那么就删除这个0,这样就可以透明传输了。此法可以通过硬件来实现,性能优于字符填充方法。
3.4 违规编码法
4. 差错控制
传输很有可能会出现差错。 一般情况下,传输中的差错都是由噪声引起的。
噪声有两类:一类是信道固有的、持续存在的随机热噪声; 另一类是外界特定的短暂原因所造成的冲击噪声。
对于前者,我们可以提高信噪比来减少或避免干扰; 但是后者不可能靠提高信号幅度来避免干扰造成的差错,这就是差错产生的重要原因。
我们通常利用编码方法来进行差错控制,主要有两类:
第一类:自动请求重传(Automatic Retransmission Request, ARQ) 这种方法就是:接收方发现有差错时,就让发送发重新发送,直到接受的数据没有问题为止。
第二类:前向纠错(Forward Error Correction)这种方法在发现了问题之后,没有重新请求,而是决定自己来改正其中的错误。
在第二类方法中,我么可以看到 我们不仅仅需要检查出错误,还要改正错误,于是,差错控制又可以分为检错编码和纠错编码。
5. 检错编码
常见的检错编码有奇偶校验码和循环冗余码。
6. 纠错编码
常见的纠错编码有海明码和汉明编码。
7. 流量控制、滑动窗口机制
流量控制涉及链路层上字符或帧的发送速率的控制,以使得接收方在接受前有足够的缓冲存储空间来接受每一字符或帧。
常见的方式有两种:
1. 停止-等待流量控制基本原理
发送方每发送一帧,接受方在接收后反馈应答信号,表示可以接受下一帧,发送方再发送一帧。。。 如果接收方在接收到后,没有反馈应答信号,说明不接受下一帧,则此时发送方就要等待反馈信号才能进行下一帧的发送,但问题是这样的效率很低。
2. 滑动窗口流量控制基本原理
即发送方有一个窗口,显示哪些帧可以发送,哪些帧不能发送,哪些帧已经发送; 而接收方也有一个窗口,显示哪些帧我需要接受,哪些不需要,于是,就根据窗口来控制流量。
8. 可靠传输机制
数据链路层的可靠传输通常使用确认超时重传两种机制来完成。
确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接受。有些情况下为了提高传输效率,就会将确认捎带在一个回复帧中,称为捎带确认。
9. 介质访问控制
介质访问控制是解决当局域网中共用信道的使用产生竞争时,如何分配信道的使用权问题。
用来决定广播信道中信道分配的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control)。
常见的介质访问控制方法有:信道划分介质访问控制、随机访问介质访问控制和轮询访问介质访问控制。其中前者是静态划分信道的方法,后两者是动态划分信道的方法。
9.1 信道划分介质访问控制
9.2 随机访问介质访问控制
9.3 轮询访问介质访问控制
在轮询访问中,用户不能随机地发送信息,而是通过一个集中控制的监控站,以循环的方式轮询每一个节点,在决定信道的分配。 当某节点使用信道时,其他的节点都不能使用信道。 典型的轮询访问介质访问控制协议是令牌传递协议,他主要使用在令牌环局域网中。
10 局域网
即Local Area Network , LAN, 他是在一个较小的地理范围(如一个学校)内将各种计算机、外部设备和数据库等互相连接起来组成的计算机通信网络 。 局域网的特点是:
局域网的特性主要由三个要素决定:
补充:常见的拓扑结构
11. 三种特殊的局域网拓扑实现(我们用的局域网全局限于这三种之中的):
12. 在链路层中有两个子层,一个是逻辑链路控制协议(LLC)、另一个是介质访问控制协议(MAC)
其中MAC是以太网协议,因为以太网在局域网市场中取得了垄断地位,所以以太网几乎成了局域网的代名词,所以802委员会制定的LLC子层作用已经不大,古现在的许多网卡仅仅装有MAC协议没有LLC协议。
13. 以太网逻辑上采用了总线型的拓扑结构,以太网所有计算机共享同一条总线。(理解逻辑拓扑结构) 以太网的物理拓扑结构是扩展星形拓扑,逻辑拓扑结果是总线型拓扑。
以太网的信息使用广播方式发送,为了保证数据通信的方便性和可靠性,以太网简化了通信流程并且使用了CSMA/CD的方式对总线进行访问控制。
CSMA/CD协议:即载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Dection), 该协议是CSMA协议的改进方案,适用于总线型网络或半双工网络环境。“载波监听”就是发送前监听,即每一个站在发送数据之前先要检测一下总线上是否有其他的站在发送数据,如果有,则暂时不要发送数据,要等待信道变为空闲时再发送。“碰撞检测”就是边发送边监听,即适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他是否也在发送数据。
CSMA/CD的工作流程可以概括为“先听后发,边听边发,冲突停发,随机重发”,注意:这四个短语中每一个都有一个“发”字,因为合适得时候发送数据时非常重要的。
注意:以太网采用了两项措施来简化通信:采用无连接的工作方式; 不对发送的数据帧编号,也不要求接受方发送确认,即以太网尽最大努交付数据,提供的是不可靠服务,对于差错的纠正则由高层完成。这里尽最大努力就是努力的发数据,其他的什么都不管。
14. 以太网常用的传输介质有:粗缆、细揽、双绞线和光纤。
计算机与外界局域网的连接是通过主机箱内插入一个网络接口板。网络接口板又称为网络适配器(adapter)或网络接口卡(Network Interface Card, 简称网卡),网卡上装有处理器和存储器,是工作在数据链路层的网路组件。
15. 以太网的MAC帧
每一块网卡都有一个MAC地址,也称为物理地址; MAC地址长6B,一般由冒号分隔的6个十六进制数表示。高24位是厂商代码,后24位是厂商自行分配的网卡序列号。
由于总线上使用的是广播通信,因此网卡从网络上每收到一个MAC帧,首先要用硬件检查MAC帧中的MAC地址。如果是发往本站的就收下,否则丢弃。
16. 在15中我们讨论的是局域网中的以太网,这是局域网中具有垄断地位的老大,局域网还有其他的实现方式,如令牌环网。
令牌环网的每一站通过电缆和环接口干线耦合器(Trunk Coupling Unit, TCU)相连。TCU的主要作用是: 传递所有经过的帧、为接入(即接入令牌环中)站发送和接受数据提供接口。对应地,TCU的状态也有两个:收听状态、发送状态。 令牌环网中令牌和数据的传递过程如下:
17. 广域网
广域网通常是指覆盖范围广的长距离网络。 广域网是因特网的核心部分。其任务是通过长距离运送主机所发送的数据。 连接广域网各节点交换机的链路都是高速链路,其距离可以使几千公里的光缆线路,也可以是几万公里的点对点卫星线路。 广域网不等于互联网,互联网可以连接不同类型的网络(既可以是局域网,也可以连接广域网),通常使用路由器来连接。 这样,局域网就可以通过广域网和另一个相隔很远的局域网进行通信。广域网由一些节点交换机(不是路由器)以及连接这些交换机的链路组成。 从层次上考虑,广域网和局域网的区别很大,因为局域网使用的协议主要在数据链路层(还有少量物理层的内容),但是 局域网使用的协议在网络层。
区别与联系:
18. 网桥的概念及其基本原理
网桥用于局域网之间的连接,网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。
19 局域网交换机
桥接器的主要限制是在任一时刻通常只能执行一个帧的转发操作,于是就出现了局域网交换机。 从本质上说,局域网交换机就是一个多端口的网桥,工作在数据链路层。交换机能够经济地将网络分成小的冲突域,为每一个工作站提供更高的带宽。
1. 网络层的功能: 异构网络互连和路由与转发和拥塞控制
2. 异构网络互连
要在全世界范围内将数以百万级的网络互连起来,并且相互之间可以通信,需要解决很多问题,而网络层的目的之一就是实现异构网络互连。
所谓的异构网络互连即将两个以上的计算机网络通过一定的方法用一种或多种通信处理设备(即中间设备)相互连接起来,来构成更大的网络系统。
3. 中间设备
中间设备又称为中间系统或中继系统。根据中继系统所在的层次可以分为下面四中不同的中继系统:
我们可看到物理层和数据链路层的中继系统仅仅是扩大了某一个网络,并没有实现多个网络的互连,但是网络层中的中继系统可以实现多个网络的互连而形成一个更大的网络。
4. 网络层可把多个计算机网络进行异构互连,这样,原来处于不同网络的主机之间就可以像处于一个网络一样进行通信了,于是我们使用了IP是这些性能各异的网络看起来是同一个网络。
5. 网络层实现路由与转发
我们知道在局域网内进行通信是可以通过以太网的广播的形式,但是如果说使用了路由将多个网络连接起来,又该如何通信呢?
这时就是网络层发挥作用的时候了,网络层首先进行路由选择,即对于这里来的数据需要去这里,那里来的数据需要去那里.....然后由此构造出路由表,
接着再进行分组转发,即根据转发表将用户的IP数据报从合适的端口转发出去。
注意:路由表是根据路由选择得出的,转发表是根据路由表得出的。
6. 在通信子网内,由于出现过量的数据包而引起网络性能的下降的现象为拥塞。
为了避免拥塞现象,要采用能防止拥塞的一系列方法对子网进行拥塞控制。
7. 静态路由与动态路由
静态路由:即非自适应路由选择,是指由网络管理员手工配置的路由信息。当网络中的拓扑结构发生了变化时,网络管理员需要手工去改变路由表中相关的静态路由信息。 大型和复杂的网络环境通常不宜采用静态路由。
动态路由选择: 是指路由器上的路由表项是通过相互链接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些路由信息是在一定的时间间隙里不断更新,以适应不端变化的网络,以随时获得最优的寻路效果。
8. 距离 - 向量路由算法
这种算法中,所有的结点都定期的将他们的整个路由选择表传送给所有与之直接相邻的结点。 注意:这个路由选择表包括:
在这个算法中,所有的节点都必须参与到路由选择表的交换,以保证路由的有效性和一致性。
如果在得到了其他节点的的路由选择表之后发现:
(1) 被告知了一条新的路由 - 即自己的路由表本身不存在这个路由
(2) 发现有的路由的距离比自己的路由表中的距离要短
遇到上面的这两种情况, 自身的路由表就要做出相应的更新。
注意:显然,如果节点总数越多,那么其中的一个节点就要发送更多的自身的路由选择表给其他的节点,同时它又要接受更多的路由选择表来更新自己,这样,在通信子网上传送的路由选择信息的数量很容易变得很大。
9. 链路状态路由算法
链路状态路由算法要求每一个参与该算法的节点都有完全的网络拓扑信息。他们执行下面的两个任务:
我的理解:先去测试邻接节点,然后记住发生了什么变化,更新并发出链路状态,其他的节点接受到这些状态,然后就可以使用这些状态信息去更新自己额网络拓扑和状态“视野图”,一旦链路状态发生了变化,节点对更新了的网络图利用Dijsktra最短路径算法重新算的路由,从单一的源出发计算到达所有目的节点的最短路径。
10. 层次路由
当使用层次路由时, OSPF将一个自治系统(AS)再划分为若干个区域(Area),每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不用知道其他区域内的内部结构。
采用分层次划分区域的方法虽然使得交换信息的种类增多了,同时也是的OSPF协议更加复杂了。 但这样做却能使得每一个区域内部的交换路由信息大大减少,因而使OSPF协议能够用于大规模的自治系统中。
11. IPv4
一个ip分组是由首部和数据两部分组成的。 首部包括固定部分和可变部分,首部的前一部分是固定长度的固定部分,共20B,是所有IP分组必有的。 在首部固定部分的后面是可变部分,其长度是可变得,用来提供错误检测和安全等机制。IP数据报的格式如下:
IP首部的部分说明了IP数据报的基本信息,其重要字段含义有:
12. 刚刚我们说了如果在标志中的DF=0;那么我们就可以分片,因为当IP数据报中的长度大于了MTU,就一定要分片。
一个链路层数据报能承载的最大数据量叫做最大传输单元(MTU)。 因为IP数据报被封装在链路层数据报中,所以链路层的MTU严格限制着IP数据报的长度。如果链路层协议不同,那么MTU也就大小不一样。
当IP数据报的总长度大于链路层MTU时,就需要将IP数据报中的数据分装在两个或更多的小的IP数据报中,这些较小的IP数据报就是片。
片在目的地的网络层被重新组装。当创建一个IP数据报时,发送主机为他添加一个标识号。 如果分片,这几个小的IP数据报会有相同的标识号,最后只要把相同标识号的小的IP数据报重新组装起来即可。
13. 网络层转发分组的流程(重点)
网络层的路由器执行的分组转发算法如下:
(1)从数据报的首部提出目的主机的IP地址D,得出目的网络地址为N;
(2)如果网络N与此路由器直接相连,则把数据报直接交付目的主机D; 否则,间接交付(执行下一步)
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行下一步
(4)若路由表中有到达网络N的路由,则把数据报传送给路由表指明的默认路由器; 否则: 报错。
14. IPv4地址
连接在Internet上的每一台主机(或路由器)都会分配一个32bit的全球唯一的标识符,即IP地址。 传统的IP地址是分类的地址,分为A、B、C、D、E五类。
IP地址都是由网络号和主机号组成的。 其中网络号标志主机(或路由器)所连接到的网络,一个网络号在整个因特网范围内必须是唯一的。而主机号是用来表示该主机(路由器)的。一个主机号在其前面所指明的网络范围内必须是唯一的。
所以,一个iP地址在整个因特网范围内是唯一的。
在各类的ip地址中,有一些ip地址是用于表示特殊用途的,不用于做主机ip地址:
广播地址补充;
15. IP地址中不得不知道的事情:
16. 网络地址转换(Network Address Translation,即NAT)
这是一种将私有IP地址(或可重用IP地址,或专用网络地址)转换为公用地址(如Internet),从而对外隐藏了内部管理的iP地址。
说明:为了网络安全,划出了部分IP地址为私有IP地址。 私有IP地址仅用于LAN,不用于WAN连接,注意:正是因为不能用于WAN连接,所以私有IP地址不能直接用于Internet,必须通过网关利用网络地址转换NAT把私有IP地址转换为Internet中合法的全球IP地址后才能用于Inernet,并且允许私有的IP地址被LAN重复使用。这有效的解决了IP地址不足的问题。 私有IP地址的网段如下:
注:在因特网中的所有路由器,对目的地址是私有地址的数据报一律不进行转发。
使用NAT时,需要在专用网连接到因特网的路由器上安装NAT软件,NAT路由器至少有一个有效的外部全球地址。 当使用本地地址的主机和外界通信时, NAT路由器使用NAT转换表将本地地址转换为全球地址,或将全球地址转换为本地地址。
17. 子网划分与子网掩码
(1)子网划分
两级IP的缺点: IP地址空间的利用率很低; 给每一个物理网络分配一个网络号会使得路由变得太大而使得网络性能变坏; 两级的IP地址不够灵活。
1985年起,在ip地址中又增加了“子网号字段”,使两级的IP地址变成了三级的IP地址。 这种做法叫做划分子网。 划分子网已经成了因特网的正式标准协议。那么3级的ip地址为:
IP地址 = {<网络号>,<子网号>,<主机号>}
注意:1.划分子网纯属于一个单位内部的事情。单位对外仍然表现不出划分子网的网络。
2. 划分子网只是把iP地址的主机号这部分进行了再划分,而不改变IP地址原来的网络号。因此从一个IP数据报的首部并无法判断主机或目的主机所连接的网络是否进行了子网划分。
3. RFC950文档规定,对分类的IPv4地址进行子网划分是,子网号不能全部为0或全部为1,但是现在全1和全0也可以使用了,但使用前一定要谨慎。
18. 子网掩码
子网掩码是一个与IP地址相对应的长32bit的二进制串,它由一串1和跟随的一串0组成。其中,1对应于IP地址中的网络号和子网号,而0对应于主机号。 计算机只要将IP地址和与他对应地子网掩码逐位进行与运算,就可以得出相应子网的网络地址。 也就说可以通过子网掩码来获得子网。
个人认为,在这个例子中,6和62就是子网号。 必须网络号和子网号完全一致的时候,才能认为两者处于一个局域网内。
注意:
19. 无分类编址 CIDR
20.ARP、ICMP
ICMP协议,即Internet Control Message Protoco, 即互联网控制消息协议,它是网络层的协议,通常用于返回的错误信息或是分析路由。ICMP错误消息总是包括了源数据并返回给发送者。 ICMP错误消息的例子之一是TTL值过期。每个路由器在转发数据报的时候都会把IP包头中的TTL值减一。如果TTL值为0,“TTL在传输中过期”的消息将会回报给源地址。 每个ICMP消息都是直接封装在一个IP数据包中的,因此,和UDP一样,ICMP是不可靠的。
通常与ICMP相关的是ping命令,该命令用于检查网络状态、丢包情况,如下,我分别ping了百度和谷歌,结果如下:
我们可以看到,在ping的时候使用的就是ICMP协议,他是属于网络层的, 在ping 谷歌的时候,发送的数据包都丢失了,而ping github的时候,丢失了50%。
这里的时间应当是“时延”的意思,即由发送到送达的时间消耗。 那么TTL是什么呢? 我们先看维基百科的解释:
存活时间(英语:Time To Live,简写TTL)是电脑网络技术的一个术语,指一个数据包在经过一个网络时,可传递的最长距离(跃点数)。每当数据包经过一个路由器时,其存活时间就会被减一。当其存活时间为0时,路由器便会取消数据包并发送一个ICMP TTL数据包给原数据包的发出者。其设计目的是防止数据包因不正确的路由表等原因造成的无限循环而无法送达及耗尽网络资源。
在一篇博客中说到:
TTL是生存时间的意思,就是说这个ping的数据包能在网络上存在多少时间。当对网络上的主机进行ping操作的时候,本地机器会发出一个数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。
默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。
显然,TTL值大的网络其更容易访问
21.路由器的组成和功能
22.DHCP
DHCP即动态主机设置协议(Dynamic Host Configuration Protocol)。它是属于局域网的处于网络层的协议,使用UDP协议工作。
其主要用途有二:
DHCP是一种使网络管理员可以集中管理和自动分配IP网络地址的通信协议。 在IP网络中,每一个连接Internet的设备都需要分配唯一的IP地址。 DHCP是网络管理员可以从中心结点监控和分配IP地址,当某台计算机移到网络中的其他位置时,能自动收到新的IP地址。
DHCP使用了租约的概念,或称为计算机IP地址的有效期。 租用时间不是固定的,主要取决于用户在某地连接Internet需要多久,这对于教育行业和其他用户频繁改变的环境是很实用的。 通过较短的租期,DHCP可在一个计算机比可用IP地址多的环境中动态地重新配置网络。DHCP也支持为计算机分配静态地址,如需要永久性IP地址的Web服务器。
功能概述:
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置.
DHCP的主要功能如下:
DHCP有三种方式来分配IP地址:
(1)自动分配方式(Automatic Allocation)
DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
(2)动态分配方式(Dynamic Allocation)
DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
(3)手工分配方式(Manual Allocation)
客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
DHCP中的报文
(1) DHCP ACK
(2)DHCP REQUEST
(3)DHCP DISCOVER
(4) DHCP OFFER
需要了解上述报文是谁发送的,就得知道他们的工作原理是怎么样的!
第五章 传输层
1.传输层的功能:
(1) 提供应用进程之间的逻辑通信(即端到端的通信)。与网络层的区别是,网络层提供的是主机之间的逻辑通信。
注意: 从IP层(网络层)来说,通信的双方是两个主机,IP数据报的首部给出了这两个主机的IP地址。 但是“两个主机之间的通信”实际上是两个主机中的应用程序的通信,应用程序之间的通信又称为端到端的逻辑通信。
这里“逻辑通信”的意思是:传输层之间的通信好像是沿着水平方向传送数据,但事实上这两个传输层之间并没有一条水平方向的物理连接。
(2) 复用和分用。复用是指发送方不同的应用程序都可以使用同一个传输层协议传递数据。分用是指接收方的传输层在剥去报文首部后能够把这些数据正确交付到各个不同目的应用程序。
(3)传输层还要对收到的报文进行差错检测。而网络层只检查IP数据报的首部,不检查数据部分是否出错。
(4)提供两种不同的传输协议。 即面向连接的TCP和无连接的UDP。 而网络层不可能同时出现两种协议。
注意: 这里一个面向连接的,一个是无连接的,而不是不面向连接的,要分清专业词汇。
2. 传输层的特点: 传输层向高层屏蔽了底层网络核心的细节(如网络拓扑、路由协议等),它使得应用进程看见的就好像在两个传输层之间有一条端到端的逻辑通信信道。
这条逻辑信道对上层的表现却因传输层的不同而有很大的差别。 在传输层使用面向连接的TCP时,尽管下面的网络是不可靠的,但这种逻辑通信信道就相当于一条全双工的可靠信道。但是如果使用的是无连接的UDP时,这种逻辑信道仍然是一条不可靠信道。
3. 端口的作用
端口能够让应用层的各种应用进程将其数据通过端口向下交付给传输层,以及让传输层知道应当将报文段中的数据向上通过端口交付给应用层相应的进程。
端口号在传输层中的作用相当于IP地址在网络层的作用或MAC地址在数据链路层的作用,只不过IP地址和MAC地址标识的都是主机,而端口标识的主机中的应用进程。(******)
注意:端口号只具有本地意义,即端口号只是为了标志计算机应用层中的各进程。 在因特网中不同计算机的相同端口号是没有联系的。
补充对端口的理解:
个人理解: 物理层就是用于交换不同的数据的, 数据链路层就是为了有一个检测机制并将数据封成帧的且其中局域网的概念也非常重要,而网络层就是保证无论你在哪我都可以可得到你,传输层就是说我可以把得到的数据通过端口分发给不同的应用进程,所以传输层的作用就是传输数据给不同的应用进程。
4. 端口号
应用进程通过端口号进行标识:分为两类:
(1) 服务端使用的端口号。
服务器端使用的端口号也分为两类:
(2) 客户端使用的端口号。
数值在 49152~65535,由于这类端口号仅仅在客户端运行时才动态选择,因此又叫做短暂端口号,或者是临时端口号。 通信结束后,刚才使用过的客户端口号就不存在了,这个端口号就可以供其他的客户进程使用。
关键:PID就是端口号,之前在操作系统这门课中说过,只要分配了一个进程,就会有一个PID,即Port ID,端口号的意思
5. 套接字
在网络中通过IP地址来标识和区别不同的主机,通过端口号来标识和区分一台主机中的不同应用进程。 在网络中采用发送方和接受方的套接字(Socket)组合来识别端点。
所谓套接字就是指一个通信端点,即, 套接字 = (主机IP地址, 端口号),它唯一的标识了网络中的一个主机和其上的一个应用(进程)
在网络通信中,主机A发送给主机B的报文段中包含目的端口号和源端口号。其中目的端口号就是B的端口号,源端口号就是A的端口号。源端口号就是作为“返回地址”的一部分,即当B需要发回给一个报文段给A时,B到A的报文段中的目的端口好就是A到B报文段中的源端口号。
6. 无连接服务与面向连接服务
面向连接的服务就是在通信之前,必须先建立一个连接,在通信过程中,整个连接的情况一直被实时地监控和管理。 当通信结束时,应该释放这里连接。
而无连接的服务是两个实体之间的通信不需要先建立好连接,需要通信的时候,直接将信息发送到网络,而该信息的传递在网上尽力而为的往目的地传送。
7. TCP/IP协议族在IP层之上使用了两个传输协议: 一个是面向面向连接的传输控制协议TCP,另一个是无连接的用户数据报协议UDP。
8. TCP提供面向连接的服务,在传送数据之前必须先建立连接,数据传送之后要释放连接。 TCP不提供广播或组播服务。由于TCP面向连接的可靠地传输服务,因此不可避免的增加了许多开销,如确定、流量控制、计时器以及连接管理等等。这不仅使得协议数据单元的头部开销很大,且还要占用很多的处理机资源。 因此TCP主要适合用于可靠性更重要的场合,如文件传输(FTP)、超文本传输协议(HTTP)、远程登录(TELNET)等。
9. UDP是一个无连接的非可靠地传输层协议。他在IP之上仅仅提供了两个附加服务:多路复用和对数据的错误检查。 IP知道怎么把分组投递给一台主机,但是不知道怎么把它们投递给主机上的具体的应用。 UDP在传送数据之前不需要先建立连接,远程主机的传输层收到UDP报文之后,不需要给出任何确认。 优点: UDP比较简单,其执行速度比较快、实时性好。 使用UDP的应用主要包括小文件传送协议(TFTP)、DNS、SNMP和实时协议(RTP)。
10 UDP数据报
概述: RFC定义的UDP只是做了传输协议所能做的最少的工作,只提供了: 复用和分用以及差错检测。 如果应用程序开发者选用UDP而不是TCP,就相当于直接和IP打交道。
但是UDP并不是没有用的,因为其优点如下:(1)UDP不会引入建立连接的延时,因为他是无连接的。如果把DNS运行在TCP之上而不是UDP之上,那么DNS 的速度就会慢很多。 HTTP使用了TCP而不是UDP,是因为对于急于文本数据的web网页来说,可靠性是至关重要的。(2) 无连接状态。TCP在端系统中需要维护连接状态,此状态包括接受和发送缓存、拥塞控制参数和序号与确认号的参数,而UDP不需要连接状态也不跟踪这些参数,一次某些专用应用服务器使用UDP时,就可以支持更多的活动客户机。(3) 分组首部的开销小。 TCP报文段有20B的首部开销,而UDP仅仅只有8B的首部开销。 (4) 应用层能更好的控制要发送的数据和发送时间。
总结:UDP常用于一次性传输少量数据的网络应用,如DNS和SNMP等等,因为对于这些应用,若采用TCP,将为创建连接和维护带来很大的开销。
11. UDP的首部格式
UDP报文包含两个部分:UDP首部和用户数据,整个UDP报文作为IP数据报的数据部分封装在IP数据报中。
12 . TCP概要
TCP是在不可靠的IP层上实现的可靠地数据传输协议,它主要解决的是可靠、有序、无丢失和不重复的问题。特点是:
13. TCP报文段
TCP传送的数据单元称为报文段。一个TCP报文段分为TCP首部和TCP数据两个部分。
整个TCP段作为IP数据报的数据部分封装在IP数据报中。
TCP报文段首部如下:
各字段的意义如下:
TCP是面向连接的协议,所以每一个TCP连接都有三个阶段: 连接建立、数据传送、连接释放。
而TCP连接的管理就是使得运输连接的建立和释放都可以正常的进行。在TCP连接过程中需要解决以下的三个问题:
TCP连接的建立采用客户/服务器方式。 主动发起连接建立的应用进程叫做客户机(Client),而被动等待建立连接的应用进程叫做服务器(server)。
(1) TCP连接的建立(三次握手)
(1)第一步: 客户机的TCP首先向服务器端的TCP发送一个连接请求报文段。这个特殊的报文段中不含应用层数据,其首部的SYN = 1 (表示这是一个连接请求)。seq = x ,这是客户端随机选择的一个起始序号,故连接请求报文不携带数据,但是需要消耗掉一个序号。 TCP连接中传送的数据流中的每一个字节都编上了一个序号,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
(2)第二步: 服务器的TCP收到请求连接请求报文段之后,如同意建立连接,就向客户端发送确认,并为TCP连接分配TCP缓存和变量。 在确认报文段中,SYN设置为1(表示这是一个连接接收报文),ACK设置为1(在服务器发送确认连接报文以及之后C和S发送报文都要有ACK=1),并且服务器随机产生起始序列号seq = y (同样,TCP连接中的每个TCP报文段都要有序号,即sequence number,第一次的序号是随机发的)。确认号字段的值设置为x+1,即ack = x + 1; 确认报文段同样不含有应用层数据。注意:之所以确认号字段为x+1,有2个原因,其一:得知道确认字号段的含义,即期望接收对方的下一个报文段的数据的第一个字节的序号。其二:因为客户端发送TCP请求连接报文段时,只因为序列号消耗了一个字节,所以下次发送的字节是 x + 1;
(3)第三步:当客户机收到了确认报文段之后,还要向服务器给出确认(不仅服务器需要确认,客户端在得到服务器的确认之后还要确认),并且也要给该连接分配缓存和变量。这个报文段的ACK=1(刚刚说了,只要是在服务器确认连接的报文和之后的报文,都要添加 ACK = 1),seq = x + 1, 序号即这次需要发送的第一个字节的序号,和服务器发出的 ack 是相等的, 确认字段号为y+1(这个很容易理解,即客户端希望下次接受的TCP报文段的第一个字节的序号为y+1,因为上次客户端的是y,并且只有一个字节)。
注意:在成功执行了上面三步之后,TCP连接就建立了,接下来就可以传送应用层数据了。TCP提供的是全双工通信,因此通信双方的应用进程在任何时候都可以发送数据。
另外,值得注意的是: 服务器端的资源是在第二次握手时分配的,而客户端的资源是在完成第三次握手时分配的。这就使得服务器端容易收到SYN的攻击。
(2) TCP链接的释放
天下没有不散的筵席,对于TCP亦是如此。 参与TCP链接的两个进程中的任何一个都可以终止链接。
TCP连接释放的过程通常称为“四次挥手”,如下图:
(1) 第一步: 客户端打算关闭连接,就向其TCP发送一个连接释放报文段,并停止再发送数据,主动关闭TCP连接,该报文段的FIN标志设置为1,seq=u。(FIN报文段就是不携带数据,也要消耗掉一个序号)
(2) 第二步: 服务器收到连接释放报文后即发出确认,确认号是ack = u + 1; 这个报文段自己的序号是v,此时,从客户机到服务器这个方向的连接被释放了,TCP处于半关闭状态,但是服务器发送数据,客户机仍然接受,即从服务器到客户机的连接还没有关闭。
(3)第三步: 若服务器已经没有要向客户机发送的数据,就通知TCP释放连接,此时发送FIN = 1的连接释放此报文段。
(4) 第四步: 客户机收到连接释放报文段之后,必须发送确认。在确认报文段中,ACK为1,确认号为ack = w+1; 序号是seq=u+1. 此时的TCP连接还没有释放掉,必须经过等待计时器设置的2MSL后,A才进入连接关闭状态。
15. TCP可靠传输
TCP的任务是在IP的不可靠额、尽力而为服务的基础上建立一种可靠数据传输服务。 TCP提供的可靠数据传输服务就是要保证接收方从缓存区读出的字节流和发送方发出的字节流是完全一样的。
TCP使用了校验、序号、确认和重传等机制来达到这个目的。
1. 网络应用模型
(1) 客户/服务器(Client/Server)模型
在客户/服务器模型(Clinet/Server, C/S)中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。
工作流程是:
故: 在C/S模型中,客户机是服务请求方,服务器是服务提供方。
常见的使用客户/服务器模型的应用包括Web、文件传输(FTP)、远程登录和电子邮件等。
(2)P2P(Peer-to-Peer )模型
可以看出在C/S模型中,服务器的好坏至关重要。 因为整个网络中,少数服务器担任管理工作。且客户机之间没有直接通信。且可扩展性不佳,受服务器硬件和网络宽带的限制,服务器支持的客户机数量有限。而P2P的思想是整个网络中的传输内容不再被保存在中心服务器上,每个节点都同时具有下载、上传的功能,其权利和义务都是大体对等的。
特点:其任意一对计算机都可以相互通信。 每个节点既可以作为客户机访问其他节点的资源,也可以作为服务提供资源给其他的节点。他们的关系是Peer,即对等的。
故C/S与P2P的区别:C/S中服务器就是服务器,客户机就是客户机,且服务器的数量远远小于客户机的数量。 而P2P中,客户机也是服务器,服务器也是客户机。
2. DNS系统概述
域名系统(Domain Name System)是因特网使用的命名系统,用来把便于人们记忆的含有特定含义的主机名(如www.baidu.com)转换为便于机器处理的IP地址。
DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用53号端口。
3. 层次域名空间
www.baidu.com
这就是一个域名,其中www是三级域名,baidu是二级域名, com是顶级域名。每一个域名都是由标号序列组成,而各个标号之间使用 . 来隔开。
关于域名,有以下的几点需要注意:
顶级域名(Top Level Domain, TLD)有以下几类:
4. 域名服务器(域名服务器也都是有域名和IP地址的)
DNS使用了大量的DNS服务器,他们以层次方式组织,并且在全世界范围内。 没有一台DNS服务器具有因特网上所有主机的映射,相反,该映射分布在所有的DNS服务器上。
采用了分布式设计的DNS服务器,是一个在因特网上实现分布式数据库的精彩范例。主要有四种类型的域名服务器。
(1) 根域名服务器
根域名服务器的层次最高,所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址,它也是最重要的域名服务器。
不管是哪一个本地域名服务器,对因特网上的任何一个域名进行解析,如果自己无法解析,就首先求助于根域名服务器。
因特网上有13个根域名服务器,但是他们都不是单个的,不是说真的全世界只有这13个,而是每台“服务器”实际上是冗余服务器的集群,以提供安全性和可靠性。
需要注意的是,根域名服务器用来管辖顶级域(如.com),但是它并不会直接把 待查询的域名 直接转换为IP地址,而是给你指路 - 即告诉你(你就是本地服务器啊)应该去哪里找到哪一个顶级域名服务器进行查询。
(2)顶级域名服务器
顶级域名服务器负责管理着在该顶级域名服务器注册的所有二级域名。 当收到了DNS查询请求时,就给出相应的回答(可能是最后的结果,也有可能是再给你指个路 - 告诉你你下一步应该去找哪个DNS服务器 - 告诉你下一个你需要找的DNS服务器的iP地址)。
(3)授权域名服务器(权威域名服务器/权限域名服务器)
每一个主机都必须在授权域名服务器处登记。 为了更加可靠地工作,一个主机最好至少有两个授权域名服务器。
实际上, 许多的域名服务器同时充当本地域名服务器和授权域名服务器。 授权域名服务器总是可以将其管辖的主机名转换为该主机的IP地址。
(4)本地域名服务器
(重要:)当一个主机发出了DNS请求时,这个查询请求报文就会发给本地的域名服务器。 每个因特网服务提供者ISP,或一个大学,甚至是大学里的一个系就可以有一个本地域名服务器。
注:我的理解是本地域名服务器就相当于当地的运营商的DNS服务器。
5. 域名解析过程
注:(1) 主机向本地域名服务器的查询采用的是递归查询
(2) 本地域名服务器向根域名服务器的查询采用迭代查询。
如我们希望得到www.baidu.com这个域名的IP会经历下面的八个步骤:
6. 文件传输协议FTP
文件传输协议(File Transfer Protocal, FTP)是因特网上使用的最为广泛的文件传送协议,功能有:
注: FTP的工作方式是 客户/服务器的工作方式,它使用TCP可靠地传输服务。 一个FTP服务器进程可以同时为多个客户进程提供服务。
FTP的服务器进程由两大部分组成:一个主进程,负责接收新的请求; 另外有若干个从属进程,负责处理单个请求。 工作步骤如下:
(1)打开端口21(控制端口),使用户可以连接上
(2)等待客户进程发送链接请求。
(3) 启动从属进程来处理客户进程发来的请求。
(4) 回到等待状态,继续接受其他客户进程的请求。 主进程与从属进程并发执行。
7. FTP中的控制链接和数据连接
FTP在工作时使用两个并行的TCP连接,一个是控制链接,一个是数据连接。 使用两个不同的端口号可以使得协议更加简单和更容易实现。
(1)控制链接
用来传输控制信息(如连接请求、传送请求)。 并且控制信息都是以7位ASCII格式传送的。
(2)数据连接
数据连接用来连接客户端和服务器端的数据传送进程, 数据传送进程实际完成晚间的传送,。
问: 当一台计算机从FTP服务器下载文件是,在该FTP服务器上对数据进行封装的5个装换步骤是:数据、数据段、数据报、数据帧、比特
8. 电子邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议
因特网电子邮件结构主要有3个组成部分:
需要注意的是:SMTP采用的是推(push)的方式,即在用户向邮件服务器发送邮件以及邮件服务器之间发送邮件时,SMTP客户端主动将邮件“推”到SMTP服务器端。 而POP3采用的是拉(Pull)的通信方式。 当用户读取邮件时,用户代理形邮件服务器发出请求,“拉”取用户邮箱中的邮件。
电子邮件的收发过程:
9. 电子邮件格式
电子邮件地址的规定格式为“收件人邮箱名@邮箱所在主机的域名”如1843021156@qq.com,其中用户名(即收件人邮箱名)在qq.com这个邮件服务器上必须是唯一的。 这也就保证了 1843021156@qq.com这个邮件地址在整个因特网上都是唯一的。
10 MIME (多用途网际邮件扩充)
即Multipurpose Internet Extensions,由于SMTP只能传送一定长度的ASCII码,许多其他非英语国家的文字(如中文、俄文、甚至带重音符号的德语)都无法传送,且无法传送可执行文件和其他的二进制对象,因此提出了多用途网际邮件扩充(MIME)。
它并没有改动SMTP或者是取代它,而是继续使用目前的格式,但增加了邮件主题的结构,即MIME邮件可以在现有的电子邮件和协议下传送。
MIME和SMTP的关系是,如果用户的邮件中是非ASCII码,那么MIME就将它转化成ASCII码,然后继续使用STMP来传送。
11. WWW的概念和组成结构
万维网(World Wide Web, WWW)是一个资料空间。 在这个空间中:一样有用的食物,称为一样资源; 并且这个资源使用“统一资源定位符”(URL)来标识。 这些资源通过超文本传输协议HTTP传送给使用者, 而后者通过单机连接来获取资源。
万维网的内核部分是由三个标准构成的:
URL的一般形式是:<协议>://<主机>:<端口>/<路径>
12. 互联网、因特网和万维网的区别
互联网泛指多个计算机网络,按照一定的通信协议,相互连接而成的一个大型计算机网络。因特网(Internet)是指由ARPA网基础上发展而来的世界上最大的全球性互联网络。可以认为,因特网只是互联网中最大的一个。
万维网是无数个网络站点和网页的集合,他们在一起构成了因特网最主要的部分(因特网还包括电子协议和新闻组)。故 互联网包含因特网,因特网包含万维网。
13. 超文本传输协议HTTP
它定义了浏览器(万维网客户进程)怎么样向万维网服务器请求万维网文档,一起服务器怎么把文档传送给浏览器。它使用TCP链接进行可靠的传输,端口号是80。
工作流程: 每个万维网站点都有一个服务器进程,它不断地监听TCP的端口80(默认),当监听到连接请求后便立即与浏览器建立连接。TCP连接建立后,浏览器就向服务器发送要求获取某一个web页面的http请求。 服务器收到了http请求后,将构件所请求的web页面所必须的信息,并通过HTTP响应返回给浏览器。 浏览器再将信息进行解释,然后将web页显示给用户。最后TCP连接释放。
所以有了这个知识,我们就可以回答输入url之后,一旦回车发生了什么?
14.HTTP协议的特点
15.HTTP 报文结构
前者是请求报文、后者是响应报文
可以看到,HTTP的请求报文和响应报文都是由三部分组成的。 他们的整体上的区别就是 开始行不同。
开始行, 用于区分是请求报文还是响应报文。 在请求报文中叫请求行,而在响应报文中叫做状态行。 开始行的三个字段之间都使用空格隔开。
值得注意的是: 请求报文的请求行包括: 请求方法、请求资源、HTTP版本。 而状态行包括了Http版本,响应状态和响应文本(短语)。
首部行, 用来说明浏览器或服务器或报文主体的一些消息。首行可以有好几行,且必须要用到。每一个首部行都有首部字段和他的值。 每一行的结束都要有“回车”“换行”。 整个首部结束之后,还要用一个空行将首部和后面的实体分开。
实体主体, 在请求报文中一般都不使用这个字段,而在有些响应报文中也可能没有这个字段。
17. SNMP协议
首先需要知道的是它是应用层协议 简单网络管理协议(Simple Network Management Protocal)。且是基于UDP的。
(1) 网络管理的历史
美国国防部设计了世界上头几个包交换网之一的ARPANET,在70年代,TCP/IP协议族正式被定为军方通信标准,随着此协议的广泛使用,网络管理成了一件大事。在80年代未和90年代初,网络迅速发展,许多子网数目的增多使监视网络活动成为一种必须。在网络管理的初期,对网络的管理停留在使用ICMP和PING的基础上,但是随着网络内主机数据的不断增多,这种简单的工具已经不可能完成网络管理的工作了。
(2)SNMP历史
随着网络数目与网络内主机数目的日益增多,单纯依靠一些网络专业进行网络管理已经不可能了,必须有一种通行的网络管理标准以及相应的管理工具使普通人也能够管理网络。第一个相关的协议是SGMP,它提供了一种直接监视网关的方法,也因此成了一种通用的网络管理工具。下来,有三种可供选择的管理工具:HEMS,SNMP和建立在TCP/IP基础上的CMIP(CMOT),因为需要使用ISO/OSI模型进行网络管理,SNMP首选CMOT作为管理工具。基本的SNMP已经被广泛使用了,所有的网络产品都提供对SNMP的支持,新开发的具有远程管理能力的SNMP是RMON,它使管理人员可以将整个子网进行管理,而不是对整个子网内的设备进行管理。
(3) 一些定义
SNMP,Simple Network Management Protocol:简单网络管理协议它是一个标准的用于管理IP网络上结点的协议。此协议包括了监视和控制变量集以及用于监视设备的两个数据格式:SMI和MIB。
MIB,Management Information Base:管理信息库由网络管理协议访问的管理对象数据库,它包括SNMP可以通过网络设备的SNMP管理代理进行设置的变量。
SMI,Structure of Management Information:管理信息结构用于定义通过网络管理协议可访问的对象的规则。SMI定义在MIB中使用的数据类型及网络资源在MIB中的名称或表示。
ASN.1,Abstract Syntax Notation One:抽象语法定义用于定义语法的正式语言,在SNMP中它用于定义SNMP协议数据单元和对象的格式。
PDU,Protocol Data Unit:协议数据单元在网络中传送的数据包。
BER,basic encoding rules:基本编码规则由CCITT (X.209)和ISO (ISO 8825)指定的编码规则,它描述了如何将ASN.1类型表示为字符串。
注意: 一般说简单网络管理协议由那几个部分构成:我们认为是:
标签:子邮件 ttl 监视 应用层协议 form format blank 字节流 文本
原文地址:https://www.cnblogs.com/lcword/p/9577693.html