Java Network Programming 笔记
n5
一 网络基本概念
Chapter2 Basic Network Concepts
2.1 Networks
keywords: network, node, host, address, name, packet-switched, protocol
网络是可以或多或少实时地相互发送和接收数据的计算机和其他设备的集合。
网络上的每台机器被称作结点(node),大多数结点是计算机,但是打印机,路由器,桥,网关,哑终端和可口可乐机都可以是结点,但你通常只和其他计算机会话。
功能齐全的计算机结点被称作主机(host)。
每个网络结点有一个地址(address):唯一标识它的一系列字节。在不同的网络中地址分配方法同。以太网地址是附加在物理的以太网硬件上的。设备厂商要保证这些硬件的地址不重复。一台计算机的Internet地址通常由专门负责分配地址的组织分配。而这些组织可以分配的地址又是由该组织的ISP(Internet Service Provider)提供的。ISP从三个Internet地区性注册机构之一获得IP地址(Internet Protocol地址)。比如美洲和非洲的注册机构为ARIN(the American Registry for Internet Numbers)。地区性注册机构的地址又是由IANA(Internet Assigned Numbers Authority)分配的。
某些种类的网络中,结点可使用人类易辨认的名字。名字和地址的对应不是不变的。名字变了,地址可不变;地址变了,名字可不变。一个地址通常可有多个名字,一个名字也可以对应多个地址(虽然这样的情况很少)
所有现代计算机网络是包交换(packet-switched)网络。在网络上传输的数据被分成包,每个包都被独立处理。每个包都含有"谁发送了我"和"我要去哪儿"的信息。包交换的最大优点是可以同时进行很多交换,若干计算机可以共享一条电缆。
协议(protocol)是一组精确的规则集合,它定义了计算机之间如何通讯,包括:地址格式,数据如何分包等。公开发布的协议允许不同厂商的软件和设备相互通讯。比如web浏览器不用关心服务器是Unix工作站还是Windows box或者Mac机,因为服务器和浏览器都使用同样的平台无关的http协议交谈。
2.2 The Layers of a Network
标准TCP/IP四层模型:
Application Layer
Transport Layer (TCP,UDP)
InternetLayer (IP)
The Host-To-Network Layer (Ethernet,LocalTalk,FDDI...)
90%的Java网络编程处于应用层,只须同传输层对话。剩下的10%处于传输层,同应用层和网间网层对话。
应用层看起来是直接同其他host的应用层对话的,网络在两个应用层之间创建了一条逻辑链路。
2.2.1 The Host-to-Network Layer
(也称作link layer,data link layer, network-interface layer)
这一层定义了某个特定的网络接口,例如以太网卡,如何通过它的物理连接向本地网络或世界发送IP数据包。
物理层对Java是透明的。数据链路层对Java程序员没有直接影响。然而,你在应用层发送的数据可以优化以适应特定的数据链路层的本地包大小(the native packet size of a particular data link layer),这样性能上会有所提升。不过,不优化程序也正常运行。
2.2.2 The Internet Layer
在OSI模型中,Internet Layer对应于更一般化的名字network layer。一个network layer协议定义bits和bytes如何组织为packets,也定义了不同机器如何找到彼此的地址方案。Internet Protocol(IP)是应用最广泛的network layer协议,也是Java唯一理解的network layer协议。其他的network layer协议有NetWare网络上的IPX协议,Mac机上的AppleTalk协议,Windows上的NetBEUI协议。各种network layer协议对于底层是独立的,AppleTalk,IP,IPX和NetBEUI都可以被用于以太网,令牌环网或使用其他数据链路层协议的网络,而这些数据链路层协议本身也是可以运行在不同种类的物理层之上的。
internet layer传输的包称作datagrams,每个IP datagram包括一个20~60字节的头和最大65515字节的数据。(实际上多数IP datagram非常小)
IP数据包头的内容为:
4-bit版本号
4-bit头长度
1-byte type of service
2-byte datagram长度:包括头的长度
2-byte 标识号
3-bit flags
13-bit fragment offset
1-byte time-to-live(TTL)
1-byte protocol:TCP为6,UDP为17 (都是上一层传输层的协议)
2-byte 头校验和
4-byte 源地址
4-byte 目的地址
2.2.3 The Transport Layer
传输层负责保证所有的包正确的被收到,顺序正确,数据也正确。如果包丢失了,传输层要求发送者重发丢失的包。
传输层有两种协议,TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。TCP保证包不丢失,内容和顺序都正确;UDP只保证接受到的包正确,不管是否有包丢失了或到达的包顺序是否正确。
2.2.4 The Application Layer
应用层向用户传送数据。下面三层一起解决了数据如何从一个计算机到达另一个;而应用层决定数据到达后如何处理。Java网络编程主要是在应用层。常见的应用层协议有:HTTP,SMTP,POP,FTP等。你的程序可以定义自己的应用层协议。
Domain Names: 域名系统(DNS:Domain Name System)将主机名解析为数字的Internet地址。Java程序使用java.net.InetAddress类
分享到:
相关推荐
1. **Java网络API**: Java提供了丰富的网络编程API,如`java.net`包,它包含了Socket、ServerSocket、DatagramSocket、URL等类,用于实现TCP/IP和UDP通信。Socket用于面向连接的通信,ServerSocket用于监听客户端...
Chapter 1. Why Networked Java? Section 1.1. What Can a Network Program Do? Section 1.2. Security Section 1.3. But Wait! There's More! Chapter 2. Basic Network Concepts Section 2.1. Networks...
### Java网络编程与分布式计算关键知识点 #### 一、Java网络编程基础 ##### 1. 网络架构与TCP/IP协议 - **互联网架构**:本书首先介绍了互联网的基本架构,包括不同层次的功能划分以及各层之间的交互方式。这对于...
《Addison Wesley - Java Network Programming and Distributed Computing》是一本深入探讨Java编程在网络和分布式计算领域的专著。这本书旨在帮助读者理解如何利用Java语言构建高效、可靠的网络应用程序,并且掌握...
《Java Network Programming 2nd》是一本专注于Java网络编程的权威指南,主要涵盖了使用Java语言进行网络应用开发的各种技术和实践。这本书深入浅出地讲解了如何利用Java API进行网络通信,包括TCP/IP套接字、多线程...
An Introduction to Network Programming with Java
Java Network Programming 4th.epub
比较经典的讲stream,socket的书吧,具体信息可以去各商城上看,本人也买了纸质书,这个仅为在电脑或pad上看着方便
java网络编程 Java.Network.Programming.3rd.Edition.Oct.2004
UNIX Network Programming - vol1 ed3 The Sockets Networking API.chm Unix Network Programming - vol2 ed2 lnterprocess Communications.pdf UNIX网络编程第1卷:套接口API.pdf UNIX网络编程第2卷:进程间通信....
Java provides numerous classes that have evolved over the years to meet evolving network needs. These range from low-level socket and IP-based approaches to those encapsulated in software services. ...
Neural Network Programming with Java 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请...