计算机基础 --图解TCP/IP协议

最近一直在看计算机基础相关的东西,其实之前也有略略的看过一些相关的文档,但是留下了很多迷糊不清的地方,所以趁着北京入秋了,在家也重新整理整理,也能让自己能不断的复习。


1.计算机网络概论

2.传输层

3.网络层

4.数据链路层

5.物理层


1.计算机网络概论

对于计算机网络的实现而言,根据不同的协议以及指定的服务划分了多层。其中国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。OSI/RM模型各层之间的目的很明确,但是由于在制定的过程中Internet互联网已经在使用中而且该模型划分过细的原因,导致使用不广。


计算机基础 --图解TCP/IP协议_第1张图片
OSI/RM模型各层提供服务

在实际上存在多个分层模型,分别为:
①OSI/RM模型(开放系统互连基本参考模型)是官方制定的并且各层之间划分更为详细的模型。
②TCP/IP协议是使用最为广泛并且各层之间更适用于实际的模型。
③而五层协议往往是在TCP/IP协议之上便于说明的一种模型。

计算机基础 --图解TCP/IP协议_第2张图片
网络划分三种模型

因为数据链路层和物理层实现面对的对象以及目标不同,所以以五层协议进行图解分析。

2.传输层

传输层处于应用层和网路层之间,处理的是端到端的数据传输服务。由于同时能有多个应用进程进行网络请求,所以该层的两个最基本服务为:

①复用和分用

传输层可能同一时间接收到来自多个应用进程进行网络请求需要发送的数据,并且可能同一时间需要分解由网络响应给不同应用进程的数据。

计算机基础 --图解TCP/IP协议_第3张图片
复用分用原因示例图
②校验码(16bit)

检验传输的数据和头部字段中出现的位数错误,属于最简单的检错机制。因为如果同时多位发送错误,很可能检验不出错误,所以检验和未能检验出错误的数据并不一定是正确的。
检验和的计算过程如下:
①将整个传输层的数据报(包括头部字段)以16位为一个整数单位进行相加计算sumResult。
②如果sumResult首位发生进位,便将该进位与去掉该进位的sumResult进行相加,得到校验和。

计算机基础 --图解TCP/IP协议_第4张图片
计算校验和的过程

传输层有两大协议 ---UDP和TCP,因为传输层未涉及到网络相关的实现,所以该层的协议都不提供对延迟和带宽的保证。

2.1 UDP协议 (User Datagram Protocol)

UDP被称为“不可靠”的传输协议,因为该协议只是实现了传输层两个最基本服务。

计算机基础 --图解TCP/IP协议_第5张图片
UDP协议

由于实现的服务少,UDP数据报的头部只有8个字节。

2.2 TCP

TCP协议被称为“可靠”的传输协议。所谓“可靠”指的的是:
① 不错 --->校验码检验错误,以及数据确认机制
②不乱 --->对于所有数据分组进行序列化,并且能够进行“重组”
③不丢 --->对数据分组启动定时器功能以及超时重传机制
同时在数据乱序到达时,TCP为了避免接收主机缓存溢出,使用了拥塞控制以及流量控制机制。

首先,图解TCP数据报结构:
计算机基础 --图解TCP/IP协议_第6张图片
TCP数据报结构
其次,TCP的三次握手建立连接的过程:
计算机基础 --图解TCP/IP协议_第7张图片
TCP建立连接

为了避免主机缓存溢出,在建立连接的过程中主机间会交换各自的缓存空间的大小。并且在接收发送的过程中也会不断的交流剩余空间的大小,以此控制传输数据的速率。
如:当接收主机B的缓存空间接近零时,主机B会向发送主机A发送当前的缓存空间大小,主机A接收到响应后会调整传输的数据,以最小的数据量不断的询问主机B是否已经处理完成。

最后,TCP的关闭连接:
计算机基础 --图解TCP/IP协议_第8张图片
TCP关闭连接

