内容来源于:教书匠——计算机网络微课堂(有字幕无背景音乐版)_哔哩哔哩_bilibili
一、概述
1.1 英特网介绍
Internet:因特网
internal:互联网
ISP(Internet Service Provider):因特网服务提供商,主机通过ISP申请的IP地址,通信线路、路由器等连接入因特网。
ISOS:因特网协会
IAB:管理有关协议的开发
IETF:研究中短期工程,针对协议的开发和标准化
IRTF:从事理论研究和开发需要长期考虑的问题
制定因特网的正式标准的四个阶段:
- 因特网草案
- 建议标准(此阶段才开始成为RFC(Request For Comments)文档)
- 草案标准
- 英特网标准
1.2 三种交换方式
电路交换 报文交换 分组交换
分组交换优点:
- 无需建立连接
- 信道利用率高
- 简化存储管理
- 加速传输
- 减少出错概率和重发数据量
缺点:
- 引起转发时延
- 需要传输额外数据量
- 对于数据报服务,存在失序、丢失、重复分组的问题
- 对于虚电路服务,存在呼叫建立,数据传输和虚电路释放三个过程
1.3 计算机网络分类
按范围 :WAN(广)、MAN(城)、LAN(局)、PAN(个)
按拓扑结构:总线型、星型、环型、网状型
按使用者:公用网、专用网
按传输介质:有线、无线
1.4 计算机网络的性能指标
1B=8b(1字节=8比特),数据量换算用2^10,速率换算用10^3。
速率、带宽(单位时间内从网络某一点到另一点所能通过的的最高数据率)、吞吐量(单位时间内通过某个网络或信道或接口的数据量)、时延(发送时延、传播时延、处理时延)、时延带宽积(传播时延*带宽)、往返时间(RTT)、利用率(网络利用率、信道利用率)、丢包率(反应网络的拥塞情况)
1.5 计算机网络体系结构
分而治之
OSI 七层协议(法定) TCP/IP 4层协议(实际) 五层协议(教学)
物理层:解决使用何种信号传输比特的问题
数据链路层:解决分组在一个网络(或一段链路)上传输的问题
网络层:解决分组在多个网络传输(路由)的问题
运输层:解决进程之间基于网络的通信问题
应用层:解决多个应用进程通过交互实现特定网络应用的问题
浏览器进程和web服务器进程如何交互:
1、HTTP请求报文在主机上自顶向下逐层封装,发送给路由器
首先,主机应用层按http协议构造http请求报文,然后交付给运输层处理;运输层添加一个TCP首部(区分应用进程和实现可靠传输)变成TCP报文段,再交付给网络层处理;网络层添加IP首部(使IP数据报可以在互联网上传输,即被路由器转发)变成IP数据报再交由数据链路层处理;数据链路层添加一个首部(使帧可以在一段链路或一个网络上传输,能被相应主机接收)和尾部(检查接收到的帧是否有误码)使其成为以太网帧; 物理层,将帧看作是比特流,添加前导码(使目的主机接受帧)然后变换成相应信号发送给传输媒体,经由传输媒体到达路由器
2、路由器(只有3层)自底向上逐层解封得到IP数据报,由网络层解析IP数据报的首部,提取目的网络地址,查找自身路由表,确定转发端口再封装好转发给web服务器
路由器物理层再将信号变换为比特流去掉前导码后交付给数据链路层,此时交付的是帧,然后数据链路层去掉帧首帧尾后交付给网络层,此时交付的是IP数据报,网络层解析IP数据报的首部从中提取目的网络地址,然后查找自身的路由表,确定转发端口进行转发,网络层将IP数据报再经数据链路层、物理层变成可以传输的信号,经传输介质到达web服务器
3、web服务器,由物理层到应用层,自底向上解封得到http请求报文,交由应用层解析然后再发回http响应报文。
专业术语
实体:可以接受或发送信息的硬件、软件进程
协议:控制两个对等实体进行逻辑通信的规则的集合。“水平”
协议三要素:语法、语义、同步
- 语法:定义所交换信息的格式,比如说有哪些字段,如何排序等
- 语义:定义收发双方要完成的操作
- 同步:定义收发双发的时序关系
服务:本层享受下一层提供的服务,并为上一层提供服务。“垂直”
服务访问点:相邻两层实体交换信息的逻辑接口,用于区分不同的服务类型。 数据链路层为帧的“类型”字段,网络层为IP数据报首部的“协议字段”,运输层为“端口号”
下面的协议对上面的实体是“透明的”,实体只知道下一层提供的服务,不知道实现该服务的具体协议
PDU:协议数据单元,对等层次之间传输的数据包称为该层的PDU,如帧、IP数据报或分组等。
SDU:服务数据单元,同一系统内,层与层交换的数据包称为SDU。
二、物理层
略
三、数据链路层
数据链路:把实现通信协议的硬件和软件加到链路上,即数据链路。 数据链路层的PDU:数据帧
使用点对点信道的数据链路层的三大重点:封装成帧、差错检测、可靠传输
使用广播信道的数据链路层:共享式以太网的媒体接入控制协议CSMA/CD(处理碰撞)
802.11局域网的媒体接入控制协议CSMA/CA
数据链路层的互连设备:网桥、交换机。 集线器是属于物理层的互联设备
3.1 封装成帧
数据链路层给上层交付的PDU添加帧首和帧尾使之成为帧
- 帧头帧尾包括控制信息
- 帧头帧尾定义帧的边界(帧定界)
以太网2MAC帧无帧定界,通过帧间间隔来区分帧
透明传输是指数据链路层对上层交付的传输数据没有任何限制。当传输数据中包含帧定界符时,需要在前面填充转义字符,面向字节的物理链路使用字节填充(或称字符填充)、面向比特的物理链路使用比特填充以此实现透明传输。
HDLC,高级数据链路控制协议,采用帧头和帧尾中的标志字段作为帧定界符,值为01111110,为实现“透明传输”,采用“零比‘特填充法”(每5个连续的1后插入一个比特0)
为提高帧的传输效率,帧的数据部分应尽肯能多,但每一种数据链路层协议都规定了帧的数据部分的上限长度,称为MTU(最大传输单元)
3.2 差错检测
误码率BER(Bite Error Rate):传输错误的比特占总比特的比率
通过差错检测码来检测数据在传输过程中是否产生了比特差错(或称误码)
- 奇偶校验
在待发送的数据后面添加1位奇偶校验码,使整个数据(包含校验位)中的“1”的个数为奇数(奇校验)或者偶数(偶校验)。
奇偶校验只有当奇数个比特位发生误码才能检测出误码,当偶数个比特网发生无法会漏检。
- 循环冗余校验CRC
收发双方约定一个生成多项式,发送方基于待发送数据和生成多项式计算出差错检测码(冗余码),再将其添加到传输数据的后面,接收方通过生成多项式来计算收到的数据是否产生了误码。漏检率非常低,因此广泛应用于数据链路层。
举例:发送信息101001,生成多项式为,计算出的冗余码为001
接受方收到信息后,计算余数是否为0,若否,则出现了误码。
检错码只能检测出误码,不能定位错误,因此无法纠正错误。解决办法是冗余信息更多的的纠错码进行前向纠错,但这种方式冗余码开销大,数据传输效率低。因此较多采用的是检错重传方式(可靠传输)来纠正传输中的差错或仅仅丢弃差错帧(不可靠传输)。
3.3 可靠传输
数据链路层的可靠传输:只有无线链路需要数据链路层向上提供可靠传输服务(如802.11)
因为有线链路(以太网)误码率较低,出现误码,可靠传输交由上层处理即可。而无线链路误码率较高,因此要求数据链路层向上提供可靠传输服务。
传输差错不只有误码,还包括分组丢失、分组失序、分组重复,一般是出现在数据链路层上层,因此可靠传输也可在其它层实现,如运输层TCP的可靠传输。