layout: post title: 计算机网络(一)网络体系结构 description: 计算机网络(一)网络体系结构 tag: 计算机网络

计算机网络

计算机网络体系基本概念网络性能指标数据量与数据速率(比特率)带宽吞吐量时延时延带宽积往返时间利用率丢包率

网络体系结构

数据链路层封装成帧差错检测可靠传输点对点协议PPP(point-to-point protocol)媒体接入控制MAC(medium access control)静态划分信道随机接入

MAC地址IP(Internet Protocol)地址地址解析ARP(address resolution protocol)协议以太网交换机自学习和转发帧的流程以太网交换机的生成树协议(Spanning Tree Protocol,STP)虚拟局域网VLAN

网络层网络层提供的两种服务——虚电路和数据报IPv4地址分类编址划分子网——子网掩码无分类编址CIDR记法IPv4地址应用规划IP数据报的发送和转发过程

路由选择协议路由信息协议RIP(routing information protocol)开发最短路径优先OSPF协议边际网关协议BGP

网际控制报文协议ICMP(internet control message protocol)虚拟专用网VPN(virtual private network)网络地址转换NAT(network address translation)

运输层端口、复用与分用的概念UDP(User Datagram Protocol)与TCP(Transmission Control Protocol)UDP与TCP对比TCP的流量控制TCP的拥塞控制TCP超时重传时间选择TCP可靠传输的实现TCP连接建立与释放三报文握手建立连接四报文挥手释放连接意外故障时的连接关闭

应用层客户/服务器方式(C/S,Client-Serve)对等方式(P2P)动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)域名解析协议(DNS,Domain Name System)文件传送协议(FTP,File Transfer Protocol)电子邮件万维网CookieWeb缓存与代理服务器

计算机网络体系基本概念

网络性能指标

数据量与数据速率(比特率)

带宽

计算机网络中的带宽用来表示从网络某点到另一点所能通过的最高数据率

吞吐量

单位时间能够通过的数据量

时延

发送速率取决于网卡发送速率、信道带宽已经路由接口转交速率,理论的网速是三者中的最低值!!! 所以光买个带宽高的网线,路由器或者网卡网络跟不上是白搭!!!

时延带宽积

往返时间

利用率

丢包率

网络体系结构

OSI是法律上的国际标准,但TCP/IP体系占据了市场,是实际上的国际标准,为方便理解又引入了原理体系结构(将TCP/IP协议中的网络接口层又分为了数据链路层和物理层)

在TCP/IP协议中,我们常见的IP协议属于网际层,TCP和UDP协议属于运输层,HTTP、DNS等属于应用层

数据链路层

数据链路层三个重要问题:

封装成帧差错检测可靠传输

封装成帧

数据部分为了避免出现类似帧头和帧尾类似的01111110,会在每5个连续1后边插入0,确保帧头帧尾的唯一性。接收端解析时,把连续5个1后边的0剔除即可。

差错检测

可靠传输

点对点协议PPP(point-to-point protocol)

媒体接入控制MAC(medium access control)

静态划分信道

随机接入

MAC地址

IP(Internet Protocol)地址

IP地址属于网络层。但在数据链路层也经常用到。 网络层封装IP地址,数据链路层封装MAC地址。 数据包转发过程中起始IP地址不变,但起始MAC地址会随着链路改变。

地址解析ARP(address resolution protocol)协议

ARP地址解析协议只能在单个数据链路段中使用,用于将IP地址解析为对应的MAC地址。

以太网交换机自学习和转发帧的流程

以太网交换机的生成树协议(Spanning Tree Protocol,STP)

虚拟局域网VLAN

为了避免产生巨大的广播域造成资源浪费,而使用实际的交换机隔离局域网成本过高,引用虚拟局域网技术,将局域网内的设备划分成与物理位置无关的逻辑分组。。

网络层

网络层提供的两种服务——虚电路和数据报

面向连接的虚电路服务: 无连接的数据报服务:

IPv4地址

分类编址

划分子网——子网掩码

我们可以从主机号中指定部分位作为子网号,为了确定主机号中哪些位是子网号编码,引入子网掩码。

无分类编址CIDR记法

IPv4地址应用规划

采用定长子网掩码(FLSM)来划分: 采用变长的子网掩码划分:

IP数据报的发送和转发过程

1、通过子网掩码与目的IP地址求与运算,得到目的IP地址的网络号,假如网络号自身相同说明是在同一个子网中,直接通过路由器交付;如果不同,则发送给默认网关,默认网关就是路由器接口地址。

2、路由器收到IP数据报后进行转发

路由选择协议

路由信息协议RIP(routing information protocol)

开发最短路径优先OSPF协议

边际网关协议BGP

网际控制报文协议ICMP(internet control message protocol)

为了有效转发IP数据报和提高交付成功的机会,网际层使用了网际控制报文协议ICMP,使得主机和路由器可以使用ICMP来发送差错报告报文 和 询问报文,ICMP报文被封装在IP数据报中发送。 ICMP差错报文分为以下5种:

终点不可达源点抑制(某个地方堵塞)时间超过参数问题(传输出现误码)

ICMP询问报文: ICMP应用举例:

分组网间探测ping 用来测试主机或路由器间的连通性; 应用层直接使用网际层的ICMP(没有通过传输层的TCP或UDP); 使用ICMP回送请求和回答报文;

跟踪路由,通过ICMP差错报告报文(不停的发送TTL为1,2,3直至到达目的主机,TTL为0会丢弃报文,并返回差错报告报文以获取路由)查看目的主意和源主机间的路由。

