计算机网络基础知识总结

这篇文章是针对计算机网络基础的学习笔记。

1.计算机网络背景

计算机网络最初的目的是连接一个个独立的计算机,使它们组成一个强有力的计算环境。

七个阶段

年代 内容 特点
20世纪50年代 批处理时代 为了使更多的人使用计算机,装入卡带的程序由读卡机读入并输入给计算机,计算机处理后打印最终结果
20世纪60年代 分时系统时代 多个终端与同一台计算机连接,允许多个用户同时使用一台计算机的系统
20世纪70年代 计算机间通信时代 计算机间的通信技术诞生,缩短传送数据的时间
20世纪80年代 计算机网络时代 各式各样的计算机互连,窗口系统诞生,共享资源
20世纪90年代 互联网普及时代 通过连接不同厂商的计算机建立一个成本更低的网络环境,信息传播方式发展
2000年 以互联网为中心的时代 IP网取代电话网,从“单纯建立连接”到“安全建立连接”
2010年 一切皆TCP/IP的网络时代 连接人与人的计算机网络

2.网络模型概要

两种模型:OSI,TCP/IP
因特网五层模型:应用层,运输层,网络层,链路层,物理层。
TCP/IP四层模型:应用层,运输层,网络互连层,主机到网络层。
OSI七层模型:应用层,表示层,会话层,运输层,网络层,链路层,物理层。

2.1 协议定义

协议就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。这种“约定”使得不同厂商的设备、不同CPU以及不同的操作系统组成的计算机网络之间,只要遵循相同的协议就能够实现通信。

2.2 协议分层

每个分层接收由它下一层所提供的特定服务,并且负责为自己上一层提供特定服务。上下层之间进行交互所遵循的约定叫做“接口”,同一层之间的交互所遵循的约定称叫做“协议”。

OSI协议与OSI模型辨析

OSI协议是为了让异构的计算机之间能够互相通信的、由ISO和ITUT推进齐标准化的一种网络体系结构。OSI模型是对通信功能进行的7层划分。OSI协议以OSI模型为基础界定了每个阶层的协议和每个阶层之间接口相关的标准。遵循OSI协议的产品叫OSI产品,产品遵循的通信称为OSI通信。

2.3 各层作用

分层名称 功能 描述
7 应用层 针对特定应用的协议,位于应用层要传递的信息称为报文(message)。 FTP,SSH,SMTP等
6 表示层 设备固有数据格式和网络标准数据格式的转换 接收来自不同表现形式的信息,如文字、图像、声音等
5 会话层 通信管理负责建立和断开通信连接,数据流动的逻辑通路 何时建立连接,何时断开连接以及保持多久的连接
4 传输层 管理两个节点之间的数据传输。可靠传输机制。在因特网中,有俩种运输协议,TCP和UDP,使用其中的任何一个都能传递应用层报文,值得注意的是,在这一层,TCP/UDP会把应用层报文包装成一个新的结构,我们称为报文段(segment) 是否有数据丢失?
3 网络层 地址管理和路由选择,把上一层的报文段包装成一个被称作数据报(datagram)的结构 经由哪个路由传递到目标地址, IP协议
2 数据链路层 将上一层数据报封装为数据帧,互连设备之间传递和识别数据帧(Frame),网络层必须依靠链路层的服务 数据帧与比特流之间的转换
1 物理层 以“0”,“1”代表电平高低、灯光闪灭。界定连接器和网线的规格 比特流与电子信号之间的切换

信息传递过程

通过windows下的cmd命令tracert确定从当前主机到目的主机之间经过了哪些交换机。

3.网络模型详细

3.1 应用层

一般应用程序开发者主要在这一层上进行软件开发。两种主流体系框架:C/S,P2P(对等体系):

  • C/S结构:一直开机运行的Server接收并处理来自Client的请求。服务器总是具有一个固定IP地址。客户主机之间不可以直接通信。
  • P2P结构:在对等(Peer-to-peer)体系中,每台计算机地位对等,无主从之分,可做服务器共享资源也可作工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容,资源包括信息的共享和交换、计算资源(如CPU计算能力共享)、存储共享(如缓存和磁盘空间的使用)、网络共享、打印机共享等。

