互联网
互联网又称国际网络,指的是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。简单的说,网络把主机连接起来,互联网就是把多种不同的网络连接起来。
ISP
互联网服务提供商(ISP )可以从互联网管理机构获取 IP 地址,同时拥有通信路线及路由器等联网设备。个人或其他机构向 ISP 缴纳一定的费用就可以接入互联网。
互联网是一种多层次 ISP 结构,分:主干 ISP 、地区 ISP 、本地 ISP。
互联网的组成
- 边缘部分:所有连接在互联网上的主机,用户可以直接使用。
- 核心部分:由大量的网络和连接这个网络的路由器组成,为边缘部分的主机提供服务。
电路交换与分组交换
- 电路交换:用于电话通信系统,两个用户要通信之前需要简建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信过程中不可能一直使用传输路线,因此电路交换对线路交换的利用率很低。
- 报文交换:用于邮局通信系统,邮局接收到一份报文后,将其存储,然后把相同目的地的报文一起转发到下一个目的地。这个过程就是存储转发过程。
- 分组交换:也使用了存储转发,但是转发的是分组而不是报文。把整块数据称为报文,由于一个报文可能很长,需要先进行切分,来满足分组能处理的大小。在每个切分的数据前面加上首部之后就成为了分组,首部包含了目的地址和源地址等控制信息。
存储转发允许在一条传输线路上传送多个主机的分组,也就是说两个用户之间的通信不需要占用端到端的线路资源。
相比于报文交换,由于分组比报文更小,因此分组交换的存储转发速度更加快速。
时延
总时延 = 发送时延 + 传播时延 + 排队时延
-
发送时延:主机或路由发送数据所需的时间。其中 l 表示数据帧的长度,v 表示发送速率。
-
传播时延:电磁波在信道中传播一定距离需要花费的时间,电磁波传播速度接近光速。其中 l 表示信道长度,v 表示电磁波在信道上的传播速率。
-
处理时延:主机或路由器收到分组时进行处理所需要的时间。例如分析头部、从分组中提取数据、数据校验、查找路由等
-
排队时延:分组在路由器的输入队列中排队等待的时间,取决于网络当前的通信量。
计算机网络体系结构
为什么要分层,有什么好处?
不分层的缺点:
如果互联网都由一个协议统筹,当某个地方需要修改或者改变设计时,就必须把所有整体换掉。
分层的好处:
分层后的话,若某层需要改动,只需要将改动的那层去掉即可。只需要考虑上层指派下来的任务,不需要弄清楚对方。
七层协议
如上图表示,其中表示层和会话层用途如下:
- 表示层:信息的语法、语义及关联信息。如加密解密、转换翻译、压缩解压等。
- 会话层:不同机器上的用户之间建立及管理会话。
五层协议
- 应用层:为特定应用程序提供数据服务,例如HTTP、FTP(File Transfer Protocol , 文件传输协议)、DNS (Domain Name System,域名系统)等。
- 运输层:为上层提供通用数据传输服务。由于应用层协议很多,定义通用的运输层协议就可以支持不断增多的应用层协议。传输层包括两种协议:传输控制协议TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整服务,UDP 主要提供及时性服务。
- 网络层:为主机之间提供数据服务,而运输层协议是为主机中的进程提供服务。网络层把运输层传递下来的报文段或者用户数据封装成分组。
- 数据链路层:网络层针对主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的结点提供服务。
- 物理层:物理层解决如何来连接各种计算机的传输媒体(电缆、光纤电缆等)上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。
数据在各层之间的传递过程
在向下的过程中,需要添加下层协议所需要的首部或者尾部,而在向上的过程中不断拆开首部和尾部。
路由器只有下面三层协议,因为路由器位于网络核心中,不需要为进程或者应用程序提供服务,因此也就不需要运输层和应用层。
TCP/IP 协议族
计算机与网络设备要相互通信,双方都必须有相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信等规则。不同的硬件、操作系统之间的通信,这些通讯都需要有种规则,统称为协议(protocol)。TCP/IP 是互联网相关协议的总称
TCP/IP 包括:HTTP、TCP、UDP 、IP、FTP、DNS、ICMP、FDDI、SNMF等
TCP/IP 体系结构
它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层(链路层)。
利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信,发送端从应用层往下走,接收端则往应用层往上走。
举例:发送端的客户端在应用层(HTTP 协议)发出一个想看某个Web页面的HTTP请求。
过程:传输层(TCP协议)把从应用层传输的HTTP请求报文进行分割,并在各个报文上打上标记序号及端口号后转发给网络层,在网络层(ip协议),增加作为通信目的地的MAC地址后转发给链路层,链路层发往网络的通信请求。接收端的服务器链路层接收到数据,按序往上层发送,一直响应到应用层,当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。发送端在层与层之间时,每经过一层时必定会被打上一个该层所属的首部信息,反之,接收端在层与层传输数据时,每经过一层时会把对应的首部信息去掉,这种数据信息包装起来的做法叫做封装(Encapsulate)。