计算机网络
第一章 计算机网络的介绍
计算机网络性能指标:
1.1常见计算机网络的体系结构
法律上的国际标准:OSI体系结构
1.物理层 2.数据链路层 3.网络层 4.运输层 5.会话层 6.表示层 7.应用层
- 物理层:解决使用何种信号来传输比特的问题
- 数据链路层:解决分组在一个网络(或者一段链路)上传输的问题
- 网络层:解决分组在多个网络上传输(路由)的问题
- 运输层:解决进程之间基于网络通信的问题
- 会话层:解决进程之间的会话问题
- 表示层:解决通信双方交换信息的表示问题
- 应用层:解决通过应用进程的交互来实现特定网络应用的问题
事实上的国际标准:TCP/IP体系结构
1.网络接口层 2.网际层 3.运输层 4.应用层
原理体系结构:
1.物理层 2.数据链路层 3.网络层 4.运输层 5.应用层
1.2计算机网络分层的必要性
1.计算机网络是一个非常复的网络
2.分层可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
各个层需要解决的问题:
物理层:解决使用何种信号来传输比特的问题
数据链路层:解决分组在一个网络(或者一段链路)上传输的问题
解决编址问题:
网络层:解决分组在多个网络上传输(路由)的问题
运输层:解决进程之间基于网络通信的问题
应用层:解决通过应用进程的交互来实现特定网络应用的问题
计算机网络体系结构分层处理方法
在五层结构中,各层负责任务如下:
应用层:按照http请求的协议,构建报文。然后交付给运输层处理。
运输层:给http请求加上一个头部,使其成为一个TOP报文段。其头部的作用是识别进程和实现可靠传输(TCP的特点)。而后交给网络层处理。
网络层:给TCP报文段加上一个IP头部,使其成为IP数据报。其首部作用是为了使该数据段可以在互联网上传输。而后将其交付给数据链路层处理。
数据链路层:给IP数据报添加一个首部和一个尾部,使其成为帧(按帧传输)。其首部的作用是使其能够在一段链路或者网络上传输,以及被目的交换机接收并处理。其尾部的作用是为了让目的主机检查是否有误码。最后将其交给物理层。
物理层:将帧看作是比特流(01编码),由于是在以太网传输,因而给其加上前导码,便于传输。并且将其变成相应的信号发送到传输媒体。
1.3计算机网络的专用术语:
实体:实体是指任何可发送或接收信息的硬件或软件进程。对等实体是指通信双方相同层次中的实体。
协议:
协议是控制两个对等实体进行逻辑通信的规则的集合,例如TCP/IP协议。
协议的三要素:语法,语义,同步。
- 语法定义了所交换信息由那些字段以及何种顺序构成。
- 语义定义通信双方所要完成的操作。例如,主机HTTP的GET请求给Web服务器,Web服务器收到后执行相应的操作,然后给主机发回HTTP的响应。
- 同步定义通信双方的时序关系。例如,TCP的“三报文握手”建立连接。
总结
第二章 物理层
2.1物理层基本概念
物理层是计算机网络的第一层,是整个计算机网络系统的基础,为数据传输提供可靠的环境。
物理层要解决的基本问题:如何在各种传输媒体上传输比特0和1的问题。进而给数据链路层提供透明传输比特流的服务。
物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。
传输媒体:1.导引型传输媒体 :双绞线,同轴电缆,光纤 2.非导引型传输媒体 微波通信(2~40GHZ)
物理层为了解决在各种传输媒体上传输比特0和1的问题,主要有一下4个任务:
2.2 物理层下面的传输媒体
传输媒体不属于计算机网络中的任何一层,其在物理之下。
传输媒体:1.导引型传输媒体 :双绞线,同轴电缆,光纤 ,电力线
2.非导引型传输媒体 微波通信(2~40GHZ),无线电波,红外线,可见光
同轴电缆:
双绞线:
光纤:
2.3传输方式
串行传输 :数据通过一条线路传输,一个一个比特依次传送,因此只需要一条线路。
数据在进行远距离传输的时候用的是串行传输,不是并行传输。
并行传输:数据通过多条线路传输。
并行传输的优点是速度为串行传输的n倍。缺点是成本高。
计算机内部数据的传输一般使用并行传输。
同步传输:数据库以稳定的比特流形式传输,字节之间没有间隔。
接收端在每个比特信号的中间时刻进行检测,以判别接收到的是比特0还是比特1。
由于不同设备的时钟周期存在差异,不能做到完全相同,在传输大量数据的过程中判别时刻的累计误差会导致接收端对比特信号的判别位置错位。因此需要采取方法使收发双方的始终保持同步。
收发双方时钟同步的方法:
外同步:在收发双方之间添加一条单独的时钟信号线。发送端在发送数据信号的同时,另外发送一条时钟信号,接收端按照同步信号的节奏来接受数据。
内同步:发送端将始终同步信号编码到发送数据中一起传输(例如 曼彻斯特码)。传统以太网采用的就是曼彻斯特编码的内同步方式。
2.4编码与调制
2.5 信道极限容量
第3章 数据链路层
3.1数据链路层概述
数据链路层的三个重要问题:
- 封装成帧是把网络层交付的协议数据单元,添加帧头和帧尾的操作,称为封装成帧,主要目的是为了在链路上以帧为单元传输数据,从而实现数据链路层本身的功能。
- 差错检测:在传输过程中可能会产生比特差错:1 可能会变成 0, 而 0 也可能变成 1。
- 可靠传输:尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,这就是可靠传输。
3.2 封装成帧
封装成帧是把网络层交付的协议数据单元,添加帧头和帧尾的操作,称为封装成帧,主要目的是为了在链路上以帧为单元传输数据,从而实现数据链路层本身的功能。
透明传输:封装抽象出具体的传输逻辑,只暴露出传输的功能。在此指的是数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
在传输数据过程中可能会出现数据比特流与帧定界标志符一样的情况,造成误读定界标志导致传输错误。在这种情况下,说明数据链路层对于数据有了一个要求:不能存在与定界符一样的数据编码。这就代表着对上层交付的数据有了限制,这就不是透明传输。因此为了实现透明传输,需要在数据链路层对数据进行处理,实现透明传输的功能。因此在数据链路层中就会有对数据的处理来实现透明传输功能,例如:字节填充、比特填充,主要思路是在每一个传输数据中出现的定界符进行转义,防止误读。
子节填充:在面向字节的物理链路中适用,步骤如下:
- 通过在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B)。
- 接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
- 如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符 ESC。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
比特填充:适用于面向比特传输的物理链路,步骤如下:
- 在数据链路层中发送帧前扫描帧的数据部分,若出现连续的5个1,将后续的一个1换成0(因为帧定界标志符为01111110)。
- 在接收方数据链路层接收帧时,帧的数据部分,若出现连续的5个1,将后续的一个0换成1。
3.3差错检测
实际的通信过程中都不是理想的,在传输过程中可能会产生比特差错:1 可能会变成 0, 而 0 也可能变成 1。在一段时间内,传输错误的波特率站比特总数的比率称为误码率BER(Bit Error Rate)。使用差错检测码来检测数据在传输过程中是否出现差错是数据链路层的一个重要问题。