layout: post
title: 计算机网络(一)网络体系结构
description: 计算机网络(一)网络体系结构
tag: 计算机网络
计算机网络中的带宽用来表示从网络某点到另一点所能通过的最高数据率
单位时间能够通过的数据量
发送速率取决于网卡发送速率、信道带宽已经路由接口转交速率,理论的网速是三者中的最低值!!!
所以光买个带宽高的网线,路由器或者网卡网络跟不上是白搭!!!
OSI是法律上的国际标准,但TCP/IP体系占据了市场,是实际上的国际标准,为方便理解又引入了原理体系结构(将TCP/IP协议中的网络接口层又分为了数据链路层和物理层)
在TCP/IP协议中,我们常见的IP协议属于网际层,TCP和UDP协议属于运输层,HTTP、DNS等属于应用层
数据链路层三个重要问题:
数据部分为了避免出现类似帧头和帧尾类似的01111110
,会在每5个连续1后边插入0,确保帧头帧尾的唯一性。接收端解析时,把连续5个1后边的0剔除即可。
IP地址属于网络层。但在数据链路层也经常用到。
网络层封装IP地址,数据链路层封装MAC地址。
数据包转发过程中起始IP地址不变,但起始MAC地址会随着链路改变。
ARP地址解析协议只能在单个数据链路段中使用,用于将IP地址解析为对应的MAC地址。
为了避免产生巨大的广播域造成资源浪费,而使用实际的交换机隔离局域网成本过高,引用虚拟局域网技术,将局域网内的设备划分成与物理位置无关的逻辑分组。。
面向连接的虚电路服务:
无连接的数据报服务:
我们可以从主机号中指定部分位作为子网号,为了确定主机号中哪些位是子网号编码,引入子网掩码。
采用定长子网掩码(FLSM)来划分:
采用变长的子网掩码划分:
1、通过子网掩码与目的IP地址求与运算,得到目的IP地址的网络号,假如网络号自身相同说明是在同一个子网中,直接通过路由器交付;如果不同,则发送给默认网关,默认网关就是路由器接口地址。
2、路由器收到IP数据报后进行转发
为了有效转发IP数据报和提高交付成功的机会,网际层使用了网际控制报文协议ICMP,使得主机和路由器可以使用ICMP来发送差错报告报文
和 询问报文
,ICMP报文被封装在IP数据报
中发送。
ICMP差错报文
分为以下5种:
ICMP询问报文
:
ICMP应用举例:
初始的IP数据报头为私有地址,经过加密后添加上公网的IP地址头,通过因特网传输的目的网关,解密,获取私有地址,传递搞目的主机。
物理层、数据链路层和网络层实现了主机对主机
的通信,但实际上在计算机网络中进行通信的真正实体是位于通信两端主机中的进程,提供端到端
的通信,而运输层即是为了解决这一问题,因此运输层协议
又被称为端到端协议
;
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道。
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向连接的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
。
发送方采用滑动窗口的方式发送TCP报文段,直到接收方确认收到才滑动窗口。
1、假如发送方报文丢失,那么接收方回传的ack会一直不包含丢失字段,则发送方会在重传等待时间结束后对丢失报文段进行重传。接收方利用接受窗口大小这个参考,控制发送方的发送速率。
2、假如接收方有了新的可缓存空间,并将消息发送给发送方的途中,报文丢失,那么发送方一直以为接收方没有空间接收,而接收方也并不知道自己的报文丢失。这样就陷入死锁状态。为了打破死锁,发送方每发送一次报文都会启动一个持续计时器,当持续计时器超时的时候,发送零窗口探测报文。询问是否依旧是没有缓存空间。零窗口探测报文对于接收方没有空间要求,且也有超时重传机制。
TCP运输连接有三个阶段:
采用“三报文握手”而不是“两报文握手”,是为了防止滞留失效的客户端连接请求报文段突然又传递到了TCP服务器,导致TCP服务器处于连接建立状态,一直等待客户端发数据,从而造成资源浪费。
1、客户端发送FIN = 1的结束连接请求,不携带数据,占用1个序号。
2、服务端收到结束连接请求,通知服务端应用进程关闭TCP连接服务(此时只是服务器进程上关闭),并向客户端发送关闭连接的确认报文。
3、服务端等待进程关闭后,向客户端发送FIN = 1的确认关闭报文,不携带数据,占用1个序号,并进入最后确认状态。(注意在等待进程关闭时,任然可以接收客服端发送来的报文)。
4、客户端收到服务端的FIN = 1的报文后,向服务端发送再次确认关闭的报文,并等待2MSL(2倍的最长报文段寿命)后关闭连接,而服务端在收到客户端的再次确认关闭报文后,关闭连接。
等待2MSL时长后再关闭是为了防止客户端的最后确认报文发生丢失,导致服务端一直处于最后确认,无法关闭。
另一方面可以保证此时连接中的报文都消失。
通过DHCP协议使得主机自动获取自己分配到的IP地址、子网掩码、默认网关、DNS服务器等。
HTTP/1.0任然是目前最主流的HTTP协议版本