计算机网络基础

一、概述

1.1 因特网概述

网络:若干结点和连接这些结点的链路组成。

因特网发展的三个阶段:单个网络ARPANET向互联网发展;三级结构的因特网;多层次因特网服务提供商ISP结构的因特网。

1.2 因特网的组成

边缘部分:所有连接在因特网的主机组成,用户直接使用的。

核心部分:大量网络和连接这些网络的路由器组成。

1.3 主机间的通信方式

客户服务器(C/S):客户是服务的请求方,服务器是服务的提供方。描述的是进程之间服务与被服务的关系。

对等连接(P2P):不区分客户与服务器。

1.4 电路交换与分组交换

电路交换:用于电话通信系统,两个用户通信之前需要建立一条专用的物理链路,并且在通信过程中始终占用该链路。

报文交换:邮局通信系统,邮局接受到一份报文之后,先存储下来,然后把相同目的地的报文发送到下一个目的地,这个过程就                 是存储转发的过程。

分组交换:也使用了存储转发,但是转发的是分组不是报文。把整块数据称为一个报文,由于一个报文可能很长,需要先进行切                 分,来满足分组处理的大小。在每个切分的数据前面加上首部之后就成为了分组,首部包含了目的地址和源地址等控                 制信息。

1.5 时延

总时延=发送时延+传播时延+处理时延+排队时延


发送时延:主机或路由器发送数据帧所需要的时间。

传播时延:电磁波在信道中传播一定的距离需要花费的时间。电磁波的速度接近光源。

处理时延:主机或路由器收到分组时进行处理所花费的时间。

排队时延:分组在路由器的输入队列和输出队列中排队等待的时间,取决网络当前的通信量。

二、计算机网络体系结构


自上而下地

应用层:直接为用户的应用进程提供服务,如HTTP、DNS等。数据单位是报文。

运输层:两个主机中进程之间的通信提供服务

             传输控制协议(TCP):面向连接的,数据传输的单位是报文段(segment),能够提供可靠的交付。

             用户数据报协议(UDP):无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付。

复用:多个应用层进程可同时使用下面运输层的服务。

分用:运输层把收到的信息分别交付给上面应用层中的相应的进程。

网络层:负责为分组交换网上的不同主机提供通信服务。IP数据报。

数据链路层:网络层针对的是主机之间的数据传输服务,链路层是为同一链路的节点提供服务。网络层传下来的分组(IP数据                        报)组装成帧。

物理层:怎样在传输媒体上传送数据比特流而不是具体的媒体。

其中表示层和会话层用途如下:

表示层:数据压缩、加密以及数据描述。

会话层:建立及管理会话。

协议是”水平的“,即协议是控制对等实体之间的通信。服务是”垂直的“,即服务是由下层向上层通过层间接口提供的。

TCP/IP体系结构

它只有四层,相当与五层协议中数据链路层和物理层合并为网络接口层。

现在的TCP/IP体系结构不严格遵循OSI分层概念,应用层可能会直接使用IP层或者网络接口层。

                                                     

TCP/IP协议是一种沙漏形状,中间小两边大,IP协议在其中占用举足轻重的地位。

     


三、物理层

3.1 通信方式

单向通信:又称单工通信,只有能一个方向的通信而没有反方向的交互,如无线电广播或有线电广播或电视广播。

双向交替通信:又称半双工通信,通信的双方都可以发送信息,但不能双方同时发送。

双向同时通信:又称全双工通信,通信的双方可以同时发送和接受信息。

香农公式:信道的极限信息传输速率C为:

 C=B log2(1+S/N)

式中:B是信道带宽(赫兹),S是信号功率(瓦),N是噪声功率(瓦)。

香农定理指出,如果信息源的信息速率R小于或者等于信道容量C,那么,在理论上存在一种方法可使信息源的输出能够以任意小的差错概率通过信道传输。

3.2 带通调制

模拟信号是连续的信号,数字信号是离散的信号。带通调制把数字信号转换为模拟信号。 


3.3 传输媒体

导向传输媒体

双绞线:其通信距离一般为几到几十公里,如电话系统。

同轴电缆:有线电视网

光缆:光纤通信

3.4 信道复用技术

频分复用(FDM):所有用户在相同的时间占用不同的频率带宽资源。

时分复用(TDM):所有用户在不同的时间占用相同的频率带宽资源。

使用这两种方式进行通信,在通信的过程中会一直占用一部分信道资源。

波分复用(WDM):光的频分复用

码分复用(CDM)

为每个用户分配 m bit 的码片,并且所有的码片正交,对于任意两个码片  和  有


