网上浏览视频,听歌,聊天,计算机是怎么在“你”、“我”之间传送数据?

一、什么是TCP/IP协议?

  首先我们看下什么是协议协议(Protocol)是为进行网络中的数据交换而建立的规则、标准或约定。用于不同系统中实体间的通信。两个实体要想通信,必须有同一种语言,而且,对于通信内容,怎样通信和何时通信,都必须遵守一定的规定,这些规定就是协议
  在互联网通信中,最重要和著名的就是TCP、IP两个协议,但是我们现在常说的TCP/IP协议并不是单指着两种协议,而是整个TCP/IP协议族

二、计算机网络体系结构

  既然有了协议,那么协议作用的实体是什么呢? 换言之网络中通信的实体各不相同,应该怎样各司其职?答案就是把现有网络体系抽象,划分为不同层,每一层各自遵循相应的网络协议,完成相应的功能。
  就好比一个互联网公司划分了技术部、产品部、运营部、市场部、人力资源部等,各部门既相互协作各司其职,更好的完成完成公司的各项任务。
  现有计算机网络体系结构有三种划分形式:OSI七层协议、TCP/IP四层协议结构、五层协议结构

   OSI的七层协议体系结构概念清楚,理论也比较完整,但是它太复杂而且不实用。TCP/IP体系结构已经得到了非常广泛使用,但是其中网际接口层与数据链路层、物理层并没有什么区别,所以,现在计算机网络理论采取了折中方案,这也就是五层协议体系。

三、每层的作用

   到这里,我们已经清楚了网络的分层结构,那么每一层各自的职责和使用的协议是什么呢?

1)应用层

   应用层协议定义的是应用进程间通信和交互的规则。进程就是主机上正在运行的程序。比如我们电脑上开着的QQ、微信等。不同的网络应用需要有不同的应用层协议,比如浏览器使用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等等。应用层交互的数据单元成为报文(message)。

2)运输层

   运输层的任务就是负责向两个主机中进程之间的通信提供通用的数据传输服务。应用层进程产生的报文就是使用运输层进行传输。运输层是通用的,它不针对某个特定的网络应用。多种应用是可以同时使用同一个运输层。一台电脑上可以同时运行着多个进程,多个应用层进程可以同时使用同一个运输层发送数据,同时,运输层可以把收到的信息分别交付给上面应用层进程。
   运输层主要使用的协议是TCPUDP:

  • 传输控制协议TCP(Transmission Control Protocol)—提供面向连接的,可靠的数据传输服务,数据运输单元是报文段
  • 用户数据报协议UDP(User Datagram Protocol)—提供无连接的、尽最大努力的数据传输服务,不保证数据传输的可靠性,数传输单位是用户数据报

   那么什么时候使用TCP,什么时候使用UDP呢?我们先看下使用TCP和UDP的各种应用和应用协议:

应用 应用层协议 运输层协议
域名转换 DNS(域名系统) UDP
文件传送 FTP(文件传送协议) TCP
路由选择协议 RIP(路由信息协议) UDP
IP地址配置 DHCP(动态主机配置协议)  UDP
网络管理 SNMP(简单网络管理协议) UDP
远程网络文件服务器 NFS(网络文件协议) UDP
流式多媒体通信 专用协议 UDP
远程终端接入 TELNET(远程终端协议) TCP

万维网

HTTP(超文本协议) 

TCP

电子邮件 SMTP(简单邮件传送协议) TCP

   UDP在传送数据之前不需要先建立连接,目的主机在收到UDP报文后,不需要给出任何确认。发送数据结束时也没有任何连接可释放,因此UDP减少了开销和发送数据之前的时延。主机间不需要维持复杂的状态连接。
   同时UDP对应用程序交下来的报文,不做拆分,也不做合并,应用层交下来的报文多长,UDP加上必要的控制信息后就交付下一层。UDP也没有拥塞控制,网络拥塞不会使源主机发送速率降低。综合来看,UDP适合实时性要求很高的应用,比如视频通话,语音通话等。

  TCP则是面向连接的,TCP建立连接时需要三次握手,断开时需要四次挥手,TCP保证数据的可靠性,保证数据的无差错、不丢失、不重复,按顺序到达。应用层和TCP交互的是一次一个数据块,TCP把应用程序交下来的数据块分割成了字节序列包装成报文段。

  运输层还有一个重要的概念—端口(port),因为主机上的进程都是动态创建和撤销的,把进程作为通信的最后终点是不可行的,所以要使用端口标识一个进程来进行通信。无论是TCP还是UDP,在它们的首部中都会有源端口目的端口这两个字段。比如我们熟悉的HTTP应用使用的80端口,FTP使用的21端口,TELNET使用的23端口,SMTP使用的25端口等等。

3)网络层

   网络层把运输层产生的报文段用户数据报封装成IP数据报(packet)进行传送。同时还负责选择合适的路由,使源主机运输层所传下来报文段或包能通过网络中的路由器找到目的主机。
   网络层向上提供的是简单灵活的、无连接的、不可靠数据交付。也即是说在网络上传递会有丢失、出错、重复和顺序错乱。这也就是我们常说的网络丢包

   网络层使用了我们熟悉的IP协议源主机目的主机IP地址被封装到IP首部内。

4)数据链路层

   数据链路层把网络交下来的IP数据报组装成,然后在两个相邻节点的链路上传送。通常称为MAC帧,因为帧在传送时使用的源地址目的地址都是计算机硬件地址,封装在帧首部信息里。

