网络运输层简介以及它与网络层关系

3.1 Introduction and Transport-Layer Service

传输层协议在运行于不同计算机上的应用进程之间提供logical communication,逻辑通信的意义是指,从应用的角度,好像运行于各种计算机上的进程是直接连接的,事实上,在计算机的角度却大相径庭,它们得通过很多路由和各种线路连接,应用进程利用传输层所提供的logical communication服务来发送messages,而不用担心这些message在物理层基础设施的传输细节

上图我们看到,传输层协议在终端系统实施而不是在网络路由,在发送方,传输层把它从应用进程那里收到的应用程message转化成传输层packet,称为segments,这种转化是将message分成许多小的块并在每块的前边加上传输层header成为传输层segment,然后传输层会把这个segment传输给发送方的网络层,在那里segment被封装入网络层packet(datagram)并发送给目标,重点指出网络路由器只在网络层datagram传输中涉及,也就是说它们不涉及segment被封装为datagram的阶段,在接收方,网络层从datagram中提取出segment然后向上传输给传输层,传输层处理收到的segment,让接收方应用获得segment中的数据

3.1.1 Relationship Between Transport and Network Layers

在协议栈中传输层就是网络层的上一层,传输层协议是在不同主机的进程间提供逻辑通信,网络层协议是在主机间提供逻辑通信

有个很好的例子来说明网络层和传输层的关系,东西海岸各有一个房子,每个房子里各有12个小朋友,他们每周都要给彼此写一封信(总共144篇),然后在这两边的12个孩子(cousins)中都分别有个孩子(Ann and Bill)负责收集信件交给邮差和从邮差那里收到信件并分发给其他孩子,

这个例子中,邮递服务提供了两个房子间的逻辑通信——从一个房子到另一个房子,不是从一个人到另一个人,另一方面,那两个负责收集分发的孩子提供了孩子间的逻辑通信,从孩子们的角度,那两个孩子就是mail service,即使这两个孩子仅仅是这个端对端传输进程中的一部分,这个例子中:

application messages = letters in envelopes

processes = consins

housts = houses

transport layer protocol = Ann and Bill

network-layer protocol = postal service

沿着这个例子继续,我们知道Ann和Bill只是在各自的家里工作,一样的,传输层协议在终端中,把message从应用进程送到network edge(就是网络层),反过来也如此,但是它并不涉及message是怎么在网络核心传送的,如上图中,中间的路由器不会受到传输层加在message上的信息的影响

假设现在Ann和Biill去度假,Susan和Harvey来替代他们,然而不幸的是他们两个不再固定的日期进行收发,不频繁而且经常丢信件, 因此这两个人和Ann和Bill提供的服务是不一样的,做个类比,计算机也会有不同的传输层协议,每个协议大概会提供给应用不同的服务

像Ann和Bill的服务会受到邮差的影响一样,传输层的服务也会受到网路层的影响, 如果网络层不能在主机间提供带宽和延迟保证,那么传输层也就无法在进程间提供这种保证,但是网络层协议不提供的服务有时传输层也可以提供,例如,即使下层的网络层不能提供可靠地数据传输,上层的传输层也可以提供这种服务,也就是说即使网络层协议丢失,篡改或者复制了packet,另一个例子,传输层协议可以通过加密保证应用消息不被入侵者读到,即使网络层不能给传输层segment提供这种保障

3.1.2 Overview of the Transport Layer in the Internet

回想下互联网,或者更通常的说TCP/IP网络,为应用层提供两个截然不同的传输层协议,UDP和TCP,当开发网络应用的时候,开发者必须得在其中选择,在2.7节我们看到,当创建sockets的时候开发者需要在其中选择

在TCP和UDP的简介之前,来说一点网络层的东西是很有用的,互联网的网络层协议叫做IP(Internet Protocol),IP提供计算机间的逻辑通信,IP服务模型是一个best-effort delivery service,就是说IP会尽最大努力来在计算机之间传输segments,不会保证segments的有序传递,也不能保证segment中数据的完整性,所以是被称为unreliable service,每个host至少有一个网络层地址,所谓的IP,

简要的说完IP之后我们来说UDP和TCP,它们最基本的职责就是把IP提供的终端系统之间的通信扩展到运行于终端系统上的进程之间的通信,把host-to-host传输扩展为process-to-process传输被称为传输层复用和分用,UDP和TCP还通过在segment header包含error detection fields来提供完整性检查,这两个最小的服务——process-to-process数据传输和错误检查是UDP唯二提供的服务, IP和UDP都是unreliable service

TCP为应用提供些其他的服务,首先是reliable data transfer,用flow control,sequence number,acknowledgements,timers等技术,TCP保证在进程间的传输是有序的,TCP因此把IP的不可靠的终端系统间的服务变成可靠的进程间的服务,TCP还提供congestion control,这个服务通常是提供给Internet多一些而不是给应用,笼统的讲,TCP congestion control让所有的TCP连接都不会因为过大的流量淹没正在交流的计算机间的链接的路由,TCP努力让每个连接能平等的享有带宽,通过控制发送端能发送到网络中的速率来控制,而UDP就是无调节的,使用UDP协议的应用可以用它开心的速率发送它开心的时间

时间: 2024-10-09 20:26:15

