黄小华的个人网站
熬过无人问津的日子才有诗和远方!
计算机网络知识总览

Computer-Network

计算机网络学习的核心内容就是网络协议的学习,计算机网络协议同我们生活中的语言一样,多种多样。

  为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计 算机网络,
国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即OSI七层模型,
除了标准的OSI七层模型以外,常见的网络层次划分还有TCP/IP四层协议 和 TCP/IP五层协议。

**电路交换:**通信之前要在通信双方之间建立一条被双方独占的物理通路(由通信双方之间的交换设备和链路逐段连接而成)。
优点:
由于通信线路为通信双方用户专用,数据直达,所以传输数据的时延非常小。
通信双方之间的物理通路一旦建立,双方可以随时通信,实时性强。
双方通信时按发送顺序传送数据,不存在失序问题。
电路交换既适用于传输模拟信号,也适用于传输数字信号。
电路交换设备控制均较简单。
缺点:
电路交换的平均连接建立时间对计算机通信来说偏长。
电路交换连接建立后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用低。
电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。

**分组交换:**分组交换采用存储转发传输方式,将一个长报文先分割为若干个较短的分组,然后把这些分组(携带源、目的地址和编号信息)逐个地发送出去,因此分组交换除了具有报文的优点外,与报文交换相比有以下优缺点: 优点:
加速了数据在网络中的传输。因为分组是逐个传输,可以使后一个分组的存储操作与前一个分组的转发操作并行,这种流水线式传输方式减少了报文的传输时间。
此外,传输一个分组所需的缓冲区比传输一份报文所需的缓冲区小得多,这样因缓冲区不足而等待发送的机率及等待的时间也必然少得多。
简化了存储管理。因为分组的长度固定,相应的缓冲区的大小也固定,在交换结点中存储器的管理通常被简化为对缓冲区的管理,相对比较容易。
减少了出错机率和重发数据量。因为分组较短,其出错机率必然减少,每次重发的数据量也就大大减少,这样不仅提高了可靠性,也减少了传输时延。
由于分组短小,更适用于采用优先级策略,便于及时传送一些紧急数据,因此对于计算机之间的突发式的数据通信,分组交换显然更为合适些。
缺点: 尽管分组交换比报文交换的传输时延少,但仍存在存储转发时延,而且其结点交换机必须具有更强的处理能力。
分组交换中的每个分组都要加上源、目的地址和分组编号等信息,这将增大传送的信息量,一定程度上降低了通信效率,增加了处理的时间,使控制复杂,时延增加。
当分组交换采用数据报服务时,可能出现失序、丢失或重复分组,分组到达目的结点时,要对分组按编号进行排序等工作,增加了麻烦。若采用虚电路服务,虽无失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。

总之,若传输的数据量很大,而且传送时间远大于呼叫时间,则采用电路交换较为合适;当端到端的通路由很多段的链路组成时
采用分组交换较为合适。从提高整个网络的信道利用率上看,分组交换优于电路交换

OSI七层模型

TCP/IP协议是互联网的基础协议,每一层中都要自己的专属协议,完成自己相应的工作以及与上下层级之间进行沟通。
简要来讲各层作用:

物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)

数据链路层:将比特组装成帧和点到点的传递(帧Frame)

网络层:负责数据包从源到宿的传递和网际互连(包PackeT)

传输层:提供端到端的可靠报文传递和错误恢复(段Segment)

会话层:建立、管理和终止会话(会话协议数据单元SPDU)

表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)

应用层:允许访问OSI环境的手段(应用协议数据单元APDU)

1.物理层(Physical Layer)

  激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。
该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保
原始的数据可在各种物理媒体上传输。物理层记住两个重要的设备名称,
中继器(Repeater,也叫放大器)和集线器

  将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,
数据链路必须具备一系列相应的功能,主要有:如何将数据组合成数据块,
在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;
如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;
以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。
数据链路层在不可靠的物理介质上提供可靠的传输。
该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
有关数据链路层的重要知识点:
  1. 数据链路层为网络层提供可靠的数据传输;

  2. 基本数据单位为帧;

  3. 主要的协议:以太网协议;

  4. 两个重要设备名称:网桥和交换机。

3.网络层(Network Layer)

  网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址
和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需
要了解网络中的数据传输和交换技术。如果您想用尽量少的词来记住网络
层,那就是“路径选择、路由及逻辑寻址”。

  网络层中涉及众多的协议,其中包括最重要的协议,也是TCP/IP的核心协议——IP协议。
