一个、通过网络发送数据,大致能够分为面向有连接与面向无连接两种类型:
1.面向无连接型包含以太网、 IP、UDP等协议。

2. 面向有连接 型包含ATM、帧中继、TCP等 协议。
通过一张图了解一下:

  • 面向有连接型

面向有连接型中,在发送数据之前,须要在收发主机之间连接一条通信线路

面向有连接型就好比人们寻常打电话,输入完对方电话号码拨出之后。仅仅有 对端拿起电话才干真正通话,通话结束后将电话机扣上就如同切断电源。因此在 面向有连接的方式下,必须在通信传输前后。专门进行建立和断开连接的处理。

假设与对端之间无法通信,就能够避免发送无谓的数据。

  • 面向无连接型

面向无连接型则不要求建立和断开连接。发送端可于不论什么时候自由发送数据反之。接收端也永远不知道自己会在何时从哪里收到数据。

因此,在面向无连接的情况下,接收端须要时常确认是否收到了数据。

这就如同人们去邮局寄包裹一样。负责处理邮递业务的营业员。不须要确认 收件人的具体地址是否真的存在,也不须要确认收件人能否收到包裹,仅仅要发 件人有一个寄件地址就能够办理邮寄包裹的业务。

面向无连接通信与电话通信不同。它不须要拨打电话、挂掉电话之类的处理。而是全凭发送端自由地发送自己想要传递出去的数据。

因此,在面向无连接的通信中。不须要确认对端是否存在。即使接收端不存在或无法接收数据,发送端也能将数据发送出去。


(原文链接:http://blog.csdn.net/yelangjueqi/article/details/38276203 ,欢迎转载,转载时请注明出处。!

)


二、电路交换与分组交换

眼下,网络通信方式大致分为两种一电路交换和分组交换。电路交换技术的历史相对久远,主要用于过去的电话网。而分组交换技术则是一种较新的通信 方式。从20世纪60年代后半叶才開始逐渐被人们认可。本书着力介绍的TCP/ IP,正是採用了分组交换技术。

在电路交换中,交换机主要负责数据的中转处理。

计算机首先被连接到交换机 上,而交换机与交换机之间则由众多通信线路再继续连接。因此计算机之间在发送 数据时,须要通过交换机与目标主机建立通信电路。我们将连接电路称为建立连 接。建立好连接以后。用户就能够一直使用这条电路,直到该连接被断开为止。

假设某条电路仅仅是用来连接两台计算机的通信线路,就意味着仅仅需在这两台 计算机之间实现通信,因此这两台计算机是能够独占线路进行传输数据的。

可是, 假设一条电路上连接了多台计算机,而这些计算机之间须要相互传递数据。就会 出现新的问题。鉴于一台计算机在收发信息时会独占整个电路。其它计算机仅仅能 等待这台计算机处理结束以后才有机会使用这条电路收发数据。

而且在此过程中谁也无法预測某一台计算机的传输数据从何时開始又在何时结束。假设并发用户数超过交换机之间的通信线路数,就意味着通信根本无法实现。为此。人们想到了一个新的方法,即让连接到通信电路的计算机将所要发送的数据分成多个数据包,依照一定的顺序排列之后分别发送。

这就是分组交换。 有了分组交换,数据被细分后,全部的计算机就能够一齐收发数据,这样也就提高了通信线路的利用率。因为在分组的过程中。已经在每一个分组的首部写入了发 送端和接收端的地址,所以即使同一条线路同一时候为多个用户提供服务,也能够明白区分每一个分组数据发往的目的地。以及它是与哪台计算机进行的通信。


在分组交换中,由分组交换机(路由器)连接通信线路。分组交换的大致处 理过程是:发送端计算机将数据分组发送给路由器,路由器收到这些分组数据以 后。缓存到自己的缓冲区,然后再转发给目标计算机。

因此,分组交换也有还有一 个名称:蓄积交换。

路由器接收到数据以后会依照顺序缓存到对应的队列其中,再以先进先出的 顺序将它们逐一发送出去

在分组交换中。计算机与路由器之间以及路由器与路由器之间通常仅仅有一条通信线路。因此,这条线路事实上是一条共享线路。在电路交换中,计算机之间的传输速度不变。然而在分组交换中,通信线路的速度可能会有所不同。

