简介

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. 纯命令提交代码到git仓库(教你怎么装逼)

    如果不喜欢用命令的请点链接:http://blog.csdn.net/xiangzhihong8/article/details/50715427 我这里用纯命令,主要是因为这两天不知道什么原因,ba ...

  2. STL的容器算法迭代器的设计理念

    1) STL的容器通过类模板技术,实现数据类型和容器模型的分离. 2) STL的迭代器技术实现了遍历容器的统一方法:也为STL的算法提供了统一性. 3) STL的函数对象实现了自定义数据类型的算法运算 ...

  3. 总账追朔各模块SQL

    SELECT gjh.set_of_books_id, gjl.je_line_num, mta.organization_id, ood.organization_code, ood.organiz ...

  4. Java 条形码生成(一维条形码)

    utl:http://mianhuaman.iteye.com/blog/1013945 在这里给大家介绍一个java 生成条形码 jbarcode.jar 生成条形码 支持EAN13, EAN8, ...

  5. ReentrantReadWriteLock读写锁的使用2

    本文可作为传智播客<张孝祥-Java多线程与并发库高级应用>的学习笔记. 这一节我们做一个缓存系统. 在读本节前 请先阅读 ReentrantReadWriteLock读写锁的使用1 第一 ...

  6. "《算法导论》之‘图’":最小生成树(无向图)

    本文主要参考自<算法>. 加权图是一种为每条边关联一个权值或是成本的图模型.这种图能够自然地表示许多应用.在一幅航空图中,边表示航线,权值则可以表示距离或是费用.在一幅电路图中,边表示导线 ...

  7. 第一个Polymer应用 - (3)使用数据绑定

    原文链接: Step 3: Using data binding翻译日期: 2014年7月7日翻译人员: 铁锚我们创建的个人信息卡还算漂亮,但对整个应用来说,只有一张卡片看起来有点空荡荡的感觉.在本节 ...

  8. 海量数据处理 - 10亿个数中找出最大的10000个数(top K问题)

    前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些. 先拿10000个数建堆, ...

  9. C++实现双链表

    #include <iostream> using namespace std ; #define NR(x) (sizeof(x)/sizeof(x[0])) class node { ...

  10. 面试之路(13)-android apk之间共享数据的方式以及shareUserId详解

    1.通过content Provider/sharedPreferrence 2.通过shareUserId 我们详细介绍一下shareUserId: Android App Sandbox(andr ...