IP协议非常简单,仅仅提供不可靠、无连接的传送服务。
IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。
与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、
因特网报文协议ICMP、因特网组管理协议IGMP。具体的协议我们会在接下来的部分进行总结。
有关网络层的重点为:

 1. 网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;

 2. 基本数据单位为IP数据报;

 3. 包含的主要协议:

  IP协议(Internet Protocol,因特网互联协议);

  ICMP协议(Internet Control Message Protocol,因特网控制报文协议);

  ARP协议(Address Resolution Protocol,地址解析协议);

  RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。

 4. 重要的设备:路由器。

4.传输层(Transport Layer)

 传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系
统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的
可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。
  网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而
传输层则负责将数据可靠地传送到相应的端口。
有关网络层的重点:
 1. 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传
输以及端到端的差错控制和流量控制问题;
 2. 包含的主要协议:
TCP协议(Transmission ControlProtocol,传输控制协议)
UDP协议(User Datagram Protocol,用户数据报协议)
 3. 重要设备:网关。

5.会话层

会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。
会话层还利用在数据中插入校验点来实现数据的同步。

6.表示层

表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。
表示层的数据转换包括数据的加密、压缩、格式转换等。

7.应用层

是最靠近用户的OSI层,为用户的应用程序提供网络服务的接口。将用户的操作通过应用程序转换成为服务,
并匹配一个相应的服务协议发送给传输层。
会话层、表示层和应用层重点:

  1. 数据传输基本单位为报文;
  2. 包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)
    DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议)
    HTTP协议(Hyper Text Transfer Protocol)。

ARP地址解析协议的原理

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取MAC地址的一个TCP/IP协议。

1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。

2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,
则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,
该数据包包括的内容有:源IP,源MAC地址,目的主机IP地址

3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,
如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中
,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。

4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。
如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
注意: ** 广播**(255.255.255.255)发送ARP请求,单播发送ARP响应

在浏览器中输入www.baidu.com 后执行的全部过程

1、客户端浏览器通过DNS解析到www.baidu.com 的IP地址220.181.27.48 ,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48 然后通过TCP进行封装数据包,输入到网络层。

2、在客户端的传输层(添加TCP头),把HTTP会话请求分成报文段,添加源和目的端口,
如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,
与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。

3、客户端的网络层(添加IP头)不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,
期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。

4、客户端的链路层(添加MAC头),包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,
然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,
然后发送IP数据包到达服务器的地址。

TCP和UDP的区别

这是传输层的两个协议,先说一下传输层的两大功能:
1.多路复用:在发送端,多个应用进程公用一个传输层;
2.多路分解:在接收端,传输层会根据端口号将数据分给不同的应用进程。

传输层和网络层的区别:
网络层为不同的主机提供通信服务,传输层为不同应用进程提供通信服务。
网络层只对报文头部进行差错检测,而传输层对整个报文进行差错检测。

UDP(User Data Protocol)用户数据报协议 实例:邮寄
1.无连接(不按顺序,不保证质量)
2.不可靠(不能保证都送达)
3.面向报文(UDP数据传输单位是报文,不会对数据进行拆分和拼接操作,只是给上层传来的数据加个UDP头或者给下层来的数据去掉UDP头)
4.没有拥塞控制,始终以恒定速率发送数据
5.支持一对一、一对多、多对多、多对一
6.首部开销小,只有8字节

TCP(Transmission Control Protocol)传输控制协议 实例:打电话
1.面向连接(按顺序,保证传输质量,可恢复错误和流量控制)
2.可靠的
3.面向字节流
4.全双工通信,TCP两端既可以作为发送端也可以作为接收端
5.连接的两端只能是两个端点,即一对一,不能一对多
6.至少20个字节,比UDP大的多

什么是TCP连接?

TCP连接是一种抽象的概念,表示一条可以通信的链路。
每个TCP连接有且仅有两个端点,表示通信的双方,且双方在任意时刻都可以作为发送者和接受者。

什么是套接字?

一条TCP连接的两端就是两个套接字。
套接字 = IP地址:端口号
因此,TCP连接 = (套接字1,套接字2)= (IP1:端口号1,IP2:端口号2)

TCP对应的协议和UDP对应的协议

TCP对应的协议:

(1) FTP:定义了文件传输协议,使用21端口。

(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。

(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。

(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。

(5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。

UDP对应的协议:

(1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口 应用层协议。

(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势,应用层协议。

(3) TFTP:简单文件传输协议,该协议在端口69上使用UDP服务。

[计算机网络基础知识](https://www.cnblogs.com/maybe2030/p/4781555.html#_label3