zoukankan      html  css  js  c++  java
  • 浅谈通信网络(三)——TCP/IP协议

    简介

    Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层IP协议和传输层TCP协议组成。 TCP/IP协议由四层组成,分别为:网络访问层、互联网层、传输层、应用层。那如何理解这四层,他们的作用又是什么呢?

    所谓四层结构,是将网络中传输的数据包逻辑性的分为四个层次,从前到后的结构如下所示:

    重点:设备(包括你的手机、电脑等)读取数据包的顺序是从以上左往右读取的

    让我们通过wireshark工具看下具体的数据包是长什么样子的,如下图我打开了网页www.baidu.com。可以分别看到不同层的数据包展示,并且我展开了应用层的数据内容,可以看到访问的域名为www.baidu.com

    详解

    1)网络访问层

    根据前文《dai浅谈通信网络(一)——引子》中描述,小明和小刚的对话得知,需要如下两点:

    a.彼此的称呼 b.双方交谈的方式,包括采用中文等

    那么这全部在通信网络中,分别为MAC地址和网络协议族(比如以太网的CSMA/CD等)

    小明和小刚交谈,就相当于MAC1(电脑)和MAC2(交换机)通信。

    网络协议族不再累述。

    网络访问层又叫数据链路层,该层工作于局域网,一般局域网有以太网、令牌网、点对点链接、FDDI等网络类型。

    2)传输层/应用层

    小明和小刚的交谈过程,视为一种应用,虽然是一种面谈。这有点像我们使用微信进行沟通交流一样。同样你在电脑或者手机上,点击的任何APP(应用软件)就属于应用层。

    根据前面描述,传输层是保障服务质量的,也就是保障小刚和小明的谈话内容能够更有效。所以因此我也把他们放在一起描述。

    a.首先看下我的电脑上运行的应用层程序微信是什么样子的。当我双击点开并登陆微信后,可以在任务管理器里面看到该程序的进程。他们在操作系统后台运行的时候,就是进程。

    b.我们通过微信可以和多个人进行通信,比如你和小红是一次通信、你和小利又是一次通信,那电脑是如何标记着两次不同的通信过程。那就是通过传输层的端口号来标记的。

    以下截图红框所示代表了微信的两次通信过程:

    一次:从本地地址172.18.10.9的端口号63223——>到远端的113.96.209.106的端口号443

    另外一次:从本地地址172.18.10.9的端口号64723——>到远端的182.254.34.159的端口号80

    也就通过以上的IP+端口号对标记一次通信过程。

    c.传输层有两种协议,分别是TCPUDP。至于TCP层如何保证通信质量的内容了,再听后文分解。

    3)互联网层

    上面提到标记一次通信过程,使用的是IP+端口号。那为啥不直接使用MAC+端口号。并且通常我们听到更多的是数据流量在网络中通过路由转发(路由转发即通过IP地址转发),而不是通过MAC地址转发。具体MAC地址转发和IP地址转发的细节和区别,再听后文分解。在前面我们已经说到,MAC地址标记的是通信设备,而IP地址的用处则是用于寻址,基于域的寻址。这就相当于我们网购后的快递,MAC地址代表你的名字,而IP地址代表的是你的收获地址。收获地址是怎么写的?比如 四川省泸州市成华区AB小区。当寻址地址,被标记为树形结构,中央集权制的体系,找到目标的路径将变为唯一。同样也增加了寻址的速度。比如对于IP地址192.168.1.3,相当于是这样的类比192(省).168(市).1(路).3(小区)。基于前面提到的数据包的处理机制为从左往右读取,当位于192(省).168()的路由设备,就可以将该数据包转发到1(路)。基于域的,树形结构的结构,被使用与除了RIP之外,基本所有的IP路由协议,比如OSPF/ISIS/BGP/PIM等。当然更不用说DNSlinux操作系统的ext文件系统等。

    其他:

       1.数据链路层,由于有各种类型,基于IP层的工作模式,可以屏蔽掉数据链层的差异性,进行透明传输,不会由于局域网的不同,造成无法兼容,影响彼此的通信;

       2.数据层通信的数据包,以太网中叫帧(frame);

          IP层叫IP报文(IP datagram);

          TCP层叫TCP段(TCP segment)

       3.网络层之间,叫点对点服务;

           传输层之间,叫端到端服务。

  • 相关阅读:
    不容易发现的错误
    Element-UI 笔记
    工作中常用的操作/经验
    记录一些前端强大的插件
    HttpContext.Current.ApplicationInstance.Application vs HttpContext.Current.Application
    What Is a Replay Attack?
    ASP.NET's Data Storage Objects
    JSON Web Token (JWT) RFC7519
    Session-State Modes
    After change SessionID data in Session variables is lost
  • 原文地址:https://www.cnblogs.com/daiaiai/p/9047713.html
Copyright © 2011-2022 走看看