简介

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群英传笔记——第十章:Android性能优化

    Android群英传笔记--第十章:Android性能优化 随着Android应用增多,功能越来越复杂,布局也越来越丰富了,而这些也成为了阻碍一个应用流畅运行,因此,对复杂的功能进行性能优化是创造高质 ...

  2. Java开发机器上的配置及zookeeper配置

    Java开发机器上的配置及zookeeper配置 /etc/profile 文件的后面加入下面的内容: # jdk, zookeeper, kafka, ant, maven export APACH ...

  3. Oracle Global Finanicals Technical Reference(一)

    Skip Headers Oracle Global Finanicals Oracle Global Financials Technical Reference Manual Release 11 ...

  4. C语言笔试经典--求分数数列的和

    题目: 求数组的和    2   3/2   5/3   8/5  13/8   21/13  ...    求前20项的和 //求分数数列的和 #include<stdio.h> // ...

  5. Linux文件系统及常用命令

    Linux文件系统介绍: 一 .Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上.目录提供了管理文件的一个方便而有效的途径. Linux使用树状目录结 ...

  6. C# /VB.NET 插入、修改、删除Word批注

    批注内容可以是对某段文字或内容的注释,也可以是对文段中心思想的概括提要,或者是对文章内容的评判.疑问,以及在阅读时给自己或他人起到提示作用.本篇文章中将介绍如何在C#中操作Word批注,主要包含以下要 ...

  7. Android布局优化:include 、merge、ViewStub的详细总结

    版权声明:本文出自汪磊的博客,未经作者允许禁止转载. 本篇博客主要是对上篇博客的补充Android性能优化之UI渲染性能优化, 没有什么新东西,觉得应该是都掌握的玩意,写出来也只是自己做个小小的总结. ...

  8. 服务端搭建——腾讯云通信(IM)

    前言 在手机app中因为需要即时聊天功能,在项目采用腾讯云通信服务.如下流程图: 当手机端拿到签名后,就可登录IM,使用im提供的sdk收发信息. 准备工作 1.在腾讯云注册获取appid 2.申请开 ...

  9. get请求URL的转码

    String name = new String(json.getString("name").getBytes("iso8859-1"),"UTF- ...

  10. 使用AngularJS开发中的几个问题

    1.AngularJS的模板绑定机制好像和其$http服务也有一定关系,如果用jQuery Ajax的返回值赋给$scope的作用域变量,整个绑定显示的节奏慢一个事件,神器果然麻烦啊. 2.对hidd ...