计算机网络知识的系统总结

一:对五层网络协议体系结构的概述

  1.应用层:通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等等。我们把应用层交互的数据单元称为报文。

  2.传输层:负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多个应用可以使用同一个传输层服务。

由于一台主机可同时运行多个线程,因此传输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面传输层的服务;分用是运输层把收到的信息分别交付上面应用层中的想用进程。

  3.网络层:在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路。也可能还要经过很多通信子网,网络层的任务就是就是选择合适的网间路由和交换节点,确保数据及时传送。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在TCP/IP体系结构中,由于网络层使用IP协议,因此分组也叫IP数据报,简称数据报。

  4.数据链路层:两个主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。在两个相邻节点之间传送数据时,数据链路层将网络层的IP数据报组装成帧,在两个相邻节点间的链路上传送帧。每一个帧包括数据和必要的控制信息(如:同步信息,地址信息,差错控制等)。

  在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取数据部分,上交给网络层。控制信息还使接收端能够检测到所收到的帧中有无差别。如果发生差错,数据链路层就简单地丢弃这个出了差错的帧,以避免继续在网络中传输下去白白浪费网络资源。如果需要改正数据在链路层传输时出现差错,那么就要采用可靠性传输协议来纠正出现的差错。这种方法会使链路层的协议复杂些。

  5.物理层:在物理层上所传送的数据单位是比特。物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。

二:ARP协议的工作原理

  网络层的ARP协议完成了IP地址与物理地址的映射。首先,每台主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包发送到目的主机时,会首先检查自己ARP列表中是否存在该IP地址对应的MAC地址;如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发送一个ARP请求的广播包,查询此目标主机对应的MAC地址。

  此 ARP 请求数据包里包括源主机的 IP 地址、硬件地址、以及目的主机的 IP 地址。网络中所有的主机收到这个 ARP 请求后,会检查数据包中的目的 IP 是否和自己的 IP 地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的 MAC 地址和 IP 地址添加到自己的 ARP 列表中,如果 ARP 表中已经存在该 IP 的信息,则将其覆盖,然后给源主机发送一个 ARP 响应数据包,告诉对方自己是它需要查找的 MAC 地址;源主机收到这个 ARP 响应数据包后,将得到的目的主机的 IP 地址和 MAC 地址添加到自己的 ARP 列表中,并利用此信息开始数据的传输。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

三:IP地址分类

  IP地址是指互联网协议地址,是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP地址编址方案将IP地址空间划分为A、B、C、D、E五类,其中A、B、C是基本类,D、E类作为多播和保留使用,为特殊地址。

  每个IP地址包括两个标识码,即网络标识和主机标识。同一个物理网络上的所有主机都使用同一个网络ID。

四:TCP的主要特点

  1.TCP是面向连接的。(就好像打电话一样,通话前需要先拨号建立连接,通话结束后要挂机释放连接);

  2.每一个TCP连接只能有两个端点,每一条TCP连接只能是点对点的(一对一);

  3.TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复、按序到达;

  4.TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据;

  5.面向字节流。TCP中的“流”指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。

五:UDP的主要特点

  1.UDP是无连接的,面向报文的;

  2.UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送频率降低(对实时应用很有用,如直播,视频会议等);

  3.UDP支持一对一、一对多、多对一和多对多的交互通信;

  4.UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要小。

六:三次握手

  TCP建立连接的过程叫做握手,握手需要在客户和服务器之间交换三个TCP报文段。

最初客户端和服务器都处于CLOSED(关闭)状态。本例中A(Client)主动打开连接,B(Server)被动打开连接。

一开始,B的TCP服务器进程首先创建传输控制块TCB,准备接受客户端进程的连接请求。然后服务器进程就处于LISTEN状态,等待客户端的连接请求。如有,立即做出响应。

第一次握手:A的TCP客户端也是首先创建传输控制块TCB。然后,在打算建立TCP连接时,向B发送连接请求报文段,这时首部中的同步位SYN = 1,同时选择一个初始序号seq = x。TCP规定,SYN报文段(即SYN = 1 的报文段)不能携带数据,弹药消耗掉一个序号。这是,TCP客户端进入SYN-SENT(同步已发送)状态。

第二次握手:B收到连接请求后,如果同意建立连接,则向A发送确认。在确认报文段中应把SYN位和ACK位都置为1,确认号是ack = x + 1,同时也为自己选择一个初始序号seq = y。请注意,这个报文段也不能携带数据,但同样要消耗掉一个序号。这时TCP服务端进程进入SYN-RCVD(同步收到)状态。

第三次握手:TCP 客户进程收到 B 的确认后,还要向 B 给出确认。确认报文段的 ACK 置 1,确认号 ack = y + 1,而自己的序号 seq = x + 1。这时 ACK 报文段可以携带数据。但如果不携带数据则不消耗序号,这种情况下,下一个数据报文段的序号仍是 seq = x + 1。这时,TCP 连接已经建立,A 进入 ESTABLISHED(已建立连接)状态。

猜你喜欢

转载自www.cnblogs.com/zhonghu/p/11607581.html