当前位置:   article > 正文

网络通讯协议

网络通讯协议

网络编程:通过网络协议实现计算机之间的数据传输和通讯。

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

  • 如何准确地定位网络上的主机;如何定位主机上的特定的应用

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

1.网络通信协议

1.1网络通信协议概述

网络通信协议规定了数据的传输方式,如:数据的格式、数据的传输速率、通信规则等。网络通信协议有很多,常见的有TCP/IP协议、UDP协议等。

在这里插入图片描述

1.2通信要素

1.2.1 IP和端口号

IP地址:唯一的标识一台Internet上的主机

IP地址分为IPV4IPV6

IPV4 4个字节,即32位。如192.168.0.1

IPV6 16个字节,即128位。如3ffe:3201:1401:1280:c8ff:fe4d:db39:1984

本地回环地址(hostAddress):127.0.0.1

主机名(hostName):localhost

即:localhost的IP是127.0.0.1

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

不同的进程有不同的端口号,规定端口号为一个 16 位的整数 0~65535。

端口分类:

公认端口:0~1023。被预先定义的服务通信占用(如:HTTP占用端口 80)

注册端口:1024~49151。分配给用户进程或应用程序。(如:Tomcat占用端口8080)

动态/私有端口:49152~65535

1.2.2 套接字

Socket(套接字)可以看成是应用程序进行通信时的标识

Socket是网络环境中进程间通信的API,也是可以被命名和寻址的通信端点,每一个套接字都有一个对应的进程。网络通讯实际上就是Socket间的通讯。

套接字Socket=(IP地址:端口号)

1.2.3 InetAddress类

Internet上的主机有两种方式表示地址:

域名(hostName):www.baidu.com
IP 地址(hostAddress):202.108.35.210

域名解析:当在连接网络时输入一个主机的域名后,域名服务器(DNS) 负责将域名转化成IP地址,这样才能和主机建立连接。

InetAddress类封装了IP地址,提供了与IP地址相关操作的方法,有两个子类Inet4Address、Inet6Address。

//InetAddress类常用API:

//创建一个本地主机的InetAddress对象
static InetAddress getLocalHost()
//给定主机名的情况下确定主机IP地址
static InetAddress getByName(String host)
//得到字符串格式的IP地址
String getHostAddress()
//获取此 IP 地址的主机名
String getHostName()
//测试是否可以达到该地址
boolean isReachable(int timeout)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

1.2.4 URL

URL(uniform resource locator),统一资源定位符。表示Internet上某一资源的地址,浏览器通过解析给定的 URL 可以在网络上查找相应的文件或其他资源。

URL的基本结构由5部分组成:
<传输协议>://<主机名>:<端口号>/<文件名>#片段名?参数列表

例如: http://192.168.1.100:8080/helloworld/index.jsp#a?username=shkstart&password=123

//URL类常用API:

public String getProtocol()//获取该URL的协议名
public String getHost()//获取该URL的主机名
public String getPort()//获取该URL的端口号
public String getPath()//获取该URL的文件路径
public String getFile()//获取该URL的文件名
public String getQuery()//获取该URL的查询名
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

1.4 UDP协议

UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送和接收数据的对象,因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念

Java提供了DatagramSocket类和DatagramPackage作为基于UDP协议的API

UDP协议特点

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

2.每个数据报的大小限制在64K内

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

4.可以广播发送

5.发送数据结束时无需释放资源,开销小,速度快

1.5 TCP协议

TCP/IP协议是一种可靠的网络协议,它通过客户端和服务器端建立的连接来进行通信。TCP协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP协议是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。
TCP协议通信的过程:
1.三次握手(建立连接) 2.传输确认 3.四次挥手(断开连接)

TCP协议特点

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

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

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

4.在连接中可进行大数据量的传输

5.传输完毕,需释放已建立的连接效率低

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/427059
推荐阅读
相关标签
  

闽ICP备14008679号