【基本网络概念之二】网络的分层

网络的分层

  网络通信的不同方面被分解为多个层。每个层表示为物理硬件(即线缆与电流)与所传输信息之间的不同抽象层次。在理论上,每一层只与紧挨其上和其下的层对话。将网络分层,这样就可以修改甚至替换某一层的软件,只要层与层之间的接口保持不变,就不会影响其他层。
  有几种不同的分层模型,分别适合特定类型网络的需要。Internet标准TCP/IP四层模型,应用层,传输层(TCP,UDP),网际层(IP),主机网络层(以太网,wifi,LTE等)。
  主机网络层是最复杂的,特意隐藏了很多细节。90%的java代码都将在应用层工作,只需与传输层对话。其他10%的时间会在传输层处理,与应用层或网际层对话。主机网络层的复杂性对你是隐藏的,这是分层模型的关键。

主机网络层

  在基于IP的Internet(java唯一真正理解的网络)的标准参考模型中,网络中隐藏的部分属于主机网络层(host-to-work layer,也称为链路层、数据链路层或网络接口层)。主机网络层定义了一个特定的网络接口(如以太网卡或wifi天线)如何通过物理连接向本地网络或世界其他地方发送IP数据报。
  主机网络层中,由连接不同计算机的硬件(线缆、光纤电缆、无线电波或烟信号)组成的部分有时称为网络的物理层。
  需要考虑主机网络层和物理层的主要原因是性能。不过,不论你遇到哪一种的物理链路,在这些网络上用来完成通信的API都是一样的。之所以能狗做到这一点,就是因为网际层。

网际层(网络层)

  网络层协议定义了数据位和字节如何组织为更大的分组,称为包,还定义了寻址机制,不同计算机要按这个寻址机制查找对方。网际协议(IP)世界上使用最广泛的网络层协议,也是java唯一理解的网络层协议。
  实际上,这是两个协议:IPv4和IPv6,IPv4使用32位地址,IPv6使用128位地址,另外还增加了一些技术特性来帮助完成路由。这是两个完全不同的网络协议,如果没有特殊的网关和/或隧道协议,即使在相同的网络上它们也无法做到相互操作,不过java几乎对你隐藏了所有这些区别。
  在IPv4和IPv6中,数据按包在网际层上传输,这些包称为数据报(datagram)。每个IPv4数据报包含一个长度为20至60字节的首部,以及一个包含多达65515字节数据的有效载荷(payload)。
  除了路由和寻址,网际层的第二个作用是支持不同类型的主机网络层相互对话。Internet路由器会完成wifi和Ethern、Ethernet和DSL、DSL和光纤往返等协议之间的转换。如果没有网际层或类似的分层,则每个计算机只能与同一类网络上的其他计算机对话。网际层负责使用同构协议将衣钩网络相互连接。

传输层

  原始数据报有一些缺点。最显著的缺点是不能保证可靠传送,即使能传送也可能在传输中遭到破坏。首部校检和只能检测首部中的破坏情况,而不能检测数据报中的数据部分。最后,即使数据报能到达目的地而未被破坏,也不一定会以发送时的顺序到达,各个数据报可能会经过不同路由从源到达目的地。
  传输层(transport layer)负责保证各包以发送的顺序接收,并保证没有数据丢失或被破坏。如果丢包,传输层会请求发送方重传这个包。为实现这个目标,IP网络会给每个数据报添加一个附加首部,其中包含更多信息。这一层上主要两个协议。
  第一个是传输控制协议(Transmission Control Protocol,TCP),这是一个开销很高的协议,支持对丢失或破坏的数据进行重传,并按照发送时的顺序进行传送。
  第二个协议是用户数据报协议(User Datagram Protocol,UDP),它允许接收方检测被破坏的包,但不保证这些包以正确的顺序传送(或者包有可能根本未传送)。但是,UDP通常比TCP快。TCP称为可靠的协议;UDP称为不可靠的协议。

应用层

  向用户传送数据的层称为应用层(application layer)。它的下面三层共同定义了数据如何从一台计算机传输到另一台计算机。应用层确定了数据传输后的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值