网络运输层简介以及它与网络层关系的相关文章

Docker原生网络技术简介

Docker原生网络技术简介 默认网络 在宿主机部署好Docker Engine后会默认创建三种网络:Bridge.Host和None,如下: docker network ls NETWORK ID NAME DRIVER SCOPE 93dab79cdb5a bridge bridge local c920c9c10e62 host host local d2a11ea1c70a none null local Bridge 默认的Bridge网络是我们比较熟悉的docker0,它在安装完E

OSI七层和TCP/IP五层网络架构简介

OSI七层和TCP/IP五层网络架构简介 一.基本概念 OSI是Open System Interconnect的缩写,意为开放式系统互联. ARP(Address Resolution Protocol),地址解析协议. RARP(Reverse Address Resolution Protocol),反向地址转换协议. IP(Internet Protocol),网络之间互连的协议. ICMP(Internet Control Message Protocol),Internet控制报文协

计算机网络起源 网络发展简介(一)

“上网”这个有些口语化的词汇,想必没人会觉得陌生,可是“网”到底是什么? 互联网概念   截图自百度百科:https://baike.baidu.com/item/%E4%BA%92%E8%81%94%E7%BD%91/199186 互联网发展编年史 互联网发展史是从20世纪50年代到90年代,按编年体的形式,详细历数了互联网一步步走向成熟的发展过程,由美国国防部编制. 百度百科链接: https://baike.baidu.com/item/%E4%BA%92%E8%81%94%E7%BD%9

Android网络通讯简介

网络通信应该包含三部分的内容:发送方.接收方.协议栈.发送方和接收方是参与通信的主体,协议栈是发送方和接收方进行通信的契约.按照服务类型,网络通信可分为面向连接和无连接的方式.面向连接是在通信前建立通信链路,而通信结束后释放该链路.无连接的方式则不需要在通信前建立通信连接,这种方式不保证传输的质量. Android提供了多种网络通信的方式,如Java中提供的网络编程,在Android中都提供了支持.Android中常用的网络编程方式如下: 针对TCP/IP协议的Socket和ServerSock

java整型数与网络字节序的 byte[] 数组转换关系

java整型数与网络字节序的 byte[] 数组转换关系 工作项目需要在java和c/c++之间进行socket通信,socket通信是以字节流或者字节包进行的,socket发送方须将数据转换为字节流或者字节包,而接收方则将字节流和字节包再转换回相应的数据类型.如果发送方和接收方都是同种语言,则一般只涉及到字节序的调整.而对于java和c/c++的通信,则情况就要复杂一些,主要是因为java中没有unsigned类型,并且java和c在某些数据类型上的长度不一致. 本文就是针对这种情况,整理了j

HelloX操作系统网络功能简介及使用和开发指南

HelloX网络功能简介及使用和开发指南 HelloX网络功能简介 作为物联网操作系统,网络功能是必备的核心功能之一.按照规划,HelloX实现了两个不同类型的TCP/IP协议栈,一个面向资源受限的嵌入式应用,移植了业界成熟使用的lwIP协议栈.该协议栈简洁明了,功能相对简单,同时专门面向嵌入式领域进行设计和优化,对硬件资源要求很低.另外一个协议栈来自BSD操作系统的协议栈,面向复杂的网络功能丰富的应用场景,比如家庭网关,物联网网关等.为了适应HelloX本身的机制,对BSD协议栈做了一些更改和

ADFS 2.0 配置简介 PartⅡ – 配置 ADFS 信任关系

ADFS 与应用程序间的各种验证是基于信任关系的,在 ADFS 服务器配置好要信赖的应用程序(以 URL 为标识)后,应用程序再通过指定认证服务器来将用户引导至 ADFS 登录页,登录完成后再将用户的信息使用 Cookie 加密发送到应用程序完成验证. 我们来配置一个应用程序试试,为了方便就使用 ASP.NET MVC 吧. 一 .配置应用程序 建立 ASP.NET MVC 应用程序,一路默认. 安装一个 Visual Studio 扩展插件,能帮助我们省很多功夫,如果你不想太深入ADFS配置文

专题一:网络协议简介

一.网络分层 网络上的计算机之所以可以互相通信,是因为它们之间都遵守互相都可以“认识”的互联网协议(就如同人交流一样,两个人能够交流,互相必须知道对象的语言),互联网上的计算机互相通信又归根于网络中层与层之间的通信,OSI模型把网络通信分成七层:物理层.数据链路层.网络层.传输层.会话层.表示层和应用层,对于开发网络应用人员来说,一般把网络分成五层,这样比较容易理解.这五层为:物理层.数据链路层.网络层.传输层和应用层(最顶层),下面是一张网络分层的图片(来源于网络): 二.各层的协议 网络中的

常见网络协议简介

IPv4 网际协议版本4(Internet Protocol version 4).自20世纪80年代早期以来一直是网际协议簇的主力协议.它使用32位地址.IPv4给TCP.UDP.SCTP.ICMP和IGMP提供分组递送服务. IPv6 网际协议版本6(Internet Protocol version 6).自20世纪90年代中期作为IPv4的一个替代品设计的.其主要变化是使用128位更大的地址以应对因特网的爆发性增长.IPv6给TCP.UDP.SCTP和ICMPv6提供分组递送服务. TC