网络及数据在网络中传输所涉及到的协议们

时间:2024-02-24 20:47:50

网络:几部计算机主机或网络打印机之类的接口设备,通过网线或者无线网络技术将其连接起来,使得数据可以通过网络介质(网线以及其他网卡等硬件)来传输的一种方式。

网络分类

  1.以太网(Ethernet):局域网(local area network,LAN)使用的就是以太网

    以太网络传输速度单位用的是Mbps,需要注意的是其中的b用的是bit而不是我们常用的byte,所以我们家中定宽带时的实际下载速度需要除以8才能够得到一般速度。

    我们常见的网线就是用于传输以太网数据的,通过主机的网卡连接另一台主机的网卡或者集线器(Hub)【集线器*注1

    以太网的传输协议:CSMA/CD

      以太网的传输关键是以太网卡(常简称网卡),每张网卡有一个“固定”的网卡号称为MAC地址(6bytes大小,是硬件地址标识),所以能够用于确定位置。

      以太网内的机器间数据传输就是使用CSMA/CD协议来发送MAC数据帧的,MAC数据帧构成如下:

      *其中的目标地址与源地址即是MAC地址

    注1:集线器是网络共享介质设备,局域网络所有主机连接到他,当需要主机间通信时将数据发送到集线器,其再负者转发出去直到目标主机收到并接收数据。还有个叫交换机(Switch)的非共享介质设备也起类似作用,但是他们转发数据的原理不同,集线器是将数据传给所有机器,但只有目标机接收,而交换机是保存了目标机的MAC地址,故能够直接发送给目标主机。【具体其差别请自行搜索】

    小结:通过上面我们能够看出以太网的硬件部分有网线,网卡,Hub/Switch等,而数据传输使用网卡卡号为标准的MAC数据帧配合CSMA/CD标准来传输。

    注:上面说过了局域网内部数据传输通过Hub/Switch就能够完成,但是如果我们希望通过广域网传输数据的话就需要使用路由器(即是默认网关),先将数据传输到路由器,再通过路由器通过多次跳转传输到目标主机所在网段的路由器(默认网关处),通过其的“公共IP/MAC表”其再定位分发到具体目标主机。

 

  2.英特网(Internet):广域网(wide area network,WAN)使用的就是Internet

    Internet使用的通信协议是TCP/IP协议,其是一个四层模型

      

      在此需要立即说明的一项是在我们看看上面TCP/IP四层模型的倒数两层,我们发现IP数据包实际在决定传输目标的位置是在局域网还是广域网之前就已经准备好了,在最后一层时,每个主机有个路由表记录了本局域网的IP,通过与IP包里的目标IP地址对比能够发现目标主机是否属于本机所在局域网,假设发现是在同一局域网,由上面已经说过实际的局域网传输使用的是MAC数据包,所以这里是如何处理的呢?实际上会将IP数据包依据CSMA/CD标准封装到MAC数据帧中去并且添加帧头。如果发现不是处于同一局域网就直接将IP包发给路由器进行后续转发。

      在实际过程中,比如打开了浏览器输入网址并点击回车,此时网址信息及其相关信息就会包装成data传到应用层,此时使用的是HTTP协议将data封装起来并加入应用层报头后传入传输层,由于HTTP为可靠连接,故使用TCP协议封装并加入TCP报头后传入网络层,将其封装到IP数据包里并添加IP包头后传到网络接口层,判断目标主机地址后再做相应处理后转化为比特流进行传输。最后会形成下面的关系(注意各报头的顺序):

      

      注:ARP协议与ICMP协议

        ARP协议:(Address Resolution Protocol)网络地址解析协议,我们知道的是IP也是配置在网卡上的,上面又提到网卡有固定的网卡号(MAC地址),实际上IP地址是通过软件配置在指定网卡上的,通过向局域网发送ARP包能够返回具体IP配置所在的网卡的MAC地址。【注:获取网卡MAC地址:#ifconfig,获取本机IP/MAC地址对应数据:#arp -n】

        ICMP协议:(Internet Control Message Protocol)因特网信息控制协议,其是一个错误检测与报告的机制,用于确保网络的连接状态,常用的ping与traceroute命令即是使用的此协议,其也需要放到IP包里进行传输。

    

    现在来看看常用的TCP协议的报头

      

        

      *我们常说的TCP为稳定状态连接,其三次握手(主机设置SYN=1后发包,目标主机回包设置ACK为1,主机将SYN与ACK都是1的包再次发给目标主机。经过这三次发包“握手”就建立了TCP连接)

    同上面使用CSMA/CD标准来传输MAC数据帧一样,这里是使用TCP/IP协议来传输IP数据包,IP包头如下

      

      *所用协议编号指向的有TCP,UDP 与 ICMP 等等;

        如果IP包太大需要重组成几个小的IP包再放到MAC中,故需要上表中的“识别码”,“特殊标志”,“分段偏移“三个指标来完成后面的IP包的重组

        生存时间:范围0~255,每进过一个路由器TTL减一,为0后自动丢弃此数据包

        报头校验码:检查报头是否有错

    MAC帧头上一节已经介绍

    

总结:到现在我们就明白了我们具体发送一个数据到目标主机,分别经历了哪些协议的封装后又是通过哪些硬件最后根据什么找到目标主机的了。