JAVA网络编程

网络编程

1、网络编程概述

2、网络通信要素概述

3、通信要素1:IP和端口号

4、通信要素2:网络协议

5、TCP网络编程

6、UDP网络编程

7、URL编程

 

1、网络编程概述

java是Internet上的语言,它从语言寄级上提供了对网络应用程序的支持,程序员能够很容易的开发常见的网络应用程序

java提供网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在java的本兮安装系统里,有JVM进行控制。并且java实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境

网络基础

计算机网络:

计算机网络是指将地理位置不同的具有独立功能的多台计算力及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

网络编程的目的:

直接或间接的通过网络协议与其他计算机实现数据交换,进行通讯。

网络编程中两个主要问题:

如何准确的定位网络上一台或多台主机;定位主机上特定的应用程序

找到主机后如何可靠高效的进行数据传输

2、网络通信要素概述

通信双方地址:

->IP :定位某一台主机

->端口号:定位某一个进程

一定的规则(即:网络通信协议;有两套参考模型)

OSI参考模型:模型过于理想化,未能在Internet网上进行广泛推广

TCP/IP参考模型(TCP/IP协议):事实上的国际标准

网络通信协议:

计算机网络中实现通信必须有一些约定,及通信协议,对速率,传输代码,代码结构,传输控制步骤,出错控制等制定标准。

 

HTTP协议:(超文本传输协议) 应用层

  HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当。

FTP协议:(文件传输协议)应用层
  文件传输协议(File Transfer Protocol,FTP)是用于在 网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
   FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式
Telnet协议:(远程终端协议) 应用层

  Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

DNS协议:域名系统(DomainNameSystem)

  DNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,在Internet上域名与IP地址之间是一一对应的,DNS就是进行域名解析的服务器。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。DNS是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库。

TCP(传输控制协议)传输层
  传输控制协议( TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 [1]  定义。
  TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。
UDP(用户数据报协议)传输层
  Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。RFC 768 [1]   描述了 UDP。

  Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的的事情。面向连接的是 TCP,该协议几乎做了所有的事情。

IP协议(网络之间互连的协议) 网络层

  IP,全称互联网协议地址,是指IP地址,意思是分配给用户上网使用的网际协议(英语:InternetProtocol,IP)的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类,但是也有其他不常用的小分类。

ICMP协议(Internet控制报文协议) 网络层
  ICMP(Internet Control Message Protocol)Internet控制 报文协议。它是 TCP/IP协议簇的一个子协议,用于在IP 主机路由器之间传递控制消息。控制消息是指 网络通不通、 主机是否可达、 路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 [1]  

  ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。

ARP(中国科学院资源规划项目)网络层

  ARP项目是实现中国科学院科学的资源规划的信息系统工程,ARP即“中国科学院资源规划项目”(Academia Resource Planning,简称:ARP)。

Link 物理+数据链路层

数据通信网中,按一种链路协议的技术要求连接两个或多个数据站的电信设施,称为数据链路,简称数据链。数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

3、通信要素1:IP和端口号

IP地址:InetAddress

  唯一的标识Internet上的计算机

  本地环回地址(hostAddress):127.0.0.1 主机名(hostName):localhost

  IP地址分类方式1:IPV4和IPV6

    IPV4:由四个字节组成,4个0-255。大概52亿,30亿都在北美,亚洲4亿。2011年初已经用尽。一点分十进制表示,如192.168.0.1

    IPV6:128位(16个字节),写成8个无符号整数,每个整数用4个16进制位表示,数字之间用冒号(:)分开,如:3ffe:3201:1401:1209:c8ff:fe4d:db39:1984

  IP地址分类方式2:公网地址(万维网使用)和私有地址(局域网使用)

 域名解析过程:

域名(www.baidu.com)-----> DNS解析成IP地址------->本地获得IP地址-------->网络服务器

域名(....)---->先找本机hosts,是否有输入的域名地址,没有的话,在通过DNS服务器找主机。

端口号

标识正在计算机上运行的进程(程序)

  不同的进程有不同的端口号

  被规定为一个16位的整数0-65535

  端口分类:

    公认端口:0~1023.被预先定义为服务通信占用(如:HTTP占用端口80,FTP占用端口21,Telnet占用端口23)

    注册端口:1024~49151.分配给用户进程应用程序。(如Tomcat占用端口8080,MySQL占用端口3306,Oracle占用1521等)

    动态私有端口:49152~65535

端口号与IP地址的组合得出一个网络套接字:Socket

4、通信要素2:网络协议

传输层中两个非常重要的协议

  传输控制协议TCP

  用户数据报协议UDP

TCP/IP以其两个主要协议:传输控制协议(TPC)和网络互联协议(IP)而得名,实际上是一组协议,包括多个具有不同功能且互为关联的协议

TCP协议:(三次握手)

1、使用TCP协议前,需先建立TCP连接,形成传输数据通道

2、传输前,采用“三次握手”方式,点对点通信,可靠的

3、TCP协议进行通信的两个应用进程:客户端、服务端

4、在连接中可以进行大数据量传输

5、传输完毕,需释放自己建立的连接,效率低

UDP协议:(四次挥手)

1、将数据、源、目的地封装成数据包,不需要建立连接

2、每个数据包的大小限制在64K内

3、发送不管对方是否准备好,接受方收到也不确认,不可靠

4、可以广播发送

5、发送数据结束是无序释放资源,开销小,速度快

转载于:https://www.cnblogs.com/Gary757/p/11284162.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值