5)物理层

  物理层将数据链路层交下来的的,按照比特流进行传送,也即是二进制0和1形式进行传送。

  所以总结起来,计算机之间的数据传输就是数据通过各层之间的封装与解封装过程。就好比有一封信从最高层(源主机)向下传,每经过一层就包上一个新的信封,信封上写好必要的,下一层要处理的信息(首部、尾部等)。包着多个信封的信件到达目的地(目标主机)之后,从第1层起,每层拆开一个信封后(按照固定协议协议),交给它的上一层。传到最高层(应用层)后,取件人(进程)最终取出信,读取内容。

————————————————
原文链接

计算机网络体系结构划分相关推荐

  1. 计算机网络入门指南之计算机网络体系结构

    一.计算机网络入门指南之计算机网络体系结构 1.1 计算机网络体系结构形成的原因: 计算机网络是个复杂的系统,现举一个最简单的计算机网络应用例子:两个连接在网络上的计算机要传送文件,首先要在两个计算机 ...

  2. 计算机网络构成ppt,计算机网络体系结构ppt课件.ppt

    文档介绍: 船舶局域网技术及应用王宁轮机工程学院船电教研室HP:**********E-mail:n.wang.***@2011年9月N.Wang09/2011*第3章计算机网络体系结构N.Wang0 ...

  3. 计算机网络体系结构最有影响的标准,浅谈计算机网络中的体系结构

    夏杰 [摘 要]计算机网络是由各类具有独立功能的计算机系统和终端通过通信线路连接起来的复杂系统,网络中各计算机必须遵从通信规定才能相互协调工作.为了设计这样复杂的系统,网络工作者提出了分层实现计算机网 ...

  4. 计算机网络体系结构物流层,计算机网络体系结构58029.ppt

    计算机网络体系结构58029 第3章 计算机网络体系结构 本章内容 层次化的网络体系结构 开放系统互联参考模型(OSI/RM) TCP/IP体系结构 OSI和TCP/IP的主要层次功能 应用层 传输层 ...

  5. 计算机网络 第一章 计算机网络体系结构

    众所周知,第一章一般是作为绪论,整本书的知识点基本都点一下,但是却不会深入,这一章的知识主要是作为引入的角色. 1.1 计算机网络概述 所谓计算机,就是一些互联的.自治的计算机系统的集合.其定义主要有 ...

  6. 王道考研计算机网络学习心得——第一章-计算机网络体系结构

    ​ 前言   本文主要是我学习计网的心得,用王道考研的原因主要是因为,又有老师教又有直接的资料书,个人觉得方便一点,不用到处找网课,也不用想到底看哪本书好,等这一轮学完了再看别的书,想必也能得心应手一 ...

  7. 计算机网络学习笔记-计算机网络体系结构-分层思想以及必要性

    文章目录 前言 一.常见的计算机网络体系结构 二.计算机网络体系结构分层的必要性 三.计算机网络体系结构分层思想举例 总结 前言 如果你是计算机专业相关学生,你一定听过OSI模型,它可能无数次让你奔溃 ...

  8. 计算机网络体系结构(王道视频笔记)

    第一章 计算机网络体系结构 文章目录 第一章 计算机网络体系结构 前言 1.1.1 概念和功能 计算机网络的功能 计算机网络的发展 -- 第一阶段 计算机网络发展的第二阶段 -- 三级结构 第三阶段 ...

  9. 计算机网络结构ppt课件,第三章计算机网络体系结构ppt课件.ppt

    <第三章计算机网络体系结构ppt课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<第三章计算机网络体系结构ppt课件.ppt>文档请在天天文库 ...

最新文章

  1. js在PageOffice打开的Word文档光标处插入书签
  2. Debian 6 7 8 utc时间设置
  3. Power Shell03 在PowerShell 3.0重新启动计算机指令
  4. IIS调用批处理权限的处理
  5. Linux下PCI设备驱动程序开发[转]
  6. Linux编程中 #define _XOPEN_SOURCE的作用
  7. 题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
  8. 深度学习软件资源列表
  9. 阿里云服务器CPU100%问题
  10. Java反编译工具,你知道几个?
  11. Spring动态代理的两种方式
  12. 【毕业季】总结过去,展望未来
  13. java 工具类_16 个有用的的Java工具类(小结)
  14. 2.1、函数的返回值
  15. LeetCode:387.字符串中的第一个唯一字符
  16. 关于Handle的一些介绍
  17. 应用导航通用术语珍藏版
  18. Xiaojie雷达之路---雷达原理(二刷)脉冲法测距
  19. 十五分钟逻辑学系列之二——逻辑思维的基本规律
  20. java 环形矩阵_java下蛇形回环矩阵的实现

热门文章

  1. FROM_UNIXTIME()函数UNIX_TIMESTAMP()函数
  2. Process finished with exit code 135 (interrupted by signal 7: SIGEMT)
  3. bat批处理开发-wifi联网系列(3):查询当前连接的wifi SSID和密码,封装为bat函数(如何传递入参和返回出参)
  4. 工地人员定位原理又是什么--新导智能
  5. 手把手教你使用热敏电阻NTC,产品级精度±0.1℃以内,简单明了,内附源码详解,方便移植
  6. 淘宝店铺如何做补单计划?
  7. 操作系统学习(第一章————第二章)
  8. 如何学习页面重构/对页面重构理解
  9. ajax 用js直接访问服务器的一个例子
  10. 【大数据存储技术】思考题及参考答案