浅谈通信网络(三)——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(交换机)通信。
网络协议族不再累述。
(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协议的更多相关文章
- JAVA基础知识之网络编程——-TCP/IP协议,socket通信,服务器客户端通信demo
OSI模型分层 OSI模型是指国际标准化组织(ISO)提出的开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它将网络分为七 ...
- 网络基础tcp/ip协议一
计算机网络: 硬件方面:通过线缆将网络设备和计算机连接起来 软件方面:操作系统,应用软件,应用程序通过通信线路互连 实现资源共享,信息传递 计算机网络的功能: 数据通信 资源共享 增加可靠性 提高系统 ...
- 小dai浅谈通信网络(一)——引子
说起通信网络,首先来看一个场景: 场景模式: 小明和小刚在闹市碰面. 小明对小刚大声喊道:"小刚,你好啊!" 小刚摇手答到:"你好,小明!" 就这么几句简单的话 ...
- 网络基础tcp/ip协议四
网络层的功能: 定义了基于ip协议的逻辑地址. 链接不同的媒介类型. 选择数据通过网络的最佳路劲. 数据包格式: 优先级与服务类型(8)位:优先级与服务类型 标识符,标志,段偏移量:这几个字用来对数据 ...
- 网络基础tcp/ip协议二
物理层解析: 物理层是TCP/IP模型的最低层,物理层为数据提供数据传输可靠通路. 物理层关心的介质: 信号 接口 传输介质 信号的分类:(信号是信息传递的媒介.) 模拟信号:连续变化的物理量 数字信 ...
- 网络基础tcp/ip协议三
数据链路层:(位于网络层与物理层之间) 数据链路层的功能: 数据链路的建立,维护. 帧包装,帧传输,帧同步. 帧的差错恢复. 流量的控制. 以太网:(工作在数据链路层) CSMA/CD(带冲突检测的载 ...
- 网络基础tcp/ip协议五
传输层的作用: ip层提供点到点的链接. 传输层提供端到端的链接. 传输层的协议: TCP: 传输控制协议可靠的,面向链接的协议,传输效率低. UDP: 用户数据报协议,不可靠,无连接的服务,传输效率 ...
- Android网络编程系列 一 TCP/IP协议族
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...
- TCP/IP协议簇分层详解---转
http://blog.csdn.net/hankscpp/article/details/8611229 一. TCP/IP 和 ISO/OSI ISO/OSI模型,即开放式通信系统互联参考模型(O ...
随机推荐
- of这个变态
英式口语还能听懂,一到美式,连读,爆破,就让人疯掉. 尤其big bang theory, of就是个变态,其读法有,英[əv, əv, v, f] 美[əv, ɑv,əv].但大部分都是/əv/. ...
- Leetcode_75_Sort Colors
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43302343 Given an array with n ...
- 新IO建立的聊天程序
服务端: package com.net.scday3; import java.io.IOException; import java.net.InetSocketAddress; import j ...
- Linux下xargs命令详解
http://www.cnblogs.com/perfy/archive/2012/07/24/2606101.html xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数 ...
- 使用JCrop进行图片裁剪,裁剪js说明,裁剪预览,裁剪上传,裁剪设计的图片处理的工具类和代码
1.要想制作图片裁剪功能,可以使用网上的裁剪工具JCrop,网址是:https://github.com/tapmodo/Jcrop/ 案例效果如下: 2.引入JCrop的js代码,具体要引入那 ...
- ra_interface_lines_all 接口表各字段说明
note:Description and Usage of Fields in RA_INTERFACE_LINES Table [ID 1195997.1] 核心内容: Field Name and ...
- 曾经进公司面试的C语言有关指针和数组的笔试题
原题如下: #include <stdio.h> int main(void) { int i , j ; unsigned int Array_A[32]; unsigned int * ...
- Gradle 1.12用户指南翻译——第三十四章. JaCoCo 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- 深入Lucene索引机制
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙. 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程, ...
- Github搜索技巧-如何使用github找到自己感兴趣的项目
Github现在不仅仅作为一个版本控制工具,更是一个开源的仓库,里面不但有优秀的开源代码,电子书,还有一些五花八门的项目,有些国家的法律也放在上面,作为程序员如何找到自己感兴趣的项目就非常重要了! 欢 ...