虚拟专用网VPN(virtual private network)

初始的IP数据报头为私有地址,经过加密后添加上公网的IP地址头,通过因特网传输的目的网关,解密,获取私有地址,传递搞目的主机。

网络地址转换NAT(network address translation)

运输层

物理层、数据链路层和网络层实现了主机对主机的通信,但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程,提供端到端的通信,而运输层即是为了解决这一问题,因此运输层协议又被称为端到端协议;

运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道。 根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向连接的TCP和无连接的UDP.

端口、复用与分用的概念

常见的TCP/IP体系,应用层协议使用的运输层端口号:注意HTTP 为80, HTTPS为443 运输层端口号举例,以获取某网站信息为例: 1、用户PC发起DNS查询请求,采用一个本机未被占用的空闲端口号,封装UDP报文,DNS协议特定的目的端口号为53。 2、DNS服务器返回给用户PC域名解析的结果,将域名解析为IP。 3、有了web服务器IP后,用户PC就可以向web服务器发送HTTP请求报文,http协议的报文为TCP报文。http协议特定的目的端口号为80。

UDP(User Datagram Protocol)与TCP(Transmission Control Protocol)

UDP与TCP对比

TCP有连接管理控制,需要三次握手建立连接和四次挥手关闭连接,而UDP则没有。TCP仅支持单播,而UDP支持单播、多播和广播。UDP是面向应用报文的,而TCP是面向字节流的。UDP向上层提供无连接的不可靠传输服务(适用于IP电话、视频会议等实时应用),TCP向上层提供面向连接的可靠传输服务(适用于要求可靠传输的应用,例如文件传输)UDP报文头部简单仅8字节,而TCP的报文头部则比较复杂,因为它需要解决流量控制和拥塞控制。

TCP的流量控制

发送方采用滑动窗口的方式发送TCP报文段,直到接收方确认收到才滑动窗口。 1、假如发送方报文丢失,那么接收方回传的ack会一直不包含丢失字段,则发送方会在重传等待时间结束后对丢失报文段进行重传。接收方利用接受窗口大小这个参考,控制发送方的发送速率。 2、假如接收方有了新的可缓存空间,并将消息发送给发送方的途中,报文丢失,那么发送方一直以为接收方没有空间接收,而接收方也并不知道自己的报文丢失。这样就陷入死锁状态。为了打破死锁,发送方每发送一次报文都会启动一个持续计时器,当持续计时器超时的时候,发送零窗口探测报文。询问是否依旧是没有缓存空间。零窗口探测报文对于接收方没有空间要求,且也有超时重传机制。

TCP的拥塞控制

慢开始:从1开始倍数增长。拥塞避免:线性增加1,如果发生拥塞,则将窗口值设置为1,并执行慢开始算法。快重传:发送方一旦收到3个连续的重复确认,立即重传相应报文段。快恢复:发送方一旦收到3个连续的重复确认,就知道是个别报文丢失引起的超时,并不是堵塞导致。因此不是将窗口设置为1,而是将窗口设为原来的一半并执行拥塞避免算法。 快重传:

TCP超时重传时间选择

TCP可靠传输的实现

TCP连接建立与释放

TCP运输连接有三个阶段:

“三次握手”建立连接数据传输“四次挥手”释放连接

三报文握手建立连接

TCP服务器准备好传输控制块,监听TCP连接请求。TCP客户端准备好传输控制块,主动发送TCP连接请求。三次“握手”

客户端设置SYN(同步位)=1,不携带数据,发送连接请求报文。服务端接收到连接请求报文后,回复SYN=1, ACK=1,确认收到连接请求。客户端收到服务器的确认后还要再次发送一个普通报文,再次确认,客户端发送该再次确认报文后进入连接建立状态,服务端收到该报文后,进入连接已建立状态。

采用“三报文握手”而不是“两报文握手”,是为了防止滞留失效的客户端连接请求报文段突然又传递到了TCP服务器,导致TCP服务器处于连接建立状态,一直等待客户端发数据,从而造成资源浪费。

四报文挥手释放连接

1、客户端发送FIN = 1的结束连接请求,不携带数据,占用1个序号。 2、服务端收到结束连接请求,通知服务端应用进程关闭TCP连接服务(此时只是服务器进程上关闭),并向客户端发送关闭连接的确认报文。 3、服务端等待进程关闭后,向客户端发送FIN = 1的确认关闭报文,不携带数据,占用1个序号,并进入最后确认状态。(注意在等待进程关闭时,任然可以接收客服端发送来的报文)。 4、客户端收到服务端的FIN = 1的报文后,向服务端发送再次确认关闭的报文,并等待2MSL(2倍的最长报文段寿命)后关闭连接,而服务端在收到客户端的再次确认关闭报文后,关闭连接。 等待2MSL时长后再关闭是为了防止客户端的最后确认报文发生丢失,导致服务端一直处于最后确认,无法关闭。 另一方面可以保证此时连接中的报文都消失。

意外故障时的连接关闭

应用层

客户/服务器方式(C/S,Client-Serve)

对等方式(P2P)

动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)

通过DHCP协议使得主机自动获取自己分配到的IP地址、子网掩码、默认网关、DNS服务器等。

域名解析协议(DNS,Domain Name System)

文件传送协议(FTP,File Transfer Protocol)

电子邮件

万维网

HTTP/1.0任然是目前最主流的HTTP协议版本

Cookie

Web缓存与代理服务器

查看原文