Skip to content

Latest commit

 

History

History
187 lines (154 loc) · 14.8 KB

计算机网络.md

File metadata and controls

187 lines (154 loc) · 14.8 KB

计算机网络

  1. 交换机,路由器和集线器
  2. IP地址和MAC地址的区别
  3. OSI模型,7层,5层,每层的设备
  4. tcp,udp有什么区别
  5. 内部网关协议
  6. 路由表字段
  7. 路由选择协议Rip和ospf,链路最短和时间最短
  8. 计算机网络里面哪里有流量控制
  9. 子网掩码的作用

一. 分层与层设备

计算机网络体系结构

分层

  • OSI七层:物理层-数据链路层-网络层-运输层-会话层-表示层-应用层
  • TCP/IP四层:网络接口层-网际层IP-运输层TCP/UDP-应用层
  • 五层:物理层-数据链路层-网络层-运输层-应用层

为什么不由传输网络本身实现可靠传输? 网络实现可靠传输的代表是传统电信网,计算机网络和电信网的一个重大区别是终端设备的性能差距很大。计算机是一个智能设备(差错处理能力强),由用户的主机负责数据传输的可靠性(端到端的可靠传输),可以使网络部分价格便宜且灵活可靠

设备

名称 层次 隔离冲突域 隔离广播域 特点
转发器 Repeater 物理层 不能 不能 信号再生,扩大网络传输范围
集线器 Hub 物理层 不能 不能 多端口中继器,多端口同时通信时发生冲突
网桥 Bridge 数据链路层 不能 连接两个以太网,扩大局域网范围
交换机 数据链路层 不能 多端口网桥,可多对计算机同时通信
路由器 Router 网络层 连接不同的网络,分组转发、路由计算
网关 Gateway 网络层以上

一般来说,一个网段就是一个冲突域,一个局域网就是一个广播域。 以互联网的角度看,一个网络是指具有相同网络号 net-id 的主机集合,因此以转发器或网桥连接的多个局域网仍为一个网络,不同网络之间必须使用路由器相连。

二. 数据链路层

基本功能

  • 封装成帧:数据前后增加首尾部
    • 帧定界:从二进制比特流中区分出帧的起始与终止
  • 透明传输:无论数据是哪种比特组合,都能在链路上传输
    • 字符填充:特定字符标志帧的开始与结束,数据中出现于标志字符相同的前插入一个转义字符
    • 比特填充:特殊的比特序列标志帧的开始与结束;发送方遇到连续的5个1就添加一个0
  • 差错控制:循环冗余校验码,检测比特差错

点对点信道

PPP(Point-to-Point Protocol)协议

广播信道-媒体访问控制

媒体访问控制的任务是采取一定的措施,使得两对结点之间的通信不会发生相互干扰的情况。

静态信道划分

频分复用、时分复用、波分复用、码分复用,实际上将广播信道转变为点对点信道。

动态媒体接入控制

CSMA/CD(Carrier Sense Multiple Access with Collision Detection) 载波监听多点接入/碰撞检测:有线局域网,半双工

  • 先听后发:信道空闲即开始传输
  • 边听边发:传输过程中,检测是否发生冲突
  • 冲突停止:检测到冲突立即停止发送
  • 随机重发:截断二进制指数退避算法计算一个随机重发时间

争用期:发送数据后,最长需要两倍的总线端到端传播时延(2t)时间,才能知道自己发送的数据有没有发生碰撞。争用期后,其他节点就会监听到信道忙,而不会发送数据,故不会发生冲突。 最短帧长:一个过短的帧在发送完毕之后也可能发生碰撞,此时发送方并不知道发生了碰撞,故不会重发。

CSMA/CA 载波监听多点接入/碰撞避免:无限局域网

轮询访问介质 令牌传递协议

三. 网络层

IP地址

分类的IP地址 <网络号:主机号>

类别 起始比特 网络号长度
A 0 8
B 10 16
C 110 24
D 1110 多播地址
E 1111 备用地址

子网划分 <网络号:子网号:主机号> 将原二级网络地址的主机号进行划分,产生子网号,由于从IP地址本身或IP数据报首部无法看出是否进行了子网划分,需要添加额外的子网掩码,表示网络号的长度(按位逻辑 AND)

子网掩码:标示了划分子网后网络号的长度。子网掩码是一个网络或一个子网的重要属性。IP数据报是没有子网掩码字段的,在路由器交换路由信息时交换各自所在网络的子网掩码。若一个路由器连接在两个网络上,就拥有两个子网掩码 和网络地址。

超网,无分类编址 <网络前缀:主机号>