为了讨论方便,取 m=8,设码片  为 00011011。在拥有该码片的用户发送比特 1 时就发送该码片,发送比特 0 时就发送该码片的反码 11100100。

在计算时将 00011011 记作 (-1 -1 -1 +1 +1 -1 +1 +1),可以得到



其中  为  的反码。

四、数据链路层

信道分类

点对点信道:一对一通信方式。

广播信道:一对多通信方式。

3.1 三个基本问题

1. 封装成帧

将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。


为了提高帧的传输速率,应当使帧的数据部分长度尽可能地大于首部和尾部的长度。

2. 透明传输

透明表示一个实际存在的事物看起来好像不存在一样。

帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符,如果出现转义字符,那么就在转义字符前面再加个转义字符,在接受端进行处理之后还可以还原原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。


3. 差错检测

循环冗余检验(CRC)来检查比特差错。

局域网LAN

典型的广播信道,主要特点是网络为一个单位所拥有,且地理范围和站点数目均有限。

3.2 点对点协议PPP

用于点对点信道中。互联网用户通常需要连接到某个ISP之后才能连接到互联网,PPP协议是用户计算机和ISP进行通信时所使用的数据链路协议。


PPP协议的组成

将IP数据报封装到串行链路的方法

用来建立、配置和测试数据链路连接的链路控制协议LCP

一套网络控制协议NCP

在PPP的帧中:

F字段为帧的定界符

A和C字段暂时没有意义

FCS字段是使用CRC的检验序列

信息部分的长度不超过1500字节


3.3 使用广播信道的数据链路层

CSMA/CD协议(星形网)

用于广播信道中,在广播信道上,同一时间只能允许一台计算机发送数据

多点接入:说明这是总线型网络,许多计算机以多点的方式连接到总线上。

载波监听:每个端必须不停地监听信道,在发送前,如果监听到信道正在使用,就必须等待(发送前先监听)。

碰撞检测:在发送中,如果监听到信道已有其它站正在发送数据,就表示发生了碰撞。

3.4 使用广播信道的以太网

集线器星型拓扑

使用集线器(hub)的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用是CSMA/CD协议。

一个集线器有多个拓扑结构。

集线器工作在物理层

采用了专门的芯片。

MAC层

MAC地址是6字节(48位)的地址,用于唯一标识网络适配器(网卡),一台主机拥有多少个适配器就有多少个MAC地址。

3.5 扩展的以太网

1 .在物理层进行扩展

使用集线器进行扩展

对接收到的信号进行放大,扩展以太网的传播距离。

不能根据MAC地址进行转发,而是以传播的方式发送数据帧。

共享式的传输设备,同一时刻只能传输一组数据。

2. 在数据链路层进行扩展

使用网桥进行扩展。网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发和过滤。网桥依靠转发表来转发帧。

交换机的问世很快就淘汰了网桥,它实质是一个多接口网桥,而网桥是两接口。交换机具有自学习能力,学习的是交换表的内容,交换表中存储着MAC地址到接口的映射。

五、网络层

4.1 网际协议IP

网络层是整个互联网的核心,因此应当让网络层尽可能简单。网络层向上只提供简单灵活的、无连接的、尽可能努力交互的数据报服务。

使用IP协议,可以把异构的物理网络连接起来,使得网路层看起来好像是一个统一的网络。

与IP协议配套使用的四个协议:

地址解析协议ARP

逆地址解析协议RARP

国际控制报文协议ICMP

网际组管理协议IGMP


将网络互相连接起来要使用一些中间设备

物理层使用的中间设备叫集线器或转发器

数据链路层使用的中间设备叫网桥

网络层使用的中间设备叫路由器

网络层以上使用的中间设备叫网关

IP数据报格式


版本:有4(IPv4)和6(IPv6)两个值。

首部长度:占4位,因此最大值为15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因此,当IP的首部长度为1111时,                       首部长度就达到最大值60字节。

区分服务:用来获得更好的服务,一般情况下不适用。

总长度:首部和数据之和的长度,单位为字节。

标识 在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。

片偏移 : 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节。

生存时间 :TTL,它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报。

协议 :指出携带的数据应该上交给哪个协议进行处理,例如 ICMP、TCP、UDP 等。

首部检验和 :占16位,只检验数据报的首部,但不包括数据部分。因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和。不检验数据部分可减少计算的工作量。

4.2 IP地址编址方式

三个阶段:分类的IP地址、子网划分、构造超网(无分类)。

1. 分类的IP地址

将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,其中第一个字段是网络号(net-id),它标志主机(或路由器)所连接到的网络。第二个字段是主机号(host-id),它标志该主机(或路由器)。一个IP地址在整个因特网范围内是唯一的