依据网络拥堵的情况,数据达到目标地址的时间有长有短。另外。路由器的缓存饱和或溢出时。甚至可能会发生分组数据丢失、无法发送到对端的情况。


上图已经展示了电路交换和分组交换的特点。







版权声明:这篇文章的博客(http://blog.csdn.net/yelangjueqi)原创文章。博客,未经同意,不得转载。

本学习笔记TCP/IP传输协议的更多相关文章

  1. Linux学习(1)- TCP/IP网络协议基础

    Linux学习(1)- TCP/IP网络协议基础 一.TCP/IP 简介 学习内容 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输 ...

  2. tcp/ip学习笔记-TCP

    tcp/ip学习笔记-TCP 彭会锋 报文发送采用的是tcp_output函数,

  3. TCP/IP四层协议模型与ISO七层模型

    TCP/IP四层协议模型与ISO七层模型 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他 ...

  4. TCP/IP网络协议基础

    实验楼学习网络协议传送门 一.TCP/IP简介 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电 ...

  5. 对TCP/IP网络协议的深入浅出归纳

    前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...

  6. 转:对TCP/IP网络协议的深入浅出归纳

    转自:http://blog.jobbole.com/74795/ 前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没 ...

  7. 对TCP/IP网络协议的深入浅出归纳(转)

    前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...

  8. TCP/IP网络协议的通俗理解,SOCKET,HTTP,SOAP

    TCP/IP,HTTP,SOAP等协议之区别   术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议.“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络.把IP想 ...

  9. 计算机网络【1】—— OSI七层协议和TCP/IP四层协议

    新开一贴,专门用来记录计算机网络相关知识. 一.OSI七层协议 物理层.数据链路层.网络层.传输层.会话层.表示层.应用层 二.TCP/IP四层协议 网络接口层.网际层.运输层.应用层 三.五层协议 ...

随机推荐

  1. net大型分布式电子商务架构

    net大型分布式电子商务架构 背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维 ...

  2. SAP ABAP 它已被释放TR(或任务),减少的变化TR(任务),删除释放TR(任务)

    有时,我们会遇到将是一个TR以下任务task发布,然后想改变,或不想转移TR. 或想删除已释放TR. 研究发现后面,TR(任务)存储在数据库表汇的相应数据:E070(变化 & 交通系统: 求/ ...

  3. css3 menu 手机菜单3

    首先看一下效果图; 效果1,主要是 scale(0) -->scale(1px);opacity:0;—>opacity: 1; 然后递归延迟 怕麻烦也可以自己写个for循环 .five ...

  4. Struts2详细说明

    最近学习Struts2,阅读一些好的博客.收集有关. 原博文地址:http://blog.csdn.net/zz_mm/article/details/5460397 1.    深入Struts2的 ...

  5. 打包静默安装参数(nsis,msi,InstallShield,InnoSetup)

    原文:打包静默安装参数(nsis,msi,InstallShield,InnoSetup)[转] 有时我们在安装程序的时候,希望是静默安装的,不显示下一步下一步,这编访问来教大家如何来操作,现在常用的 ...

  6. Intent常用使用汇总

    方法一:调用默认的短信程序Intent intent = new Intent(Intent.ACTION_VIEW);intent.setType("vnd.android-dir/mms ...

  7. Qt原始资源形象问题后删除

        这些天Qt请项目超市收银系统,作为练一练手,无论如何,亦休闲亦无关,做几乎同样的.旨在取代以前的资源图片, 是什么改变了,码里面的路径都改了.还是编译只是去,总是提示这样一个错误. <s ...

  8. Learn Python More

    0, 看了一个python项目开源源码, 才知道现在这点python知识实在是弱爆了.. 尼玛就像学了2500个常用汉字, 然后要去理解"楚辞".. 代码如下, 解释一点一点从网上 ...

  9. C++定义自己的命名空间和头文件

    下面的例子演示如何使用一个简单的演示空间和自己的头文件定义.码如下面: compare.h: namespace compare{ double max(const double* data,int ...

  10. Android(Lollipop/5.0) Material Design(六) 使用图像

    Material Design列 Android(Lollipop/5.0)Material Design(一) 简单介绍 Android(Lollipop/5.0)Material Design(二 ...