简介

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(交换机)通信。

网络协议族不再累述。

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.传输层有两种协议,分别是TCP和UDP。至于TCP层如何保证通信质量的内容了,再听后文分解。

3)互联网层

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

浅谈通信网络(三)——TCP/IP协议的更多相关文章

  1. JAVA基础知识之网络编程——-TCP/IP协议,socket通信,服务器客户端通信demo

    OSI模型分层 OSI模型是指国际标准化组织(ISO)提出的开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它将网络分为七 ...

  2. 网络基础tcp/ip协议一

    计算机网络: 硬件方面:通过线缆将网络设备和计算机连接起来 软件方面:操作系统,应用软件,应用程序通过通信线路互连 实现资源共享,信息传递 计算机网络的功能: 数据通信 资源共享 增加可靠性 提高系统 ...

  3. 小dai浅谈通信网络(一)——引子

    说起通信网络,首先来看一个场景: 场景模式: 小明和小刚在闹市碰面. 小明对小刚大声喊道:"小刚,你好啊!" 小刚摇手答到:"你好,小明!" 就这么几句简单的话 ...

  4. 网络基础tcp/ip协议四

    网络层的功能: 定义了基于ip协议的逻辑地址. 链接不同的媒介类型. 选择数据通过网络的最佳路劲. 数据包格式: 优先级与服务类型(8)位:优先级与服务类型 标识符,标志,段偏移量:这几个字用来对数据 ...

  5. 网络基础tcp/ip协议二

    物理层解析: 物理层是TCP/IP模型的最低层,物理层为数据提供数据传输可靠通路. 物理层关心的介质: 信号 接口 传输介质 信号的分类:(信号是信息传递的媒介.) 模拟信号:连续变化的物理量 数字信 ...

  6. 网络基础tcp/ip协议三

    数据链路层:(位于网络层与物理层之间) 数据链路层的功能: 数据链路的建立,维护. 帧包装,帧传输,帧同步. 帧的差错恢复. 流量的控制. 以太网:(工作在数据链路层) CSMA/CD(带冲突检测的载 ...

  7. 网络基础tcp/ip协议五

    传输层的作用: ip层提供点到点的链接. 传输层提供端到端的链接. 传输层的协议: TCP: 传输控制协议可靠的,面向链接的协议,传输效率低. UDP: 用户数据报协议,不可靠,无连接的服务,传输效率 ...

  8. Android网络编程系列 一 TCP/IP协议族

    在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...

  9. TCP/IP协议簇分层详解---转

    http://blog.csdn.net/hankscpp/article/details/8611229 一. TCP/IP 和 ISO/OSI ISO/OSI模型,即开放式通信系统互联参考模型(O ...

随机推荐

  1. 让你的动画不再生硬 Android插值器Interpolator使用秘籍

    有木有厌烦生硬的动画效果,想不想让你的动画变得圆滑且 欢迎收看本期的走进科学... 停,停,别打了,(.﹏.*) 我错了-- 我们要达到的效果: 先来回顾一下普通动画的用法吧. * 缩放动画 Scal ...

  2. 配置hadoop-1.2.1 eclipse开发环境

    写这篇文章的目的是记录解决配置过程中的问题 首先我们先看下这篇博文 配置hadoop-1.2.1 eclipse开发环境 但是在[修改 Hadoop 源码]这里,作者发布的 hadoop-core-1 ...

  3. PDA(Windows Mobile)调用远程WebService

    之前用模拟器测试过调用远程的WebService,发现总是提示"无法连接到远程服务器"的错误,不管是Windows Mobile6.0 还是6.5都是一样,按照网上的办法,改注册表 ...

  4. 标准会话对象——StandardSession

    Tomcat使用了一个StandardSession对象用来表示标准的会话结构,用来封装需要存储的状态信息.标准会话对象StandardSession实现了Session.Serializable.H ...

  5. unity 球体表面平均分割点

    之前看了别人的一份源码,讲到了球体表面平均分割点,于是也好奇去查了一下算法,自己写不出来,借用算法在unity写了一个小demo using UnityEngine; using System.Col ...

  6. ERP-非财务人员的财务培训教(二)------如何评价公司/部门经营业绩

    一.财务比率分析 第一节  流动性比率 第二节  经营比率 第三节  资本结构比率 第四节  获利能力比率 第五节  现金流量比率 第六节  获现能力比率 二.财务比率金字塔 第二部分   如何评价公 ...

  7. Android Camera开发系列(下)——自定义Camera实现拍照查看图片等功能

    Android Camera开发系列(下)--自定义Camera实现拍照查看图片等功能 Android Camera开发系列(上)--Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片 上 ...

  8. JDBC详解(汇总)

    from:http://www.cnblogs.com/lee/archive/2007/08/25/869656.html:http://blog.csdn.net/lovesomnus/artic ...

  9. CSS基础:层叠顺序和层叠上下文

    简介 在考虑到两个元素可能重叠的情况下,层叠顺序决定了那个元素在前面,那个元素在后面,这是针对普通元素而言.而层叠上下文和块级格式化上下文 (BFC) 一样,基本上也是由一些 CSS 属性创建的,它单 ...

  10. azkaban报错记录

    问题信息:Failed to build job executor for job o2o_get_file_ftp1Job type 'command ' is unrecognized. Coul ...