两级的IP地址可以记为:

IP地址 ::={<网络号>,<主机号>}


(1) A类地址

a. A类地址第一个字节为网络地址,其他三个字节为主机地址。0

b. A类地址范围:1.0.0.1-126.255.255.254。

c. A类地址中的私有地址和保留地址。

(2)B类地址

a. B类地址第1,2字节为网络地址,其他两个字节为主机地址。10

b. B类地址范围:128.0.0.1-191.255.255.254。 

(3)C类地址

a. C类地址第1,2,3字节为网络地址,第4个字节为主机地址。110

b. C类地址范围:192.0.0.1-223.255.255.254。

(4)D类地址

a. D类地址 不划分网络地址和主机地址。1110

b. D类地址范围:224.0.0.1-239.255.255.254。

(5)E类地址

a. E类不划分网络地址和主机地址。1111 0

b. E类地址表示范围:240.0.0.1-255.255.255.254。

2. 子网划分

通过在主机号字段中拿一部分作为子网号,把两级地址划分为三级IP地址。注意:外部网络看不到子网的存在。

IP地址 ::= {<网络号>,<子网号>,<主机号>}

A类地址的默认子网掩码是255.0.0.0。

B类地址的默认子网掩码是255.255.0.0。

C类地址的默认子网掩码是255.255.255.0。

要使用子网,必须配置子网掩码,一个B类地址的默认子网掩码为255.255.0.0,如果B类地址的子网占两个比特,那么子网掩码为11111111 11111111 11000000 00000000,也就是255.255.192.0。

已知IP地址为141.14.72.24,子网掩码为是255.255.192.0。试求网络地址。141.14.64.0

3. 无分类编址(构造超网)

无分类编址CIDR消除了传统A类、B类和C类地址划分子网的概念,使用网络前缀和主机号来对IP地址进行编码,网络前缀的长度可以根据需要变化。

IP地址 ::={<网络前缀号>,<主机号>}

CIDR 的记法上采用在 IP 地址后面加上网络前缀长度的方法,例如 128.14.35.7/20 表示前 20 位为网络前缀。

例如:10.174.20.176/28,前28位不变。

IP地址是32位,每8位为一组的二进制编码

有效ip为:10.174.20.1011 0000-10.174.20.1011 1111,排除全0和全0不能用

则ip地址范围为:10.174.20.176-10.174.20.191。

4.3 IP地址和物理地址(MAC)

物理地址是数据链路层和物理层使用的地址。

IP地址是网络层和以上各层使用的地址,是一种逻辑地址(用软件实现的)。

网络层实现主机之间的通信,数据链路层实现具体每段链路之间的通信。因此,在通信过程中,IP数据报的源地址和目的地址始终不变,而MAC地址随着链路的改变而改变。

IP地址放在IP数据报的首部,硬件地址则放在MAC帧的首部。在数据链路层看不见数据报的IP地址。

地址解析协议ARP和逆地址解析协议RARP


地址解析协议ARP:IP地址得到MAC地址。

逆地址解析协议RARP:MAC地址得到IP地址。

在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,映射表经常动态更新(新增或超时删除)。

4.4 路由器的结构

路由器从功能上可以划分为:路由选择和分组转发。

分组转发结构由三个部分组成:交换结构、一组输入端口和一组输出端口。


路由选择协议

都是自适应的,能随着网络通信量和拓扑结构的变化而自适应地进行调整。

互联网可以划分为许多较小的自治系统AS,一个AS可以使用一种和别的AS不同的路由选择协议。

路由选择协议可以划分为两大类:

内部网关协议IGP:在AS内部使用,如RIP和OSPF。

外部网关协议EGP:在AS之间使用,如BGP。


1. 内部网关协议RIP

RIP是一种分布式的基于距离向量的路由选择协议,距离是指跳数,直接相连的路由跳数为1,跳数最多为15,超过15表示不可达。

2. 内部网关协议OSPF

开放最短路径,不受某一厂商控制,公开发表的。

3. 外部网关协议BGP

AS 之间的路由选择很困难,主要是因为互联网规模很大。并且各个 AS 内部使用不同的路由选择协议,就无法准确定义路径的度量。

BGP只能寻找一跳比较好的路由,而不是最佳路由。它采用路径向量路由选择协议

每个AS都必须配置BGP发言人,通过在两个相邻BGP发言人之间建立TCP连接来交换路由信息。

网际控制报文协议ICMP

ICMP是为了更有效地转发IP数据报和提高交付成功的机会。它封装在IP数据报中,但是不属于高层协议。