路由表的表项

(目的网络地址,子网掩码,下一跳IP地址,接口) 实际路由表中还有标志、参考计数、使用情况等其他信息 强调一下,路由表中并没有给分组指明到某个网络的完整路径。路由表指出的是到某个网络应该先到某个路由器(即下一跳路由器),到达下一跳路由器后,再继续查找其路由表,知道再下一步应该到哪一个路由器。这样一步一步地查找下去,直到最后到达目的网络。

分类的IP地址使得路由表只关注目的网络地址,而不用关注每个目的主机的IP地址,大大减小了路由表项,也方便了IP地址的管理。但分类的IP地址造成了地址浪费和分配不灵活,采用划分子网改进,路由表上需要加上子网掩码字段,此时路由器只需要关注目的子网地址。为了进一步合理分配IP地址,发展了变长子网掩码VLSM(在划分子网的网络中可同时使用几个不同的子网掩码),在此基础上又进一步研究出无分类域间路由选择CIDR。使用CIDR的路由表和使用子网掩码的相同,但是CIDR把网络前缀相同且下一跳地址相同的连续IP地址组成一个CIDR地址块,进一步减少了路由表项。

解决IP地址耗尽问题
  • 采用无类别编织CIDR,使IP地址分配更加合理
  • 采用专用网IP,从A、B、C类IP中分别划出一块作为专用地址(private address),专用网使用这些地址,而不需要全球唯一的IP。若专用网要和互联网的主机通信,可使用网络地址转换(NAT,network address transition),一个专用网只需要一个全球IP
  • 采用具有更大地址空间的IPv6,128位

IP地址与硬件地址

物理地址/硬件地址/MAC地址是数据链路层和物理层使用的地址,固化在网卡的ROM中,全球唯一,48位 IP地址是网络层及以上各层使用的地址,是一种逻辑地址(软件实现)。 目的IP地址和源IP地址在IP数据报的首部,MAC帧首部中有源硬件地址和目的地址。在IP数据报的转发过程中,IP地址部分一直不变,而MAC帧在不同的网络上传送时,源和目的MAC地址都要改变。 路由器在收到MAC帧时会抛弃原先的MAC帧首部和尾部,添加新的首尾部。

为什么不直接使用硬件地址进行通信? 全世界存在各式各样的网络,他们使用不同的硬件地址,要直接使用硬件地址通信就必须进行非常复杂的硬件地址转换工作,由用户主机完成这项工作几乎是不可能的。IP地址就能够互联这些异构的网络。

地址解析协议 ARP

IP数据报的转发过程中MAC地址发生了改变,使用ARP协议解决目的IP地址到目的MAC地址的映射问题。每一台主机都有ARP高速缓存,里面有本局域网上各主机和路由器IP地址到硬件地址的映射表。 ARP请求分组时广播发送的,ARP响应分组是普通的单播。

路由协议

内部网关协议
名称 和谁交换 何时交换 交换什么 层级 特点
路由信息协议RIP 相邻路由器 固定时间间隔 所有信息,即路由表 应用层,UDP 跳数优先(时延不一定最优);小型网络;好消息传得快,坏消息传的慢
开放最短路径优先OSPF 所有路由器,洪泛法 链路发生变化时 部分信息,本路由器相邻的路由器链路状态 网络层,IP数据报 先建立全网链路状态数据库(全网一致),再用Dijkstra算法计算最优路径构建路由表
外部网关协议

BGP-4 寻求一条能够到达目的网络且比较好的路由(不能兜圈子),并非寻找一条最佳路由。不同自治系统的发言人通过TCP连接,建立BGP会话。

四. 运输层

网络层提供主机之间的逻辑通信,而传输层为不同主机上的进程之间提供逻辑通信。

端口

计算机中不同的进程由进程标识符标志。互联网上不同计算机的操作系统总类很多,不同操作系统的进程标识符格式不同。为了使运行不同操作系统的计算机能够相互通信,必须使用统一的方法(操作系统无关)对TCP/IP体系的应用进程进行标志。解决这个问题的方法就是在运输层使用协议端口号(protocol port number),简称端口(port)。这就是说,虽然通信的终点是应用进程,但只要把所传送的报文交到目的主机的某个合适的目的端口,剩下的工作(即最后交付目的进程)就由TCP或UDP来完成。 用端口代替进程标示符的逻辑和用IP地址代替MAC地址很像,用高层的统一弥补低层的差异。

常用端口

应用程序 FTP TELNET SMTP DNS TFTP HTTP SNMP
熟知端口号 21 23 25 53 69 80 161

UDP与TCP

