前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 网络通信协议 (三次握手+协议的概述+TCP+UDP+IP)

java 网络通信协议 (三次握手+协议的概述+TCP+UDP+IP)

作者头像
一只胡说八道的猴子
发布2020-09-27 10:11:08
1.2K0
发布2020-09-27 10:11:08
举报

java 网络通信协议 (三次握手+协议的概述)

首先我们先来了解两种软件协议: 1 c/s结构:全称Client/Server结构,是指客户端与服务器的结构,就像qq,微信等软件,通过客户端与服务器交互

在这里插入图片描述
在这里插入图片描述

2.B/S结构:全称Browser/Server,即浏览器与服务器结构,如火狐,谷歌等等,通过浏览器与服务器交互

在这里插入图片描述
在这里插入图片描述

这两种架构各有千秋,但都离不开网络的支持,网络编程就是在一定协议下,实现两台计算机通信的程序

网络通信协议

网络通信协议:是计算机在交互过程中必须尊守的规则,只有遵守这些规则计算机之间才可以经行通信,就好比我们的交通法规,协议对数据的 传输格式,传输速率,传输步骤等做了统一的规定,双方必须同时遵守才可以完成数据交换

TCP/IP协议:传输控制协议/因特网互联协议,是Internet最基本最广泛的协议,他定义了计算机如何连入因特网,以及数据在他们之间的传输规则,,他内部包含了一系列的用于处理数据的通信协议,并采用四成的分成模型,每一层都通过呼叫他的下一层所提供的协议来完成自己的需求

在这里插入图片描述
在这里插入图片描述

数据链路层/物理层:用于定义物理传输通道,对某些网络连接设备的驱动协议,例如光纤,网络提供的驱动

网络层:网络层是整个TCP/IP协议的核心,主要对数据进行分组,将分组数据发送至指定计算机或则网络

运输层:主要使网络程序之间经行通信,在通信的时候可以选用TCP协议也可以选用UDP协议

应用层:主要负责应用程序的协议如HTTP,FTP协议等

协议分类: to通信协议比较复杂,java.net包中包含接口与类,他们提供底层次的通信细节,我们直接使用这些类接口即可,来专注于网络编程开发,不用考虑通信的细节 java.net包中提供了两种常见网络协议的支持 TCP网络传输控制协议,TCP是面向连接的通信协议,即传输数据之前,在发送端与接受端之间建立连接,然后再传输数据,这是一种无差别的数据传输 在传输数据之前要进行三次握手来建立连接:

三次握手

TCP

第一次握手:客户端向服务器发出连接请求,等待服务器确认 第二次握手:服务器向客户端发送响应,通知客户端收到连接请求 第三次握手:客户端再次向服务器端确认请求

在这里插入图片描述
在这里插入图片描述

完成三次握手建立连接后,客户端与服务器端之间就可以进行数据传输了,TCP协议可以保证数据传输的安全性,比如日常生活中的下载文件

UDP:

用户数据协议。UDP是一个面向无连接的协议。传输数据的时候,不需要建立连接,不管对方服务是否启动都之间将数据,数据源和目的地都封装在数据包中直接发送,但是每个数据包的大小限制在64kb以内,他是不可靠协议,在传输数据的过程中有时候会丢失一部分数据,当时由于其无连接的特性,其传输的速度很快,我们平时用到视频聊天就是使用的UDP,因为在聊天的过程中偶尔卡顿一下画面不会造成太大的损失

IP地址

什么是IP地址:指互联网协议地址,俗称IP,IP地址是网络中的计算机设备的唯一编号,就好比我们的省份证,政府可以通过省份证找到我们,而网络中找到某一台计算机则使用IP地址

在这里插入图片描述
在这里插入图片描述

IP地址的分类

IPv4:是一个32位二进制数,通常被分为四个字节,表示成a .b .c .d的形式,比如127.0.0.1,其中abcd都是0-255之间的十进制整数,最多可以表示42亿个

IPv6:但是由于互联网的蓬勃发展,IP的需求量越来越大,但是网络地址有限,使得IP地址的分配紧张,全球IP地址在2011年2月分配完毕 为了扩大地址空间,就产生了IPV6来重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,号称可以为全世界的每一粒沙子编上号

在这里插入图片描述
在这里插入图片描述

查看本机IP地址的命令: 在控制台输入 ipconfig

在这里插入图片描述
在这里插入图片描述

检查网络是否连通,在控制台输入,在这里我演示以下ping本机

ping 空格 IP地址

在这里插入图片描述
在这里插入图片描述

端口号

网络的通信,本质上是两个进程的通信,每台计算机都有很多进程,在网络通信的时候,如何区别这些进程

如果说IP地址可以唯一标识网络中 的设备,那么端口号就可以唯一标识设备中的进程了

端口号用两个字节表示的整数,他的取值是0-65535,0-1023之间的端口号已经用于一些知名的网络服务与应用,普通程序需要使用1024以上的端口号,如果此端口号被另一个服务或则应用占用,会导致当前的程启动失败 利用协议+IP地址+端口号三元组合,就可标识网络中的进程,那么进程中可以用这个表示与其他进程通信

以上就是网络通信协议的一些基本知识,如有错误还请各位批评指正,喜欢我文章的可以点赞收藏 我会不定期更新文章,大家也可以关注我呀

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • java 网络通信协议 (三次握手+协议的概述)
  • 网络通信协议
  • 三次握手
  • TCP
  • UDP:
  • IP地址
  • 端口号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档