ICMP报文分为差错报告报文和询问报文。

几种常用的ICMP报文类型


ICMP报文的前四个字节是统一的格式,共有三个字段:类型、代码和检验和

分组网间探测PING

PING是ICMP的一个重要应用,主要用来测试两台主机之间的连通性,使用了ICMP回送请求或回答。

Ping发送的IP数据报封装的是无法交付的UDP用户数据报

traceroute用来跟踪一个分组从源点到终点的路径。

虚拟专用网VPN

有三个专用地址块:

10.0.0.0-10.255.255.255

172.16.0.0-172.31.255.255

192.168.0.0-192.168.255.255

网络地址转换NAT

专用网内部的主机使用本地 IP 地址又想和互联网上的主机通信时,可以使用 NAT 来将本地 IP 转换为全球 IP。

六、运输层

网络层只把分组发送到目的主机,但是真正通信的并不是主机而是主机中的进程。运输层提供了进程间的逻辑通信。

网络层为主机之间提供逻辑通信,运输层为应用进程之间提供端到端的逻辑通信。

UDP和TCP的特点

用户数据报协议UDP是无连接的,尽最大可能交付,没有拥塞控制,面向报文(只添加UDP首部)。

传输控制协议TCP是面向连接的,提高可靠交付,有流量控制,拥塞控制。提供全双工通信,面向字节流

UDP首部格式


首部字段只有8个字节,源端口、目的端口、长度、检验和。12字节的伪首部是为了计算检验和临时添加的。

TCP首部格式


源端口和目的端口:各占2个字节。

序号:用于对字节流进行编号。

确认号:期望收到的下一个报文段的序号。

数据偏移:数据部分距离报文段起始处的偏移量,实际上指的是首部的长度

确认ACK:当ACK=1时确认号字段有效,否则无效TCP 规定,在连接建立后所有传送的报文段都必须把 ACK 置 1

同步SYN:在连接建立时用来同步序号。当SYN=1,ACK=0时表示这是一个连接请求报文段。若对方同意建立连接,则响应报文中SYN=1,ACK=1。

终止FIN:用来释放一个连接,当FIN=1时,表示此报文段的发送发的数据已发送完毕,并要求释放连接。

窗口:窗口值作为接受方让发送发设置其发送窗口的依据。

TCP的三次握手(连接建立)


假设A为客户端,B为服务端

1. 首先B处于LISTEN(监听)状态,等待客户的连接请求。

2. A向B发送连接请求报文段,SYN=1,ACK=0,选择一个初始的序号seq=x。

3. B收到连接请求报文段,如果同意建立连接,则向A发送连接确认报文段,SYN=1,ACK=1,确认号为ack=x+1,同时也选择一个初始的序号seq=y。

4. A收到B的连接确认报文段后,还要向B发出确认,确认号为ack=y+1,序号为seq=x+1。

5. B收到A的确认后,建立连接。

三次握手的原因

第三次握手是为了防止失效的连接请求到达服务器,让服务器错误打开连接

失效的连接请求是指,客户端发送的连接请求在网络中滞留,客户端因为没及时收到服务器发送的连接确认,因此重新发送了连接请求。滞留的连接请求并不是丢失,之后还是会到达服务器。如果不进行第三次握手,那么服务器会误认为客户端重新请求连接,然后打开了连接。但是并不是客户端真正打开了这个连接,因此客户端不会给服务器发送数据,这个连接就白白浪费了。

TCP的四次握手(连接释放)


1. A发送连接释放报文段,FIN=1。

2. B收到之后发出确认,此时TCP处于半关闭状态B能向A发送数据但是A不能向B发送数据

3. 当B不再需要连接时,发送连接释放请求报文段,FIN=1。

4. A收到后发出确认,进入TIME-WAIT状态,等待2 MSL时间后释放连接。

5. B收到A的确认后释放连接。

四次挥手的原因

客户端发送了FIN连接释放报文之后,服务器收到了这个报文,就进入了CLOSE-WAIT状态。这个状态是为了让服务器端发送还未传送完毕的数据,传送完毕之后,服务器会FIN连接释放报文。

TIME_WAIT

客户端接收到服务器段的FIN报文后进入此状态,此时并不是直接进入CLOSED状态,还需要等待一个时间计时设置器设置的时间2MSL。

常用端口


TCP滑动窗口

窗口是缓存的一部分,用来暂时存放字节流。接收方通过TCP报文段中的窗口字段告诉发送方自己的窗口大小,发送方根据这个值和其他信息设置自己的窗口大小。

TCP可靠传输