计算机间通信本质是进程通信,而不同端系统上的进程通信需要套接字完成。

应用层协议簇

  • HTTP协议:客户机-服务器模型,HTTP服务器不保存关于客户信息,故为无状态协议。为了追踪用户输入,每次访问时cookie被添加到HTTP报文头部,实现身份识别。80端口。
  • FTP协议:文件传输协议(File Transfer Protocol),进行文件传输时,建立两个TCP连接,分别是发送传输请求时所要用到的控制连接如用户标识、口令,命令,实际传输数据时的数据连接。端口(20或21)。
  • TELNET与SSH:远程登录相关协议。
  • SNMP协议:网络管理协议(Simple Network Management Protocol),可以对连网的设备进行远程修改配置,检查是否正常运行。
  • DNS协议:域名系统(Domain Name System),运行于UDP协议之上,baidu.com如何转换为ip地址,即DNS服务。端口53。DNS采用分布式设计方案,如图:

浏览器缓存——>系统缓存(gethostbyname)——>路由器缓存——>ISP DNS缓存——>递归搜索(从根域名服务器开始,顶级域名…),完成域名与ip转换。
cmd中使用nslookup发送DNS查询报文

3.2 传输层

传输层最主要的功能是让应用程序之间实现通信,通过端口识别这些应用程序。
多路复用/分解:一个进程可以有一个或多个套接字,就像FTP,但是一般一个套接字只能绑定一个端口号,则同一时刻,一定存在多个套接字,每个套接字都有自己的唯一标识符。这样,运输层就可以把不同的报文数据交付到正确的套接字上,称为多路分解。而不同的套接字加上各种的壳,生成报文段,然后将报文段传递到网络层,称为多路复用。
UDP协议:用户数据报协议(User Datagram Protocol),面向无连接的不可靠的数据报服务,常用于分组数据较少或的多播、广播通信以及视频通信等多媒体领域。依赖于IP协议。
UDP报文头格式:源端口号,目的端口号,报文长度,校验和,数据信息。

TCP协议:传输控制协议(Transmission Control Protocol),比UDP多了两项功能:可靠传输,拥塞控制。
TCP的特性

  • TCP提供一种面向连接的、可靠的字节流服务
  • 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP
  • TCP使用校验和,确认和重传机制来保证可靠传输
  • TCP给数据分节进行排序,并使用累积确认保证数据的顺序不变和非重复
  • TCP使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制

TCP报文段格式

三次握手,四次挥手

3.3 网络层

使用IP协议,分组报文转发到目的主机。路由选择。
IP协议:因特网协议(Internet Protocol),IP协议是跨越网络传送数据包,使整个互联网都能收到数据的协议。
IPv4编址

类型 范围
A 0.0.0.0 - 127.255.255.255
B 128.0.0.0 - 191.255.255.255
C 192.0.0.0 - 223.255.255.255
D 224.0.0.0 - 239.255.255.255
E 240.0.0.0 - 255.255.255.255

DHCP协议:动态主机配置协议(Dynamic Host Configuration Protocol),DHCP具有将主机连接进入一个网路的网络相关方面的自动能力。
DHCP建立过程

  • 客户端发送DHCP discover消息(IP地址租用申请),广播方式发送,所有网络中的DHCP服务器都将收到这个消息。
  • 网络中的DHCP服务器回应一条DHCP offer消息(IP地址租用提供),同样为广播方式发送出去,客户端选择它接收到的第一条DHCP offer作为获取配置的服务器。
  • 客户机以广播方式向该服务器发送DHCP request消息(包含客户端申请的IP地址),通知选中服务器分配IP地址,和其它没有选中的DHCP服务器不需要再响应它的请求。
  • DHCP服务器将会送DHCP ACK消息相应请求报文。
    ICMP协议:Internet控制报文协议(Internet Control Message Protocol),IP数据包发送途中一旦发生异常导致无法到达对端目标地址时,需要给发送端发送一个一场通知。
    ARP协议:从分组数据包中的IP地址解析出MAC物理地址。

