计算机网络和因特网
什么是因特网
有两种方式来描述
-
构成因特网的基本软件和硬件组件
-
根据为分布式应用提供服务的联网基础设施
具体构成描述
将联入设备的网络都称为主机或者是端系统,端系统通过通信链路和分组交换机连在一起。
分组交换机最著名的两种
-
路由器
-
链路层交换机
端系统通过ISP(英特网服务提供商 移动联通。)接入因特网
这些网络相互连通时使用的规则,则称为协议
服务描述
当多个应用程序需要互相连通发送数据时,这些应用程序称为分布式应用程序
协议
协议定义了两个或多个通信实体之间交换报文的格式和顺序,以及报文发送接收和其他事件所采取的动作。
互联网组成
互联网从工作方式上来看,分为两个部分
-
边缘部分:由连接到互联网上的主机构成,称为资源子网
-
核心部分:由大量网络和链接网络的路由器构成,称为通信子网
链路层
数据链路层的三基本功能
-
封装成帧
在一段数据的前后加上首部和尾部,接收端收到数据的时候根据首部和尾部的表示来识别。
首部和尾部还包括了必要的控制信息,各种数据链路层的协议都对首尾部有明确的规定,并且也规定了帧的数据部分长度上限MTU
最大传输单元 MTU
-
透明传输
透明传输就是指当数据中也出现和首部尾部一样的编码时无法判定的情况,
-
差错检验
循环冗余校验
CSMA/CD
争用期:最先发送数据帧的站,最多在经过2τ(两倍的端到端的时间)后就可以知道是否发生了碰撞
如果2τ时间内没有发生碰撞,则一定不会在发生碰撞了
如果发生碰撞,则会有一个随机的推迟时间,重新发送
退避算法: 基本退避时间为2τ,会从一个和冲突次数正相关大小的集合中随机取出一个系数,默认集合最小为冲突10次,最多冲突16次之后会丢弃该针,并向高层报告
10Mbit/s的以太网取51.2微秒为争用期的长度,则在争用期内可以发送512bit,即64字节
这意味着,若前64字节没有发生碰撞,就不会再发生碰撞。
当发生碰撞时还会继续发送若干比特的认为干扰信号
先听后发,边听边发,碰撞停止,延迟重发
10BASE-T 双绞线以太网是局域网发展史上的重要里程碑
使用集线器来模拟总线,使得集线器的以太网在逻辑上任然是一个总线网。
CSMA/CD的效率
发送一个T0市场的帧需要占用若干个2τ和最后一位数据路途时间τ
MAC层的硬件地址
在局域网中,硬件地址又称为物理地址,或MAC地址
若MAC检查出问题则丢弃太MAC帧
在数据链路层中,mac地址就是唯一标识,两个用户通信时也是使用mac地址来通信。
在物理层扩展以太网
-
使用更长的传输介质,比如光纤
-
使用集线器
但是集线器不能避免冲突问题,多个集线器相连,任然认为是在一条总线上。
在数据链路层拓展以太网
使用交换器,网桥的方式
交换机只会把对应的数据根据接收地址发送给对应的设备,多个传输之间不会冲突,实现了全双工。
以太网交换机有自学习功能,可以根据需要转发的数据的源地址来维护交换表
如果交换表中没有目的MAC对应,就会使用广播的方式
但这样可能会出现一个问题,出现环状,循环广播的问题
为了解决这个问题,使用了一个生成树STP协议,
其要点是不改变网络的实际拓扑,但是在逻辑上切断某些链路,使得一台主机到其他主机是无环路的树状结构,从而消除了兜圈子的现象
虚拟局域网
利用以太网交换机可以很方便的实现虚拟局域网VLAN
通过给不同的VLAN帧一个标识符,当需要发数据时先检测VLAN标识符,再检测MAC
这样可能出现明明连在同一台交换机下,在不同的VLAN的主机无法通行。
这个问题在链路层无法解决,要留到网络层。
网络层
从数据链路层遗留下来了两个问题
-
可靠传输问题,不重复,不丢失,不失序
-
不同VLAN之间通信问题
网络层应向运输层提供怎样的服务,是面向链接还是无连接的
其中关键点在于,可靠交付应该由谁来负责,是网络还是端系统。
网络成使用的是无连接的,将可靠性交给上一层,而网络成要对数据尽最大努力的交付
IP协议
分为IPV4和IPV6,这两个协议是网络成最重要的协议
IP协议使用32位地址作为网络地址,给每一个网络端口一个唯一的IP地址
与IP配套使用的还有三个协议 ARP地址解析协议,ICMP国际我控制报文协议,IGPM国际组管理协议
虚拟互联网络
虚拟互联网络也就是逻辑互联网络,我们使用IP协议使性能各异的网络看起来像是一个统一的网络
分类的IP地址
IP分为若干个固定类,每一段地址由两个固定长度的字段组成
网络号+主机号
IP地址和硬件地址
发送数据时,Ip头中只有发送方ip和接收方ip,通过ARP协议解析出mac地址,使用mac地址来发送数据
ip地址时虚拟的,逻辑上的,mac地址才是实际地址,发送数据时必须要用实际地址
地址解析协议ARP
网络层通过ip地址找人,数据链路层通过mac地址找人,所以当IP层次找到之后还需用通过arp协议解析出MAC地址。
具体当时是通过缓存表,如果没有就需要广播,在本地一个局域网询问
IP数据报的格式
由首部和数据组成,首部20个字节是固定必须有的,后面还有一部分可变的,可变的用的很少
当数据过大,超过1420左右,需要分片,分片之后通过片偏移来确定位置
IP层转发分组的流程
划分子网和构造超网
很多时候为了更方便管理和寻找,需要把要更细的划分,分成网络号,子网号,主机号
子网号占用主机号的位置
子网掩码就是要区分网络号和子网号所站位置的
ip地址&子网掩码,得出来子网号和网络号
子网掩码存储在路由器的路由表之中,通过比对得出是否是一个网络
超网
超网是无分类得编码方式, 分成网络前缀加主机号
CIDR 斜线记法 220.78.168.0/24
ICMP网际控制报文协议
为了提高转发报文得效率,当发送报文出问题时,可以发送回复报文
ping命令也是一种ICMP报文
内部网关协议RIP,ISPF
外部网关协议 BGP
IPV6
IPV6从32位扩大到128位
VPN
两个网络想要安全的通信,可以使用隧道技术,
或者在学校访问内网,当不在学校时还想访问,就要使用VPN使用隧道技术
传输层
UDP时一种端到端得通信,是一种不可靠的协议
TCP是一种全双工的可靠通信
通过端口号来区分不同的应用进程的数据
UDP
-
一种无连接的协议
-
不需要先建立连接
-
传输的时UDP报文,或用户数据包,不合并不拆分直接发送
-
对方传输层收到报文之后不需要做出回复
-
UDP虽然不可靠,但是效率高,没有拥塞控制,不会应为拥塞速率降低
TCP
-
面向连接
-
传输单位时TCP报文段
-
TCP不支持广播或者多播
-
可靠
TCP面向流传输数据
不分快,以字节流的方式放松,有编号,每次发的字节数量不固定