名称 传输对象 连接情况 应用
用户数据报协议 UDP 面向报文,不拆分,不合并 无连接,无拥塞控制,支持一对一、一对多、多对一、多对多的通信,接收无确认,尽最大努力交付 速度快,实时性好,小文件传送协议TFTP、DNS、RIP、SNMP
传输控制协议 TCP 面向字节流 有连接,有拥塞控制,只支持一对一连接,套接字,可靠传输 可靠性,文件传输协议FTP、超文本传输协议HTTP、远程登录TELNET

TCP 连接管理

三次握手

为什么不采用 “两次握手” 建立连接? 防止已失效的连接请求报文突然又传送到了服务器,此时若采用两次握手,则服务器认为连接已建立,并开始等待数据传输,造成服务器资源浪费。 四次挥手 为什么发送最后一次握手报文后还需等待2MSL(最长报文段寿命)时间? 1.保证A发送的最后一个确认报文能够到达B;2.防止出现“已失效的连接请求报文”,经过2MSL可确保本连接持续时间内产生的所有报文段从网络中消失。

流量控制和拥塞控制

流量控制 指点对点的通信量的控制,即抑制发送端发送数据的速率,使接收端来得及接收,是个端到端问题。 拥塞控制 指防止过多的数据注入到网络中,使网络中的路由器和链路不至于过载,是一个全局性的过程。 他们都通过控制发送方发送数据的速率来达到控制效果。

滑动窗口中,发送方的发送窗口上限值应当取接收方窗口rwnd和拥塞窗口cwnd这两个变量中较小的那个。 其中接受方窗口值由接受方写入TCP确认报文首部的窗口字段;拥塞窗口由发送方通过拥塞控制算法自行得出。

糊涂窗口综合症(silly window syndrome)

TCP接收方缓存已满,而交互式应用进程一次只从接收缓存中读取1个字节,然后向发送方发送确认,并把窗口设置为1个字节。接着发送方又发送来1个字节的数据(注意,这里IP数据报的大小包括头部一共是41字节)。接收方发回确认,且仍将窗口设置为1个字节。这样进行下去,使网络的效率很低。 解决方法:让接受方等待一段时间,使接收缓存有空间足够容纳一个最长报文段,或是有一半空闲,再发送确认通知窗口大小。此外,发送方也不要发送太小的报文段。

TCP拥塞控制

tcp拥塞控制 实际上,慢开始、拥塞避免、快重传和快恢复几种算法是同时应用的,当发送方检测到超时时就采用慢开始和拥塞避免,当发送方接收到冗余ACK时,就采用快重传和快恢复。

为什么超时和冗余ACK时采用不同的策略? 发生超时时网络拥塞更加严重,发送方应该最大限度抑制数据发送量,cwnd=1;收到冗余ACK时,网络拥塞不是很严重,只需稍微抑制发送量,cwnd减半。

应用层

DNS

域名系统(domain name system):将域名解析为IP地址

万维网 WWW

万维网是一个大规模的、联机式的信息储存所。万维网用链接的方法能非常方便的地从互联网上的一个站点访问另一个站点,从而主动地按需获取信息。

URL

万维网用统一资源定位符URL(uniform resource locator)来标志万维网上的文档,并使每一个文档在万维网上拥有唯一的URL。格式如下: <协议>://<主机>:<端口>/<路径>

HTTP

万维网使用超文本传输协议HTTP(hyperText transfer protocol)定义了浏览器怎样向服务器请求文档,以及服务器怎样将文档传送给浏览器。 http协议采用TCP进行可靠传输,无状态(幂等性)。http1.1采用持续TCP连接,提高了多文件传输的效率。

其他问题

可靠传输与流量控制

ISO规定可靠传输在数据链路层实现,代表协议:高级数据链路控制HDLC(High-level Data Link Control) TCP/IP协议族中可靠传输在传输层实现,代表协议:传输控制协议TCP 如果在可靠传输的过程中使用了选择重传SR协议,就需要进行流量控制,防止接收方收不下。所以可以说流量控制会发生在数据链路层和传输层 无线局域网中,802.11使用了停等协议,在数据链路层实现了可靠传输

层级 特点 手段
数据链路层 点对点,针对网络中相邻结点 接收方收不下就不回复确认
运输层 端到端,计算机进程 接收端给发送端一个窗口公告

注意:可靠传输包括,无比特错误、有序、无丢失、无重复四个方面,单纯保证数据链路没有比特错误并不能保证可靠交付。数据链路层的可靠传输并不能保证网络层也是可靠的,低层的可靠传输不能保证高层的分组有序。