TCP关闭连接需要4次的交互,主要是因为TCP是全双工传输(在同一连接中能够传输双向数据流)。在TIME_WAIT阶段中,客户端一般会等待30秒,如果期间再接收到从服务器发送的数据,会不断的发送"ACK"给服务器。

2.3 UDP和TCP的对比

UDP的优势:
①由于不需要建立连接以及维护连接,所以UDP会减少时延。
②头部开销少:UDP只需要8个字节,而TCP需要20个字节。
③没有拥塞控制,应用可以更好的控制发送的时间
UDP的劣势:
只有简单的错误校验机制,没有错误恢复机制,所以会产生数据的丢失,非按序到达等问题。
UDP的用途:
①用于流媒体应用(容忍丢失,速率敏感)
②DNS和SNMP(使用广播等的协议)

3.网络层

网络层主要是提供了逻辑寻址和路由选择。详细的介绍可以参考之前我写的文章:TCP/IP协议 -IP

首先,图解IP协议数据报结构:
IP协议数据报结构

由于IP数据报的总长度字段为16bit,所以IP数据报最大为65535字节,在IP传输的过程中可以没有数据,所以IP数据报最短为20个字节。

其次,逻辑寻址
①发送端和接收端的主机在同一个子网中

如果两个主机都在同一个子网中,根据以太网协议知道,需要依靠MAC地址进行主机的识别以及发送和接受数据。将需要将IP地址通过ARP和MAC地址连接起来,利用MAC地址进行广播。

计算机基础 --图解TCP/IP协议_第9张图片
子网

ARP协议请求过程:如果在主机A的ARP表中并没有一致的IP地址和MAC地址对应的项,并将IP地址广播到子网中,如果主机B的IP地址和广播寻找的IP地址一致,主机B就会将自己的MAC地址发送给主机A。

①发送端和接收端的主机不在一个子网中

如果这时候还是利用MAC地址进行广播,那么在整个网络上所有的主机都会收到一份数据,不仅效率很低而且并不安全。所以如果两个主机并不在同一个子网中,主机A默认将数据发送到对应的路由器中,并由路由器发送到Internet中,并进行逻辑寻址。

计算机基础 --图解TCP/IP协议_第10张图片
主机并不在一个子网中

4.数据链路层

数据链路层负责通过一条链路从一个节点向另一个物理链路直接相连的结点传送数据报。并且封装数据报构成数据帧,为了标识在物理链路中传输数据的开始与结尾,是唯一一层加入了首部和尾部字段。
基于以上的原理,将数据链路层分为两个子层:
①介质访问控制MAC(multiple access control protocol)
采用分布式算法决定结点如何共享信道,即决策结点何时能传输数据
②逻辑链路控制LLC:对帧进行错误检查,管理子网设备间的链路

MAC地址

以太网规定,连入网络的所有设备,都必须具有"网卡"接口,而MAC地址指的是网络接口卡-NIC中的地址。在帧数据结构首部中的发送者和接收者的信息指的就是主机的MAC地址。

帧的头部长度固定为18个字节,而数据的长度最短为46字节(由于组装帧和传输时延等问题),最长为1500字节(超过最大字节的数据报会被分割成多个帧进行发送)。

5.物理层

物理层,顾名思义,就是对将主机连接起来的物理手段的定义。由于设备之间进行连接的物理手段不同,所以制定了实际传输过程中的一些规定。可以分为以下的几种规程:
①机械特性:接口所用的接线器的形状与尺寸等插件规格
②电气特性:接口电缆各条线上的电压范围
③功能特性:某一点平上的电压所代表的意义
④过程特性:对于不同功能的各种可能事件的出现顺序


大致的总结了一下计算机网络中各层实现的功能和服务,接下来会通过总结平时做的一些题来深入的解析各层。

你可能感兴趣的:(计算机基础 --图解TCP/IP协议)