3.4 链路层

将比特组装成帧和点到点的传递(帧Frame),链路层使用MAC地址,通过网络层的ARP协议可以将IP地址转换为MAC地址——链路层地址。
地址:唯一性,层次性
MAC地址和IP地址在标识一个通信主体时都具有唯一性,但只有IP地址具有层次性。MAC地址由设备的制造厂商针对每块网卡(NIC)进行分别指定,MAC地址是真正负责最终通信的地址。MAC寻址所参考的表是地址转发表,IP寻址的是路由控制表。

4.传输方式分类

4.1 按连接类型分类

  • 面向有连接型:发送端数据不一定要分组发送(电路交换),发送数据之前,需在收发主机之间建立通信线路。如打电话
  • 面向无连接型:不要求建立和断开连接。

4.2 通信方式分类

  • 电路交换:主要用于过去的电话网,电路交换中,交换机主要负责数据的中转处理,计算机之间发送数据时需要交换机与目的主机建立通信电路,收发信息时独占线路,其它计算机只能等待这台计算机处理完后才能使用该线路。因此如果并发用户数超过交换机之间的通信线路数时,意味着通信无法实现。电路交换的传输速度不变。
  • 分组交换:数据分组,路由存储转发(队列缓存,根据路由表转发)。通信线路速度可能不同。分组交换协议是指将大数据分割为一个个叫做包(Packet)的单位进行传输的方法。

电路交换与分组交换特点

4.3 根据接收端数量

单播,广播,组播,任意播(特定多台主机选出一台作为接收端)

5.网络构成要素

5.1 设备

设备 作用
网卡 使计算机连网的设备
中继者 从物理层上延长网络的设备
网桥(Bridge)/2层交换机 从数据链路层上延长网络的设备
路由器(Router)/3层交换机
4-7层交换机 处理传输层以上各层网络传输的设备
网关 转换协议的设备

中继器:由电缆传过来的电信号或光信号经由中继器的波形调整和放大再传给另一个电缆。

  • 中继器是对减弱的信号进行放大和发送的设备。
  • 通过物理层的连接延长网络。
  • 即使数据链路层发生错误,中继器仍然转发数据。
  • 中继器无法改变传输速度。

集线器(Hub):多口中继器,每个端口都可以成为一个中继器。
网桥/2层交换机:数据链路层上连接两个网络的设备。可通过自学机制和过滤功能控制网络流量。根据MAC地址进行处理。

  • 网桥根据数据帧的内容转发数据给相邻的其他网络。
  • 网桥没有连接网段个数的限制。
  • 网桥基本上只用于连接相同类型的网络。但有时可以连接传输速率不同的网络。

路由器/3层交换机:网络层上连接两个网络,并将分组报文进行转发的设备。根据IP地址进行处理。可以连接不同的数据链路。
4-7层交换机:对于并发访问量非常大的Web站点,使用一台服务器不足以满足前端的访问需求,此时可以通过假设多台服务器分担。前端访问的入口地址为了使用者方便,通常只有一个,为了通过同一个URL将前端访问分发到后台多个服务器上,可以在服务器前端加上一个负载均衡器,而这种负载均衡器就是4-7层交换机的一种。此外还可以通过DNS实现负载均衡。
网关:协议翻译和转发数据。

5.2 几个概念

  • 严格意义上讲,各种传输媒介中信号的流动速度是恒定的。
  • 传输速率高不是指单位数据流动的速度有多快,而是指单位时间内传输的数据量有多少。传输速率单位为bps(每秒比特数)。传输速率又称作带宽。主机之间实际的传输速率称为吞吐量。单位与带宽相同为bps
  • 网络整体构成:接入层(汇聚层)+边缘网络+核心网(骨干网)。