一个、通过网络发送数据,大致能够分为面向有连接与面向无连接两种类型:
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. Android studio 中国的垃圾问题解决

    为了获得良好的刚安装Android studio, 实例importproject时刻,你会发现很多中国的文件夹显示异常.例如下面的附图: 为什么会出现这个问题呢,事实上原因非常easy,由于Andr ...

  2. 面向对象的软件project——面向对象分析

    为了解决软件危机.一些IT前辈国产软件project这个词汇,软件project它被引入到整个软件开发过程的维护. 软件project从程序的设计角度能够分为两类.一类是面向结构的软件project. ...

  3. Android 设计模式Template Method模式

    自定义模板方法模式:定义的算法的骨架中的方法,虽然某些步骤推迟到子类中,下模板方法允许子类不能改变在的情况下,该算法的结构.算法重新定义某些步骤. 设计原则:不要给我们打电话.我会打电话给你.(像猎头 ...

  4. Android使用SVG矢量创建很酷的动态效率!

    尊重原创,欢迎转载.转载请注明: FROM  GA_studio   http://blog.csdn.net/tianjian4592 一个真正酷炫的动效往往让人虎躯一震,话不多说.咱们先瞅瞅效果: ...

  5. LinkedBlockingQueue的put,add跟offer的区别(转)

    LinkedBlockingQueue的put,add和offer的区别 最近在学习<<Java并发编程实践>>,有很多java.util.concurrent包下的新类.Li ...

  6. 例如找出令人信服的权威C++中间malloc与new

    例如找出令人信服的权威C++中间malloc与new 问题: 非常多人都知道malloc与new都是用来申请空间用的,开辟空间来源于堆中. 可是在C++中却非常少用malloc去申请空间,为什么? 以 ...

  7. HDoj-1879-畅通project-并查集

    继续畅通project Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  8. Git是个好工具(转)

    Git是分布式版本控制系统,我们常用的版本控制工具还有SVN.这里就得区分下什么是分布式版本控制系统,什么是集中化的版本控制系统. 集中化的版本控制系统 集中化的版本控制系统( Centralized ...

  9. 彩色图像--色彩空间 HSI(HSL)、HSV(HSB)

    得知DIP文章66日 转载请注明文章出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管.欢迎共同开发:https://g ...

  10. Spring.NET程序

    第一个Spring.NET程序   Spring.NET环境准备 pring.NET 1.3.2下载地址:http://down.51cto.com/data/861700 下载后解压 Spring. ...