TCP使用超时重传来实现可靠传输。如果一个已发送的报文段在超时时间内没有收到确认,那么就重传这个报文。

TCP流量控制

控制发送方发送速率,保证接收方来得及接收。

接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口的字段设置为0,则发送方不能发送数据。

TCP拥塞控制

如果网络出现拥塞,分组将会丢失,此时发送方会继续重传,从而导致网络拥塞程度更高。因此当出现拥塞时,应当控制发送方的速率。目的是降低整个网络的拥塞程度。

TCP主要通过四种 算法来进行拥塞控制:慢开始、拥塞避免、快重传、快恢复。

发送方需要维护一个叫做拥塞窗口(cwnd)的状态变量。


七、应用层

域名系统DNS

主机名解析成IP地址。

被设计成分布式系统。

7.1 层次结构

一个域名由多个层次构成,从上层到下层分别为顶级域名、二级域名、三级域名以及四级域名。所有域名可以画成一颗域名树。



com(公司企业),net(网络服务机构),org(非盈利的组织),edu(教育机构),gov(政府部门),cn(中国),uk(英国)。

域名服务器可以分为以下四类:

1. 根域名服务器:解析顶级域名。

2. 顶级域名服务器:解析二级域名。

3. 权限域名服务器:解析区内的域名。

4. 本地域名服务器:默认域名服务器,可以在其中配置高速缓存。

区和域的概念不同,可以在一个域中划分多个区,在域abc.com中划分了两个区,abc.com和y.abc.com

7.1.1 解析过程

主机向本地域名服务器解析的过程采用递归,本地域名服务器向其它域名服务器解析可以使用递归和迭代两种方式。

迭代的方式下,本地域名服务器向一个域名服务器解析请求解析之后,结果返回到本地域名服务器,然后本地域名服务器继续向其它域名服务器请求解析;而递归的方式下,结果不是直接返回的,而是继续向前请求解析,最后的结果才会返回

DNS在解析的过程使用UDP进行传输,因为UDP最大只支持512字节的数据,如果超过的话就需要使用TCP进行传输。

7.2 文件传输协议FTP

FTP在运输层使用TCP,并且需要建立两个并行的TCP连接,控制连接和数据连接。控制连接在整个会话期间一直保持打开,而数据连接在数据传送完毕之后被关闭。控制连接使用的端口号为21,数据连接使用的端口号为20。


7.3 远程终端协议TELNET

TELNET用于登陆到远程主机上,并且远程主机上的输出也会返回。

7.4 电子邮件协议

一个电子邮件系统由三部分组成:用户代理、邮件服务器和邮件发送协议和读取协议。其中发送协议常用SMTP读取协议常用POP3和IMAP


1. POP3

POP3的特点是只要用户从服务器读取了邮件,就把该邮件删除。

2 IMAP

客户端和服务器上的邮件保持同步,如果不去手动删除邮件,那么服务器上的邮件也不会删除。可以让用户随时随地去访问服务器上的邮件。

3. SMTP

只能发送ASCII码,而互联网邮件扩充MIME可以发送二进制文件,增加了邮件的主体结构。

7.5 动态主机配置协议DHCP

即插即用的连接方式,用户不需要手动去配置IP地址等信息。

7.6 点对点传输P2P

7.7 Web页面请求过程

1. DHCP配置主机信息

假设主机最开始没有IP地址及其它信息,那么就需要先使用DHCP来获取。

主机生成一个DHCP请求报文,并将这个报文放入具有目的端口67和源端口68的UDP报文 段中。

该报文段则被放入在一个具有广播 IP 目的地址(255.255.255.255) 和源 IP 地址(0.0.0.0)的 IP 数据报中。

数据报则被放置在 MAC 帧中,该帧具有目的地址 FF:FF:FF:FF:FF:FF,将广播到与交换机连接的所有设备

2. ARP解析MAC地址

主机通过浏览器生成一个 TCP 套接字,套接字向 HTTP 服务器发送 HTTP 请求。为了生成该套接字,主机需要知道网站的域名对应的 IP 地址。

主机生成一个 DNS 查询报文,该报文具有 53 号端口,因为 DNS 服务器的端口号是 53。

该 DNS 查询报文被放入目的地址为 DNS 服务器 IP 地址的 IP 数据报中。

该 IP 数据报被放入一个以太网帧中,该帧将发送到网关路由器。

3. DNS解析域名

4. HTTP 请求页面

参考资料

计算机网络, 谢希仁

JamesF.Kurose, KeithW.Ross, 库罗斯, 等. 计算机网络: 自顶向下方法 [M]. 机械工业出版社, 2014.


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值