一、概述网络的网络ISP主机之间的通信方式电路交换与分组交换时延计算机网络体系结构二、物理层通信方式带通调制三、数据链路层基本问题信道分类信道复用技术CSMA/CD协议PPP协议MAC地址局域网以太网交换机虚拟局域网四、网络层概述IP数据报格式IP地址编址方式地址解析协议ARP网际控制报文协议ICMP虚拟专用网VPN网络地址转换NAT路由器的结构路由器分组转发流程路由选择协议五、传输层UDP和TCP的特点UDP首部格式TCP首部格式TCP的三次握手TCP的四次挥手TCP可靠传输TCP滑动窗口TCP流量控制TCP拥塞控制六、应用层域名系统文件传送协议动态主机配置协议远程登录协议电子邮件协议常用端口Web页面请求过程参考资料一、概述
网络的网络
网络把主机连接起来,而互联网是把多种不同的网络连接起来,因此互联网是网络的网络。
ISP
互联网服务提供商ISP可以从互联网管理机构获得许多IP地址,同时拥有通信线路以及路由器等联网设备,个人或机构向ISP缴纳一定的费用就可以接入互联网。
目前的互联网是一种多层次ISP结构,ISP根据覆盖面积的大小分为第一层ISP、区域ISP和接入ISP。互联网交换点IXP允许两个ISP直接相连而不用经过第三个ISP。
主机之间的通信方式
客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。对等(P2P):不区分客户和服务器。
电路交换与分组交换
1.电路交换
电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信的过程中不可能一直在使用传输线路,因此电路交换对线路的利用率很低,往往不到10%。
2.分组交换
每个分组都有首部和尾部,包含了源地址和目的地址等控制信息,在同一个传输线路上同时传输多个分组互相不会影响,因此在同一条传输线路上允许同时传输多个分组,也就是说分组交换不需要占用传输线路。
在一个邮局通信系统中,邮局收到一份邮件之后,先存储下来,然后把相同目的地的邮件一起转发到下一个目的地,这个过程就是存储转发过程,分组交换也使用了存储转发过程。
时延
总时延=传输时延+传播时延+处理时延+排队时延
1.传输时延
主机或路由器传输数据帧所需要的时间。
其中l表示数据帧的长度,v表示传输速率。
2.传播时延
电磁波在信道中传播所需要花费的时间,电磁波传播的速度接近光速。
其中l表示信道长度,v表示电磁波在信道上的传播速度。
3.处理时延
主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等。
4.排队时延
分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。
计算机网络体系结构
1.五层协议
应用层:为特定应用程序提供数据传输服务,例如HTTP、DNS等。数据单位为报文。传输层:为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP主要提供完整性服务,UDP主要提供及时性服务。网络层:为主机提供数据传输服务。而传输层协议是为主机中的进程提供数据传输服务。网络层把传输层传递下来的报文段或者用户数据报封装成分组。数据链路层:网络层针对的还是主机之间的数据传输服务,而主机之间可以有很多链路,链路层协议就是为同一链路的主机提供数据传输服务。数据链路层把网络层传下来的分组封装成帧。物理层:考虑的是怎样在传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使数据链路层感觉不到这些差异。2.OSI
其中表示层和会话层用途如下:
表示层:数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。会话层:建立及管理会话。五层协议没有表示层和会话层,而是将这些功能留给应用程序开发者处理。
3.TCP/IP
它只有四层,相当于五层协议中数据链路层和物理层合并为网络接口层。
TCP/IP体系结构不严格遵循OSI分层概念,应用层可能会直接使用IP层或者网络接口层。
TCP/IP协议族是一种沙漏形状,中间小两边大,IP协议在其中占据举足轻重的地位。
4.数据在各层之间的传递过程
在向下的过程中,需要添加下层协议所需要的首部或者尾部,而在向上的过程中不断拆开首部和尾部。
路由器只有下面三层协议,因为路由器位于网络核心中,不需要为进程或者应用程序提供服务,因此也就不需要传输层和应用层。
二、物理层
通信方式
根据信息在传输线上的传送方向,分为以下三种通信方式:
单工通信:单向传输半双工通信:双向交替传输全双工通信:双向同时传输带通调制
模拟信号是连续的信号,数字信号是离散的信号。带通调制把数字信号转换为模拟信号。
三、数据链路层
基本问题
1.封装成帧
将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
2.透明传输
透明表示一个实际存在的事物看起来好像不存在一样。
帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
3.差错检测
目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。
信道分类
1.广播信道
一对多通信,一个节点发送的数据能够被广播信道上所有的节点接收到。
所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞)。
主要有两种控制方法进行协调,一个是使用信道复用技术,一是使用CSMA/CD协议。
2.点对点信道
一对一通信。
因为不会发生碰撞,因此也比较简单,使用PPP协议进行控制。
信道复用技术
1.频分复用
频分复用的所有主机在相同的时间占用不同的频率带宽资源。
2.时分复用
时分复用的所有主机在不同的时间占用相同的频率带宽资源。
使用频分复用和时分复用进行通信,在通信的过程中主机会一直占用一部分信道资源。但是由于计算机数据的突发性质,通信过程没必要一直占用信道资源而不让出给其它用户使用,因此这两种方式对信道的利用率都不高。
3.统计时分复用
是对时分复用的一种改进,不固定每个用户在时分复用帧中的位置,只要有数据就集中起来组成统计时分复用帧然后发送。
4.波分复用
光的频分复用。由于光的频率很高,因此习惯上用波长而不是频率来表示所使用的光载波。
5.码分复用
为每个用户分配mbit的码片,并且所有的码片正交,对于任意两个码片s和t有
为了讨论方便,取m=8,设码片为。在拥有该码片的用户发送比特1时就发送该码片,发送比特0时就发送该码片的反码。
在计算时将记作(-1-1-1+1+1-1+1+1),可以得到其中s为s的反码。
利用上面的式子我们知道,当接收端使用码片对接收到的数据进行内积运算时,结果为0的是其它用户发送的数据,结果为1的是用户发送的比特1,结果为-1的是用户发送的比特0。
码分复用需要发送的数据量为原先的m倍。
CSMA/CD协议
CSMA/CD表示载波监听多点接入/碰撞检测。
多点接入:说明这是总线型网络,许多主机以多点的方式连接到总线上。载波监听:每个主机都必须不停地监听信道。在发送前,如果监听到信道正在使用,就必须等待。碰撞检测:在发送中,如果监听到信道已有其它主机正在发送数据,就表示发生了碰撞。虽然每个主机在发送数据之前都已经监听到信道为空闲,但是由于电磁波的传播时延的存在,还是有可能会发生碰撞。记端到端的传播时延为τ,最先发送的站点最多经过2τ就可以知道是否发生了碰撞,称2τ为争用期。只有经过争用期之后还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用截断二进制指数退避算法来确定。从离散的整数集合{0,1,..,(2k-1)}中随机取出一个数,记作r,然后取r倍的争用期作为重传等待时间。
PPP协议
互联网用户通常需要连接到某个ISP之后才能接入到互联网,PPP协议是用户计算机和ISP进行通信时所使用的数据链路层协议。
PPP的帧格式:
F字段为帧的定界符A和C字段暂时没有意义FCS字段是使用CRC的检验序列信息部分的长度不超过
MAC地址
MAC地址是链路层地址,长度为6字节(48位),用于唯一标识网络适配器(网卡)。
一台主机拥有多少个网络适配器就有多少个MAC地址。例如笔记本电脑普遍存在无线网络适配器和有线网络适配器,因此就有两个MAC地址。
局域网
局域网是一种典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。
主要有以太网、令牌环网、FDDI和ATM等局域网技术,目前以太网占领着有线局域网市场。
可以按照网络拓扑结构对局域网进行分类:
以太网
以太网是一种星型拓扑结构局域网。
早期使用集线器进行连接,集线器是一种物理层设备,作用于比特而不是帧,当一个比特到达接口时,集线器重新生成这个比特,并将其能量强度放大,从而扩大网络的传输距离,之后再将这个比特发送到其它所有接口。如果集线器同时收到两个不同接口的帧,那么就发生了碰撞。
目前以太网使用交换机替代了集线器,交换机是一种链路层设备,它不会发生碰撞,能根据MAC地址进行存储转发。
以太网帧格式:
类型:标记上层使用的协议;数据:长度在46-之间,如果太小则需要填充;FCS:帧检验序列,使用的是CRC检验方法;前同步码:只是为了计算FCS临时加入的,计算结束之后会丢弃。
交换机
交换机具有自学习能力,学习的是交换表的内容,交换表中存储着MAC地址到接口的映射。
正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。
下图中,交换机有4个接口,主机A向主机B发送数据帧时,交换机把主机A到接口1的映射写入交换表中。为了发送数据帧到B,先查交换表,此时没有主机B的表项,那么主机A就发送广播帧,主机C和主机D会丢弃该帧。主机B收下之后,查找交换表得到主机A映射的接口为1,就发送数据帧到接口1,同时交换机添加主机B到接口3的映射。
虚拟局域网
虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。
例如下图中(A1,A2,A3,A4)属于一个虚拟局域网,A1发送的广播会被A2、A3、A4收到,而其它站点收不到。
使用VLAN干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连VLAN交换机。IEEE定义了一种扩展的以太网帧格式.1Q,它在标准以太网帧上加进了4字节首部VLAN标签,用于表示该帧属于哪一个虚拟局域网。
四、网络层
概述
因为网络层是整个互联网的核心,因此应当让网络层尽可能简单。网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务。
使用IP协议,可以把异构的物理网络连接起来,使得在网络层看起来好像是一个统一的网络。
与IP协议配套使用的还有三个协议:
地址解析协议ARP(AddressResolutionProtocol)网际控制报文协议ICMP(InternetControlMessageProtocol)网际组管理协议IGMP(InternetGroupManagementProtocol)
IP数据报格式
版本:有4(IPv4)和6(IPv6)两个值;首部长度:占4位,因此最大值为15。值为1表示的是1个32位字的长度,也就是4字节。因为首部固定长度为20字节,因此该值最小为5。如果可选字段的长度不是4字节的整数倍,就用尾部的填充部分来填充。区分服务:用来获得更好的服务,一般情况下不使用。总长度:包括首部长度和数据部分长度。生存时间:TTL,它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当TTL为0时就丢弃数据报。协议:指出携带的数据应该上交给哪个协议进行处理,例如ICMP、TCP、UDP等。首部检验和:因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量。标识:在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。片偏移:和标识符一起,用于发生分片的情况。片偏移的单位为8字节。
IP地址编址方式
IP地址的编址方式经历了三个历史阶段:
分类子网划分无分类1.分类
由两部分组成,网络号和主机号,其中不同分类具有不同的网络号长度,并且是固定的。
IP