1.1 网络和网络的分层

2017-01-11  本文已影响0人  GuoYiheng

网络

将数据分成单独的带有地址的包,最重要的优点是:多个将交换的包可以在一条线缆上传输,这使得建立网络的成本更低.

分包还有另一个好处就是可以进行校验,用来检测包在传输中是否遭到破坏.


网络的分层

网络通信不同方面被分解为多个层,在理论上每一层只与紧挨其上和其下的层对话,这样就可以修改甚至替换某一层软件,只要层与层之间的接口保持不变,就不会影响到其它层.
最常见的分层模型将网络分为四层[2] :

name examples
应用层
(ApplicationLayer)
BGP DHCP DNS FTP HTTP IMAP LDAP MGCP NNTP NTP POP ONC/RPC RTP RTSP RIP SIP SMTP SNMP SSH Telnet TLS/SSL ...
传输层
(TransportLayer)
TCP UDP DCCP SCTP RSVP ...
网际层
(InternetLayer)
IP IPv4 IPv6 ICMP ICMPv6 ECN IGMP IPsec ...
链路层
(LinkLayer)
ARP NDP OSPF Tunnels L2TP PPP MAC Ethernet DSL ISDN FDDI ...

链路层

Java程序工作的TCP/IP网络就符合上面的这一模型,其中链路层是最复杂的,但是对Java程序员而言,90%情况下java代码都将在应用层工作,只需要与传输层对话,其他10%的事件会在传输层处理,与应用层或网际层对话,所以这一层我们可以忽略.

网际层

网际层协议定义了数据位和字节如何组织为更大的分组,称为包,还定义了寻址机制[3],不同计算机按照这个寻址机制查找对方.

传输层

该层的协议为应用进程提供端到端的通信服务.它提供面向连接的数据流支持、可靠性流量控制多路复用等服务.这一层Java支持的协议只有TCP和UDP:

Java不允许发送原始IP数据报,只允许发送TCP片或UDP数据报.

UDP通常比TCP快,但是TCP是可靠的协议,UDP是不可靠的协议.

应用层

向用户传输数据的层称为应用层.从链路层到传输层共同定义了数据如何从一台计算机传输到另一台计算机,而应用层确定了数据传输后的操作.常见的应用层协议有:用于Web的HTTP;用于电子邮件的SMTP,POP和IMAP;用于传输文件的FTP,FSP和TFTP;用于文件共享的BitTorrent;等等.


  1. 节点除了地址,还可以用诸如www.jianshu.com等名字来标识.某一时刻一个特定的名字通常就指示一个地址,但是名字并不与地址锁定!一个地址可以有多个名字,一个名字也可以指示多个不同的地址.

  2. 还有一个称为开放系统互联参考模型(OSI:Open System Interconnection Reference Model)的七层模型,它将链路层分为数据链路层(Data Link Layer)和物理层(Physical),网际层称为网络层(Network Layer),应用层细化为会话层(Session Layer),表示层(Presentation Layer)和应用层.

  3. 寻址机制详见: 1.2 IP地址,域名,端口

上一篇 下一篇

猜你喜欢

热点阅读