首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JAVA高并发网络编程之TCP和UDP协议(八)

JAVA高并发网络编程之TCP和UDP协议(八)

作者头像
IT架构圈
发布2020-11-09 15:29:41
发布2020-11-09 15:29:41
1.1K00
代码可运行
举报
文章被收录于专栏:IT架构圈IT架构圈
运行总次数:0
代码可运行

开始JAVA高并发网络编程,网络这块先通过TCP和UDP基础的协议开始学习,慢慢到java的socket编程,nio,netty的高性能编程。这次先说说TCP和UDP这样的协议

(一)OSI网络七层模型
  • ① 介绍

为了使不同计算机厂家的计算机能够相互通信,以便在更大的范围内建立计算机网络,有必要建立一个国际范围的网络体系标准。

  • ② 各层的主要功能

各层分层,就是为了让各种的开发复杂性降低。

低三层

  1. 物理层:机械,电子,定时接口通信信道上的原始比特流传输。
  2. 数据链路层:物理寻址,同时将原始比特流转变为逻辑传输线路。通过验证,确认和反馈重发等手段,形成稳定的数据链路,发送(010101)怎么样确定稳定的传输到另一端,软硬结合的,形成一个保障。
  3. 网络层:进行路由选择和流量控制,分组传输,路由选择(IP协议)。这是个逻辑链路,没有真实的存在。

传输层:是个承上启下,提供可靠的端口到端口的数据传输服务(TCP/UDP协议)。

高三层

  1. 会话层:负责建立,管理和终止进程之间的会话和数据交换。
  2. 表示层:负责数据格式转换,数据加密与解密,压缩与解压缩等。
  3. 应用层:为用户的应用进程提供网络服务。
(二)传输控制协议TCP
  • ① 介绍

传输控制协议(TCP)是Internet一个重要的传输层协议。TCP提供面对连接,可靠,有序,字节流传输服务。应用程序在使用TCP之前,必须先建立TCP连接。

  • ② TCP握手机制

三次握手

为什么是三次握手,而不是两次或者四次握手,知乎上有个形象的示例。

代码语言:javascript
代码运行次数:0
运行
复制
三次握手:
“喂,你听得到吗?”
“我听得到呀,你听得到我吗?”
“我能听到你,今天balabala……”

两次握手:
“喂,你听得到吗?”
“我听得到呀”
“喂喂,你听得到吗?”
“X,我听得到呀!!!!”
“你TM能不能听到我讲话啊!!喂!”
“……”

四次握手:
“喂,你听得到吗?”
“我听得到呀,你听得到我吗?”
“我能听到你,你能听到我吗?”
“……不想跟XX说话”

四次挥手

(三)用户数据报协议UDP
  • ① 介绍

用户数据协议UDP是iNternet传输层协议。提供无连接,不可靠,数据报尽力传输服务。

  • ② 开发注意点
  1. 应用进程更容易控制发送什么数据以及何时发送。
  2. 无需建立连接。
  3. 无连接状态。
  4. 首部开销小。
(四)TCP和UDP区别
  • 什么情况下用UDP

直播实时性,弹幕,udp比较快,偶尔丢一个包,视频有卡顿,视频有模糊,可以接受的。上报日志,物联网里面,丢一个关系不大。

(五)socket编程

Internet中应用最广泛的应用编程接口,实现与3种底层协议接口

  1. 数据报类型套接字SOCK_DGRSM(面对UDP接口)
  2. 流式套接字SOCK_STREAM (面对TCP接口)
  3. 原始套接字SOCK_RAM(面向网络层协议接口IP,ICMP等)
  • socket API 及其调用过程

1、创建服务器套接字---分配内存、初始化 2、服务器套接字--侦听 3、建立与客户端配套的客户端套接字 4、与客户端通讯(可以多客户端) 5、关闭、销毁[服务器端相应套接字

客户端: 1、创建客户端套接字---[分配内存]初始化 2、连接服务器 3、与服务器通讯 4、关闭、销毁客户端套接字

PS:在实际的工作中TCP和UDP的开发,接下来也会以这种方式,TCP,UCP的编程顺序往后来进行讲解。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程坑太多 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (一)OSI网络七层模型
  • (二)传输控制协议TCP
  • (三)用户数据报协议UDP
  • (四)TCP和UDP区别
  • (五)socket编程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档