当前位置: 首页 > news >正文

JavaEE初阶-网络编程

网络初识

TCP/IP协议

五层模型:应用层、传输层、网络层、数据链路层、物理层(硬件)

应用层

对应应用程序,下面四层是操作系统封装好了的

传输层

不考虑中间路径,只关注起点和终点

举例:我在淘宝买东西,我和卖家都不关注中间是怎么传输的,只要货物运到就可以了

网络层

主要负责两个遥远结点之间的路线规划

举例:在淘宝买东西,收货地苏州,发货地是北京,北京->苏州有好多条路可以走,要从其中选择一条

数据链路层

主要关注相邻节点之间的传输

举例:如果路线是:北京->徐州->南京->苏州,需要关注的是每一段路,比如

北京->徐州 火车

徐州->南京 卡车

南京->苏州 卡车

物理层

网络通信的基础设施,网线、光纤、网络接口...

在协议分层的背景下,数据如何通过网络传输?

封装和分用

发送方发送数据,要把数据从上到下,依次交给对应的协议层进行分层,进行封装

接收方接收数据,要把数据从下到上,依次交给对应的协议层进行分层,进行解析

举例:以QQ发送消息为例

1.发送方:我在编辑框输入一个消息:666,并发送

应用层(QQ应用程序)拿到这个数据要进行封装,封装成应用层数据包,本质上是字符串拼接,会通过一个内部的协议进行设计,外人不知道

2.传输层拿到数据

应用层要调用传输层提供的Api,来处理这个数据

传输层有很多协议,最典型的是TCP和UDP

以UDP为例,UDP根据上述数据包再进行封装

一个典型的数据报都是通过报头+载荷的方式构成的

socket套接字

程序员编写网络程序,主要编写的是应用层代码,真正要发这个数据,需要上层协议和下层协议,应用层要调用传输层,传输层给应用层提供一组api,统称为socket api。

系统提供的api主要分为两组:

基于UDP的api

基于TCP的api

UDP协议

无连接→发短信

不可靠传输→不用关注有没有成功

面向数据报→以一个UDP数据报为单位

全双工→双向通信

TCP协议

有连接→打电话

可靠传输→尽可能的传输过去,知道自己有没有成功

面向字节流→一个字节一个字节的传输,读写方式比较灵活

全双工→双向通信

此处的连接是一个抽象的连接,可以理解成是通信的过程中,双方都记录了对方的信息。

半双工:单向通信

UDP数据报套接字编程

了解UDP的api,做数据接收和转发

DatagramSocket

DatagramPacket

要想进行网络通信,就需要有socket文件这样的对象,借助这个socket文件对象,才能够间接操作网卡。

未完待续。。。

相关文章:

  • javaEE1
  • 从大模型加载到交互:3D Web轻量化引擎HOOPS Communicator如何打造流畅3D体验?
  • Django ToDoWeb 服务
  • 【JavaEE】-- 文件操作和IO
  • qml和JavaScript的QtObject是 QML 中用于存储无界面,纯数据。应用场景:计算器、遥控器、告警类型映射
  • 如何理解UDP 和 TCP 区别 应用场景
  • 前端生成UUID
  • Codeforces Round 1027 (Div. 3)
  • 学习日记-day17-5.27
  • 计算机网络练习题
  • 网络:华为S5720-52X-SI交换机重置console密码
  • 涨薪技术|0到1学会性能测试第84课-Windows Sockets数据操作
  • Nest全栈到失业(一):Nest基础知识扫盲
  • LeetCode 118 题解--杨辉三角
  • leetcode每日一题(好几天之前的) -- 3068.最大节点价值之和
  • 什么是可重组机器人?
  • 【Day38】
  • SwaggerEndPoints 配置访问外部 Swagger 文档
  • 使用蓝耘元生代 MaaS 平台 API 工作流调用技巧与实践体验
  • 九级融智台阶与五大要素协同的量子化解析
  • 佛山网站设计模板/东莞百度网站排名优化
  • 天河手机网站建设/宁波seo外包方案
  • 四川建设银行社会招聘网站/网络软文
  • wordpress加图标/武汉排名seo公司
  • 个人网站设计过程/株洲seo优化推荐
  • 注册功能的网站怎么做/百度平台客服人工电话