计算机网络复习
1.OSI(国际标准化组织)网络层次7层
网络层次 | 操作对象 | 说明 | 设备 | 协议 |
应用层 | 报文 | 提供访问网络的接口 | - | FTP、Telnet、DNS、SMTP、POP3、HTTP |
表示层 | 对上层数据加密、压缩、格式转换,保证主机应用层信息被另一个主机理解 | - | - | |
会话层 | 管理主机之间的会话进程 | - | - | |
传输层 | - | 第一个端到端的层,负责将上层数据分段并提供端到端的可靠/不可靠传输 | 网关 | TCP、UDP |
网络层 | IP数据报 | 负责对子网的数据包进行路由选择 | 路由器 | IP、ICMP、ARP、RARP |
数据链路层 | 帧 | 将网络层的数据可靠地传输到相邻节点的目标网络层,将数据封装成帧 | 网桥、交换机 | 以太网协议 |
物理层 | - | 为上层协议提供传输数据的可靠物理媒介,确保原始数据可在各种物理媒介上传输 | 中继器、集线器、调制解调器 | - |
2. 具体层次
2.1 物理层
- 基本概念
物理层是唯一一个直接传输数据的层,主要考虑如何在连接开放系统的传输介质上传输各种数据的比特流。尽可能屏蔽掉物理设备和传输介质的差异,为数据链路层提供一个统一的数据传输服务。
物理层实体可以理解为数据终端设备(DTE)和数据通信设备(DCE)。 - 传输介质
有线传输介质:双绞线、同轴电缆、光缆。
无线传输介质:微波、无线电、红外、激光。 - 数据编码技术
基本调制技术:振幅调制、频率调制、相位调制、多进制调制。
脉冲编码调制技术PCM:基于奈奎斯特采样定理,进行采样、量化、编码。
数字信号编码技术:不归零编码、曼彻斯特编码(高转低电平为1,低转高电平为0)。 - 信道复用技术
频分多路复用(FDM)、时分多路复用(TDM)、波分多路复用(WDM)、码分多路复用(CDMA)。 - 物理层接口标准
RS-232-C:提供一个利用公用电话网作为传输介质,通过调制解调器将远程设备连接起来的技术规定。
RS-449、RS-422-A、RS-423-A。
CCITT X.21和X.21 bits。
2.2 数据链路层
-
基本概念
在物理层提供服务基础上向网络层提供服务。作用是加强物理层传输原始位流的功能,将物理层提供的可能出错的物理连接改造成逻辑上无差错的数据链路。向网络层提供透明可靠的数据传输服务。 -
主要功能
(1)链路管理:数据链路的建立、维持和释放。
(2)帧同步:数据以帧为单位传输,为了能够在出错之后只将出错的数据重发,帧需要能够从物理层收到的位流中区别出帧的起始和结束,同时接受方可以识别帧的起始和结束。
(3)流量控制:为防止接收方缓存不足而造成数据丢失,发送方发送数据的速率要让接收方来得及处理,当太快的时候,接收方必须空置房宋芳发送的速率。
(4)差错控制:通信系统具备检测差错的能力,并采取措施加以纠正。
(5)透明传输:因数据组合的随机性,可能和某个控制信息一样而被对方误解。
(6)寻址:保证每一帧能够正确送达,同时又要使接收方知道该帧从哪里发出。 -
** 成帧方法 ** :字符计数法(头部指定该帧中字符数,缺点是计数值错误后后面都错了)、含字节填充分解符法(考虑出错后重新同步的问题,让每一帧都用特殊字节作为开始和结束,标志字节,当出错时,只要搜索标志字节就能找到当前帧结束为止。标志字节如果出现在数据段,就插入转义字符,缺点就是依赖于8位字符的模式,但并不是所有编码都是8位的)、含位填充分界标志法(每一帧开始和结束都有一个特殊位模式”01111110“,碰到五个连续1自动两边填充0)、物理层编码违例法(适用于物理介质的编码方法中包含冗余信息的网络)
-
差错检测
4.1 差错检测编码
纠错码:在每一个被发送数据块中包含足够多的冗余信息,可以使接收方发现并纠正传输中的错误。
验错码:包含一些冗余信息,让接收方判断出发生错误,但推断不出发生哪个错误。
4.2 常用简单差错检测编码
奇偶校验码:7位ASCII码后增加一位,使得码子中1的个数恒为奇数或者偶数。(垂直、水平)
循环冗余码CRC:又称为多项式码,CRC码是由X^r * K(X)除以某个约定的多项式后产生的,该多项式为生成多项式,位数越多校准能力越强。 -
停止等待协议
差错控制基本思想:差错检测、接受确认、出错重传。
流量控制基本思想:使接收方能够控制发送方发送帧的速率。
[检错重传、超时计时器、帧编号]
可能出现的情况:
(1)正常情况:接收方在收到正确的帧后,回发一个确认帧ACK。主机收到ACK后才能发送新的数据帧,实现双方的流量控制。
(2)数据帧出错:方发现出错后,节点B向A发送否认帧NAK,表示A应该重传错误帧,双方暂时保存已发送过但还没有得到确认的数据帧副本。
(3)数据帧、确认帧丢失:A发给B的数据帧丢失,B不会给A任何回复,同理B可能给A回复确认帧丢失了,超时重传。 -
滑动窗口协议
停等协议必须等待确认帧到来才发送下一帧,浪费大量带宽。滑动窗口协议基本思想:发送方发送完一帧后接着发送数据帧,每个要发送的帧都有一个序号,n位2进制来表示。使用发送窗口来进行流量控制,而发送窗口的大小代表收到对方确认帧情况下发送方最多还可以发送的数据帧个数。同样接收方也有接收窗口,只有当收到的数据帧的发送序号落入接受窗口内才允许接收。 -
连续ARQ协议 [回退N帧ARQ协议]
基本思想:在发送完一个数据帧后,不是停下来等待确认帧,而是可以连续再发若干个数据帧。如果接收到了接收方(窗口大小为1)的确认帧,还可以接着发送数据帧。整个通信吞吐量提升。接收方只允许顺序接收,当发送方发现未收到前面已发送帧的确认帧,计时器超时,则不得以重新发送N帧。 -
选择重传ARQ协议
基本思想:接收方窗口和发送方窗口一样大,当接收方发现某帧出错,其后继续来的正确帧虽然不能立马传到高层,但是可以存在一个缓冲区里,同时要求只重发出错帧。 -
面向比特的数据链路层控制规程
高级数据链路控制(HDLC)定义三种类型的站,两种链路配置和三种数据传输方式。
(1)三种站:主站、从站、复合站
(2)两种链路配置:非平衡配置、平衡配置
(3)三种数据传输方式:非平衡正常响应(NRM)、非平衡异步响应(ARM)、平衡配置异步平衡方式(ABM) -
Internet数据链路层协议
点对点协议PPP三部分:将IP数据报封装到串行链路的方法、链路控制协议(LCP)、网络控制协议(NCP)。
2.3 网络层
一、局域网LAN
<1> 关键技术
(1)网络拓扑结构
总线型拓扑结构:结构简单、实现容易、易于扩展、可靠性好。
环形拓扑结构:节点通过转发器使用点对点连接链路,构成闭合环形。
星形拓扑结构:存在一个中心节点,每个节点通过点对点与中心节点连接,任何两个节点通信都要通过中心节点转发。
(2)传输介质
(3)介质访问控制
数据传输的基本特点是共享广播信道,多个站点共享同一个信道,以广播的形式进行数据传输。常用访问控制方法有:
带有冲突检测的载波侦听多路访问(CSMA/CD),适用于总线型局域网。
令牌总线(token bus),适用于令牌总线局域网。
令牌环(token ring),适用于令牌环局域网。
<2> 局域网模型
局域网参考模型只针对OSI参考模型的数据链路层和物理层。它将数据链路层划分成两个子层:逻辑链路控制子层(Logical Link Control,LLC)、介质访问控制(Medium Access Control,MAC)。
LLC主要功能:提供一个或多个服务访问点(SAP)、发送数据时将数据组装成带有地址和差错检测的帧、接收数据时拆帧,执行地址识别和差错检测、管理链路通信。不同:必须支持两路层多路访问、介质共享的特性;从MAC层中接管一些链路访问的具体功能。
LLC服务:无确认无连接服务、有连接服务、有确认无连接服务。
MAC技术考虑两个问题:对共享介质的访问控制采用集中式还是分布式;怎样控制对共享介质的访问。
MAC介质访问方式:时间片轮转、预留、争用。
<3> CSMA/CD 带冲突检测的载波侦听多路访问(总线型局域网介质访问控制方法)
CSMA协议:先听后说,如果信道忙,暂不发送,退避一段时间后再尝试。
CSMA/CD协议:边说边听,为了能及时发现出冲突。工作原理是每站点发送数据前先侦听信道,不忙就发送并继续监听,一旦有冲突就停止,并向总线发送jam信号以强化冲突,通知总线各站有冲突,以便及时空出信道。如果信道忙就暂不发送,过一段时间后尝试。
<4> MAC地址(48位)
不是节点具有LAN地址,而是节点的适配器具有LAN地址。LAN地址又称为物理地址、以太网地址或介质访问控制地址(MAC地址)。长度6字节。
<5> 令牌环网
令牌就是一个具有特殊格式的帧。它平时在环上流动,如果没有数据发送,此时为空闲令牌。
主要操作是:截获令牌发送帧、接受帧与转发帧、撤销帧与重发令牌。
<6> 无线局域网WLAN
应用:作为传统局域网的补充、建筑物之间互联、漫游访问、特殊网络。
介质访问控制:CSMA/CA冲突避免的载波侦听多路访问协议。退避算法是:二进制指数退避。
介质访问问题:隐藏站问题、衰减问题。采用信道预留机制避免问题,发送方发送帧之前给接收方发一个RTS(Request to Send)帧,指出数据分组和ACK分组持续时间。收到RTS后回应CTS(Clear to Send)帧,指出允许发送。所有听到RTS、CTS帧的站点就知道即将发生数据传输,并避免冲突。
<7> 局域网互联
中继器:负责两个节点物理层按位传递信息,完成信号的复制、调整、放大,以此延长网络长度。
集线器:特殊的中继器,多端口中继器。当网络系统中某条线路或者某个节点故障,不会影响网上其他节点正常工作。
<8> 网桥
网桥负责相同或相似网络之间存储和转发帧,是数据链路层设备。网桥是一个局域网和另一个局域网连接建立的桥梁。作用是扩展网络、通信手段。网桥有一定的缓冲空间,并能够进行寻址和路由选择。网桥不阻挡广播。
<9> 交换机
与网桥属于同一类设备,工作在数据链路层,又称多端口高速网桥。
交换机对数据帧转发的方式:存储转发、穿通转发、无碎片穿通。
二、广域网WAN
<1> 基本概念
覆盖地理位置相对较广的数据通信网络。利用公共网络系统作为信息传输平台。
<2> X.25分组交换网
<3> 帧中继FR
从X.25演变而来,将分组通信三层协议简化为两层,并以帧为基础实现多条逻辑链路统计复用和转换。
三、网络互连
<1> 概念
指采用各种网络设备将同一类型网络或不同类型网络相互连接,形成更大的网络。
<2> 网络互连基本管理
|------------------------------------------网关(高层)------------------------------------|
| |-------------------------路由器(网络层)---------------------| |
| | |----------------网桥----------------| | |
| | | |–中继器–| | | |
| | | | | | | |
网络1 子网1 LAN1 网段1 网段2 LAN2 子网2 网络2
<3> 网络互连设备
路由器:连接多个分开的网络。
路由器功能:互联不同类型网络、隔离广播风波、建立维护路由表、自网间分组传输、安全访问机制、提供第三层网络服务。
<4>IP协议
基本功能:提供一个不可靠的、尽最大努力去完成的、无连接的分组传递服务。
IP地址:32位,包含网络号和主机号。
<5> ARP/RARP协议
由于IP协议使用下一层协议进行实际数据传输,所以IP协议中,当实际发送数据时,发送方需要知道数据链路层的物理硬件地址。
ARP:IP地址与MAC地址之间的转换。
ARP工作原理:例如主机A获取主机B的物理地址:主机A查看路由表,得到主机B的IP,根据B的IP查看自己的ARP缓存,如果有找到B的mac地址;如果没有则广播到网络上所有主机。各个主机收到ARP请求后,查看请求中的IP地址和自己是否一致,不一致则丢弃。主机B收到后查看IP发现一致,则将A的IP和mac地址保存至自己的ARP缓存,然后向A发送自己的mac地址。A接受回复后得到B的mac地址,二者可以发送IP通信。
RARP:反向地址解析协议,用于物理地址到IP地址的映射。
<6> ICMP协议
差错和控制报文协议。针对网络层错误诊断、拥塞控制、路径控制、查询服务。
<7> 路由原理
路由选择策略:
静态路由选择策略(洪范路由选择、固定路由选择、随机路由选择)
动态路由选择策略(孤立路由选择、集中路由选择、分布路由选择)
路由算法:
最短路径算法 (开放最短路径优先OSPF,度量是带宽)
距离向量算法 (路由信息协议RIP,度量是跳数)
<8> IPv6
相比与IPv4的变化:IP地址长度扩大(32->128)、高速化、任意通信、安全性功能、流标记。
IPv4转IPv6:双栈协议、隧道技术、网络地址转换NAT。
2.4 运输层
- 基本概念
主要任务是完成从源主机应用进程到目的主机应用进程之间的数据传输。 - TCP/IP模型中的运输层
设计了两个协议:用户数据报协议(User Datagram Protocol,UDP)、传输控制协议(Transmission Control Protocol,TCP)。 - 运输层端口号
UDP与TCP都使用与应用层接口处的端口(port)来与上层应用进程进行通信。应用层各种进程是通过相应的端口与传输实体进行交互的。
端口号的分配:去哪聚分配、本地分配
熟知端口号:0~1023,通常这些端口通信明确表明了某种服务的协议,eg. 80端口用于HTTP通信。
注册端口号:1024~49151,松散绑定于一些服务。
动态或私有端口号:49152~65535. - UDP
只在IP协议服务之上添加端口功能。无需连接、无连接状态管理、报文头开销小(8字节)。 - TCP
提供可靠全双工、面向连接的数据传输服务,通过双方三次握手、收方肯定确认、重传和流量控制等机制保证数据在应用进程之间传递的可靠性。头部最小20个字节。
流量控制:大小可变的滑动窗口给应用进程提供流量控制服务,用以消除接受缓存溢出的可能性。
拥塞控制:慢启动、拥塞避免、快重传、快恢复。
2.5 会话层
2.6 表示层
2.7 应用层
3. IP地址划分
(1)网络地址
IP地址=网络号+主机号
网络地址是主机号全为0,它代表整个网络
(2)广播地址
网络地址是主机号全为1,该网络内所有主机都能收到
(3)组播地址
D类为组播地址
地址类别 | 说明 | 范围 |
A类 | 0开头,第一字节为网络号 | 0.0.0.0 ~ 127.255.255.255 |
B类 | 10开头,前两个字节为网络号 | 128.0.0.0 ~ 191.255.255.255 |
C类 | 110开头,前三个字节为网络号 | 192.0.0.0 ~ 223.255.255.255 |
D类 | 1110开头 | 224.0.0.0 ~ 239.255.255.255 |
E类 | 11110开头 | 240.0.0.0 ~ 255.255.255.255 |
(4)特殊地址
IP地址 | 用途 |
255.255.255.255 | 受限广播地址,只用于本地网络,路由器不转发 |
0.0.0.0 | 常用于寻找自己的IP地址 |
127.0.0.0/8 | 回环地址,对本机测试,常用127.0.0.1 |
4. 子网掩码以及网络划分
(1)子网掩码
用于标志两个IP是否属于一个子网,32位,为1表示网络位,为0表示主机位。
若两个IP与子网掩码按位与操作后的结果相同,表示在同一网段。
例如C类地址IP:192.168.0.25 掩码:255.255.255.0
例如B类地址IP:128.168.0.25 掩码:255.255.0.0
(2)网络划分
- 方法一、利用子网数来计算
例如:将IP:168.195.0.0 划分为27个子网
step1. 将子网数转位二进制 27=11011;
step2. 取得改数二进制的位数 N=5
step3. 取得该IP的类子网掩码,将其主机地址前N位置1.
B类子网掩码为:255.255.0.0 将主机号前5位置1后为 255.255.11111000.0,即255.255.248.0
- 方法二、利用主机数来计算
例如:B类IP:168.195.0.0对其进行网络划分,使得子网主机700台
step1. 将主机数转化为2进制,700=1010111100
step2. 获得主机数二进制位数 N=10
step3. 使用子网掩码255.255.255.255向右移动N位,补0
255.255.11111100.00000000 即 255.255.252.0
- 方法三、根据每一个子网的主机数量来计算
例如:一个子网有10台主机
step1. 10 + 1+ 1 + 1 = 13 (其中三个1分别代表网关地址、网络地址、广播地址)
step2. 13 < 2^4 = 16 使用4位
step3. 255.255.255.240 (256 - 16 = 240)
5. 协议
协议 | 名称 | 所属网络层次 | 说明 | 工作流程 |
ARP/RARP协议 | Address Resolution Protocol(地址解析协议) Reverse Address Resolution Protocol(逆地址解析协议) | 网络层 | 根据IP地址获取物理地址的一个TCP/IP协议 / 而RARP是根据mac地址获取自己的IP,这个IP是由RARP服务器发送的 | 例如主机A获取主机B的物理地址:主机A查看路由表,得到主机B的IP,根据B的IP查看自己的ARP缓存,如果有找到B的mac地址;如果没有则广播到网络上所有主机。各个主机收到ARP请求后,查看请求中的IP地址和自己是否一致,不一致则丢弃。主机B收到后查看IP发现一致,则将A的IP和mac地址保存至自己的ARP缓存,然后向A发送自己的mac地址。A接受回复后得到B的mac地址,二者可以发送IP通信。 |
NAT协议 | Network Address Translation(网络地址转换协议) | 网络层 | 接入广域网技术,将私有IP转化为合法IP的技术。解决IP地址不足,有效避免网络外部攻击 | IPv4转换成IPv6 |
TCP/IP协议 | Transmission Control Protocol(传输控制协议) ------------------ Internet Protocol(网络协议) | 传输层 --- 网络层 | 文件头:[20个字节] 面向连接的通讯协议,只能用于端到端通讯,完成三次握手、四次挥手。采用“带重传的肯定确定”技术实现传输可靠性,使用“滑动窗口”进行流量控制 --------------------- 接收低层数据,并将其发送至高层;接收高层数据,发送至低层 [不可靠传输] | 消息说明: ACK(Acknowledge,确定) SYN(Synchronize,请求同步) FIN(Finally,结束) 三次握手: (客户端)向(服务器)发送[SYN]请求连接,(服务器)回复(客户端)一个[SYN+ACK]表示自己准备好了,(客户端)再向(服务器)发送[ACK]表示我知道你准备好了 四次挥手: (客户端)向(服务器)发送[FIN]表示我没有数据了,但是不着急断了这个socket,如果你还有数据,你可以继续发。(服务器)向(客户端)发送[ACK]表示你的请求我看到了,但是我还没准备好,你等之后的消息吧。(服务器)发送完所有数据后,向(客户端)发送[FIN]表示我这边准备完了,可以断开连接了,(客户端)向(服务器)发送[ACK]表示那就断开吧。 |
UDP协议 | User Datagram Protocol(用户数据报协议) | 传输层 | 文件头:[2字节] 面向无连接,可实现广播发送,它与TCP的区别就在于TCP是面向连接,提供可靠的字节流服务,而UDP面向无连接,提供不可靠的数据报服务 | - |
路由选择协议 | RIP(Routing Information Protocol,路由信息协议) ------------------ OSPF(Open Shortest Path First,开放式最短路径优先协议) | 应用层 | RIP底层是贝尔曼福特算法,度量标准(Metric)是跳数,一般<=15跳,若》15跳会丢包 --------------------- OSPF底层是迪杰斯特拉算法,Metric是带宽、延迟 | - |
DNS协议 | Domain Name System(域名解析协议) | 应用层 | 将URL转化为IP地址 | - |
DHCP协议 | Dynamic Host Configuration(动态主机设置协议) | 应用层 | 局域网网络协议,使用了UDP协议,用途是给内部网络自动分配IP,给用户作为对所有计算机中央管理的手段 | - |
HTTP协议 | Hyper Text Transfer(超文本传输协议) | 应用层 | 所有WWW文件都必须遵守 请求: 1.GET:请求读取由URL标志的信息 2.POST:给服务器添加信息 3.PUT:在给定URL下存储文档 4.DELETE:删除指定URL标志资源 | - |
5.例子
浏览器输入“www.baidu.com”之后执行:
- 应用层:查询DNS,获取域名对应的IP,获取IP后,浏览器向目标IP发送HTTP请求。
- 传输层:建立连接,进行三次握手,并把HTTP会话分成报文段,分别添加源和目的端口,确保可靠性。
- 网络层:路由寻址,查找路由表确定如何到达服务器,通过ARP获取目标网关的MAC地址。
- 数据链路层:传输数据
- 物理层:输出bit
- 服务器端经过物理层→数据链路层→网络层→传输层→应用层,解析请求报文,发送HTTP响应报文。
- 客户端解析HTTP响应报文
- 浏览器开始显示HTML
其中,第一步在应用层中DNS查询如下:
(1)检查本地hosts文件是否有这个网址的映射,如果有,就调用这个IP地址映射,解析完成。
(2)如果没有,则查找本地DNS解析器缓存是否有这个网址的映射,如果有,返回映射,解析完成。
(3)如果没有,则查找填写或分配的首选DNS服务器,称为本地DNS服务器。服务器接收到查询时:如果要查询的域名包含在本地配置区域资源中,返回解析结果,查询结束,此解析具有权威性。
如果要查询的域名不由本地DNS服务器区域解析,但服务器缓存了此网址的映射关系,返回解析结果,查询结束,此解析不具有权威性。
(4)如果本地DNS服务器也失效:如果未采用转发模式(迭代),本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后,会判断这个域名(如.com)是谁来授权管理,并返回一个负责该顶级域名服务器的IP,本地DNS服务器收到顶级域名服务器IP信息后,继续向该顶级域名服务器IP发送请求,该服务器如果无法解析,则会找到负责这个域名的下一级DNS服务器的IP给本地DNS服务器,循环往复直至查询到映射,将解析结果返回本地DNS服务器,再由本地DNS服务器返回解析结果,查询完成。如果采用转发模式(递归),则此DNS服务器就会把请求转发至上一级DNS服务器,如果上一级DNS服务器不能解析,则继续向上请求。最终将解析结果依次返回本地DNS服务器,本地DNS服务器再返回给客户机,查询完成。